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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 03.08.2010, 13:56
Аватар для kadnikov
kadnikov kadnikov вне форума
Прохожий
 
Регистрация: 26.07.2010
Сообщения: 20
Репутация: 10
По умолчанию перебор элементов на форме

Допустим на форме есть 100 элементов Edit.
Edit1-Edit100 соответственно.
Как в цикле For (или в другом) организовать последовательный перебор всех Edit'ов с присвоением какого-либо (одинакового!) значения???

Хотелось бы получить что-то похожее на:
Код:
For i:=1 to 100 do
Form1.Edit[i].color:=clRed;
Ответить с цитированием
  #2  
Старый 03.08.2010, 14:21
Drozh Drozh вне форума
Активный
 
Регистрация: 12.06.2008
Сообщения: 313
Репутация: 40
По умолчанию

Код:
 for i := 0 to ComponentCount-1 do
  if Components[i] is TEdit then
   (Components[i] as TEdit).Color := clRed;
Ответить с цитированием
  #3  
Старый 03.08.2010, 19:17
Аватар для kadnikov
kadnikov kadnikov вне форума
Прохожий
 
Регистрация: 26.07.2010
Сообщения: 20
Репутация: 10
По умолчанию

Не совсем подходит...
На форме стоит PageControl, а данная функция перебирает все элементы формы... А их там может быть....
Другого способа нет с обращением к конкретному типу элементов сразу?
Ответить с цитированием
  #4  
Старый 03.08.2010, 19:27
Аватар для PhoeniX
PhoeniX PhoeniX вне форума
Always hardcore!
 
Регистрация: 04.03.2009
Адрес: СПб
Сообщения: 3,239
Версия Delphi: GCC/FPC/FASM
Репутация: 62149
По умолчанию

Сколько их там может быть? 1000? 10000? Не думаю, что больше... В любом случае, думаю, функция будет работать достаточно быстро.
Другой способ - заносить все необходимые экземпляры в массив при старте программы - и перебирать его...
__________________
Оставайтесь хорошими людьми...
VK id2634397, ds [at] phoenix [dot] dj
Ответить с цитированием
  #5  
Старый 03.08.2010, 19:35
Аватар для kadnikov
kadnikov kadnikov вне форума
Прохожий
 
Регистрация: 26.07.2010
Сообщения: 20
Репутация: 10
По умолчанию

ок. Тогда ещё вопрос по данной функции, если перебираем не все элементы формы а все элементы находящиеся в TabSheet1(2,3,4,5...) и нужно не 100 из 100, а с Edit63 по Edit100?
Ответить с цитированием
  #6  
Старый 03.08.2010, 19:54
Аватар для PhoeniX
PhoeniX PhoeniX вне форума
Always hardcore!
 
Регистрация: 04.03.2009
Адрес: СПб
Сообщения: 3,239
Версия Delphi: GCC/FPC/FASM
Репутация: 62149
По умолчанию

Так и напиши -
Код:
  for i := 0 to TabSheet1.ComponentCount-1 do
    if TabSheet1.Components[i] is TEdit then
      for j := 63 to 100 do
        if (TabSheet1.Components[i] as TEdit).Name = 'Edit' + IntToStr(j) then
          (TabSheet1.Components[i] as TEdit).Color := clRed;
Или как-то таким же раком... не помню точно...
__________________
Оставайтесь хорошими людьми...
VK id2634397, ds [at] phoenix [dot] dj
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

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