identyfikacja dynamicznej formy

0

Witam
Tworzę dynamicznie formy w taki sposób:

Application.CreateForm(TForm2, Form2);
Form2.Show;

Po utworzeniu kilku takich samych dynamicznych form jak mogę odwołać się do którejś z nich? Po czym mogę je identyfikować?

Proszę o odpowiedź.

0

Klasę sprawdzasz, np.

if (Application.ActiveForm is TForm2)

.
A konkretne formy... Porównujesz Caption, Tag, czy cokolwiek chcesz, przez:

(Application.ActiveForm as TForm2).Caption

.

0

To mi nie działa.
Dokładnie chodzi mo o coś takiego:
Gdybym miał 3 formy statyczne, np. Form1, Form2 i Form3. Na każdej z nich jest Memo. Chcę zrobić coś takiego Form2.Memo.Lines.Add('tekst'); Na statycznych formach to nie jest problem. Nie wiem jak to zrobic na dynamicznych. Musiałbym mieć chyba w uproszczeniu coś takiego: Form2[identyfikator].Memo.Lines.Add('tekst'); <-jak to zrobić???

0

Spróbuj:

for I := 0 to Screen.FormCount - 1 do
  if Screen.Forms[I] is TForm2 then
    begin
      (Screen.Forms[I] as TForm2).Memo.Lines.Add('Tekst...');
    end;
0

w zalezonsci czy tworzysz je w tablicy lub nie.. jak bys uzywal tablic to odowlaj sie do tfrom;

tablica : array of tfrom;?

0

A po co dodatkowa tablica? Jest przecież Screen.Forms i TForm.MDIChilds

0

Ale Wy kombinujecie. Po prostu odwołujesz się Form2, Form3 itd...

A poza tym taki sposób tworzenia, jaki podałeś w pliku projektu jest tworzeniem statycznym.

Tworzenie dynamiczne polega na czymś innym, np. gdzieś w kodzie programu:

var
  forma: TMojaForma;
begin
  forma:=TMojaForma.Create(application);
  //jakiś kod z formą, np: forma.Caption:='Napis';
  forma.Free;
end;

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