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

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

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

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

Сообщение hron66 » 09.12.2020 11:23:46

Добрый день.
Пытаюсь вставить DateTimePicker в ячейки грида KGrid, вставить получилось, но при выборе даты в DateTimePicker, она не сохраняется в ячейку таблицы.
Есть у кого-нибудь опыт подобного внедрения? Поделитесь советом. Спасибо.
hron66
незнакомец
 
Сообщения: 5
Зарегистрирован: 01.11.2019 14:44:52

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

Сообщение mig-31 » 11.12.2020 14:35:10

Делал такое для 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;
mig-31
постоялец
 
Сообщения: 224
Зарегистрирован: 14.07.2011 13:46:48


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 39

Рейтинг@Mail.ru