|
#1
|
|||
|
|||
Удаление форм
Многоуважаемые форумчане, высококлассные программисты и просто хорошие люди!.. Сегодня понедельник, (хотя это никакого отношения к делу не имеет), хотелось бы узнать как провернуть одно дело, а точнее - два дела...
Дело первое : динамически создаем энное количество форм.., ладно с этим справился. При клике на определенную буттону, появляется новая форма с порядковый номером в caption. Дальше - всё несколько сложнее... Дело второе : при определенных условиях какая-то из форм должна тихо и мирно завершить своё бренное существование, т.е. быть попросту закрыта. Так вот, как закрыть из двадцати форм, скажем, девятую? Если будет у кого время, обратите ваш взор на мою проблему. Заранее благодарю. Буду ждать ответ. |
#2
|
||||
|
||||
Все зависит от того как ты их создавал.
Некоторые программисты настолько ленивы, что сразу пишут рабочий код. Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты. |
#3
|
|||
|
|||
...
создавал я их вот таким не хитрым способом
form5:= TForm5.Create(Application); form5.caption:= inttostr(number); form5.show; |
#4
|
||||
|
||||
Код:
... Form9.Free; // или Form9.Destroy; ... Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
#5
|
|||
|
|||
Цитата:
ну я написал как я их создавал, и что ? |
#6
|
|||
|
|||
Цитата:
Последний раз редактировалось RobinStone, 26.05.2014 в 09:44. |
#7
|
||||
|
||||
Код:
with FormX do if Caption:= '9' then Free; З.Ы. А кстати, нужно закрыть (Form.Close) или уничтожить (Form.Free)? - при первом варианте форма скрывается оставаясь в АП сборки, а во втором она разрушается и к ней доступ прекращается, для повторного вызова её нужно снова создавать Я не понял Вашего вопроса, но всё же Вам на него отвечу! |
#8
|
|||
|
|||
Цитата:
дааа, видимо мои познания в среде делфи ниже чем я думал. Но уж коли Вы всё ж упорно решили мне помочь, (за что Вам отдельное спасибо), так помогайте уже и до конца. Поясняю задачу : можно код и не писать, просто объясните на пальцах, как система видит созданные формы? Как к ним можно обратиться, зная только их caption, ну или каким другим способом? Ещё раз спс за Ваше терпение |
#9
|
|||
|
|||
У объекта Screen есть свойство Forms и FormCount. В списке Forms находятся все созданные в приложении формы.
Код:
for i:=Screen.FormCount-1 downto 0 do begin if Screen.Forms[i] проверка чего-нибудь, например Caption='9' then Screen.Forms[i].Free end |
Этот пользователь сказал Спасибо icWasya за это полезное сообщение: | ||
RobinStone (26.05.2014)
|
#10
|
|||
|
|||
благодарность
Просто громаднейшее Вам спасибо. Вы просто не представляете как мне помогли , блин, мог бы - денег бы выслал , ещё раз - громаднейшее спс. И извините, что так путано объяснял что мне нужно.
|
#11
|
||||
|
||||
В добавок функция FindWindow возвращает хендл окна с указанным заголовком
Я не понял Вашего вопроса, но всё же Вам на него отвечу! |