TTreeView (Daten speichern und laden)



  • Hallo Leute

    ich benutze ein TTreeView um Aktionen des Benutzers anzuzeigen. Root-Item ist z.B. das aktuelle Datum + Uhrzeit. Danach werden Sub-Items angehangen, z.b. der Name des Projektes/Datei, welche der Benutzer über TOpenDialog öffnet etc...
    Das ganze hat also rein informativen Charakter und sieht im Quelltext folgendermaßen aus. (Ein Auszug):

    void __fastcall TForm1::ToolButton4Click(TObject *Sender)
    {
    TTreeNode * Node1;
    Form1->OpenDialog1->Execute();
    AnsiString filename = OpenDialog1->FileName;
    Node1 = TreeView1->Items->Item[0];
    TreeView1->Items->AddChild(Node1,"Projekt " + filename + " geöffnent");
    Label4->Caption="Projekt " + filename + " geöffnet";
    }
    //---------------------------------------------------------------------------
    

    Das ganze sieht dann so in etwa aus:

    -10.05.2007 - 13:35:40
    ...Projekt xxx geöffnet
    ...Eingabe von xxx
    ...usw

    Mein Frage ist nun, wie ich diese "History" von Befehlen bei Schließen der Anwendung abspeichern kann, die dann beim erneuten Öffnen geladen werden und ein neuer Knoten mit dem aktuellen Datum und Uhrzeit entsteht.

    +10.05.2007 - 13:35:50
    - 11.05.2007 - 14:25:34
    ...(...)
    ...(...)
    ...(usw...)

    Vielen Dank Todd





  • Hallo

    TTreeView hat sogar die Methoden SaveToFile/LoadFromFile.

    bis bald
    akari



  • um die Daten abzuspeichern kannst du z.B. eine Textdatei verwenden, wo du jedes Element einfach untereinander schreibst, den SubItems könnte man dann je nach Ebenenzahl ein - pro Ebene voranstellen. Beim wieder Einlesen mußt du dann nur jede Zeile entsprechend wieder einlesen

    Alternativ bietet sich auch ein Ini-File an, wobei hier die Datumswerte den Sektionen entsprechen und die Sub-Items dann mit fortlaufendem Index z.B. in folgender Form gespeichert werden können:

    [10.05.2007 - 13:35:40] 
    Item1=Projekt xxx geöffnet 
    Item2=Eingabe von xxx 
    Item3=usw
    

    [Edit] zu langsam und obendrein zu umständlich 😉



  • Danke Leute,

    das hat mir sehr geholfen. Jetzt klappt das wunderbar.

    Liebe Grüße
    Todd


Anmelden zum Antworten