Как отобразить и изменить значение NULL (пустой указатель) в DBGrid. Вы должны написать два обработчика события, чтобы визуализировать и редактировать NULL-значения в DBGrid. Если пользователь хочет сбросить поле в NULL, он должен войти в поле и нажать Ctrl-0.
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
begin
if not (gdFocused in State) then
begin
if Column.Field.IsNull then
begin
with TDBGrid(Sender).Canvas do
begin
Brush.Color := clDkGray; // измените цвет по желанию
Pen.Color := clWhite;
Rectangle(Rect);
end;
end;
end;
end;
procedure TForm1.DBGrid1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
var
TheGrid : TDBGrid;
begin
// проверить на Ctrl-0 (ноль, не заглавная буква O)
if (char(Key)='0') and (shift = [ssCtrl]) then
begin
TheGrid := (Sender as TDBGrid);
if TheGrid.DataSource.AutoEdit then
TheGrid.DataSource.Edit;
TheGrid.SelectedField.Clear;
end;
end;
Комментарии