如何在Delphi中隐藏dbgrid上的水平滚动

时间:2013-05-08 08:08:11

标签: delphi scroll dbgrid

我如何在Delphi 7中的dbgrid上隐藏或删除水平滚动。我尝试通过更改Resize上的宽度但不正确的方式。

2 个答案:

答案 0 :(得分: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;

它更复杂,但它是完美的解决方案。

答案 1 :(得分:1)

大卫完美解决方案的后续行动。如果使用相同的类型名称,则不必更改.dfm中的类

  TDBgrid = class(DBGrids.TDBgrid)
  private
    procedure WMNCCalcSize(var msg: TMessage); message WM_NCCALCSIZE;
  end;
相关问题