Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Нажатие на Image


Автор: ElPresly 22.3.2008, 20:59
Вообщем есть массив image. Нужно узнать на каком именно имадже было событие даблклик. Имаджи создаются динамически
Код

    for k := 1 to count_arg do begin
    dir:=ExtractFilePath(Application.ExeName)+'\images\' + arg[k] + '.bmp';
    arg_image[k]:= TImage.Create(Form1);
    arg_image[k].parent:=Form1.Panel3;
    arg_image[k].Picture.LoadFromFile(dir);
    arg_image[k].Left:=20;
    arg_image[k].Top:=otklon_arg;
    arg_image[k].Height:=40;
    arg_image[k].Width:=20;
    arg_image[k].OnMouseDown := Form1.Image2MouseDown;
    arg_image[k].OnMouseMove := Form1.Image2MouseMove;
    arg_image[k].OnMouseUp   := Form1.Image2MouseUp;
    arg_image[k].OnDblClick  := Form1.Image2DblClick;



Автор: VICTAR 22.3.2008, 21:17
Присвой уникальные теги (Tag) или имена (Name), при нажатии проверяй эти параметры.

Автор: Sanchezzz 22.3.2008, 21:28
OnDblClick EVENT:
Код

...
begin
with Sender as TImage do begin
//твое действие
end;
end;

задавай TAG как выше VICTAR написал при создании Image

Автор: ElPresly 22.3.2008, 21:55
А что такое Tag и с чем его едят?=)

Автор: VICTAR 22.3.2008, 22:08
У всех наследников TComponent есть property Tag для хранения целочисленного числа (Integer)

Автор: ivan219 22.3.2008, 22:08
Цитата(ElPresly @  22.3.2008,  21:55 Найти цитируемый пост)
А что такое Tag и с чем его едят?=)

Это свойство у всех компонентов хранит всебе значение типа Integer не на что не влияет просто как обычная переменная.

Автор: ElPresly 22.3.2008, 22:26
Всем спасибо!

Добавлено через 12 минут и 26 секунд
еще вопрос. можно ли как то реализовать : сначала выполняется какой то код, потом  другая форма делается модальной, там выполняются операции, потом форма закрывается, передается данные полученные из формы, и дальше продолжается выполнятькод по процедуре.

Автор: VICTAR 22.3.2008, 22:48
можно  smile 

Автор: ElPresly 22.3.2008, 22:50
я думаю логичный вопрос, как?=)

Автор: VICTAR 22.3.2008, 23:05
А в чем проблема? Не понимаю...  smile 

Автор: ElPresly 22.3.2008, 23:10
это будет что то типо ??

Код

//код

form2.showmodal

if form2.close then

//код 


Автор: Poseidon 22.3.2008, 23:13
Цитата(ElPresly @  22.3.2008,  22:50 Найти цитируемый пост)
я думаю логичный вопрос, как?=) 
Я думаю логичный ответ ты найдешь, но уже не в этой теме, т.к. один топик - один вопрос

Что касается первого вопроса, то получить все о нужном тебе имэйдже, можно, как уже указал Sanchezzz, из Sender'а, передаваемого в OnDblClick. Например имя имэйджа, по которому произошел даблклик можно получть так: (Sender as TImage).Name

Добавлено через 1 минуту и 55 секунд
Цитата(ElPresly @  22.3.2008,  23:10 Найти цитируемый пост)
это будет что то типо ??
Нет не будет. При вызове form2.showmodal выполнение кода останавливается и ждет что вернет модальная форма (грубо говоря ждет пока эта форма закроется).
Создавай отдельный топик, не оффтопь, модеры ругаться будут.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)