mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-04-18 07:29:30 +02:00
LCL: re-added CalculateAutoRanges for custom controls
git-svn-id: branches/fixes_1_4@48627 -
This commit is contained in:
parent
6860cefbbc
commit
cc3c2e4bca
@ -157,6 +157,7 @@ type
|
||||
class procedure WSRegisterClass; override;
|
||||
procedure AlignControls(AControl: TControl; var ARect: TRect); override;
|
||||
function AutoScrollEnabled: Boolean; virtual;
|
||||
procedure CalculateAutoRanges; virtual;
|
||||
procedure CreateWnd; override;
|
||||
function GetClientScrollOffset: TPoint; override;
|
||||
function GetLogicalClientRect: TRect; override;// logical size of client area
|
||||
|
@ -99,6 +99,26 @@ begin
|
||||
Result := not (AutoSize or (DockSite and UseDockManager));
|
||||
end;
|
||||
|
||||
procedure TScrollingWinControl.CalculateAutoRanges;
|
||||
var
|
||||
NeededClientW: Integer;
|
||||
NeededClientH: Integer;
|
||||
FrameWidth: integer;
|
||||
FrameHeight: integer;
|
||||
begin
|
||||
NeededClientW:=0;
|
||||
NeededClientH:=0;
|
||||
GetPreferredSize(NeededClientW,NeededClientH,true,false);
|
||||
GetPreferredSizeClientFrame(FrameWidth,FrameHeight);
|
||||
if NeededClientW>0 then
|
||||
NeededClientW-=FrameWidth;
|
||||
if NeededClientH>0 then
|
||||
NeededClientH-=FrameHeight;
|
||||
|
||||
HorzScrollBar.InternalSetRange(NeededClientW);
|
||||
VertScrollBar.InternalSetRange(NeededClientH);
|
||||
end;
|
||||
|
||||
class function TScrollingWinControl.GetControlClassDefaultSize: TSize;
|
||||
begin
|
||||
Result.CX := 150;
|
||||
@ -171,22 +191,8 @@ procedure TScrollingWinControl.ComputeScrollbars;
|
||||
var
|
||||
ClientW: Integer;
|
||||
ClientH: Integer;
|
||||
NeededClientW: Integer;
|
||||
NeededClientH: Integer;
|
||||
FrameWidth: integer;
|
||||
FrameHeight: integer;
|
||||
begin
|
||||
NeededClientW:=0;
|
||||
NeededClientH:=0;
|
||||
GetPreferredSize(NeededClientW,NeededClientH,true,false);
|
||||
GetPreferredSizeClientFrame(FrameWidth,FrameHeight);
|
||||
if NeededClientW>0 then
|
||||
NeededClientW-=FrameWidth;
|
||||
if NeededClientH>0 then
|
||||
NeededClientH-=FrameHeight;
|
||||
|
||||
HorzScrollBar.InternalSetRange(NeededClientW);
|
||||
VertScrollBar.InternalSetRange(NeededClientH);
|
||||
CalculateAutoRanges;
|
||||
|
||||
ClientW:=VertScrollBar.ClientSizeWithoutBar;
|
||||
ClientH:=HorzScrollBar.ClientSizeWithoutBar;
|
||||
|
Loading…
Reference in New Issue
Block a user