Показать сообщение отдельно
  #1  
Старый 28.09.2018, 05:22
TEKTON TEKTON вне форума
Новичок
 
Регистрация: 14.03.2011
Сообщения: 60
Репутация: 10
По умолчанию Как обрабатывать Event*ы у динамически создаваемых обьектов?

Приветствую.

Есть динамически создаваемые Label*ы
Код:
procedure TForm1.Button1Click(Sender: TObject);
var i:byte;
    s:string;
   lb:array of TLabel;
begin
setlength(lb,Memo2.Lines.Count);
for i:=0 to Memo2.Lines.Count-1 do
 begin
  lb[i]:=TLabel.Create(Self);
  lb[i].Parent:=Form1;
  lb[i].Left:=8;
  lb[i].Top:=i*17;
  lb[i].Font.Size:=9;
  lb[i].Height:=12;
  lb[i].Width:=200;
  lb[i].WordWrap:=False;
  lb[i].Cursor:=crHandPoint;

  lb[i].Caption:=Pars('">',Memo2.Lines.Strings[i-1],'%%%');
 end;
end;
Из Memo парсятся строки и записываются в Caption*ы Label*ов.
Можно как то обработать Events тоже динамически ?
Что то типа:
Код:
procedure TForm1.lb[i]Click(Sender: TObject);
begin
ShellExecute(handle, 'open',pChar(Pars('%%%',Memo2.Lines.Strings[i-1],'">')), nil, nil, SW_SHOW);
end;
Что б в каждый Label спарсить свой Url и превратить его в гиперссылку.
Ну и обработать события:
lb[i].MouseDown,
lb[i].MouseUp,
lb[i].MouseLeave,
lb[i].MouseEnter

Что б можно было обрабатывать события мыши (если курсор над label5, подкрасить его в красный. Курсор ушёл вернуть цвет в синий.)
Спасибо.
Ответить с цитированием