From c64b60c7fbafed78ad2850dfb9bc977f79ee1b10 Mon Sep 17 00:00:00 2001 From: jujibo Date: Wed, 21 Sep 2011 19:32:46 +0000 Subject: [PATCH] Try using GetDefaultEditor instead of SelectEditor git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@1981 8e941d3f-bd1b-0410-a28a-d453659cc2b4 --- .../jujibo-utils/src/jdbgridcontrol.pas | 44 ++++++++++++++----- 1 file changed, 33 insertions(+), 11 deletions(-) diff --git a/components/jujiboutils/jujibo-utils/src/jdbgridcontrol.pas b/components/jujiboutils/jujibo-utils/src/jdbgridcontrol.pas index e72ea93e6..7bcdccc7b 100644 --- a/components/jujiboutils/jujibo-utils/src/jdbgridcontrol.pas +++ b/components/jujiboutils/jujibo-utils/src/jdbgridcontrol.pas @@ -20,7 +20,8 @@ type doubleDbGridControl: TJDbGridDoubleCtrl; protected { Protected declarations } - procedure SelectEditor; override; + //procedure SelectEditor; override; + function GetDefaultEditor(Column: integer): TWinControl; override; public { Public declarations } constructor Create(TheOwner: TComponent); override; @@ -42,17 +43,39 @@ end; { TJDBGridControl } -procedure TJDBGridControl.SelectEditor; +//procedure TJDBGridControl.SelectEditor; +//begin +// inherited SelectEditor; +// if Editor <> nil then +// begin +// case SelectedField.DataType of +// ftSmallint, ftInteger: Editor := integerDbGridControl.Editor(Self); +// ftDate: Editor := dateDbGridControl.Editor(Self); // TODO: ftDateTime ftTime +// ftCurrency, ftFloat, ftBCD: Editor := doubleDbGridControl.Editor(Self); +// // TODO: strings? +// end; +// end; +//end; + +function TJDBGridControl.GetDefaultEditor(Column: integer): TWinControl; +var + //aColumn: TColumn; + aField: TField; begin - inherited SelectEditor; - if Editor <> nil then + Result := inherited GetDefaultEditor(Column); + if Result <> nil then begin - case SelectedField.DataType of - ftSmallint, ftInteger: Editor := integerDbGridControl.Editor(Self); - ftDate: Editor := dateDbGridControl.Editor(Self); // TODO: ftDateTime ftTime - ftCurrency, ftFloat, ftBCD: Editor := doubleDbGridControl.Editor(Self); - // TODO: strings? - end; + //aColumn := Columns.Items[Column - 1]; + aField:= GetFieldFromGridColumn(Column); + //if aColumn <> nil then + if aField <> nil then; + //case aColumn.Field.DataType of + case aField.DataType of + ftSmallint, ftInteger: Result := integerDbGridControl.Editor(Self); + ftDate: Result := dateDbGridControl.Editor(Self); + ftCurrency, ftFloat, ftBCD: Result := doubleDbGridControl.Editor(Self); + // TODO: ftDateTime and ftTime. strings? + end; end; end; @@ -60,7 +83,6 @@ constructor TJDBGridControl.Create(TheOwner: TComponent); begin inherited Create(TheOwner); dateDbGridControl := TJDbGridDateCtrl.Create; - SelectEditor; integerDbGridControl := TJDbGridIntegerCtrl.Create; doubleDbGridControl := TJDbGridDoubleCtrl.Create; end;