Test wyświetlania formy

0

Witam

Kurcze mam prosty problem (mam nadzieje że nie wyląduje w Newbie), ale nie umię sobie z nim poradzić (może to ten browar). Mam formę główną Form1 oraz drugą Form2, jeśli usunę Form2 z listy formatek tworzonych automatycznie, to jak sprawdzić czy Form2 jest aktualnie wyświetlana ? Początkowo Form2 = nil, ale po wyświetleniu i zamknięciu (Action = caFree) Form2 <> nil, ale formy nie ma.
Jak to jest z tymi formami ? Jak sprawdzić czy ona jest widoczna ?

0

Ustaw w OnClose Form2:

Form2 := nil;
0

Moze, jezeli masz oprogramowane OnClose to po prostu przypisz formie nil?

0
Nex napisał(a)

Ustaw w OnClose Form2:

Form2 := nil;

No w sumie tak działa, ale czy ten adres co jest w Form2 to już do niczego nie będzie potrzebny ? Można tak po prostu podstawić do Form2 nil ?

W końcu wymyśliłem coś takiego:

procedure TForm1.Button1Click(Sender: TObject);
begin
If (Form2 = nil) or not(Form2.Showing) then
Begin
Form2 := TForm2.Create(Application);
Form2.Show;
End;
end;

Ale nie wiem czy to jedyna solucja.

0

To tylko zmienna w pewnym sensie "lokalna".

0

Poza tym - skoro niszczysz Form2, to ta zmienna odwołuje się do niczego. :) (A wtedy próba odwołania się do formy zakończy się błędem AV...)

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