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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.10.2011, 13:06   #1
100GRamm
ХРЕНЕЮ с ИНДИ
Пользователь
 
Аватар для 100GRamm
 
Регистрация: 08.02.2009
Сообщений: 92
По умолчанию Отлавливать сообщения от Рунтайм созданных компонентов формы

Доброго времени суток! Такая задача: создаю объекты (TImage) на форме в RUN-TIME. В последствии надо отлавливать событие OnDBLClick от этих картинок. Как реализовать обработчик события от еще несозданного компонента - не знаю. Правда, есть мысль: Создать Обработчик че-то типа WM_Control... а в нем перебирать созданные в массиве элементы.... Вот только как это реализовать- ума не приложу?
Попытался создать класс для создания элементов массива, компилятор глотает, но функции TImage.Create(...), почему-то не работают? (Текст далее работает лишь с TYPE RECORD, но для создания проседуры события надо же CLASS?)
Код:
type
  IMG= record
  IMAGE:TImage;
  Name:string;
 end;
  var  IMGS:array [0..50] of IMG;


procedure TForm3.Button5Click(Sender: TObject);
var sr:Tsearchrec;  i:integer;  WAY:string;
begin
 way:= extractfilepath(paramstr(0))+'IMPSKIN';
 LBS.Clear;   // это листбокс 
 chdir(way);
 findfirst('*.bmp',faanyfile,sr);
 LBS.Items.Add(sr.Name);
   while findnext(sr)=0 do FSKIN.LBS.Items.Add(sr.Name);
   findclose(sr);
 //for I := 0 to 50 do IMGS[i]:=nil;
 for I := 0 to LBS.Items.Count-1 do
  begin
    IMGS[i].Name:=LBS.Items[i];
    IMGS[i].IMAGE:= TImage.Create(sender);
    IMGS[i].IMAGE.Parent:=SB;     // это скролл бар
    IMGS[i].IMAGE.AutoSize:=true;
    IMGS[i].IMAGE.Picture.LoadFromFile(way+'\'+LBS.Items[i]);
    IMGS[i].IMAGE.Left:=15;
    IMGS[i].IMAGE.Top:=65*i;
  end;
end;
Велкам! :D http://radiomedtech.ucoz.ru

Последний раз редактировалось Stilet; 09.10.2011 в 13:59.
100GRamm вне форума Ответить с цитированием
Старый 09.10.2011, 14:48   #2
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Тоже самое, что и в disign-time, только указываем обработчик тоже в run-time

Код:
procedure TForm1.myOnSmthChange(); //параметры должны соответствовать событию компонента 
begin

end;

procedure TForm1.DoRunTimeComp;
var
  Comp:TMyRTComp;
begin
  Comp:=TmyRTComp.Create(nil);
  Comp.OnSmthChange:=@myOnSmthChange; //Может указатель и не нужен, вечно путаюсь с ними. 
end;
Человек_Борща вне форума Ответить с цитированием
Старый 09.10.2011, 15:56   #3
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

IMGS[i].IMAGE:= TImage.Create(sender);
лучше IMGS[i].IMAGE:= TImage.Create(self);
IMGS[i].IMAGE.Parent:=SB; // это скролл бар
вы хотите увидеть эти картинки на узенькой полосе ScrollBar?

Цитата:
надо отлавливать событие OnDBLClick от этих картинок. Как реализовать обработчик события от еще несозданного компонента - не знаю.
пишете процедуру (метод) DblImageClick (название может быть любым).
Код:
Tform1 =class
.....
protected
   procedure DblImageClick(sender: Tobject);
....
end;
при генерации делаем назначение.
IMGS[i].OnDblClick:=DblImageClick;

Код:
procedure Tform1.DblImageClick(sender: TObject);
begin
  (sender as TImage). ... // так узнаем и пользуемся в какой именно картинке (Image) было действие.
end;
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось evg_m; 09.10.2011 в 15:59.
evg_m вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сохранение динамически созданных компонентов в ini Pypkin30159 Общие вопросы Delphi 2 15.09.2010 16:42
События/Сообщения для формы в dll spamer Общие вопросы Delphi 10 01.02.2010 22:32
сообщения с формы сайта segail PHP 1 06.01.2010 21:47
Расширение формы и ее компонентов waterya Компоненты Delphi 1 01.11.2009 23:30
Настройка формы и компонентов В_И_К_Т_О_Р Помощь студентам 2 05.02.2008 20:52