Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.05.16;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.51 MB
Время: 0.036 c
14-1082663248
Knight
2004-04-22 23:47
2004.05.16
Вот напридумыват рекламы...


3-1082037800
svv
2004-04-15 18:03
2004.05.16
DBGrid и двойной клик на заголовке!


7-1080725668
Ega23
2004-03-31 13:34
2004.05.16
Ещё раз рискну вопрос по драйверам поднять


3-1082525479
guest_Dmitry
2004-04-21 09:31
2004.05.16
Изменить формулу вычисления поля Computed Source


6-1079925253
vovanx
2004-03-22 06:14
2004.05.16
Какой обработчик запускается когда приходят данные?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский