implemented updating on changing BorderSpacing.InnerBorder

git-svn-id: trunk@8637 -
This commit is contained in:
mattias 2006-01-27 20:52:03 +00:00
parent 3c3ac6365a
commit 9789a6b124
2 changed files with 25 additions and 16 deletions

View File

@ -581,7 +581,7 @@ type
procedure SetSpace(Kind: TAnchorKind; const AValue: integer); procedure SetSpace(Kind: TAnchorKind; const AValue: integer);
procedure SetTop(const AValue: TSpacingSize); procedure SetTop(const AValue: TSpacingSize);
protected protected
procedure Change; dynamic; procedure Change(InnerSpaceChanged: Boolean); dynamic;
public public
constructor Create(OwnerControl: TControl); constructor Create(OwnerControl: TControl);
procedure Assign(Source: TPersistent); override; procedure Assign(Source: TPersistent); override;
@ -900,7 +900,8 @@ type
procedure SetAutoSize(const Value: Boolean); virtual; procedure SetAutoSize(const Value: Boolean); virtual;
procedure BoundsChanged; dynamic; procedure BoundsChanged; dynamic;
procedure DoConstraintsChange(Sender: TObject); virtual; procedure DoConstraintsChange(Sender: TObject); virtual;
procedure DoBorderSpacingChange(Sender: TObject); virtual; procedure DoBorderSpacingChange(Sender: TObject;
InnerSpaceChanged: Boolean); virtual;
procedure SendMoveSizeMessages(SizeChanged, PosChanged: boolean); virtual; procedure SendMoveSizeMessages(SizeChanged, PosChanged: boolean); virtual;
procedure ConstrainedResize(var MinWidth, MinHeight, procedure ConstrainedResize(var MinWidth, MinHeight,
MaxWidth, MaxHeight: TConstraintSize); virtual; MaxWidth, MaxHeight: TConstraintSize); virtual;
@ -2512,14 +2513,14 @@ procedure TControlBorderSpacing.SetAround(const AValue: TSpacingSize);
begin begin
if FAround=AValue then exit; if FAround=AValue then exit;
FAround:=AValue; FAround:=AValue;
Change; Change(false);
end; end;
procedure TControlBorderSpacing.SetBottom(const AValue: TSpacingSize); procedure TControlBorderSpacing.SetBottom(const AValue: TSpacingSize);
begin begin
if FBottom=AValue then exit; if FBottom=AValue then exit;
FBottom:=AValue; FBottom:=AValue;
Change; Change(false);
end; end;
procedure TControlBorderSpacing.SetCellAlignHorizontal( procedure TControlBorderSpacing.SetCellAlignHorizontal(
@ -2527,7 +2528,7 @@ procedure TControlBorderSpacing.SetCellAlignHorizontal(
begin begin
if FCellAlignHorizontal=AValue then exit; if FCellAlignHorizontal=AValue then exit;
FCellAlignHorizontal:=AValue; FCellAlignHorizontal:=AValue;
Change; Change(false);
end; end;
procedure TControlBorderSpacing.SetCellAlignVertical( procedure TControlBorderSpacing.SetCellAlignVertical(
@ -2535,28 +2536,29 @@ procedure TControlBorderSpacing.SetCellAlignVertical(
begin begin
if FCellAlignVertical=AValue then exit; if FCellAlignVertical=AValue then exit;
FCellAlignVertical:=AValue; FCellAlignVertical:=AValue;
Change; Change(false);
end; end;
procedure TControlBorderSpacing.SetInnerBorder(const AValue: Integer); procedure TControlBorderSpacing.SetInnerBorder(const AValue: Integer);
begin begin
if FInnerBorder=AValue then exit; if FInnerBorder=AValue then exit;
FInnerBorder:=AValue; FInnerBorder:=AValue;
Change; if Control<>nil then Control.InvalidatePreferredSize;
Change(true);
end; end;
procedure TControlBorderSpacing.SetLeft(const AValue: TSpacingSize); procedure TControlBorderSpacing.SetLeft(const AValue: TSpacingSize);
begin begin
if FLeft=AValue then exit; if FLeft=AValue then exit;
FLeft:=AValue; FLeft:=AValue;
Change; Change(false);
end; end;
procedure TControlBorderSpacing.SetRight(const AValue: TSpacingSize); procedure TControlBorderSpacing.SetRight(const AValue: TSpacingSize);
begin begin
if FRight=AValue then exit; if FRight=AValue then exit;
FRight:=AValue; FRight:=AValue;
Change; Change(false);
end; end;
procedure TControlBorderSpacing.SetSpace(Kind: TAnchorKind; procedure TControlBorderSpacing.SetSpace(Kind: TAnchorKind;
@ -2574,7 +2576,7 @@ procedure TControlBorderSpacing.SetTop(const AValue: TSpacingSize);
begin begin
if FTop=AValue then exit; if FTop=AValue then exit;
FTop:=AValue; FTop:=AValue;
Change; Change(false);
end; end;
constructor TControlBorderSpacing.Create(OwnerControl: TControl); constructor TControlBorderSpacing.Create(OwnerControl: TControl);
@ -2596,8 +2598,11 @@ begin
FLeft:=SrcSpacing.Left; FLeft:=SrcSpacing.Left;
FRight:=SrcSpacing.Right; FRight:=SrcSpacing.Right;
FTop:=SrcSpacing.Top; FTop:=SrcSpacing.Top;
FInnerBorder:=SrcSpacing.InnerBorder;
Change; FCellAlignHorizontal:=SrcSpacing.CellAlignHorizontal;
FCellAlignVertical:=SrcSpacing.CellAlignVertical;
Change(false);
end else end else
inherited Assign(Source); inherited Assign(Source);
end; end;
@ -2640,9 +2645,9 @@ begin
end; end;
end; end;
procedure TControlBorderSpacing.Change; procedure TControlBorderSpacing.Change(InnerSpaceChanged: Boolean);
begin begin
FControl.DoBorderSpacingChange(Self); FControl.DoBorderSpacingChange(Self,InnerSpaceChanged);
if Assigned(OnChange) then OnChange(Self); if Assigned(OnChange) then OnChange(Self);
end; end;

View File

@ -957,9 +957,13 @@ begin
AdjustSize; AdjustSize;
end; end;
procedure TControl.DoBorderSpacingChange(Sender: TObject); procedure TControl.DoBorderSpacingChange(Sender: TObject;
InnerSpaceChanged: Boolean);
begin begin
RequestAlign; if InnerSpaceChanged then
AdjustSize
else
RequestAlign;
end; end;
{------------------------------------------------------------------------------ {------------------------------------------------------------------------------