Главная страница
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.027 c
7-1080881145
Vitas2
2004-04-02 08:45
2004.05.16
Привязка к машине


6-1080394510
csr
2004-03-27 16:35
2004.05.16
SOCKS PROXY


1-1083583187
SashaNevid
2004-05-03 15:19
2004.05.16
Обращение к Edit ам по индексам?


3-1082639512
Kein
2004-04-22 17:11
2004.05.16
никак не въеду в InterBase


1-1083258855
Pavel
2004-04-29 21:14
2004.05.16
Добавление пункта в контекстное меню Windows