Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.05.16;
Скачать: CL | DM;

Вниз

Как обоити в цикле несколько компанентов?   Найти похожие ветки 

 
student87   (2004-05-01 19:52) [0]

Есть на форме 84 Button"a. Задача состоит в том, чтобы обойти в цикле их все и сменить значения caption.


 
Palladin ©   (2004-05-01 20:02) [1]

TComponent.ComponentCount,TComponent.Components[],is/as,=,if then else

думаю достаточно...
ах да :) for to/downto do


 
student87   (2004-05-01 20:40) [2]

Удалено модератором


 
Palladin ©   (2004-05-01 21:01) [3]

Удалено модератором


 
Jack128 ©   (2004-05-01 21:22) [4]

Удалено модератором


 
Урод   (2004-05-01 21:40) [5]

Удалено модератором


 
Marser ©   (2004-05-01 21:44) [6]

Удалено модератором


 
Урод   (2004-05-01 21:49) [7]

Удалено модератором


 
Урод   (2004-05-01 23:24) [8]

Может это можно сделать по другому. В чем смысл задачи


 
European   (2004-05-01 23:35) [9]

Что-то вроде этого:

for i:= 1 to 84 do
begin
 TButton(FindComponent("Button" + IntToStr(i))).Caption:=IntToStr(i);
end;


 
MeF88 ©   (2004-05-02 06:33) [10]


> Задача состоит в том, чтобы обойти в цикле их все и сменить
> значения caption

А зачем так много??? (я понимаю, что праздники, но всё же...)

> for i:= 1 to 84 do
> begin
>  TButton(FindComponent("Button" + IntToStr(i))).Caption:=IntToStr(i);
> end;

А не быстрее ли сделать
for i:=1 to ComponentCount do begin
 if(Components[i].Name="Button"+IntToStr(i)) then begin
   TButton(Components[i]).Caption:=IntToStr(i);
 end;
end;


 
mfender ©   (2004-05-02 06:54) [11]


> А зачем так много??? (я понимаю, что праздники, но всё же...)

Очень тонкий ход: пока пользователь сидит и разбирается в пресловутых батонах, проходит как минимум минута. Он находит требующую нажатия кнопку, и в этот момент по таймеру меняются на них всех надписи :) Вот где замысел-то! А число "84" - чистой воды кабалистика. Это к нумерологам. Был тут один такой :)


 
student87   (2004-05-02 09:57) [12]

> European   (01.05.04 23:35) [9]
Спасибо, помог.


 
student87   (2004-05-02 10:01) [13]

Другой вопрос: нужно присвоить всем Button"ам примерно одинаковый обработчик нажатия, но передавать имя нажатой кнопки?


 
Юрий Зотов ©   (2004-05-02 10:13) [14]

> student87   (02.05.04 10:01) [13]

Параметр Sender в обработчике события - это тот объект, который возбудил событие. В Вашем случае - нажатая кнопка. Никакого имени передавать не надо.


 
student87   (2004-05-02 10:18) [15]

> Юрий Зотов ©   (02.05.04 10:13) [14]
спасибо за Sender.
Еще один ламерский вопрос: как присвоить один обработчик события многим объектам?


 
Юрий Зотов ©   (2004-05-02 10:36) [16]

1. Выделить на форме все эти объекты (мышкой, удерживая Shift).
2. В Object Inspector"е назначить общий обработчик.


 
Ihor Osov'yak ©   (2004-05-02 10:44) [17]

2 [15]

С помощью оператора присваивания. Если в рантайме. Можно и в цыкле..
Только я бы вместо использования анализа name компонента (см [9], [10]) посоветовал-бы использовать className, так как в общем случае name может быть любым. У меня, например, ни один буттон в своем имени не имеет подстроки "Button"

Испоользуя инспектор обьектов, если в дизайн-тайме. Для удобства можно использовать групповую отметку компонентов.

Зы. Блин, может наконец книги почитать, и тетю соображаловку на помощь позвать? Cорри, не удержался..  См.  http://delphimaster.net/view/15-1083382635/


 
Anatoly Podgoretsky ©   (2004-05-02 11:43) [18]

mfender ©   (02.05.04 06:54) [11]
Не кабалистика, клавиатура 83/84 клавиши.

student87   (02.05.04 10:18) [15]
Пора что ни будь почитать, при том не по Дельфи



Страницы: 1 вся ветка

Текущий архив: 2004.05.16;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.026 c
3-1082370014
Filat
2004-04-19 14:20
2004.05.16
Как sql-ем Дельфийским выбрать записи, скажем с 20-й по 52?


3-1082376634
}|{yk
2004-04-19 16:10
2004.05.16
Cannot transliterate


14-1082953057
AGAMEMNUM
2004-04-26 08:17
2004.05.16
photoshop


9-1072825408
Jenaxx
2003-12-31 02:03
2004.05.16
КТо нить может помочь переделать прогу,


14-1082652750
Кот-трахкун
2004-04-22 20:52
2004.05.16
Задачка