Thema: Delphi XSD Databinding Wizard

Einzelnen Beitrag anzeigen

Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#3

Re: XSD Databinding Wizard

  Alt 5. Jul 2006, 20:02
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.
Angehängte Dateien
Dateityp: zip bookstore_154.zip (291,1 KB, 71x aufgerufen)
  Mit Zitat antworten Zitat