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

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

OnMouseDown в массиве Timage [D7, WinXP]


Radgar ©   (2005-06-28 17:18:00) 

Здраствуйте.
Подскажите, пожалуйста, как узнать на какой из элементов массива Timage кликнули, если они имеют общую процедуру OnMouseDown.


Просто Джо   (2005-06-28 18:50:00) [1]

Кроме того, возможно, использование массива в данном случае - не есть хорошо, ибо велосипед. Лучше воспользоваться советом [11] Stakan


Просто Джо   (2005-06-28 18:47:00) [2]

А, вообще, различать компоненты по имени некошерно. Даже по свойству Tag - и то лучше.

for I := 0 to MaxCount-1 do
Image[I].Tag:= I;


В обработчике OnMouseDown:

case TImage(Sender).Tag of
 0: //
 1: //
 // и так далее
end;


Просто Джо   (2005-06-28 18:45:00) [3]


> Что делать? ;-(

Задать другое имя. Например так:
for I := 0 to MaxCount-1 do
 Image[I].Name:=Format ('Image%d',[I]);


Radgar   (2005-06-28 18:43:00) [4]


> Stakan ©


Image[1].Name:='Image[1]';


Пробовал, но возникает ошибка:

'Image[1]' is not valid component name.

Что делать? ;-(


Stakan   (2005-06-28 18:24:00) [5]

А вообще я бы порекомендовал
Use TComponentList to store and maintain a list of components.


Stakan   (2005-06-28 18:17:00) [6]


> Radgar ©

Так ты свойство name не заполняешь, поэтому оно и пустое


Radgar   (2005-06-28 18:13:00) [7]

2 Просто Джо


> Что попробовал, как не получается?


Пробовал узнать через Timage(sender).Name

2 Stakan


> А как ты заполняешь массив?



Image[i]:=TImage.Create(self);
Image[i].Parent:=self;
...


В работе программы.


Stakan   (2005-06-28 18:09:00) [8]

А как ты заполняешь массив?


Просто Джо   (2005-06-28 18:08:00) [9]


> Извините, я попробовал - не получается.

Чтопопробовал, какне получается?


Radgar   (2005-06-28 18:05:00) [10]

Извините, я попробовал - не получается.
Sender = ()
Поэтому TImage(sender).Name = ''
Помогите, пожалуйста...


Просто Джо   (2005-06-28 17:22:00) [11]

Sender.Name


Radgar   (2005-06-28 17:22:00) [12]

Пасибо.


Radgar   (2005-06-28 17:21:00) [13]

2 Eraser

Да


Eraser   (2005-06-28 17:21:00) [14]

TImage(Sender).Name


Eraser   (2005-06-28 17:20:00) [15]

Radgar ©   (28.06.05 17:18)
как узнать на какой из элементов массива Timage кликнули


Что вы имеете ввиду под "узнать"? Имя компонента?


Наверх

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