diff --git a/components/lazmapviewer/source/mvmapviewer.pas b/components/lazmapviewer/source/mvmapviewer.pas index a5a6e015c..67e579c38 100644 --- a/components/lazmapviewer/source/mvmapviewer.pas +++ b/components/lazmapviewer/source/mvmapviewer.pas @@ -223,6 +223,7 @@ type public constructor Create(ACollection: TCollection); override; destructor Destroy; override; + procedure AssignTo(Dest: TPersistent); override; property LatLonInDMS: Boolean read GetLatLonInDMS; property ToScreen: TPoint read GetToScreen; published @@ -243,6 +244,8 @@ type function GPSTrack: TGPSTrack; function CreatePoint: TGPSPoint; override; procedure DestroyPoint; override; + public + procedure AssignTo(Dest: TPersistent); override; published property Mark: TSegmentExtraData.TSegmentMark read FMark write SetMark stored MarkIsStored; end; @@ -270,6 +273,7 @@ type procedure DestroyPoint; override; public constructor Create(ACollection: TCollection); override; + procedure AssignTo(Dest: TPersistent); override; published property ImageIndex: TImageIndex read FImageIndex write SetImageIndex default -1; property OnDrawPoint: TPointOfInterestDrawEvent read FOnDrawPoint write SetOnDrawPoint; @@ -665,6 +669,13 @@ begin then Trk.Points.Remove(FPoint); end; +procedure TMapTrackPoint.AssignTo(Dest: TPersistent); +begin + inherited AssignTo(Dest); + if Dest is TMapTrackPoint then + TMapTrackPoint(Dest).Mark := Self.Mark; +end; + function TMapTrackPoint.MarkIsStored: Boolean; begin Result := FMark <> smNone; @@ -1077,6 +1088,20 @@ begin inherited Destroy; end; +procedure TMapPoint.AssignTo(Dest: TPersistent); +begin + if Dest is TMapPoint then + with TMapPoint(Dest) do + begin + Latitude := Self.Latitude; + Longitude := Self.Longitude; + Elevation := Self.Elevation; + DateTime := Self.DateTime; + end + else + inherited AssignTo(Dest); +end; + { TPointOfInterest } procedure TPointOfInterest.SetImageIndex(AValue: TImageIndex); @@ -1128,6 +1153,13 @@ begin FImageIndex := -1; end; +procedure TPointOfInterest.AssignTo(Dest: TPersistent); +begin + inherited AssignTo(Dest); + if Dest is TPointOfInterest then + TPointOfInterest(Dest).ImageIndex := Self.ImageIndex; +end; + { TMapCenter } procedure TMapCenter.SetLongitude(AValue: Double);