Как сделать предопределенный обработчик события в 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
223 +1
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
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 96 005 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир