Форум: "Начинающим";
Текущий архив: 2009.02.01;
Скачать: [xml.tar.bz2];
ВнизДинамически создаваемые компоненты Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.005 c