![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Получить номер элемента в массиве [D7, XP]
AndrewG © (2009-06-26 14:19:00)Добрый день.
Есть массив mas:array [1..10] of TCheckBox;
OnClick каждому элементу=procedure1;
Подскажите как в этой procedure1 получить номер элемента массива mas
по которому совершили клик.
Leonid Troyanovsky (2009-06-26 14:39:00) [1]
> AndrewG © (26.06.09 14:25) [6]
> Затем вычесть из него адрес первого элемента массива.
> Зная(как узнать?) размер каждого элемента получим номер
> элемента.
А они не слышали о замечательном изобретении: сковородке
с уже приделанным чапельником, в народе называемой
"сковородка с ручкой"?
См. TCheckListBox.
--
Regards, LVT.
Anatoly Podgoretsky (2009-06-26 14:35:00) [2]> Плохиш (26.06.2009 14:32:15) [15]
Наша Маша лучше вашей.
Плохиш (2009-06-26 14:32:00) [3]
> М-да.... реактивная работа)
>
А наша реактивней всех :-))
{RASkov} (2009-06-26 14:30:00) [4]М-да.... реактивная работа)
{RASkov} (2009-06-26 14:29:00) [5]> [6] AndrewG © (26.06.09 14:25)
> А можно както получить адрес по которому совершили клик?
Sender
...А дальше что-то путаница какая-то(
AndrewG (2009-06-26 14:29:00) [6]Прошу прощения пока набирал, не обновил страницу, не заметил ответы
Всем спасибо
Вариант (2009-06-26 14:28:00) [7]Мдааа, с учетом [2] можно сказать - медленно читал и еще медленей писал, ну не я один:-)
Вариант (2009-06-26 14:27:00) [8]Еще вариант -использовать свойство Tag в CheckBox-е, в которое конечно надо будет прописать индекс в массиве. Зато потом получите его сразу
Плохиш (2009-06-26 14:27:00) [9]
> AndrewG © (26.06.09 14:25) [6]
Может тебе почитать чего для начала.
Плохиш (2009-06-26 14:26:00) [10]1:3
:-))
{RASkov} (2009-06-26 14:26:00) [11]> индекс в Tag
ну т.е. да.
for N:=1 to 10 do begin
....
mas[N].Tag:=N;
)
AndrewG (2009-06-26 14:25:00) [12]А можно както получить адрес по которому совершили клик?
Затем вычесть из него адрес первого элемента массива.
Зная(как узнать?) размер каждого элемента получим номер элемента.
(адрклик-адрпервый)/размерэлемент
Как-то можно такое реализовать?
Anatoly Podgoretsky (2009-06-26 14:24:00) [13]> AndrewG (26.06.2009 14:19:00) [0]
Что, Где, Когда?
Сергей М. (2009-06-26 14:24:00) [14]
> Есть массив mas:array [1..10] of TCheckBox;
При заполнении массива устанавливай св-во Tag каждого эл-та равным индексу этого эл-та в массиве.
Тогда
Индекс_элемента_массива := TCheckBox(Sender).Tag
{RASkov} (2009-06-26 14:24:00) [15]При занесении в массив Tag'у присвоить номер. Получаем так:
procedure ...ChecksClick(Sender: TObject);
begin
Number:=Component(Sender).Tag;
end;
clickmaker (2009-06-26 14:24:00) [16]можно им индекс в Tag назначить, если он не занят
Плохиш (2009-06-26 14:20:00) [17]
> Подскажите как в этой procedure1 получить номер элемента
> массива mas
> по которому совершили клик.
Перебором и сравнением переданного в Sender значения с каждым элементом массива.