Changeset 122 for trunk/UTrack.pas
- Timestamp:
- Oct 26, 2022, 5:25:25 PM (19 months ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/UTrack.pas
r107 r122 4 4 5 5 uses 6 Classes, SysUtils, Math, Generics.Collections, UGeometric; 6 Classes, SysUtils, Math, Generics.Collections, UGeometric, DOM, XMLRead, 7 XMLWrite, UXMLUtils; 7 8 8 9 type … … 48 49 // Move to TTrackLink later 49 50 function GetDistance: Integer; 51 52 procedure LoadFromXmlNode(Node: TDOMNode); 53 procedure SaveToXmlNode(Node: TDOMNode); 50 54 constructor Create; 51 55 destructor Destroy; override; … … 57 61 Track: TTrack; 58 62 function AddNew: TTrackPoint; 63 procedure LoadFromXmlNode(Node: TDOMNode); 64 procedure SaveToXmlNode(Node: TDOMNode); 59 65 end; 60 66 … … 64 70 Points: TTrackPoints; 65 71 Shift: TPoint; 72 procedure LoadFromXmlNode(Node: TDOMNode); 73 procedure SaveToXmlNode(Node: TDOMNode); 66 74 constructor Create; 67 75 destructor Destroy; override; … … 73 81 function SearchPoints(Point1, Point2: TTrackPoint): TTrackLink; 74 82 function AddNew: TTrackLink; 83 procedure LoadFromXmlNode(Node: TDOMNode); 84 procedure SaveToXmlNode(Node: TDOMNode); 75 85 end; 76 86 … … 86 96 constructor Create; 87 97 destructor Destroy; override; 98 procedure LoadFromXmlNode(Node: TDOMNode); 99 procedure SaveToXmlNode(Node: TDOMNode); 88 100 end; 89 101 … … 200 212 end; 201 213 214 procedure TTrackLinks.LoadFromXmlNode(Node: TDOMNode); 215 var 216 Node2: TDOMNode; 217 NewItem: TTrackLink; 218 begin 219 Node2 := Node.FirstChild; 220 while Assigned(Node2) and (Node2.NodeName = 'Link') do begin 221 NewItem := TTrackLink.Create; 222 NewItem.LoadFromXmlNode(Node2); 223 Add(NewItem); 224 Node2 := Node2.NextSibling; 225 end; 226 end; 227 228 procedure TTrackLinks.SaveToXmlNode(Node: TDOMNode); 229 var 230 I: Integer; 231 Node2: TDOMNode; 232 begin 233 for I := 0 to Count - 1 do begin; 234 Node2 := Node.OwnerDocument.CreateElement('Link'); 235 Node.AppendChild(Node2); 236 Items[I].SaveToXmlNode(Node2); 237 end; 238 end; 239 202 240 { TTrackPoints } 203 241 … … 206 244 Result := TTrackPoint.Create; 207 245 Result.Track := Track; 246 end; 247 248 procedure TTrackPoints.LoadFromXmlNode(Node: TDOMNode); 249 var 250 Node2: TDOMNode; 251 NewItem: TTrackPoint; 252 begin 253 Node2 := Node.FirstChild; 254 while Assigned(Node2) and (Node2.NodeName = 'Point') do begin 255 NewItem := TTrackPoint.Create; 256 NewItem.LoadFromXmlNode(Node2); 257 Add(NewItem); 258 Node2 := Node2.NextSibling; 259 end; 260 end; 261 262 procedure TTrackPoints.SaveToXmlNode(Node: TDOMNode); 263 var 264 I: Integer; 265 Node2: TDOMNode; 266 begin 267 for I := 0 to Count - 1 do begin; 268 Node2 := Node.OwnerDocument.CreateElement('Point'); 269 Node.AppendChild(Node2); 270 Items[I].SaveToXmlNode(Node2); 271 end; 208 272 end; 209 273 … … 222 286 FreeAndNil(Links); 223 287 inherited; 288 end; 289 290 procedure TTrack.LoadFromXmlNode(Node: TDOMNode); 291 begin 292 Points.LoadFromXmlNode(Node); 293 Links.LoadFromXmlNode(Node); 294 end; 295 296 procedure TTrack.SaveToXmlNode(Node: TDOMNode); 297 begin 298 Points.SaveToXmlNode(Node); 299 Links.SaveToXmlNode(Node); 224 300 end; 225 301 … … 281 357 { TTrackLink } 282 358 359 procedure TTrackLink.LoadFromXmlNode(Node: TDOMNode); 360 begin 361 362 end; 363 364 procedure TTrackLink.SaveToXmlNode(Node: TDOMNode); 365 begin 366 367 end; 368 283 369 constructor TTrackLink.Create; 284 370 begin … … 444 530 end; 445 531 532 procedure TTrackPoint.LoadFromXmlNode(Node: TDOMNode); 533 begin 534 Position.X := ReadInteger(Node, 'PositionX', Position.X); 535 Position.Y := ReadInteger(Node, 'PositionY', Position.Y); 536 end; 537 538 procedure TTrackPoint.SaveToXmlNode(Node: TDOMNode); 539 begin 540 WriteInteger(Node, 'PositionX', Position.X); 541 WriteInteger(Node, 'PositionY', Position.Y); 542 end; 543 446 544 constructor TTrackPoint.Create; 447 545 begin
Note:
See TracChangeset
for help on using the changeset viewer.