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

Вниз

Динамически создаваемые компоненты   Найти похожие ветки 

 
snake-as ©   (2008-12-16 12:28) [0]

Здравствуйте. Есть массив компонентов типа TCheckBox. Там n элементов. Свойство OnClick я присваиваю таким образом CheckBox[i].OnClick := MyClick; Скажите, пожалуйста, как узнать номер компонента на котором кликнул пользователь? Заранее спасибо!


 
Palladin ©   (2008-12-16 12:31) [1]

Что такое "номер компонента" ?


 
Сергей М. ©   (2008-12-16 12:36) [2]


> Есть массив


Элемены массива индексируются, а не нумеруются.
Индекс не всегда тоже самое что и номер.


 
tesseract ©   (2008-12-16 12:37) [3]


> войство OnClick я присваиваю таким образом CheckBox[i].OnClick
> := MyClick


CheckBox[i].tag = i;

В onclick
ShowMessage("зёма я "+ CheckBox[Sender.tag].name);


 
snake-as ©   (2008-12-16 12:37) [4]

Извините, да, индекс в массиве.


 
snake-as ©   (2008-12-16 12:38) [5]

Спасибо! А другого варианта нет, без тэга?


 
Сергей М. ©   (2008-12-16 12:42) [6]


> другого варианта нет, без тэга?


Это самый очевидный, быстродостижимый и эффективный (с т.з. производительности) вариант.
На то, кстати, св-во Tag и предоставляется, чтобы хранить в нем пользовательскую инф-цию.


 
Amoeba ©   (2008-12-16 12:43) [7]


> snake-as ©   (16.12.08 12:38) [5]
>
> Спасибо! А другого варианта нет, без тэга?

С использованием Tag - наиболее эффективно.
Есть и другой, только он сложнее, кода больше и выполняться будет дольше. А это тебе надо?


 
clickmaker ©   (2008-12-16 12:43) [8]

есть
for i := 0 to High(CheckBox) do
 if (CheckBox[i] = Sender) then
   ShowMessage("зёма я "+ TCheckBox(Sender).name);


 
Сергей М. ©   (2008-12-16 12:43) [9]

А собссно, зачем тебе этот индекс понадобился ?


 
Ega23 ©   (2008-12-16 12:46) [10]

Ну, например, добавить ещё строчку:

CheckBox[i].OnClick := MyClick;
CheckBox[i].Tag := i;

procedure TForm1.MyClick(Sender : TObject)
begin
 ShowMessage("Номер чекбокса - " + IntToStr(TCheckBox(Sender).Tag));
end;


 
snake-as ©   (2008-12-16 12:50) [11]

Так не получается почему-то. Пишет, что не знаю такого свойства Tag


 
snake-as ©   (2008-12-16 12:53) [12]

Все, извините, все получилось. Сижу через мобильник, очень медленно в интернете. Поэтому пока гружу страницу, здесь уже кучу всего написали и моя запись становится неактуальной. Всем спасибо!


 
ivak ©   (2008-12-16 12:55) [13]


CheckBox[i].OnClick := MyClick;

procedure TForm1.MyClick(Sender : TObject)
begin
if Sender is TCheckBox
then with TCheckBox(Sender) do begin
         .                .                .
end;          
end;



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

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

Наверх




Память: 0.49 MB
Время: 0.022 c
2-1229535561
smartleds
2008-12-17 20:39
2009.02.01
Ошибка при сохранении файла


15-1228646258
axis_of_evil
2008-12-07 13:37
2009.02.01
копировать пользователя


15-1228660225
Клаус
2008-12-07 17:30
2009.02.01
Объединение таблиц.


2-1229425819
Artem
2008-12-16 14:10
2009.02.01
Объектные переменные


2-1229523838
Ru
2008-12-17 17:23
2009.02.01
Напомните по WinAPI