mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-04-10 03:48:27 +02:00
LCL: implemented preferredsize for TScrollBar, bug #16855
git-svn-id: trunk@26635 -
This commit is contained in:
parent
724c4cb9aa
commit
22a192ff6e
@ -44,10 +44,6 @@ begin
|
||||
if (Parent=nil) and (not (cfAutoSizeNeeded in FControlFlags))
|
||||
and (Self is TCustomForm) then begin
|
||||
DebugLn(['TControl.Adjustsize ',DbgSName(Self)]);
|
||||
if Name='SearchResults' then begin
|
||||
//debugln(GetStackTrace(true));
|
||||
DebugLn(['TControl.Adjustsize AAA1']);
|
||||
end;
|
||||
end;
|
||||
{$ENDIF}
|
||||
Include(FControlFlags, cfAutoSizeNeeded);
|
||||
@ -4586,14 +4582,14 @@ begin
|
||||
// use defaults for undefined preferred size
|
||||
if (PreferredWidth<0)
|
||||
or ((PreferredWidth=0) and (not (csAutoSize0x0 in ControlStyle))) then begin
|
||||
if AutoSize then
|
||||
if AutoSize or WidthIsAnchored then
|
||||
PreferredWidth:=GetDefaultWidth
|
||||
else
|
||||
PreferredWidth:=Width;
|
||||
end;
|
||||
if (PreferredHeight<0)
|
||||
or ((PreferredHeight=0) and (not (csAutoSize0x0 in ControlStyle))) then begin
|
||||
if AutoSize then
|
||||
if AutoSize or HeightIsAnchored then
|
||||
PreferredHeight:=GetDefaultHeight
|
||||
else
|
||||
PreferredHeight:=Height;
|
||||
|
@ -141,6 +141,17 @@ begin
|
||||
SetParams(APosition, AMin, AMax, FPageSize);
|
||||
end;
|
||||
|
||||
procedure TCustomScrollBar.CalculatePreferredSize(var PreferredWidth,
|
||||
PreferredHeight: integer; WithThemeSpace: Boolean);
|
||||
begin
|
||||
inherited CalculatePreferredSize(PreferredWidth, PreferredHeight,
|
||||
WithThemeSpace);
|
||||
if (Kind=sbHorizontal) and (PreferredHeight=0) then
|
||||
PreferredHeight:=GetSystemMetrics(SM_CYHSCROLL);
|
||||
if (Kind=sbVertical) and (PreferredWidth=0) then
|
||||
PreferredWidth:=GetSystemMetrics(SM_CYVSCROLL);
|
||||
end;
|
||||
|
||||
procedure TCustomScrollBar.SetPosition(Value: Integer);
|
||||
begin
|
||||
SetParams(Value, FMin, FMax, FPageSize);
|
||||
|
@ -1085,7 +1085,7 @@ procedure TAutoSizeCtrlData.ComputePreferredClientArea(
|
||||
else if (ReferenceControl<>nil) and (ReferenceControl.Parent=Control) then
|
||||
ChildData.Sides[a].CtrlData:=Children[ReferenceControl];
|
||||
ChildData.Sides[a].Side:=ReferenceSide;
|
||||
//if ChildData.Sides[a].CtrlData<>nil then DebugLn(['GetSideAnchor AAA1 Child=',DbgSName(Child),', a=',dbgs(a),' ReferenceControl=',DbgSName(ChildData.Sides[a].CtrlData.Control),' ReferenceSide=',dbgs(a,ChildData.Sides[a].Side)]);
|
||||
//if ChildData.Sides[a].CtrlData<>nil then DebugLn(['GetSideAnchor Child=',DbgSName(Child),', a=',dbgs(a),' ReferenceControl=',DbgSName(ChildData.Sides[a].CtrlData.Control),' ReferenceSide=',dbgs(a,ChildData.Sides[a].Side)]);
|
||||
end;
|
||||
|
||||
var
|
||||
@ -3138,7 +3138,7 @@ begin
|
||||
|
||||
if NeedAlignWork then
|
||||
begin
|
||||
//DebugLn(['TWinControl.AlignControls AAA1 ',DbgSName(Self),' RemainingClientRect=',dbgs(RemainingClientRect),' ',dbgs(ClientRect)]);
|
||||
//DebugLn(['TWinControl.AlignControls ',DbgSName(Self),' RemainingClientRect=',dbgs(RemainingClientRect),' ',dbgs(ClientRect)]);
|
||||
RemainingBorderSpace:=Rect(0,0,0,0);
|
||||
// adjust RemainingClientRect by ChildSizing properties
|
||||
AdjustBorderSpace(RemainingClientRect,RemainingBorderSpace,
|
||||
|
@ -96,6 +96,8 @@ type
|
||||
procedure CreateWnd; override;
|
||||
procedure Change; virtual;
|
||||
procedure Scroll(ScrollCode: TScrollCode; var ScrollPos: Integer); virtual;
|
||||
procedure CalculatePreferredSize(var PreferredWidth,
|
||||
PreferredHeight: integer; WithThemeSpace: Boolean); override;
|
||||
public
|
||||
constructor Create(AOwner: TComponent); override;
|
||||
procedure SetParams(APosition, AMin, AMax, APageSize: Integer);
|
||||
|
Loading…
Reference in New Issue
Block a user