Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2007.07.29;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.04 c
15-1183375146
White Barsik
2007-07-02 15:19
2007.07.29
LHA библиотека


15-1182970406
@!!ex
2007-06-27 22:53
2007.07.29
Смена буквы диска.


2-1183490235
Сорокин М
2007-07-03 23:17
2007.07.29
image на button


2-1183625405
Аркадий
2007-07-05 12:50
2007.07.29
Как узнать текущую дату и время раздельно?


15-1183226565
IPE
2007-06-30 22:02
2007.07.29
ColdFusion & Dreamweaver





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский