Tworzenie nowego okna programu

0

Witam!

Proszę od razu nie wyzywać, bo jestem super początkujący jeśli chodzi o pascala i mam pewien problem. Napisałem już kilka programów, ale większość uruchamia się w wierszu poleceń lub w jednym oknie. Chciałbym stworzyć nowe okno programu, ale nie za bardzo wiem jak to zrobić.

chciałbym uzyskać, całkowicie nowe, czyste okno programu.

Szukałem całkiem dużo w google i przeczytałem wiele artykułów, ale w żadnym nie ma nic, co by mi pomogło.

Najlepiej po prostu kod na akcję przycisku tworzącego okno. Jak będę miał kod to sobie przejrzę i przyswoję.

Z góry dziękuję za pomoc.

0

A co to jest:

TForm1

0

Ej, no nie czepiaj się :)

File --> New --> Form

Aby podczas programu pokazać okno drugie, to Form2.Show; trzecie Form3.Show ; itp.itd.

@Opi:
To chyba cyfra, chociaż mogę się mylić.

0

gdyby to było takie proste...

kompilator wywala : "Identifier not found Form2" czyli nie znaleziono form2

tak jakby nie widział, że ją przed chwilą stworzyłem???

Robię tak:

procedure TForm1.Button1Click(Sender: TObject);

begin
TForm2.show;
end;

lub

procedure TForm1.Button1Click(Sender: TObject);

begin
Form2.show;
end;

Próbowałem też:

procedure TForm1.Button1Click(Sender: TObject);
F:Form2;
begin
Form2.show;
end;

i

procedure TForm1.Button1Click(Sender: TObject);
F:TForm2;
begin
TForm2.show;
end;

EDIT: Do kompilacji używam lazarusa w wersji 0.92.8.2

1

kompilator wywala : "Identifier not found Form2" czyli nie znaleziono form2
Dodaj unit2

 do sekcji <code noframe>uses

unita 1.

0

Kurcze, to było takie proste, a nie mogłem do tego dojść cały boży dzień, wielkie THX Azarien

0

Myślałem, że masz Delphi.
Tam przy napisaniu 'Form2.Show;' i kompilacji, zapytałoby się, czy dodać Unit2 do modułów.

0

Ok, to mam jeszcze jedno pytanie odnośnie tworzenia nowego okna, chciałbym aby po naciśnięciu button1, pokazało się nowe okno, w którym po podaniu konkretnych danych w polach edit1 i edit2, oraz naciśnięciu button1, logował się do programu, wracając do starego okna. Nie było by problemu, gdybym wiedział, jak w form1 odnieść się do form2.

Jest jeszcze taka sprawa, że po pokazaniu się okienka logowania (form2) pierwsze okno(form1) ma być nieaktywne, czyli form1.enabled:=false;

a po naciśnięciu button1 na form2, ta ma się ukryć, a form1.enabled:=true;

niestety, jeśli dodam unit2 do unit1 to do unit2 nie mogę już dodać unit1...

tak więc kolejny raz proszę o pomoc.

mam coś takiego w unit1:

procedure TForm1.Button1Click(Sender: TObject);
  begin
    form2.show;
    form1.enabled:=false;
  end;

i takiego w unit2:

procedure TForm2.Button1Click(Sender: TObject);
begin
  if (edit1.text='przykladowylogin') and (edit2.text='przykladowehaslo') then form2.close;
end;

wiem już jak przenieść wartości z form2 do form1, i użyć form2 i jego obiekty w form1, ale nadal nie mogę użyć form1 w form2, przy dodawaniu unit1 do uses w unit 2, kompilator wywala:"Cricular unit reference between unit2 and unit1", czyli "zapętlona zależność" czy jakoś tak, więc nie mogę dodać, jednocześnie w unit1 i unit2, czy jest jakiś sposób by to obejść?

0

ok, już sobie to załatwiłem, wystarczyło zadeklarować zmienną globalną i przypisać odpowiednią wartość, przy zamknięciu nadrzędnego okna, kiedy zmienna przyjmuje tę wartość, form1 staje się aktywne.

THX za pomoc

1 użytkowników online, w tym zalogowanych: 0, gości: 1