Object Inspector: Improve scrolling, reduce flicker using ScrollWindowEx. Issue #27667.

git-svn-id: trunk@48440 -
This commit is contained in:
juha 2015-03-21 08:07:12 +00:00
parent f78dd6dbd5
commit e0fbbdd0c4

View File

@ -2503,6 +2503,9 @@ end;
procedure TOICustomPropertyGrid.SetTopY(const NewValue:integer); procedure TOICustomPropertyGrid.SetTopY(const NewValue:integer);
var var
NewTopY: integer; NewTopY: integer;
{$IFDEF WINDOWS}
r: Types.TRect;
{$ENDIF}
begin begin
NewTopY := TopMax; NewTopY := TopMax;
if NewValue < NewTopY then if NewValue < NewTopY then
@ -2510,6 +2513,11 @@ begin
if NewTopY < 0 then if NewTopY < 0 then
NewTopY := 0; NewTopY := 0;
if FTopY<>NewTopY then begin if FTopY<>NewTopY then begin
{$IFDEF WINDOWS}
r := ClientRect;
if not ScrollWindowEx(Handle,0,FTopY-NewTopY,@r,@r,0,nil, SW_INVALIDATE+SW_SCROLLCHILDREN) then
{$ENDIF}
Invalidate;
FTopY:=NewTopY; FTopY:=NewTopY;
UpdateScrollBar; UpdateScrollBar;
AlignEditComponents; AlignEditComponents;