我如何在Delphi 7中的dbgrid上隐藏或删除水平滚动。我尝试通过更改Resize上的宽度但不正确的方式。
答案 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;