![]() |
TreeView - Auswahl merken, nach ProgStart herstellen
Hallo,
ich komm schon wieder mal nicht weiter. Ich möchte den zuletzt markierten Knoten im Tree speichern und nach Programmstart diese Markierung wieder herstellen. Bin in der OH nicht fündig geworden. Könnt Ihr mir einen Tip geben, wie ich das anstelle. Danke. Gruß |
Re: TreeView - Auswahl merken, nach ProgStart herstellen
hallo,
identifizierst du die knoten irgendwie eindeutig? Wenn ja, dann speicher doch den wert in einer ini oder ähnlichem und lade den wert dann bei neustart. //edit kannst auch den absoluteindex eines nodes speichern... Gruß Ken |
Re: TreeView - Auswahl merken, nach ProgStart herstellen
hallo CenBells,
ich verwende zur Identifikation des Knotens Node.AbsoluteIndex. Aber wie stelle ich die letzte Auswahl im Tree wieder her? Mit welcher Eigenschaft oder Procedure setze ich die letzte Auswahl? Gruß |
Re: TreeView - Auswahl merken, nach ProgStart herstellen
|
Re: TreeView - Auswahl merken, nach ProgStart herstellen
Zitat:
Und zum Setzen des knotens beim Programmstart: Du musst am besten beim hinzufügen der knoten mitzählen, wieviele bereits hinzugefügt worden sind. Ist der letzte Knoten = deinem geladenen wert, dann setzt du mit
Delphi-Quellcode:
den knoten.
treeview.selected := derletzteKnoten;
Gruß Ken |
Re: TreeView - Auswahl merken, nach ProgStart herstellen
Hallo,
ich glaube ich mach es so wie Ihr beschrieben habt. Aber es funktioniert nicht. Hier mein Code: /DELPHI procedure TfrmHaupt.ProjekteEinlesen; var nc : TTreeNode; ExpandTree : Boolean; begin ExpandTree := True; // TreeView löschen TreeView_Projekte.Items.Clear; // Standardverzeichnis setzen nc := TreeView_Projekte.Items.AddChild(NIL, // 'D:\Programmierung\Delphi\PLS_TOOLS\BIN\Projekte') ; ExtractFilePath (Application.ExeName) + 'PROJEKTE'); nc.ImageIndex := 1; nc.SelectedIndex := 1; //nc.OverlayIndex := 6; TreeView_ProjekteExpanding (Self, nc, ExpandTree); //TreeView_Projekte.Expand (True); TreeView_Projekte.FullExpand; end; procedure TfrmHaupt.FuelleProjektTree(n: TTreeNode); var Path : String; Search : TSearchRec; nc : TTreeNode; begin if n = NIL then Exit; Path := GetDirStr (n); if FindFirst (Path + '*.*', faDirectory, Search) = 0 then repeat if ((Search.attr and fadirectory) = fadirectory) and (Search.name <> '.') and (search.name <> '..') then begin nc := TreeView_Projekte.Items.AddChild (n, Search.Name); nc.ImageIndex := 0; nc.SelectedIndex := 0; if n.AbsoluteIndex = MyTreeAuswahl then begin n.Selected := True; end; end; until FindNext (Search) <> 0; FindClose (Search); // end; procedure TfrmHaupt.TreeView_ProjekteChange(Sender: TObject; Node: TTreeNode); begin // für zuweisung von verzeichnis ProjektVerwaltung.ProjektVerzeichnis := GetDirStr (Node); //Label_PLS_PIC.Caption := KurzVerzeichnis (ProjektVerwaltung.BilderVerzeichnis, 70); Label_PLS_PIC.Caption := ProjektVerwaltung.BilderVerzeichnis; Label_PLS_DAT.Caption := ProjektVerwaltung.DatenVerzeichnis; Label_PLS_EXP.Caption := ProjektVerwaltung.ExportVerzeichnis; Label_PLS_ALY.Caption := ProjektVerwaltung.AnalyseVerzeichnis; MyProjektVerzeichniss := ProjektVerwaltung.ProjektVerzeichnis; ProjektEinstellungen; if DirectoryExists(ProjektVerwaltung.BilderVerzeichni s) then FileListBox1.Directory := ProjektVerwaltung.BilderVerzeichnis; if DirectoryExists(ProjektVerwaltung.AnalyseVerzeichn is) then FileListBox2.Directory := ProjektVerwaltung.AnalyseVerzeichnis; GroupBox_PJ_Struktur.Caption := 'Projekt Struktur [' + node.Text + ']'+ inttostr(node.AbsoluteIndex); Caption := MyProgrammCaption + ' [' + node.Text + ']'; //***** Speichern der letzten Auswahl MyTreeAuswahl := Node.AbsoluteIndex; end; procedure TfrmHaupt.TreeView_ProjekteCollapsed(Sender: TObject; Node: TTreeNode); begin if node.Parent = NIL then Exit; node.SelectedIndex := 0; node.ImageIndex := 0; end; procedure TfrmHaupt.TreeView_ProjekteExpanding(Sender: TObject; Node: TTreeNode; var AllowExpansion: Boolean); begin TreeView_Projekte.Items.BeginUpdate; node.DeleteChildren; FuelleProjektTree (Node); TreeView_Projekte.Items.EndUpdate; if node.Parent = nil then Exit; node.SelectedIndex := 5; node.ImageIndex := 5; end; /DELPHI Könnt Ihr mir sagen, wo ich etwas falsch mache? Danke. Gruß |
Re: TreeView - Auswahl merken, nach ProgStart herstellen
hallo,
benutz doch bitte die delphi tags zur anzeige von delphi-Quellcode. Das wird dann viel übersichtlicher und ist einfacher zu lesen. Und die andere frage ist, was funktioniert denn nicht? //editz ich glaube es müsste eher so lauten
Delphi-Quellcode:
Gruß
if n.AbsoluteIndex = MyTreeAuswahl then begin
n.Selected := True; DeinTreeView.Selected := n; end ken |
Re: TreeView - Auswahl merken, nach ProgStart herstellen
Hallo CenBells,
es wird nicht der zuletzt markierte Knoten ausgewählt. Auch nicht mit Deinem letztm Vorschlag. Ich wollte die Tags nutzen, wahrscheinlich falsch geschrieben. "/DELPHI Hier Code "/DELPHI natürlich ohne Anführungszeichen. Gruß |
Re: TreeView - Auswahl merken, nach ProgStart herstellen
Hallo,
ich habe nun die Lösung. Mit TreeView.Items[Nummer].Selected := True; funktionierts. Danke für Eure Hilfestellung. Bis zum nächsten mal. Gruß |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:01 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz