Witam.
Mam na kilku formatkach rozpisane kilka części programu. Na jednej formatce mam powiedzmy ekran główny a po kliknięciu "Nowa gra" przenosi mnie do innego okna z wyborem poziomu gry. Czy istnieje możliwość żebym za pomocą na przykład Buttona przechodził z jednej formatki do drugiej? Z góry dziękuję za odpowiedź.
Oczywiście, że istnieje taki sposób, ale zależy on od tego, czy ten drugi formularz tworzony jest automatycznie, czy dynamicznie; No i ważne też jest to, jak ma się zachować główny formularz - czy ma być aktywny, czy zablokowany, czy pokazany, czy też ukryty;
Zwykle okna dialogowe otwiera się modalnie, czyli blokując formularz wywołujący to okno; Taki efekt uzyskasz wywołując metodę ShowModal
z obiektu drugiego formularza; Kod zapisujesz w zdarzeniu OnClick
przycisku, znajdującego się na głównym formularzu; Po zamknięciu okna dialogowego (drugiego formularza) - główny formularz zostaje automatycznie odblokowany;
Jeśli drugi formularz tworzony jest automatycznie, to wywołaj odpowiednią jego metodę:
procedure TForm1.Button1Click(Sender: TObject);
begin
Form2.ShowModal();
end;
Natomiast jeśli nie jest on tworzony automatycznie przy rozruchu aplikacji - musisz go najpierw utworzyć, a dopiero potem wywolać metodę pokazującą formularz:
procedure TForm1.Button1Click(Sender: TObject);
begin
Form2 := TForm2.Create(Self);
try
Form2.ShowModal();
finally
Form2.Free();
end;
end;
Jeżeli nie chcesz, aby główny formularz był blokowany - zamiast ShowModal
użyj metody Show
.
Dziękuję bardzo serdecznie za wyczerpującą odpowiedź. Teraz już wszystko wiem :)