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

Вниз

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

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

Наверх




Память: 0.46 MB
Время: 0.031 c
1-1083241514
V-Isa
2004-04-29 16:25
2004.05.16
Scroll в Delphi 3


1-1083136333
Tornado
2004-04-28 11:12
2004.05.16
Как "склеить" строки?


8-1077871538
DuhcmanSoft
2004-02-27 11:45
2004.05.16
Как отследить подключение микрофона к звуковой карте


8-1076871935
Attrib
2004-02-15 22:05
2004.05.16
mp3


4-1080683067
tux
2004-03-31 01:44
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский