identyfikacja dynamicznej formy

Odpowiedz Nowy wątek
2006-08-20 13:01
df
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ź.

Pozostało 580 znaków

2006-08-20 13:29
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

.


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

Pozostało 580 znaków

2006-08-20 15:44
df
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ć???

Pozostało 580 znaków

2006-08-20 15:52
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;

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

Pozostało 580 znaków

2006-08-21 13:49
0

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

tablica : array of tfrom;?

Pozostało 580 znaków

2006-08-21 15:29
0

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


Pozostało 580 znaków

2006-08-23 13:33
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;

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