Добрый день.
Пытаюсь вставить DateTimePicker в ячейки грида KGrid, вставить получилось, но при выборе даты в DateTimePicker, она не сохраняется в ячейку таблицы.
Есть у кого-нибудь опыт подобного внедрения? Поделитесь советом. Спасибо.
KGrid вставка DateTimePicker в ячейки
Модератор: Модераторы
Re: KGrid вставка DateTimePicker в ячейки
Делал такое для TDBGrid и называется CustomCellEditor. В TDBGrid надо добавить код в event OnSelectEditor.
1. Создание TDateTimePicker
2. Event TDBGrid.OnSelectEditor
3. Events TDateTimePicker OnEnter, OnEditingDone
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;
