mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-08-14 10:39:18 +02:00
anchordocking: themed drawn close button
git-svn-id: trunk@41917 -
This commit is contained in:
parent
b9186be31a
commit
27ceeebdda
@ -114,17 +114,9 @@ type
|
|||||||
|
|
||||||
TAnchorDockCloseButton = class(TCustomSpeedButton)
|
TAnchorDockCloseButton = class(TCustomSpeedButton)
|
||||||
protected
|
protected
|
||||||
procedure GetCloseGlyph; // increase reference count
|
function GetDrawDetails: TThemedElementDetails; override;
|
||||||
procedure ReleaseCloseGlyph; // decrease reference count
|
|
||||||
function GetGlyphSize({%H-}Drawing: boolean; PaintRect: TRect): TSize; override;
|
|
||||||
function DrawGlyph(ACanvas: TCanvas; const AClient: TRect;
|
|
||||||
const AOffset: TPoint; AState: TButtonState; ATransparent: Boolean;
|
|
||||||
BiDiFlags: Longint): TRect; override;
|
|
||||||
procedure CalculatePreferredSize(var PreferredWidth,
|
procedure CalculatePreferredSize(var PreferredWidth,
|
||||||
PreferredHeight: integer; WithThemeSpace: Boolean); override;
|
PreferredHeight: integer; WithThemeSpace: Boolean); override;
|
||||||
public
|
|
||||||
constructor Create(AOwner: TComponent); override;
|
|
||||||
destructor Destroy; override;
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
{ TAnchorDockHeader
|
{ TAnchorDockHeader
|
||||||
@ -404,7 +396,6 @@ type
|
|||||||
FDragTreshold: integer;
|
FDragTreshold: integer;
|
||||||
FHeaderAlignLeft: integer;
|
FHeaderAlignLeft: integer;
|
||||||
FHeaderAlignTop: integer;
|
FHeaderAlignTop: integer;
|
||||||
FHeaderButtonSize: integer;
|
|
||||||
FHeaderHint: string;
|
FHeaderHint: string;
|
||||||
FHeaderStyle: TADHeaderStyle;
|
FHeaderStyle: TADHeaderStyle;
|
||||||
FHideHeaderCaptionFloatingControl: boolean;
|
FHideHeaderCaptionFloatingControl: boolean;
|
||||||
@ -419,7 +410,6 @@ type
|
|||||||
procedure SetDragTreshold(AValue: integer);
|
procedure SetDragTreshold(AValue: integer);
|
||||||
procedure SetHeaderAlignLeft(AValue: integer);
|
procedure SetHeaderAlignLeft(AValue: integer);
|
||||||
procedure SetHeaderAlignTop(AValue: integer);
|
procedure SetHeaderAlignTop(AValue: integer);
|
||||||
procedure SetHeaderButtonSize(AValue: integer);
|
|
||||||
procedure SetHeaderHint(AValue: string);
|
procedure SetHeaderHint(AValue: string);
|
||||||
procedure SetHeaderStyle(AValue: TADHeaderStyle);
|
procedure SetHeaderStyle(AValue: TADHeaderStyle);
|
||||||
procedure SetHideHeaderCaptionFloatingControl(AValue: boolean);
|
procedure SetHideHeaderCaptionFloatingControl(AValue: boolean);
|
||||||
@ -442,7 +432,6 @@ type
|
|||||||
property ShowHeaderCaption: boolean read FShowHeaderCaption write SetShowHeaderCaption;
|
property ShowHeaderCaption: boolean read FShowHeaderCaption write SetShowHeaderCaption;
|
||||||
property HideHeaderCaptionFloatingControl: boolean read FHideHeaderCaptionFloatingControl write SetHideHeaderCaptionFloatingControl;
|
property HideHeaderCaptionFloatingControl: boolean read FHideHeaderCaptionFloatingControl write SetHideHeaderCaptionFloatingControl;
|
||||||
property AllowDragging: boolean read FAllowDragging write SetAllowDragging;
|
property AllowDragging: boolean read FAllowDragging write SetAllowDragging;
|
||||||
property HeaderButtonSize: integer read FHeaderButtonSize write SetHeaderButtonSize;
|
|
||||||
property HeaderStyle: TADHeaderStyle read FHeaderStyle write SetHeaderStyle;
|
property HeaderStyle: TADHeaderStyle read FHeaderStyle write SetHeaderStyle;
|
||||||
procedure IncreaseChangeStamp; inline;
|
procedure IncreaseChangeStamp; inline;
|
||||||
property ChangeStamp: integer read FChangeStamp;
|
property ChangeStamp: integer read FChangeStamp;
|
||||||
@ -471,7 +460,6 @@ type
|
|||||||
FDragTreshold: integer;
|
FDragTreshold: integer;
|
||||||
FHeaderAlignLeft: integer;
|
FHeaderAlignLeft: integer;
|
||||||
FHeaderAlignTop: integer;
|
FHeaderAlignTop: integer;
|
||||||
FHeaderButtonSize: integer;
|
|
||||||
FHeaderClass: TAnchorDockHeaderClass;
|
FHeaderClass: TAnchorDockHeaderClass;
|
||||||
FHeaderHint: string;
|
FHeaderHint: string;
|
||||||
FHeaderStyle: TADHeaderStyle;
|
FHeaderStyle: TADHeaderStyle;
|
||||||
@ -529,19 +517,14 @@ type
|
|||||||
procedure SetRestoring(const AValue: boolean);
|
procedure SetRestoring(const AValue: boolean);
|
||||||
procedure OptionsChanged;
|
procedure OptionsChanged;
|
||||||
protected
|
protected
|
||||||
fCloseBtnReferenceCount: integer;
|
|
||||||
fCloseBtnBitmap: TBitmap;
|
|
||||||
function DoCreateControl(aName: string; DisableAutoSizing: boolean): TControl;
|
function DoCreateControl(aName: string; DisableAutoSizing: boolean): TControl;
|
||||||
procedure AutoSizeAllHeaders(EnableAutoSizing: boolean);
|
procedure AutoSizeAllHeaders(EnableAutoSizing: boolean);
|
||||||
procedure CreateCloseButtonBitmap; virtual;
|
|
||||||
procedure DisableControlAutoSizing(AControl: TControl);
|
procedure DisableControlAutoSizing(AControl: TControl);
|
||||||
procedure FreeCloseButtonBitmap; virtual;
|
|
||||||
procedure InvalidateHeaders;
|
procedure InvalidateHeaders;
|
||||||
procedure Notification(AComponent: TComponent; Operation: TOperation);
|
procedure Notification(AComponent: TComponent; Operation: TOperation);
|
||||||
override;
|
override;
|
||||||
procedure SetHeaderAlignLeft(const AValue: integer);
|
procedure SetHeaderAlignLeft(const AValue: integer);
|
||||||
procedure SetHeaderAlignTop(const AValue: integer);
|
procedure SetHeaderAlignTop(const AValue: integer);
|
||||||
procedure SetHeaderButtonSize(const AValue: integer);
|
|
||||||
procedure SetShowHeader(AValue: boolean);
|
procedure SetShowHeader(AValue: boolean);
|
||||||
procedure SetShowHeaderCaption(const AValue: boolean);
|
procedure SetShowHeaderCaption(const AValue: boolean);
|
||||||
procedure SetHideHeaderCaptionFloatingControl(const AValue: boolean);
|
procedure SetHideHeaderCaptionFloatingControl(const AValue: boolean);
|
||||||
@ -632,7 +615,6 @@ type
|
|||||||
write SetHideHeaderCaptionFloatingControl default true; // disables ShowHeaderCaption for floating controls
|
write SetHideHeaderCaptionFloatingControl default true; // disables ShowHeaderCaption for floating controls
|
||||||
property HeaderAlignTop: integer read FHeaderAlignTop write SetHeaderAlignTop default 80; // move header to top, when (width/height)*100<=HeaderAlignTop
|
property HeaderAlignTop: integer read FHeaderAlignTop write SetHeaderAlignTop default 80; // move header to top, when (width/height)*100<=HeaderAlignTop
|
||||||
property HeaderAlignLeft: integer read FHeaderAlignLeft write SetHeaderAlignLeft default 120; // move header to left, when (width/height)*100>=HeaderAlignLeft
|
property HeaderAlignLeft: integer read FHeaderAlignLeft write SetHeaderAlignLeft default 120; // move header to left, when (width/height)*100>=HeaderAlignLeft
|
||||||
property HeaderButtonSize: integer read FHeaderButtonSize write SetHeaderButtonSize default 10;
|
|
||||||
property HeaderHint: string read FHeaderHint write SetHeaderHint; // if empty it uses resourcestring adrsDragAndDockC
|
property HeaderHint: string read FHeaderHint write SetHeaderHint; // if empty it uses resourcestring adrsDragAndDockC
|
||||||
property HeaderStyle: TADHeaderStyle read FHeaderStyle write SetHeaderStyle default adhsDefault;
|
property HeaderStyle: TADHeaderStyle read FHeaderStyle write SetHeaderStyle default adhsDefault;
|
||||||
property SplitterWidth: integer read FSplitterWidth write SetSplitterWidth default 4;
|
property SplitterWidth: integer read FSplitterWidth write SetSplitterWidth default 4;
|
||||||
@ -1198,13 +1180,6 @@ begin
|
|||||||
IncreaseChangeStamp;
|
IncreaseChangeStamp;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TAnchorDockSettings.SetHeaderButtonSize(AValue: integer);
|
|
||||||
begin
|
|
||||||
if FHeaderButtonSize=AValue then Exit;
|
|
||||||
FHeaderButtonSize:=AValue;
|
|
||||||
IncreaseChangeStamp;
|
|
||||||
end;
|
|
||||||
|
|
||||||
procedure TAnchorDockSettings.SetHeaderHint(AValue: string);
|
procedure TAnchorDockSettings.SetHeaderHint(AValue: string);
|
||||||
begin
|
begin
|
||||||
if FHeaderHint=AValue then Exit;
|
if FHeaderHint=AValue then Exit;
|
||||||
@ -1282,7 +1257,6 @@ begin
|
|||||||
ShowHeaderCaption:=Config.GetValue('ShowHeaderCaption',true);
|
ShowHeaderCaption:=Config.GetValue('ShowHeaderCaption',true);
|
||||||
HideHeaderCaptionFloatingControl:=Config.GetValue('HideHeaderCaptionFloatingControl',true);
|
HideHeaderCaptionFloatingControl:=Config.GetValue('HideHeaderCaptionFloatingControl',true);
|
||||||
AllowDragging:=Config.GetValue('AllowDragging',true);
|
AllowDragging:=Config.GetValue('AllowDragging',true);
|
||||||
HeaderButtonSize:=Config.GetValue('HeaderButtonSize',10);
|
|
||||||
HeaderStyle:=StrToADHeaderStyle(Config.GetValue('HeaderStyle',ADHeaderStyleNames[adhsDefault]));
|
HeaderStyle:=StrToADHeaderStyle(Config.GetValue('HeaderStyle',ADHeaderStyleNames[adhsDefault]));
|
||||||
Config.UndoAppendBasePath;
|
Config.UndoAppendBasePath;
|
||||||
end;
|
end;
|
||||||
@ -1302,7 +1276,6 @@ begin
|
|||||||
Config.SetDeleteValue('ShowHeaderCaption',ShowHeaderCaption,true);
|
Config.SetDeleteValue('ShowHeaderCaption',ShowHeaderCaption,true);
|
||||||
Config.SetDeleteValue('HideHeaderCaptionFloatingControl',HideHeaderCaptionFloatingControl,true);
|
Config.SetDeleteValue('HideHeaderCaptionFloatingControl',HideHeaderCaptionFloatingControl,true);
|
||||||
Config.SetDeleteValue('AllowDragging',AllowDragging,true);
|
Config.SetDeleteValue('AllowDragging',AllowDragging,true);
|
||||||
Config.SetDeleteValue('HeaderButtonSize',HeaderButtonSize,10);
|
|
||||||
Config.SetDeleteValue('HeaderStyle',ADHeaderStyleNames[HeaderStyle],ADHeaderStyleNames[adhsDefault]);
|
Config.SetDeleteValue('HeaderStyle',ADHeaderStyleNames[HeaderStyle],ADHeaderStyleNames[adhsDefault]);
|
||||||
Config.UndoAppendBasePath;
|
Config.UndoAppendBasePath;
|
||||||
end;
|
end;
|
||||||
@ -1322,7 +1295,6 @@ begin
|
|||||||
and (ShowHeaderCaption=Settings.ShowHeaderCaption)
|
and (ShowHeaderCaption=Settings.ShowHeaderCaption)
|
||||||
and (HideHeaderCaptionFloatingControl=Settings.HideHeaderCaptionFloatingControl)
|
and (HideHeaderCaptionFloatingControl=Settings.HideHeaderCaptionFloatingControl)
|
||||||
and (AllowDragging=Settings.AllowDragging)
|
and (AllowDragging=Settings.AllowDragging)
|
||||||
and (HeaderButtonSize=Settings.HeaderButtonSize)
|
|
||||||
and (HeaderStyle=Settings.HeaderStyle)
|
and (HeaderStyle=Settings.HeaderStyle)
|
||||||
;
|
;
|
||||||
end;
|
end;
|
||||||
@ -2101,18 +2073,6 @@ begin
|
|||||||
OnOptionsChanged(Self);
|
OnOptionsChanged(Self);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TAnchorDockMaster.SetHeaderButtonSize(const AValue: integer);
|
|
||||||
begin
|
|
||||||
if FHeaderButtonSize=AValue then exit;
|
|
||||||
FHeaderButtonSize:=Max(1,AValue);
|
|
||||||
debugln(['TAnchorDockMaster.SetHeaderButtonSize ',FHeaderButtonSize]);
|
|
||||||
FreeCloseButtonBitmap;
|
|
||||||
if fCloseBtnReferenceCount>0 then
|
|
||||||
CreateCloseButtonBitmap;
|
|
||||||
AutoSizeAllHeaders(true);
|
|
||||||
OptionsChanged;
|
|
||||||
end;
|
|
||||||
|
|
||||||
procedure TAnchorDockMaster.SetShowHeader(AValue: boolean);
|
procedure TAnchorDockMaster.SetShowHeader(AValue: boolean);
|
||||||
var
|
var
|
||||||
i: Integer;
|
i: Integer;
|
||||||
@ -2165,11 +2125,6 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TAnchorDockMaster.FreeCloseButtonBitmap;
|
|
||||||
begin
|
|
||||||
FreeAndNil(fCloseBtnBitmap);
|
|
||||||
end;
|
|
||||||
|
|
||||||
procedure TAnchorDockMaster.InvalidateHeaders;
|
procedure TAnchorDockMaster.InvalidateHeaders;
|
||||||
var
|
var
|
||||||
i: Integer;
|
i: Integer;
|
||||||
@ -2200,39 +2155,11 @@ begin
|
|||||||
EnableAllAutoSizing;
|
EnableAllAutoSizing;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TAnchorDockMaster.CreateCloseButtonBitmap;
|
|
||||||
var
|
|
||||||
BitmapHandle,MaskHandle: HBITMAP;
|
|
||||||
OrigBitmap: TCustomBitmap;
|
|
||||||
begin
|
|
||||||
if fCloseBtnBitmap<>nil then exit;
|
|
||||||
|
|
||||||
if ThemeServices.GetStockImage(idButtonClose,BitmapHandle,MaskHandle) then begin
|
|
||||||
OrigBitmap:=TBitmap.Create;
|
|
||||||
OrigBitmap.Handle:=BitmapHandle;
|
|
||||||
if MaskHandle<>0 then
|
|
||||||
OrigBitmap.MaskHandle:=MaskHandle;
|
|
||||||
end
|
|
||||||
else
|
|
||||||
OrigBitmap := GetDefaultButtonIcon(idButtonClose);
|
|
||||||
DockMaster.fCloseBtnBitmap:=TBitmap.Create;
|
|
||||||
with DockMaster.fCloseBtnBitmap do begin
|
|
||||||
SetSize(HeaderButtonSize,HeaderButtonSize);
|
|
||||||
Canvas.Brush.Color:=clWhite;
|
|
||||||
Canvas.FillRect(Rect(0,0,Width,Height));
|
|
||||||
Canvas.StretchDraw(Rect(0,0,Width,Height),OrigBitmap);
|
|
||||||
Transparent:=true;
|
|
||||||
TransparentColor:=clWhite;
|
|
||||||
end;
|
|
||||||
OrigBitmap.Free;
|
|
||||||
end;
|
|
||||||
|
|
||||||
constructor TAnchorDockMaster.Create(AOwner: TComponent);
|
constructor TAnchorDockMaster.Create(AOwner: TComponent);
|
||||||
begin
|
begin
|
||||||
inherited Create(AOwner);
|
inherited Create(AOwner);
|
||||||
FControls:=TFPList.Create;
|
FControls:=TFPList.Create;
|
||||||
FAllowDragging:=true;
|
FAllowDragging:=true;
|
||||||
FHeaderButtonSize:=10;
|
|
||||||
FDragTreshold:=4;
|
FDragTreshold:=4;
|
||||||
FDockOutsideMargin:=10;
|
FDockOutsideMargin:=10;
|
||||||
FDockParentMargin:=10;
|
FDockParentMargin:=10;
|
||||||
@ -2277,8 +2204,6 @@ begin
|
|||||||
FreeAndNil(FControls);
|
FreeAndNil(FControls);
|
||||||
FreeAndNil(fNeedFree);
|
FreeAndNil(fNeedFree);
|
||||||
FreeAndNil(fDisabledAutosizing);
|
FreeAndNil(fDisabledAutosizing);
|
||||||
fCloseBtnReferenceCount:=-1;
|
|
||||||
FreeCloseButtonBitmap;
|
|
||||||
for i:=0 to ComponentCount-1 do begin
|
for i:=0 to ComponentCount-1 do begin
|
||||||
debugln(['TAnchorDockMaster.Destroy ',i,'/',ComponentCount,' ',DbgSName(Components[i])]);
|
debugln(['TAnchorDockMaster.Destroy ',i,'/',ComponentCount,' ',DbgSName(Components[i])]);
|
||||||
end;
|
end;
|
||||||
@ -2811,7 +2736,6 @@ begin
|
|||||||
ShowHeaderCaption := Settings.ShowHeaderCaption;
|
ShowHeaderCaption := Settings.ShowHeaderCaption;
|
||||||
HideHeaderCaptionFloatingControl := Settings.HideHeaderCaptionFloatingControl;
|
HideHeaderCaptionFloatingControl := Settings.HideHeaderCaptionFloatingControl;
|
||||||
AllowDragging := Settings.AllowDragging;
|
AllowDragging := Settings.AllowDragging;
|
||||||
HeaderButtonSize := Settings.HeaderButtonSize;
|
|
||||||
HeaderStyle := Settings.HeaderStyle;
|
HeaderStyle := Settings.HeaderStyle;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -2829,7 +2753,6 @@ begin
|
|||||||
Settings.ShowHeaderCaption:=ShowHeaderCaption;
|
Settings.ShowHeaderCaption:=ShowHeaderCaption;
|
||||||
Settings.HideHeaderCaptionFloatingControl:=HideHeaderCaptionFloatingControl;
|
Settings.HideHeaderCaptionFloatingControl:=HideHeaderCaptionFloatingControl;
|
||||||
Settings.AllowDragging:=AllowDragging;
|
Settings.AllowDragging:=AllowDragging;
|
||||||
Settings.HeaderButtonSize:=HeaderButtonSize;
|
|
||||||
Settings.HeaderStyle:=HeaderStyle;
|
Settings.HeaderStyle:=HeaderStyle;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -5181,65 +5104,36 @@ end;
|
|||||||
|
|
||||||
{ TAnchorDockCloseButton }
|
{ TAnchorDockCloseButton }
|
||||||
|
|
||||||
constructor TAnchorDockCloseButton.Create(AOwner: TComponent);
|
function TAnchorDockCloseButton.GetDrawDetails: TThemedElementDetails;
|
||||||
begin
|
|
||||||
inherited Create(AOwner);
|
|
||||||
GetCloseGlyph;
|
|
||||||
Glyph:=DockMaster.fCloseBtnBitmap;
|
|
||||||
end;
|
|
||||||
|
|
||||||
destructor TAnchorDockCloseButton.Destroy;
|
function WindowPart: TThemedWindow;
|
||||||
begin
|
begin
|
||||||
ReleaseCloseGlyph;
|
// no check states available
|
||||||
inherited Destroy;
|
Result := twSmallCloseButtonNormal;
|
||||||
end;
|
if not IsEnabled then
|
||||||
|
Result := twSmallCloseButtonDisabled
|
||||||
|
else
|
||||||
|
if FState in [bsDown, bsExclusive] then
|
||||||
|
Result := twSmallCloseButtonPushed
|
||||||
|
else
|
||||||
|
if FState = bsHot then
|
||||||
|
Result := twSmallCloseButtonHot
|
||||||
|
else
|
||||||
|
Result := twSmallCloseButtonNormal;
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TAnchorDockCloseButton.GetCloseGlyph;
|
|
||||||
begin
|
begin
|
||||||
inc(DockMaster.fCloseBtnReferenceCount);
|
Result := ThemeServices.GetElementDetails(WindowPart);
|
||||||
if DockMaster.fCloseBtnBitmap=nil then
|
|
||||||
DockMaster.CreateCloseButtonBitmap;
|
|
||||||
end;
|
|
||||||
|
|
||||||
procedure TAnchorDockCloseButton.ReleaseCloseGlyph;
|
|
||||||
begin
|
|
||||||
if DockMaster=nil then exit;
|
|
||||||
dec(DockMaster.fCloseBtnReferenceCount);
|
|
||||||
if DockMaster.fCloseBtnReferenceCount=0 then
|
|
||||||
DockMaster.FreeCloseButtonBitmap;
|
|
||||||
end;
|
|
||||||
|
|
||||||
function TAnchorDockCloseButton.GetGlyphSize(Drawing: boolean; PaintRect: TRect
|
|
||||||
): TSize;
|
|
||||||
begin
|
|
||||||
if PaintRect.Left=0 then ;
|
|
||||||
Result.cx:=DockMaster.fCloseBtnBitmap.Width;
|
|
||||||
Result.cy:=DockMaster.fCloseBtnBitmap.Height;
|
|
||||||
end;
|
|
||||||
|
|
||||||
function TAnchorDockCloseButton.DrawGlyph(ACanvas: TCanvas;
|
|
||||||
const AClient: TRect; const AOffset: TPoint; AState: TButtonState;
|
|
||||||
ATransparent: Boolean; BiDiFlags: Longint): TRect;
|
|
||||||
var
|
|
||||||
closeBmp: TBitmap;
|
|
||||||
begin
|
|
||||||
if BiDiFlags=0 then ;
|
|
||||||
closeBmp := DockMaster.fCloseBtnBitmap;
|
|
||||||
closeBmp.Transparent := ATransparent;
|
|
||||||
if ATransparent then
|
|
||||||
closeBmp.TransparentMode := tmAuto;
|
|
||||||
if AState=bsDisabled then ;
|
|
||||||
Result:=Rect(0,0,closeBmp.Width,closeBmp.Height);
|
|
||||||
OffsetRect(Result,AClient.Left+AOffset.X,AClient.Top+AOffset.Y);
|
|
||||||
ACanvas.Draw(Result.Left,Result.Top,closeBmp);
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TAnchorDockCloseButton.CalculatePreferredSize(var PreferredWidth,
|
procedure TAnchorDockCloseButton.CalculatePreferredSize(var PreferredWidth,
|
||||||
PreferredHeight: integer; WithThemeSpace: Boolean);
|
PreferredHeight: integer; WithThemeSpace: Boolean);
|
||||||
begin
|
begin
|
||||||
if WithThemeSpace then ;
|
with ThemeServices.GetDetailSize(ThemeServices.GetElementDetails(twSmallCloseButtonNormal)) do
|
||||||
PreferredWidth:=DockMaster.fCloseBtnBitmap.Width+4;
|
begin
|
||||||
PreferredHeight:=DockMaster.fCloseBtnBitmap.Height+4;
|
PreferredWidth:=cx;
|
||||||
|
PreferredHeight:=cy;
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
{ TAnchorDockManager }
|
{ TAnchorDockManager }
|
||||||
|
Loading…
Reference in New Issue
Block a user