lcl: dbgrids: hide vertical scrollbar for ssNone and ssHorizontal style. Issue #32134

git-svn-id: trunk@55539 -
This commit is contained in:
ondrej 2017-07-19 06:55:25 +00:00
parent a5fc93d0b2
commit e92cc53a78

View File

@ -1668,30 +1668,28 @@ begin
GetScrollBarParams(aRange, aPage, aPos);
FillChar(ScrollInfo, SizeOf(ScrollInfo), 0);
ScrollInfo.cbSize := SizeOf(ScrollInfo);
if (ScrollBars in [ssBoth, ssVertical])
or ((Scrollbars in [ssAutoVertical, ssAutoBoth]) and (aRange>aPage)) then
begin
FillChar(ScrollInfo, SizeOf(ScrollInfo), 0);
ScrollInfo.cbSize := SizeOf(ScrollInfo);
{TODO: try to move this out}
{$ifdef WINDOWS}
ScrollInfo.fMask := SIF_ALL or SIF_DISABLENOSCROLL;
ScrollInfo.ntrackPos := 0;
{$else}
ScrollInfo.fMask := SIF_ALL or SIF_UPDATEPOLICY;
//ScrollInfo.ntrackPos := SB_POLICY_CONTINUOUS;
ScrollInfo.ntrackPos := SB_POLICY_DISCONTINUOUS;
{$endif}
ScrollInfo.nMin := 0;
ScrollInfo.nMax := aRange;
ScrollInfo.nPos := Min(aPos,aRange-aPage);
ScrollInfo.nPage := aPage;
SetScrollInfo(Handle, SB_VERT, ScrollInfo, True);
end;
{TODO: try to move this out}
{$ifdef WINDOWS}
ScrollInfo.fMask := SIF_ALL or SIF_DISABLENOSCROLL;
ScrollInfo.ntrackPos := 0;
{$else}
ScrollInfo.fMask := SIF_ALL or SIF_UPDATEPOLICY;
//ScrollInfo.ntrackPos := SB_POLICY_CONTINUOUS;
ScrollInfo.ntrackPos := SB_POLICY_DISCONTINUOUS;
{$endif}
ScrollInfo.nMin := 0;
ScrollInfo.nMax := aRange;
ScrollInfo.nPos := Min(aPos,aRange-aPage);
ScrollInfo.nPage := aPage;
// the redraw argument of SetScrollInfo means under gtk
// if the scrollbar is visible or not, in windows it
// seems to mean if the scrollbar is redrawn or not
// to reflect the scrollbar changes made
SetScrollInfo(Handle, SB_VERT, ScrollInfo,
(ScrollBars in [ssBoth, ssVertical]) or
((Scrollbars in [ssAutoVertical, ssAutoBoth]) and (aRange>aPAge))
);
FOldPosition := aPos;
{$ifdef dbgDBGrid}
DebugLnExit('%s.UpdateScrollBarRange DONE Handle=%d aRange=%d aPage=%d aPos=%d',