20. Стандартные обработчики событий в компонентах
Для обеспечения нужного функционала некоторые события компонентов уже имеют обработчики. Например, событие табличной части OnDrawColumnCell используйте для раскраски и вывода миниатюр изображений. Если вы хотите добавить дополнительный функционал, то можете подменить стандартный обработчик на свой, предварительно сохранив старый в переменной. А в своем обработчике уже вызываете стандартный обработчик.
Пример:
var OldDrawCell: TDrawColumnCellEvent; procedure MyDrawCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column:TColumn; State: TGridDrawState); begin // Вызываем старый обработчик OldDrawCell(Sender, Rect, DataCol, Column, State); // if TdxGrid(Sender).GetFieldName(Column) = 'Количество' then begin if Self.AsI['Количество'] < 0 then TdxGrid(Sender).Canvas.Brush.Color := clRed; end; end; procedure Form_Create; begin OldDrawCell := Self.Grid.OnDrawColumnCell; Self.Grid.OnDrawColumnCell := @MyDrawCell; end;
В данном примере раскрашиваем ячейки колонки «Количество» с отрицательным значением. Ниже приведены компоненты и события, которые заняты программой.
Компонент | События |
---|---|
TdxGrid | OnCellClick, OnDblClick, OnDrawColumnCell, OnKeyDown |
TdxLookupComboBox | Button.OnClick |
TdxCalcEdit, TdxDateEdit, TdxTimeEdit, TdxMemo | Button.OnClick |
TdxQueryGrid | OnDblClick, OnDrawColumnCell |
PopupMenu | OnPopup |