diff --git a/packages/rtl/classes.pas b/packages/rtl/classes.pas index 6ee65c9..e99337d 100644 --- a/packages/rtl/classes.pas +++ b/packages/rtl/classes.pas @@ -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