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

Вниз

Как получить тег любого объекта кликом на него   Найти похожие ветки 

 
Daman ©   (2004-04-26 13:58) [0]

Такой вот ламерский вопрос.
Мастера, научите, пожалуйста, чайника.

Имеется сто кнопок, у каждой свой тег.
Как сделать так, чтоб при нажатии на кнопку она сообщала свой тег, при чем нажатие на любую кнопку должно обрабатываться одной и той же процедурой (можно ли обойтись без Case от 1 до 100)?
Как получить тег любого объекта кликом на него (одной и той же процедурой)


 
Sun bittern ©   (2004-04-26 14:00) [1]

if Sender is TButton
then (Sender as TButton).Tag


 
evvcom ©   (2004-04-26 14:01) [2]

(Sender as TComponent).Tag


 
Daman ©   (2004-04-26 16:18) [3]

Спасибо, братцы!


 
Daman ©   (2004-04-26 19:19) [4]

Продолжение проблемы. С тегами мы справились.
Но возникла еще одна проблема. Как преобразовывать компоненты группами.

Вот в одном FAQ читаю:
"Как через индекс обратиться к нескольким компонентам?
Чтобы найти и сделать видимыми, например, компоненты с именами от "Label1" и до "Label5" можно использовать следующий вариант:
for t := 1 to 5 do
 FindComponent("Label" + IntToStr(t)).Visible := TRUE;"

Так вот эта конструкция не работает...
А мне бы хотелось еще чтоб кнопочки мигали разным цветом (в данном случае вместо кнопок используются квадратики), и пришлось написать такую вот слоноподобную конструкцию:

procedure TForm1.Timer1Timer(Sender: TObject);
begin
//раскраска кнопочек

If Shape1.Enabled =True then Shape1.Brush.Color := colors[Random(3)+1];
If Shape2.Enabled =True then Shape2.Brush.Color := colors[Random(3)+1];
If Shape3.Enabled =True then Shape3.Brush.Color := colors[Random(3)+1];
If Shape4.Enabled =True then Shape4.Brush.Color := colors[Random(3)+1];
и т.д. - представляете, для 100 кнопок?!

И если бы приведенный в FAQ пример работал, так не было б проблемы, но увы!!!
Как обойти-то такое?!

Спасибо заранее!!!


 
Anatoly Podgoretsky ©   (2004-04-26 19:33) [5]

Daman ©   (26.04.04 19:19) [4]
Плохой пример, у TComponent нет свойства Visible, требуется приведение к TLabel или что лучше к TControl

Со вторым примером точно по такой же схеме, только вместо .Enabled = True then писать .Enabled then



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

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

Наверх




Память: 0.48 MB
Время: 0.025 c
14-1083165726
PaRL
2004-04-28 19:22
2004.05.16
News


3-1082614708
tim_131
2004-04-22 10:18
2004.05.16
Как пользоваться BookMark-ом


3-1082542290
stud
2004-04-21 14:11
2004.05.16
реализация запросов


14-1082624535
Иногда они возвращаются
2004-04-22 13:02
2004.05.16
Любая тема ветки.


9-1072459859
Ландграф Павел
2003-12-26 20:30
2004.05.16
PowerDraw3 загрузка текстуры из TStream