Hey, servus,
ich konnte mich in den letzten Tagen bischen damit beschäftigen, und ich bin schlichtweg begeistert wie diese
XML Anbindung gelöst wurde und wie einfach es damit wird, mit
XML Dateien umzugehen...
Ich hab hier mal im Posting die wichtigsten Parts nochmal reingehängt. Die Methode öffnet die
XML Datei, und fügt 2 neue Titel hinzu und speichert den ganzen Spass wieder ab.
Hier mein Code zum Ergänzen von Büchern:
Delphi-Quellcode:
procedure TForm12.cmdAppendClick(Sender: TObject);
var
FStore: IXMLBookstoreType;
FBook : IXMLBookType ;
FCustomer : IXMLAuthorName ;
begin
try
XMLDocStore := TXMLDocument.Create(Self);
XMLDocStore.FileName := BookStoreFile;
// variant 1
FStore := Getbookstore(XMLDocStore);
// variant 1
XMLDocStore.Active := true;
//FStore := Loadbookstore(BookStoreFile); // variant 2
except
on E:
Exception do
ShowMessage(Format('
Error occurred loading: %s',[E.
Message]));
end;
FBook := FStore.Add ;
Fbook.Title := '
Delphi Kochbuch' ;
FBook.Id := 1 ;
FBook.Genre := '
Software' ;
FBook.Price := 49.45 ;
FBook.Author.Firstname := '
Thomas' ;
FBook.Author.Lastname := '
Doberenz' ;
FBook := FStore.Add ;
FBook.ID := 2 ;
Fbook.Title := '
RFID Handbuch' ;
FBook.Genre := '
Elektronik' ;
FBook.Price := 1290.656 ;
FBook := FStore.Add ;
Fbook.Title := '
Der Entwickler' ;
FBook.Id := 3 ;
FBook.Genre := '
Fachzeitschrift' ;
FBook.Price := 10.43 ;
FBook.Author.Firstname := '
Andreas' ;
FBook.Author.Lastname := '
Kosch' ;
XMLDocStore.SaveToFile ;
XMLDocStore.Free ;
end;
Und vielleicht noch von Interesse das Anzeigen von Daten aus der
XML Datei:
Delphi-Quellcode:
procedure TForm12.cmdShowClick(Sender: TObject);
var
FStore: IXMLBookstoreType;
FBook : IXMLBookType ;
i: integer;
begin
try
XMLDocStore := TXMLDocument.Create(Self);
//XMLDocStore.Active := true;
FStore := Loadbookstore(BookStoreFile);
// variant 2
except
on E:
Exception do
ShowMessage(Format('
Error occurred loading: %s',[E.
Message]));
end;
lstBooks.items.clear ;
for i := 0
to FStore.Count - 1
do begin
FBook := FStore.Book[i] ;
lstBooks.items.add (format('
%s (%.2n €)',[FBook.Title,FBook.Price])) ;
end;
XMLDocStore.Free ;
end;
Der Rest wird vom Databinding Wizard erstellt, also in books.pas.
Wie gesagt, ich war echt sehr angetan von dieser eleganten Methode, mit
XML Dateien umzugehen und kann eigentlich nur jedem raten, sich ein bischen damit zu beschäftigen.