Tworzenie nowego okna programu

Tworzenie nowego okna programu
Arthi
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 21
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.

Opi
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 1034
0

A co to jest:

TForm1

Patryk27
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
  • Postów: 13042
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ć.

Arthi
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 21
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:

Kopiuj
procedure TForm1.Button1Click(Sender: TObject);

begin
TForm2.show;
end;

lub

Kopiuj
procedure TForm1.Button1Click(Sender: TObject);

begin
Form2.show;
end;

Próbowałem też:

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

i

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

EDIT: Do kompilacji używam lazarusa w wersji 0.92.8.2

Azarien
  • Rejestracja: dni
  • Ostatnio: dni
1

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

Kopiuj
 do sekcji <code noframe>uses

unita 1.

Arthi
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 21
0

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

Patryk27
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
  • Postów: 13042
0

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

Arthi
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 21
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:

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

i takiego w unit2:

Kopiuj
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ść?

Arthi
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 21
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

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.