Autor Beitrag
Tom.Schröder
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 33



BeitragVerfasst: Do 25.10.07 18:20 
So


jetzt habe ich fast alle Problemchen gelöst.
Die selbstgeschriebenen Klassen wurden durch DataClient-Sets ersetzt, und alle diese in ein großen Rahmen-Dataset gepackt.

Jetzt kann man Daten eingeben und ändern wie man lustig und fröhlich ist.

Nur einen Punkt habe ich nicht geschafft:

Ich hatte ein Array von Objekten, welche die ID eines TreeView Nodes beinhalteten.
Auch dies habe ich durch ein DataSet ersetzt.

Jetzt fehlr mir nur noch die TreeView zu 'verpacken'. Dann lassen sich nämlich alle Daten wunderber per .SaveToFile und .LoadFromFile in XML Dateien verpacken :-)

Jemand eine Idee?

MfG Tom Schröder
Tom.Schröder Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 33



BeitragVerfasst: Do 25.10.07 19:13 
Problemänderung/Lösung

Ein Treeview besitzt ja ebenfalls eine Methode Loadfrom / SafeTo File...
Jetzt muss eine Save to / ReadFrom File Methode selber Schreiben, und hoffe dass ich da die gegebenen Methoden einfügen kann.

Gruß,
Tom Schröder
Tom.Schröder Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 33



BeitragVerfasst: Mo 29.10.07 13:07 
Hallo,

also mein Problem besteht immer noch darin, ein ClientDataSet sowie ein Treeview in einer Datei zu speichern.

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
procedure TForm1.Button2Click(Sender: TObject);
var fs : TFileStream;
begin
if SaveDialog1.Execute then
 begin
 try
   fs := TFileStream.Create(SaveDialog1.FileName, fmCreate);
   ClientDataSet1.SaveToStream(fs);
   tv_eg1.SaveToStream(fs);
 finally
   fs.Free;
 end;
 end;
end;


Das Speichert mir beides in eine Datei.
Hingegen das öffnen:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
procedure TForm1.Button3Click(Sender: TObject);
var fs : TFileStream;
begin
if OpenDialog1.Execute then
 begin;
 try
   fs := TFileStream.Create(OpenDialog1.FileName, fmOpenRead);
   ClientDataSet1.LoadFromStream(fs);
   tv_eg1.LoadFromStream(fs);

 finally
   fs.Free;
 end;
 end;
end;


welches ja nur den Schritt des Schreibens umkehrt ließt nur das erste Element ein.
Also entweder das ClientDataSet oder das TreeView, je nachdem in welcher Reihenfolge ich speichere/lade.

Wie kann ich den Stream sinnvoll teilen, dass gesagt wird dieser Teil des Streams ist das ClientDataSet, der andere Teil ist das TreeView?

Gruß,
Tom Schröder