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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 08.11.2009, 20:01
DeeRain DeeRain вне форума
Прохожий
 
Регистрация: 16.09.2007
Сообщения: 3
Репутация: 10
По умолчанию Обращение к элементам формы в цикле

Всем здравствуйте. Есть форма, на ней находится двадцать элементов типа label, с именами label1, label2...label20. При определенном событии, допустим при нажатии на кнопку в каждом лейбе нужно вывести одинаковый текст. Вопрос, есть ли возможность обойтись от такого подхода
label1.caption='text;
label2.caption:='text';
...
и написать какой-нибудь цикл, что-нить типо
while (x<=20) do
labelx.caption='text';
Ответить с цитированием
  #2  
Старый 08.11.2009, 20:25
DeeRain DeeRain вне форума
Прохожий
 
Регистрация: 16.09.2007
Сообщения: 3
Репутация: 10
По умолчанию

А вот... заработало вот так.
создаем массив указателей:
pLabels: array[1..20] of ^TLabel;

Потом инициализируем их:
pLabels[1] := @label1;
pLabels[2] := @label2;
...
pLabels[20] := @label20;

А потом уже в цикле обращаемся
for i:=1 to 20 do
plabels[i]^.Caption:='text';

Изврат? Или нормально?
Ответить с цитированием
  #3  
Старый 08.11.2009, 21:22
Аватар для Yurk@
Yurk@ Yurk@ вне форума
Специалист
 
Регистрация: 07.09.2007
Адрес: Украина, г. Днепропетровск
Сообщения: 892
Версия Delphi: 7 + ОгнеПтица
Репутация: выкл
По умолчанию

Код:
procedure TForm1.Button1Click(Sender: TObject);
var
i:integer;
begin
for i:=0 to ComponentCount-1 do  // перебираем все компоненты на форме
    if Components[i] is TLabel  // ищем нужные компоненты (TLabel)
        then TLabel(Components[i]).Caption:='text';  // выполняем действие с компонентом (присваев текст)
end;
__________________
Поживу - увижу, Доживу - узнаю, Выживу - учту.
[P.S.]->Выражая благодарность за помощь - Вы получаете шанс на помощь в следующий раз

Последний раз редактировалось Yurk@, 08.11.2009 в 21:25.
Ответить с цитированием
  #4  
Старый 08.11.2009, 22:33
DeeRain DeeRain вне форума
Прохожий
 
Регистрация: 16.09.2007
Сообщения: 3
Репутация: 10
По умолчанию

Вот, этот вариант приятнее. Спасибо
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

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

ВКонтакте   Facebook   Twitter