2013-05-08 72 views

回答

5

試試這個:

EnableScrollBar(DBGrid1.Handle,SB_HORZ,ESB_DISABLE_BOTH); 
ShowScrollBar(DBGrid1.Handle,SB_HORZ,False); 

的問題是,禁用滾動,但它顯示:-(

其他選項是:

TDBgrid2 = class(TDBgrid) 
    private 
    procedure WMNCCalcSize(var msg: TMessage); message WM_NCCALCSIZE; 
    end; 
    . 
    . 
procedure TDBgrid2.WMNCCalcSize(var msg: TMessage); 
var 
    style: Integer; 
begin 
    style := getWindowLong(handle, GWL_STYLE); 
    if (style and WS_HSCROLL) <> 0 then 
    SetWindowLong(handle, GWL_STYLE, style and not WS_HSCROLL); 
    inherited; 
end; 

更復雜,但它是完美的解決方案

+0

如果您選擇第二種解決方案,還請記住在.dfm文件中更改類 – 2013-05-08 08:55:44

+0

我遇到問題 - 滾動條曾經是客戶區不可點擊 - >無法選擇底行 – 2016-06-13 13:52:27

1

大衛的完美解決方案的後續工作您不必改變e .dfm中的類如果使用相同的類型名稱

TDBgrid = class(DBGrids.TDBgrid) 
    private 
    procedure WMNCCalcSize(var msg: TMessage); message WM_NCCALCSIZE; 
    end; 
+0

好戲! X-) – 2015-02-11 10:59:56