Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - Treeview erweitern und savetofile verwenden?


Horst - Mi 04.12.02 22:42
Titel: Treeview erweitern und savetofile verwenden?
Hallo,,

wie kann ich treeview erweitern und trotzdem die Methode savetofile verwenden. Z.b.

Quelltext
1:
2:
3:
4:
5:
  TMyTreeview = class(TTreeview)
     cString : string;
  private
  public
  end;

wenn ich jetzt mytreeview.savetofile(datei) aufrufen wird der Eintrag cString nicht mitgespeichert, dass soll er aber ohne dass ich den eintrag in eine andere Datei speichern muß. wie geht das am elegantesten? :roll: Am besten indem ich savetofile überschreibe und den Eintrag cString mit in die Datei speichere, aber wie

und in welchem Format? :?

Hat jemand schonmal soetwas gemacht.

Danke für jede Hilfe

:wave:

Gruß

Horst


ase - Fr 06.12.02 20:40
Titel: fast richtig ;)
Servus!

man könnte natürlich savetofile überschreiben aber das währe nur eine - nicht elegante - lösung. wenn man sich die quellen anschaut, dann stellt man relativ schnell fest das savetofile einfach nur einen TFileStream erstellt und savetostream aufruft. wenn du also SaveToStream überschreiben würdest, dann könntest du später beide methoden (SaveToFile und SaveToStream) aufrufen. deine zusätzlichen daten würden immer gespeichert werden. währe quasi eleganter und würde mehr dem sinn des überschreibes entsprechen.

du müsstest also folgendes machen:

Quelltext
1:
2:
3:
4:
5:
6:
Procedure TMyTreeView.SaveToStream(Const Stream: TStream);
Begin
    Inherited SaveToStream(Stream); // Schreibt die Elemente in Stream

   Stream.Write(MeinKram, SizeOf(MeinKram));
End;

fertig! jetzt hättest du deinen kram hinter den elementen des trees. wenn du es umgekehrt haben willst, dann rufe 'Inherited ...' am ende auf.

Ciao!

(11.12. 10:56 Tino) Code-Tags hinzugefügt.


Horst - Di 10.12.02 20:16

Danke guter Tipp! :P

werde ich direkt mal ausprobieren. :dance:

Gruß

Horst


:wave: