* Patch from Sven Barth to stream top/left

This commit is contained in:
michael 2020-08-08 09:21:18 +00:00
parent 9ac7450c3a
commit 082bd8ce32

View File

@ -555,13 +555,18 @@ type
function GetComponentCount: Integer;
function GetComponentIndex: Integer;
procedure Insert(AComponent: TComponent);
procedure ReadLeft(AReader: TReader);
procedure ReadTop(AReader: TReader);
procedure Remove(AComponent: TComponent);
procedure RemoveNotification(AComponent: TComponent);
procedure SetComponentIndex(Value: Integer);
procedure SetReference(Enable: Boolean);
procedure WriteLeft(AWriter: TWriter);
procedure WriteTop(AWriter: TWriter);
protected
FComponentStyle: TComponentStyle;
procedure ChangeName(const NewName: TComponentName);
procedure DefineProperties(Filer: TFiler); override;
procedure GetChildren(Proc: TGetChildProc; Root: TComponent); virtual;
function GetChildOwner: TComponent; virtual;
function GetChildParent: TComponent; virtual;
@ -4328,6 +4333,20 @@ begin
end;
procedure TComponent.ReadLeft(AReader: TReader);
begin
FDesignInfo := (FDesignInfo and $ffff0000) or (AReader.ReadInteger and $ffff);
end;
procedure TComponent.ReadTop(AReader: TReader);
begin
FDesignInfo := ((AReader.ReadInteger and $ffff) shl 16) or (FDesignInfo and $ffff);
end;
procedure TComponent.Remove(AComponent: TComponent);
begin
@ -4386,6 +4405,22 @@ begin
end;
procedure TComponent.DefineProperties(Filer: TFiler);
var
Temp: LongInt;
Ancestor: TComponent;
begin
Ancestor := TComponent(Filer.Ancestor);
if Assigned(Ancestor) then
Temp := Ancestor.FDesignInfo
else
Temp := 0;
Filer.DefineProperty('Left', @ReadLeft, @WriteLeft, (FDesignInfo and $ffff) <> (Temp and $ffff));
Filer.DefineProperty('Top', @ReadTop, @WriteTop, (FDesignInfo and $ffff0000) <> (Temp and $ffff0000));
end;
procedure TComponent.GetChildren(Proc: TGetChildProc; Root: TComponent);
begin
@ -4614,6 +4649,20 @@ begin
end;
procedure TComponent.WriteLeft(AWriter: TWriter);
begin
AWriter.WriteInteger(FDesignInfo and $ffff);
end;
procedure TComponent.WriteTop(AWriter: TWriter);
begin
AWriter.WriteInteger((FDesignInfo shr 16) and $ffff);
end;
procedure TComponent.ValidateContainer(AComponent: TComponent);
begin