Test wyświetlania formy

Odpowiedz Nowy wątek
2006-07-19 21:46
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 ?

Pozostało 580 znaków

2006-07-19 22:02
0

Ustaw w OnClose Form2:

Form2 := nil;

Program to zbiór zer i jedynek ułożonych tak, żeby denerwować użytkownika.

Pozostało 580 znaków

2006-07-19 22:04
spc
0

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


00, OK, 00, 00
...dziś się to robi na sprzętach, kiedyś na patentach...

Pozostało 580 znaków

2006-07-19 22:08
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.

Pozostało 580 znaków

2006-07-19 22:11
spc
0

To tylko zmienna w pewnym sensie "lokalna".


00, OK, 00, 00
...dziś się to robi na sprzętach, kiedyś na patentach...

Pozostało 580 znaków

2006-07-19 22:24
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...)


Program to zbiór zer i jedynek ułożonych tak, żeby denerwować użytkownika.

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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