Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Получить номер элемента в массиве [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 значения с каждым элементом массива.


Наверх

Титульная страница Поиск, карта сайта Написать письмо