1
我創建自己的DBGRid,並且它工作正常,除了選擇列表。無論爲網格設置了哪種按鈕樣式,它總是顯示就地編輯器,無論是選擇列表還是橢圓按鈕! 。自定義dbgrid和選項列表問題
我想不通我做:(錯誤這裏是有關的代碼:
function TMyDBGrid.CreateEditor: TInplaceEdit;
begin
result:=TInplaceEdit.Create(self);
end;
function TMyDBGrid.GetEditStyle(ACol, ARow: integer): TEditStyle;
begin
case Columns[ACol].ButtonStyle of
cbsAuto : Result:=esPickList;
cbsNone : result:=esSimple;
cbsEllipsis : result:=esEllipsis;
end;
end;
而且構造函數和析構函數只是調用繼承,用構造函數只是設置一些顏色供格。
但有一個問題:我試圖使用TDBGridInplaceEdit,但它是在DBgrids單元的實現部分中聲明的。除了改變Delphi源代碼之外,還有什麼方法可以使用它嗎? – DrWael
@DWW - 確實是一個問題。您可以嘗試從TInplaceEditList(它更接近TGridInplaceEdit)派生自定義編輯器,並通過查看TGridInplaceEdit的VCL源添加缺少的功能。但我不確定這是否會奏效,在dbgrid源代碼中有強制轉換將編輯器轉換爲TGridInplaceEdit。 –
考慮問一個關於你實際試圖解決的問題的問題。接下來可能還有其他方法來替換編輯器。 –