KGrid вставка DateTimePicker в ячейки

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Ответить
hron66
незнакомец
Сообщения: 5
Зарегистрирован: 01.11.2019 13:44:52

KGrid вставка DateTimePicker в ячейки

Сообщение hron66 »

Добрый день.
Пытаюсь вставить DateTimePicker в ячейки грида KGrid, вставить получилось, но при выборе даты в DateTimePicker, она не сохраняется в ячейку таблицы.
Есть у кого-нибудь опыт подобного внедрения? Поделитесь советом. Спасибо.
mig-31
постоялец
Сообщения: 224
Зарегистрирован: 14.07.2011 13:46:48

Re: KGrid вставка DateTimePicker в ячейки

Сообщение mig-31 »

Делал такое для TDBGrid и называется CustomCellEditor. В TDBGrid надо добавить код в event OnSelectEditor.

1. Создание TDateTimePicker

Код: Выделить всё

  DateEdit := TDateTimePicker.Create(Self);
  //DateEdit is TDateTimePicker
  DateEdit.Parent := MOKGrid;
  DateEdit.Visible:= False;   


2. Event TDBGrid.OnSelectEditor

Код: Выделить всё

//MOKGrid is TDBGrid
procedure TMainForm.MOKGridSelectEditor(Sender: TObject; Column: TColumn;
  var Editor: TWinControl);
begin
  if NOT(Assigned(Column.Field)) then Exit;
  if Column.Field.DataType = ftDate then begin

    DateEdit.BoundsRect := MOKGrid.SelectedFieldRect;

    if NOT(Column.Field.IsNull) then DateEdit.Date := Column.Field.AsDateTime;

    DateEdit.OnEnter:=@DateEditEnter;
    DateEdit.OnEditingDone :=@DateEditEditigDone;
    Editor := DateEdit;
  end;
end;     


3. Events TDateTimePicker OnEnter, OnEditingDone

Код: Выделить всё

procedure TMainForm.DateEditEditigDone(Sender: TObject);
begin
  SQLQuery.Edit;
  MOKGrid.SelectedField.AsDateTime :=  DateEdit.Date;
end;

procedure TMainForm.DateEditEnter(Sender: TObject);
begin
   SQLQuery.Edit;
end;
Ответить