Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Разное
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 26.05.2014, 09:08
RobinStone RobinStone вне форума
Прохожий
 
Регистрация: 02.06.2013
Сообщения: 27
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию Удаление форм

Многоуважаемые форумчане, высококлассные программисты и просто хорошие люди!.. Сегодня понедельник, (хотя это никакого отношения к делу не имеет), хотелось бы узнать как провернуть одно дело, а точнее - два дела...
Дело первое : динамически создаем энное количество форм.., ладно с этим справился. При клике на определенную буттону, появляется новая форма с порядковый номером в caption.
Дальше - всё несколько сложнее...
Дело второе : при определенных условиях какая-то из форм должна тихо и мирно завершить своё бренное существование, т.е. быть попросту закрыта. Так вот, как закрыть из двадцати форм, скажем, девятую?
Если будет у кого время, обратите ваш взор на мою проблему.
Заранее благодарю. Буду ждать ответ.
Ответить с цитированием
  #2  
Старый 26.05.2014, 09:12
Аватар для Aristarh Dark
Aristarh Dark Aristarh Dark вне форума
Модератор
 
Регистрация: 07.10.2005
Адрес: Москва
Сообщения: 2,906
Версия Delphi: Delphi XE
Репутация: выкл
По умолчанию

Все зависит от того как ты их создавал.
__________________
Некоторые программисты настолько ленивы, что сразу пишут рабочий код.

Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты.
Ответить с цитированием
  #3  
Старый 26.05.2014, 09:23
RobinStone RobinStone вне форума
Прохожий
 
Регистрация: 02.06.2013
Сообщения: 27
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию ...

создавал я их вот таким не хитрым способом
form5:= TForm5.Create(Application);
form5.caption:= inttostr(number);
form5.show;
Ответить с цитированием
  #4  
Старый 26.05.2014, 09:33
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Код:
...
Form9.Free;
// или
Form9.Destroy;
...
Ответить с цитированием
  #5  
Старый 26.05.2014, 09:33
RobinStone RobinStone вне форума
Прохожий
 
Регистрация: 02.06.2013
Сообщения: 27
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Цитата:
Сообщение от Aristarh Dark
Все зависит от того как ты их создавал.

ну я написал как я их создавал, и что ?
Ответить с цитированием
  #6  
Старый 26.05.2014, 09:38
RobinStone RobinStone вне форума
Прохожий
 
Регистрация: 02.06.2013
Сообщения: 27
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Цитата:
Сообщение от Alegun
Код:
...
Form9.Free;
// или
Form9.Destroy;
...
прежде всего спасибо что тратите на меня свое время, однако поясню задачу : создано допустим 20 форм, выше я написал как их создавал, и нужно уничтожить какую либо из этих 20- ти, какую пока не известно, в смысле программа решает в процессе, какая форма должна быть покоцана...

Последний раз редактировалось RobinStone, 26.05.2014 в 09:44.
Ответить с цитированием
  #7  
Старый 26.05.2014, 09:46
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Код:
with FormX do
 if Caption:= '9' then Free;

З.Ы. А кстати, нужно закрыть (Form.Close) или уничтожить (Form.Free)? - при первом варианте форма скрывается оставаясь в АП сборки, а во втором она разрушается и к ней доступ прекращается, для повторного вызова её нужно снова создавать
Ответить с цитированием
  #8  
Старый 26.05.2014, 10:04
RobinStone RobinStone вне форума
Прохожий
 
Регистрация: 02.06.2013
Сообщения: 27
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Цитата:
Сообщение от Alegun
Код:
with FormX do
 if Caption:= '9' then Free;

З.Ы. А кстати, нужно закрыть (Form.Close) или уничтожить (Form.Free)? - при первом варианте форма скрывается оставаясь в АП сборки, а во втором она разрушается и к ней доступ прекращается, для повторного вызова её нужно снова создавать

дааа, видимо мои познания в среде делфи ниже чем я думал. Но уж коли Вы всё ж упорно решили мне помочь, (за что Вам отдельное спасибо), так помогайте уже и до конца.
Поясняю задачу : можно код и не писать, просто объясните на пальцах, как система видит созданные формы? Как к ним можно обратиться, зная только их caption, ну или каким другим способом? Ещё раз спс за Ваше терпение
Ответить с цитированием
  #9  
Старый 26.05.2014, 10:09
icWasya icWasya вне форума
Местный
 
Регистрация: 09.11.2010
Сообщения: 499
Репутация: 10
По умолчанию

У объекта 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  
Старый 26.05.2014, 10:20
RobinStone RobinStone вне форума
Прохожий
 
Регистрация: 02.06.2013
Сообщения: 27
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию благодарность

Просто громаднейшее Вам спасибо. Вы просто не представляете как мне помогли , блин, мог бы - денег бы выслал , ещё раз - громаднейшее спс. И извините, что так путано объяснял что мне нужно.
Ответить с цитированием
  #11  
Старый 26.05.2014, 10:52
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

В добавок функция FindWindow возвращает хендл окна с указанным заголовком
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 16:00.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter