Request for making two TControlBorderSpacing methods virtual
Original Reporter info from Mantis: Blaazen @Blaazen
-
Reporter name: Vojtech Cihak
Original Reporter info from Mantis: Blaazen @Blaazen
- Reporter name: Vojtech Cihak
Description:
I would like to have make following methods virtual:
TControlBorderSpacing.GetSpaceAround
TControlBorderSpacing.GetSpace
(GetSideSpace is not needed virtual since it calls GetSpace).
I was somewhat successful in refurbishing ~1year old Flavio's patch. Little late for TEditButton, Bart already redesigned it as a grouped control, but I would like to have it for my own components which I'm planning to public soon.
Steps to reproduce:
Now the steps works for me:
- Create new class and override those methods (with respect of BiDi mode)
TxxxBorderSpacing = class(TControlBorderSpacing);
public
function GetSpace(Kind: TAnchorKind): Integer; override;
procedure GetSpaceAround(var SpaceAround: TRect); override;
end;
function TxxxBorderSpacing.GetSpace(Kind: TAnchorKind): Integer;
begin
Result:=inherited GetSpace(Kind);
case Kind of
akLeft: if Control.IsRightToLeft then inc(Result, TxxxEdit(Control).Buttons.Width);
akRight: if not Control.IsRightToLeft then inc(Result, TxxxEdit(Control).Buttons.Width);
end;
end;
procedure TxxxBorderSpacing.GetSpaceAround(var SpaceAround: TRect);
begin
inherited GetSpaceAround(SpaceAround);
if not Control.IsRightToLeft
then inc(SpaceAround.Right, TxxxEdit(Control).Buttons.Width)
else inc(SpaceAround.Left, TxxxEdit(Control).Buttons.Width);
end;
2) override
function ChildClassAllowed(ChildClass: TClass): boolean; override;
function CreateControlBorderSpacing: TControlBorderSpacing; override;
procedure DoOnChangeBounds; override;
Note that original Flavios's patch worked when component was directly on the form but failed when component was placed on the TPanel.
I didn't change the original patch so much so it looks like some change in LCL in meanwhile.
Additional information:
Lazarus 1.3 r44768M FPC 2.7.1 x86_64-linux-qt
Mantis conversion info:
- Mantis ID: 26048
- OS: Linux
- OS Build: Chakra 64-bit
- Build: 44768
- Platform: amd64
- Version: 1.3 (SVN)
- Fixed in revision: 44805 (#0f789069)