Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.07.29;
Скачать: CL | DM;

Вниз

Как найти все созданные формы ? Перечислить.   Найти похожие ветки 

 
Dreamse   (2007-07-03 05:13) [0]

Создаю динамически формы

form:=TNewForm.create(nil);

Сколько форм создано неизвестно, так же неизестно их название. Известен только клас TNewForm

Что нужно : Уничтожить все созданные формы т.е form.free;

Как осуществить ? Если не известно сколько форм создано.


 
TUser ©   (2007-07-03 07:00) [1]

Screen.Forms

Создавай их через Application.CreateForm, или во всяком случае Application - владельцем.


 
Amoeba ©   (2007-07-03 10:26) [2]


> form:=TNewForm.create(nil);

Нехорошо так делать. Какой-такой скрытый смысл в намеренном отсутствии владельца, какая цель этим преследуется?

В твоем случае может быть целесообразным помещать это неизвестное число форм в TObjectList: тогда все они всегда будут доступны, и их количество всегда будет известно.


 
SlymRO ©   (2007-07-03 10:37) [3]

в TNewForm.Create добавлять себя в определенный список
в TNewForm.Destroy удалять себя из списка...


 
Desdechado ©   (2007-07-03 10:52) [4]

> Сколько форм создано неизвестно, так же неизестно их название.
А что мешает запоминать указатели на них? И что мешает давать им названия? Ведь ты их создаешь, тебе и карты в руки.
А то звучит так: "Пришел я на пляж, насобирал камней и рассыпал их вокруг. Какие же мои?"

SlymRO ©   (03.07.07 10:37) [3]
Имхо, некошерно это. Не должен конструктор-деструктор знать о каких-то внешних списках. Вот в обработчики создания/удаления можно вставить, но тоже не гуд, имхо.


 
Плохиш ©   (2007-07-03 11:36) [5]

Скока многа букав надолбили после правильного ответа, что придётся его повторить :-)

> TUser ©   (03.07.07 07:00) [1]
> Screen.Forms


 
Инс ©   (2007-07-03 11:46) [6]

for i:=0 to Screen.FormsCount do
 Screen.Forms[i]


 
ЮЮ ©   (2007-07-03 11:56) [7]

> [6] Инс ©   (03.07.07 11:46)
> for i:=0 to Screen.FormsCount do
> Screen.Forms[i]


и Acess Violation на последнем шаге цикла :)
P.S. И зачем твои буквы после правильного ответа?


 
sniknik ©   (2007-07-03 12:01) [8]

> и Acess Violation на последнем шаге цикла :)
раньше... т.к.
> Что нужно : Уничтожить все созданные формы т.е form.free;
будет использовано в деструкторе
 for i:=0 to Screen.FormsCount do
   Screen.Forms[i].Free;


 
Anatoly Podgoretsky ©   (2007-07-03 12:19) [9]

> Dreamse  (03.07.2007 05:13:00)  [0]

Что за формы, для чего они нужны, для чего нужна переменная form?


 
Инс ©   (2007-07-03 12:21) [10]


> [7] ЮЮ ©   (03.07.07 11:56)


+1. FormsCount - 1, если для кого-то это не очевидно.


> т.е form.free;

А почему именно Free. Можно Release и все будет тип-топ ;)


 
Anatoly Podgoretsky ©   (2007-07-03 12:21) [11]

> Инс  (03.07.2007 11:46:06)  [6]

И AV не боишься?


 
Инс ©   (2007-07-03 12:24) [12]


> И AV не боишься?


Я ничего не боюсь, ибо такой хренью не страдаю, а кому надо - сам пошевелит мозгами.


 
Плохиш ©   (2007-07-03 12:24) [13]


> Инс ©   (03.07.07 12:21) [10]
>
> > [7] ЮЮ ©   (03.07.07 11:56)
>
>
> +1.

А пост sniknik-а читал? Обдумал?


 
Инс ©   (2007-07-03 12:26) [14]


> А пост sniknik-а читал? Обдумал?


А пост [10] внимательно читал? Обдумал? ;)


 
Anatoly Podgoretsky ©   (2007-07-03 12:26) [15]


> А пост sniknik-а читал? Обдумал?

Ну это особая провокация


 
Плохиш ©   (2007-07-03 13:14) [16]


> Инс ©   (03.07.07 12:26) [14]

Ну всё ясно...



Страницы: 1 вся ветка

Текущий архив: 2007.07.29;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.036 c
15-1183015789
de.
2007-06-28 11:29
2007.07.29
Нужна картинка


15-1183313271
DillerXX
2007-07-01 22:07
2007.07.29
Несколько вопросов по Java


1-1179744976
Sidoran
2007-05-21 14:56
2007.07.29
Проблема с добавлением значения в TStringList


3-1177344935
Juice
2007-04-23 20:15
2007.07.29
Результат ХП как рез. поле запроса


15-1183110959
IMHO
2007-06-29 13:55
2007.07.29
VB.NET to Delphi