Сделал через InplaceEditor
type
TGridCracker = class(TCustomGrid);
TEditorCracker = class(TCustomMaskEdit);
var editor1: TEditorCracker;
...
procedure TForm2.DBGridEh1DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumnEh;
State: TGridDrawState);
begin
editor1 := TEditorCracker(TGridCracker(Sender).InplaceEditor);
if (DBGridEh1.SelectedField.FieldName='VAL_PARM') and (Assigned(editor1)) then
begin
editor1.Color := clYellow;
editor1.EditMask:=OraQuery1.FieldByName('TEMPLATE').AsString;
end;
end;
Так получается почти то что мне нужно, но когда я вхожу в режим редактирования, маска принимается от следующей записи в DataSet.
Т.е. по предыдущему примеру полю VAL_PARM в дате рождения присваивается маска от поля имя ( cccccccccc;0;_).
Как я понимаю, вызывается какое то стандартное событие при редактировании ячейки? Куда покопать дальше? Подскажите пожалуйста.