[delphi] Sprawdzenie, czy form o takiej nazwie istnieje.

0

Witam!

Dynamicznie tworzę nowy form.

PrivForm := TForm.Create(Application);
PrivForm.Name := nazwa + '_privform';
PrivForm.Width := 200;
PrivForm.Height := 150;
PrivForm.Caption := nazwa;
PrivForm.Visible := true; 

Teraz chce sprawdzić, czy taki form już istnieje (najlepiej sprawdzić to po Name).
Tylko jak to zrobić? Jest coś takiego jak FindForm? SearchForm?
Albo procedurą FindComponent? (chociaż nie bardzo kumam ocb)

Proszę o pomoc ;p.

0
if (Application.FindComponent(nazwa + '_privform') = nil) then

Edytka:

FindComponent wywołany dla formy zwraca referencję na element o podanej nazwie jeśli takowy jest na danej formie, jak nie to zwraca nil.
Wywołany dla aplikacji (Application) przeszukuje wszystkie formy, włącznie z nimi samymi, a że nazwy muszą być unikalne, to masz pewność, że jak znajdzie, to tylko jeden komponent/forme.

BTW
Jak już chcesz sprawdzać, to przed utworzeniem, bo nazwy muszą być unikalne, i może się krzaknąć :d

0

Jeżeli zależy ci na szybkości i chcesz wykryć tylko obecność, to

if FindWindow('nazwa', nil) = 0 then //jak okna nie ma
0

Inna rzecz, żeby nie pisać wielu tematach. Moze być uznana (ta rzecz ;p) za jedną z kategorii "noob questions", mianowicie
jak umieścić jakiś element na formie (tworzonym dynamicznie)?

0

Do uses dodajesz na przykład StdCtrls, dla komponentów standardowych, a poźniej w kodzie.

var
Cosik : TEdit;
begin
Cosik := TEdit.Create(Self);
Cosik.Parent := NazwaFormyDynamicznej;
Cosik.Top := 10;
Cosik.Left := 8;
Cosik.Visible := True;
end;

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