Вниз
Скачать: CL | DM;

Отслеживание нажитий на динамически-формируемые элементы формы   Найти похожие ветки 

 
ПсихЪ_просто   (2004-07-14 17:11) [0]

Возникла сабжевая проблема. Мастера, я динамически создаю, скажем, TLable:

 id := LabelCount;
 inc( LabelCount );
 SetLength( Labels, LabelCount );
 Labels[id] := TLabel.Create( Owner );
 Labels[id].Parent := TWinControl( Owner );
 Labels[id].Alignment := taRightJustify;
 Labels[id].Font.Style := [fsBold];
 Labels[id].Left := x;
 Labels[id].Top := y;
 Labels[id].Width := w;
 Labels[id].Height := h;
 Labels[id].Layout := tlBottom;
 Labels[id].BringToFront();
 Result := id;
// LabelCount - размер массива c TLabel"ами
// Labels - массив TLabel"ов
// Owner - хэндел формы или иного элемента,
// на котором рисуются TLabel"ы

Каждый динамический TLabel имеет свой ID"шник, по которому его можно получить:

function GetLabel( id : integer ) : PLabel;
begin
 Result := @Labels[id];
end;
// PLabel = ^TLabel;


Как мне зафиксировать нажатие на один из TLabel"ов в Labels и как получить ID этого TLabel"а?

Полный исходник можно скачать с этой страницы: http://tzlab.amillo.net/delphi/down/index.htm. Называется P7 Designer.
Извините, прямой ссылки дать не могу из-за дурацкой особенности хостинга.


 
Гаврила ©   (2004-07-14 17:24) [1]

Во первых, Plabel тут наверно лишний, зачем указатель на указатель использовать? Достаточно TLabel.
Далее программно присваивается обработчик OnClick всем Label"ам один и тот же
Labels[id].OnClick:=MyLabelClickProcrdure;

Параметром Sender в этот обработчик будет приходить тот самый Label, осталость только его типизировать


 
KSergey ©   (2004-07-14 18:13) [2]

Читаем тут
http://www.delphikingdom.com/helloworld/runtime_comp.htm



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.021 c
1-1089271062
Term
2004-07-08 11:17
2004.07.25
TToolButton


14-1089085236
jb
2004-07-06 07:40
2004.07.25
Чего бы плохого шефу сделать


14-1088842436
Rouse_
2004-07-03 12:13
2004.07.25
С Днем рождения 3 июля


3-1088508416
DSKalugin
2004-06-29 15:26
2004.07.25
Программная Индексация DBase III


1-1089363972
ilop
2004-07-09 13:06
2004.07.25
Работа с битами.




   Наверх