Как сделать предопределенный обработчик события в Delphi? У DBgrid (TDBGridEh) есть колонки (TColumnEh), у которой есть событие OnDataHintShow.
Есть свой созданный класс TDynamicGrid = class(TDBGridEh), в нем описана процедура ShowPanel.
Как сделать так, что бы по умолчанию, у нужной колонки на событии OnDataHintShow вызывалась процедура ShowPanel?
Т.е. не надо было её каждый раз прописывать, а действовала у всех Гридов этого класса.constructor TDynamicGrid.Create(AOwner: TComponent);
var q: TDBgridEhDataHintShowEvent;
begin
inherited;
// FieldPanel - параметр который содержит имя колонки, для которой предопределяем событие.
self.FieldColumns[self.FieldPanel].OnDataHintShow := ..............................
end;
Если пишу так:self.FieldColumns[self.FieldPanel].OnDataHintShow := self.ShowPanel()
То выдает ошибку: Incompatible types: 'TDBGridEhDataHintShowEvent' and 'procedure, untyped pointer or untyped parameter'

21 Авг 2019 в 06:33
249 +3
0
Ответы
1

Вы можете создать новый метод-обработчик события OnDataHintShow и присвоить его колонке по умолчанию в конструкторе вашего класса TDynamicGrid. В этом методе вы можете вызвать процедуру ShowPanel.

Пример:

type
TDynamicGrid = class(TDBGridEh)
private
procedure DefaultDataHintShow(Column: TColumnEh; var Params: TDBGridEhDataHintParams);
public
constructor Create(AOwner: TComponent); override;
end;
implementation
constructor TDynamicGrid.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
self.FieldColumns[self.FieldPanel].OnDataHintShow := DefaultDataHintShow;
end;
procedure TDynamicGrid.DefaultDataHintShow(Column: TColumnEh; var Params: TDBGridEhDataHintParams);
begin
// Вызываем процедуру ShowPanel
ShowPanel();
end;

Таким образом, при создании экземпляра класса TDynamicGrid, метод DefaultDataHintShow будет автоматически присваиваться событию OnDataHintShow нужной колонки.

20 Апр 2024 в 13:16
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир