Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.05.2012, 22:26   #1
vovken1997
Дружелюбный
Форумчанин
 
Аватар для vovken1997
 
Регистрация: 23.02.2012
Сообщений: 692
Вопрос Динамически создаваемые обьекты.

Доброго времени суток!
У меня проблема с динамически создаваемыми image. Они создаються, но я не знаю как для них написать разные обработчики событий. То есть я хочу чтоб по клику на разные image происходили разные действия. А именно открывались разные файлы. К примеру щелкаю на image1 открывается c:\1.exe , на image2 открывается c:\2.lnk и т.д.
Если я пишу images[i].onClick:=Button1Click; , то по щелочку на каждый элемент происходит одно и то же событие.
Пути файлов для каждого image лежат в масиве. Как это сделать, чтоб по щелчкам на разные image открывались разные файлы ???
-==ЛЮБОЕ ЗНАНИЕ ДОСТИГАЕТСЯ ТОЛЬКО СОБСТВЕННЫМИ УСИЛИЯМИ!!!==-
vovken1997 вне форума Ответить с цитированием
Старый 04.05.2012, 22:30   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Например так - каждому Image в свойство TAG засунуть уникальное число. В единственном обработчике на основанни значения этого свойства делать соответствующее действие
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 04.05.2012, 23:04   #3
chertovich
Форумчанин
 
Аватар для chertovich
 
Регистрация: 26.07.2009
Сообщений: 489
По умолчанию

в Button1Click пишем
Код:
for i := 0 to High(Mass) do
begin
  if Mass[i] = Sender then
  begin
    Images[i]. ... // загрузка, i преобразуем к строке
    Break;
  end;
end;
Если в глубине души вы программист, то, следуя своим наклонностям, вы захотите написать кусок кода.
chertovich вне форума Ответить с цитированием
Старый 05.05.2012, 04:42   #4
dolphin705
Форумчанин
 
Аватар для dolphin705
 
Регистрация: 02.08.2008
Сообщений: 213
По умолчанию

А я каждому в свойстве name указывал порядковый номер i при создании, дальше как Аватар пишет.
dolphin705 вне форума Ответить с цитированием
Старый 05.05.2012, 06:58   #5
Utkin
Старожил
 
Аватар для Utkin
 
Регистрация: 04.02.2009
Сообщений: 17,351
По умолчанию

Дык он их и так индексирует по переменной i. Ему нужно только куда-нибудь передавать этот параметр, чтобы потом выбрать нужное действие.
Маньяк-самоучка
Utkin появился в результате деления на нуль.
Осторожно! Альтернативная логика
Utkin вне форума Ответить с цитированием
Старый 05.05.2012, 08:16   #6
vovken1997
Дружелюбный
Форумчанин
 
Аватар для vovken1997
 
Регистрация: 23.02.2012
Сообщений: 692
По умолчанию

Хм...
Спасибо! Вечером обязательно попробую.

Но я не много не понял. Как в Button1Click определить каким image оно вызвано. Ведь если я засуну уник. число то с чем мне его сравнивать? Ведь я не знаю каким image вызвано событие, а значит не знаю tag этого image.
-==ЛЮБОЕ ЗНАНИЕ ДОСТИГАЕТСЯ ТОЛЬКО СОБСТВЕННЫМИ УСИЛИЯМИ!!!==-

Последний раз редактировалось Stilet; 05.05.2012 в 19:02.
vovken1997 вне форума Ответить с цитированием
Старый 05.05.2012, 08:49   #7
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,527
По умолчанию

Цитата:
Как в Button1Click определить каким image оно вызвано.
Код:
procedure TForm1.Button1Click(sender: TObject);
как ты думаешь для чего здесь "ненужный" параметр. А он-то и есть ИМЕННО то, что тебе нужно. Сcылка именно на тот объект (Image/Button/....) для которого генерится событие.

Код:
(sender as TImage)  // нужный тебе Image
(sender as TImage).tag // нужное св-во нужного Image
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 05.05.2012, 15:43   #8
vovken1997
Дружелюбный
Форумчанин
 
Аватар для vovken1997
 
Регистрация: 23.02.2012
Сообщений: 692
По умолчанию

Спасибо!!!
Выручили.
-==ЛЮБОЕ ЗНАНИЕ ДОСТИГАЕТСЯ ТОЛЬКО СОБСТВЕННЫМИ УСИЛИЯМИ!!!==-
vovken1997 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Динамически создаваемые компоненты Aleksandr_59 Компоненты Delphi 6 30.03.2012 17:44
Доступ по паролям на динамически создаваемые диапазоны Dmitrol Microsoft Office Excel 9 03.06.2011 12:13
C# динамически создаваемые textbox Matsur Помощь студентам 1 21.03.2011 16:19
Не отображаются динамически созданные обьекты в Borland C++ Builder 6 Enterprise Suite... prouser C++ Builder 2 26.04.2010 20:35
Avast поднимает тревогу на создаваемые в delphi программы, пишет вирус Xemulb Софт 3 27.11.2008 21:37