Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.12.17;
Скачать: CL | DM;

Вниз

Назначить событие всем компонентам   Найти похожие ветки 

 
Krants   (2006-11-27 14:00) [0]

Имеется группа Label-ов, разбросаная по формам, им всем нужно переназначить событие OnMouseDown. Сам код события находиться в отдельном модуле(библиотеке), к примеру

procedure LabelMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
  (Sender as TLabel).Font.Style:=[fsBold];
end;


при попытке задать событие
Label1.OnMouseDown:=MyUnit1.LabelMouseDown;

Delphi ругается "incompatible types..."

Можно ли как-нибудь зарегистрировать процедуру как событие?


 
alex810 ©   (2006-11-27 14:10) [1]

В инспекторе объектов в кладке Events всем лайбелам назначаешь одну и туже процедуру обработки события


 
Krants   (2006-11-27 14:14) [2]


> alex810

нужно програмно. реально таких событий несколько и они должны добавлятся и изменяются в ран-тайме...


 
Palladin ©   (2006-11-27 14:15) [3]


> [1] alex810 ©

Вопрос читал?


 
umbra ©   (2006-11-27 14:15) [4]

Метод класса - это не простая процедура. В него неявно передается указатель на класс, в котором он вызывается. Есть несколько способов преобразовать процедуру в метод. Самый простой - объявить ее методом какого-нибудь класса.

THandlerContainer = class(TObject)
public
 procedure LabelMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
end;

{...............................}
implementation

procedure THandlerContainer.LabelMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
 (Sender as TLabel).Font.Style:=[fsBold];
end;


 
alex810 ©   (2006-11-27 14:20) [5]

Извеняюсь не дочитал


 
Krants   (2006-11-27 14:36) [6]


> umbra

хороший вариант, спасибо, сгодится.


 
Leonid Troyanovsky ©   (2006-11-27 17:50) [7]


> Krants   (27.11.06 14:36) [6]

> хороший вариант, спасибо, сгодится.

Вариант хороший, но я б не рекомендовал его для
широкого применения, скажем, в библиотеке.

--
Regards, LVT.

PS Т.е., надо говорить так: спасибо, испытаю и доложу.



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

Текущий архив: 2006.12.17;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.048 c
4-1154683936
Чапаев
2006-08-04 13:32
2006.12.17
CreateProcessWithLogonW


2-1164519393
apic
2006-11-26 08:36
2006.12.17
получить хэндл самой формы


15-1164786926
DelphiN!
2006-11-29 10:55
2006.12.17
Интересный момент при использовании ф-ии SetComputerName


2-1164644972
АртемКиН
2006-11-27 19:29
2006.12.17
разтрясти Indy Ftp Client


2-1164540453
doncova1
2006-11-26 14:27
2006.12.17
как изменить заглавие столбцов таблицы