![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Назначить событие всем компонентам
Krants © (2006-11-27 14:00:00)Имеется группа 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..."
Можно ли как-нибудь зарегистрировать процедуру как событие?
Leonid Troyanovsky (2006-11-27 17:50:00) [1]
> Krants (27.11.06 14:36) [6]
> хороший вариант, спасибо, сгодится.
Вариант хороший, но я б не рекомендовал его для
широкого применения, скажем, в библиотеке.
--
Regards, LVT.
PS Т.е., надо говорить так: спасибо, испытаю и доложу.
Krants (2006-11-27 14:36:00) [2]
> umbra
хороший вариант, спасибо, сгодится.
alex810 (2006-11-27 14:20:00) [3]Извеняюсь не дочитал
Palladin (2006-11-27 14:15:00) [4]
> [1] alex810 ©
Вопрос читал?
umbra (2006-11-27 14:15:00) [5]Метод класса - это не простая процедура. В него неявно передается указатель на класс, в котором он вызывается. Есть несколько способов преобразовать процедуру в метод. Самый простой - объявить ее методом какого-нибудь класса.
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;
Krants (2006-11-27 14:14:00) [6]
> alex810
нужно програмно. реально таких событий несколько и они должны добавлятся и изменяются в ран-тайме...
alex810 (2006-11-27 14:10:00) [7]В инспекторе объектов в кладке Events всем лайбелам назначаешь одну и туже процедуру обработки события