![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Динамическая форма [D6, WinXP]
Alexander_D6_XP © (2002-06-16 15:49:00)procedure TForm1.Button1Click(Sender : TObject)
var
F : TForm3;
begin
F := TForm3.Create(nil);
F.Caption := inttostr(random(65536));
F.Name := "F" + inttostr(random(65536));
F.Show;
end;
Вопрос:
Я таких форм могу сделать кучу! а как мне их
- всех убить
- доступиться до какой-нибудь? (F123.close нельзя!)
Alexander_D6_XP (2002-06-16 20:28:00) [1]Спасибо, вроде всё заработало :)
~Rand~ (2002-06-16 19:19:00) [2]Удалено модератором
Anatoly Podgoretsky (2002-06-16 18:22:00) [3]Точно также как ты вызывал метод формыЮ через Forms, также массив Components содержит все компоненты, вызывай метод напрямую
Polevi (2002-06-16 18:16:00) [4]FindComponent
Alexander_D6_XP (2002-06-16 18:15:00) [5]Возможно воспользуюсь советом :)
Но теперь проблема как докапаться до компоненты!
form1.Caption := Screen.Forms[2].Components[2].Name;
- это работает, и я получаю необходимое имя, но как мне вызвать метод этого компонента? Например Едита?
Anatoly Podgoretsky (2002-06-16 16:59:00) [6]Screen содержит список всех созданных форм, поэтому тебе доступны все характеристики напрямую, включая все компоненты на форме, это уже другой массив Components
Ты купил бы хоть какую нибудь книгу по Дельфи, а то плохо будет
Alexander_D6_XP (2002-06-16 16:48:00) [7]А если у меня на разных формах есть/нет Edit38, то как мне узнать на этапе трансляции, что он там точно есть?
Anatoly Podgoretsky (2002-06-16 16:42:00) [8]Да это закроет форму[I]
Alexander_D6_XP (2002-06-16 16:32:00) [9]Screen.Forms[i].Close;
Anatoly Podgoretsky (2002-06-16 16:30:00) [10]А как ты добираешься и до какого метода?
Alexander_D6_XP (2002-06-16 16:29:00) [11]ок, всё понял, но это жизнь то не облугчило.
как мне до метода её добраться?
MBo (2002-06-16 16:22:00) [12]1) Screen уже существует, создавать его не надо
2) при создании форм можно добавлять их в свой список
Anatoly Podgoretsky (2002-06-16 16:21:00) [13]Не надо это делать, объект уже создан при старте приложения
Alexander_D6_XP (2002-06-16 16:14:00) [14]
T := TScreen.Create(nil);
Form1.Caption := inttostr(T.FormCount);
T.Free;
Получаю "0" при любом кол-ве форм!
Anatoly Podgoretsky (2002-06-16 15:59:00) [15]Для начала хелп посмотреть, а потом если что будет непонятно приходить с конкретным вопросом, ты первое сделал?
Alexander_D6_XP (2002-06-16 15:55:00) [16]А как с ним работать?
Anatoly Podgoretsky (2002-06-16 15:53:00) [17]Объект Screen содержит список всех созданных форм