Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.01.2015, 10:31   #1
Nagoran
 
Регистрация: 09.10.2013
Сообщений: 7
По умолчанию Динамическое создание компонентов

Доброго времени.
Имеется набор из кнопок. Их имена - 1, 2, 3, 4, 5, ... . Они создаются при нажатии другой кнопки, имена присваиваются с помощью счетчика. Кнопку можно закрыть при двойном нажатии.
Вопрос: как осуществить создание кнопок в зависимости от того, какая кнопка отсутствует. Например, создали 1-ю, 2-ю, 3-ю. Закрыли 2-ю, остались 1-я, 3-я, значит, при следующем создании кнопки она должна быть 2-ой, а потом уже 4-я, 5-я, ... .
Nagoran вне форума Ответить с цитированием
Старый 12.01.2015, 10:45   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А можно, если не секрет, узнать зачем такое понадобилось?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 12.01.2015, 10:59   #3
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Скучно человеку.
Человек_Борща вне форума Ответить с цитированием
Старый 12.01.2015, 11:05   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Ну хочется дырки в именах забить. Controls и ControlCount и искать дырки
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 12.01.2015, 11:12   #5
Nagoran
 
Регистрация: 09.10.2013
Сообщений: 7
По умолчанию

Stilet, это небольшой кусок для диплома. Ответа на форуме не нашел. Гугл тоже не помог. А написать сюда сродни последней инстанции.
Человек_Борща, по-вашему это элементарнейший случай?
Nagoran вне форума Ответить с цитированием
Старый 12.01.2015, 11:24   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Человек_Борща, по-вашему это элементарнейший случай?
да. И элементарнейший, к тому же и достаточно бессмысленный - какая разница программе, как называются кнопки - есть ли пропуски в номерации или нет?!
Да хоть как их называйте!!

Как найти пропуски - смотри ответ (с) Аватар в пост #4

Цитата:
Имеется набор из кнопок. Их имена - 1, 2, 3, 4, 5, ...
а вот тут чуть поподробней!
Имена компонентов в Delphi НЕ МОГУТ быть чисто числовыми! Поэтому, либо кнопки имеют имена, начинающиеся с префикса (например, Button1, Button2 и т.д.), либо речь идёт о чём то другом, не об именах, а, например, о надписях на кнопках!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 12.01.2015, 11:26   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Да я не об этом спрашивал... Ладно, проехали:
Код:
for i:=0 to 10000 do begin
 but:=TButtom(FindComponent('Button'+IntToStr(i)));
 if but=nil then begin
  Нашли дырку в списке
  i - пустующий номер
 end;
end;
Сразу предупреждаю - не копипастить! Это в качестве идеи, но я бы не делал так.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 12.01.2015, 11:37   #8
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Цитата:
Человек_Борща, по-вашему это элементарнейший случай?
Собственно Виталий уже показал пример...

для нумерации, я бы использовал свойство Tag.

Да, задачка немного странная. Интересно, зачем такое надо?
Человек_Борща вне форума Ответить с цитированием
Старый 12.01.2015, 11:41   #9
Nagoran
 
Регистрация: 09.10.2013
Сообщений: 7
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
да. И элементарнейший, к тому же и достаточно бессмысленный - какая разница программе, как называются кнопки - есть ли пропуски в номерации или нет?!
Да хоть как их называйте!!

Как найти пропуски - смотри ответ (с) Аватар в пост #4


а вот тут чуть поподробней!
Имена компонентов в Delphi НЕ МОГУТ быть чисто числовыми! Поэтому, либо кнопки имеют имена, начинающиеся с префикса (например, Button1, Button2 и т.д.), либо речь идёт о чём то другом, не об именах, а, например, о надписях на кнопках!
Имена кнопок я написал просто для ПРИМЕРА. Их название волнует только Вас. Меня интересует лишь сам принцип КАК можно отследить, что в упорядоченной группе кнопок отсутствует какой-то элемент, и при создании нового элемента этот пропуск должен быть заполнен.
Nagoran вне форума Ответить с цитированием
Старый 12.01.2015, 11:44   #10
Nagoran
 
Регистрация: 09.10.2013
Сообщений: 7
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Да я не об этом спрашивал... Ладно, проехали:
Код:
for i:=0 to 10000 do begin
 but:=TButtom(FindComponent('Button'+IntToStr(i)));
 if but=nil then begin
  Нашли дырку в списке
  i - пустующий номер
 end;
end;
Сразу предупреждаю - не копипастить! Это в качестве идеи, но я бы не делал так.
а почему так не следует делать?
Nagoran вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Динамическое создание компонентов делфи Katerina_K Помощь студентам 1 18.01.2014 11:35
Delphi динамическое создание компонентов Asska2704 Помощь студентам 3 09.11.2012 22:01
[Новичёк]Динамическое создание компонентов из бд Detka.i.alex Общие вопросы Delphi 3 04.04.2011 16:23
динамическое создание компонентов DOLBY Компоненты Delphi 10 17.10.2010 14:03
Динамическое создание компонентов Nice42ru Помощь студентам 4 03.01.2010 20:51