AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi TreeView - Auswahl merken, nach ProgStart herstellen
Thema durchsuchen
Ansicht
Themen-Optionen

TreeView - Auswahl merken, nach ProgStart herstellen

Ein Thema von BiBi · begonnen am 15. Mär 2004 · letzter Beitrag vom 15. Mär 2004
Antwort Antwort
Benutzerbild von BiBi
BiBi

Registriert seit: 30. Dez 2003
Ort: Regensburg
25 Beiträge
 
Delphi 7 Professional
 
#1

TreeView - Auswahl merken, nach ProgStart herstellen

  Alt 15. Mär 2004, 11:38
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ß
----
BiBi
  Mit Zitat antworten Zitat
Benutzerbild von CenBells
CenBells

Registriert seit: 30. Mär 2003
Ort: Kiel urspr. Lübeck
176 Beiträge
 
Delphi 7 Professional
 
#2

Re: TreeView - Auswahl merken, nach ProgStart herstellen

  Alt 15. Mär 2004, 11:52
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
  Mit Zitat antworten Zitat
Benutzerbild von BiBi
BiBi

Registriert seit: 30. Dez 2003
Ort: Regensburg
25 Beiträge
 
Delphi 7 Professional
 
#3

Re: TreeView - Auswahl merken, nach ProgStart herstellen

  Alt 15. Mär 2004, 12:00
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ß
----
BiBi
  Mit Zitat antworten Zitat
Chewie

Registriert seit: 10. Jun 2002
Ort: Deidesheim
2.886 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: TreeView - Auswahl merken, nach ProgStart herstellen

  Alt 15. Mär 2004, 12:02
Du musst den Wert irgendwo speichern, z.B. in einer Hier im Forum suchenINI-Datei oder in der Hier im Forum suchenRegistry. Zum Programmstart liest du diesen Wert aus und setzt die Property Selected.
Martin Leim
Egal wie dumm man selbst ist, es gibt immer andere, die noch dümmer sind
  Mit Zitat antworten Zitat
Benutzerbild von CenBells
CenBells

Registriert seit: 30. Mär 2003
Ort: Kiel urspr. Lübeck
176 Beiträge
 
Delphi 7 Professional
 
#5

Re: TreeView - Auswahl merken, nach ProgStart herstellen

  Alt 15. Mär 2004, 12:06
Zitat von Chewie:
Du musst den Wert irgendwo speichern, z.B. in einer Hier im Forum suchenINI-Datei oder in der Hier im Forum suchenRegistry. Zum Programmstart liest du diesen Wert aus und setzt die Property Selected.
hab ich doch oben schon geschrieben....

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 treeview.selected := derletzteKnoten; den knoten.

Gruß
Ken
  Mit Zitat antworten Zitat
Benutzerbild von BiBi
BiBi

Registriert seit: 30. Dez 2003
Ort: Regensburg
25 Beiträge
 
Delphi 7 Professional
 
#6

Re: TreeView - Auswahl merken, nach ProgStart herstellen

  Alt 15. Mär 2004, 12:35
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ß
----
BiBi
  Mit Zitat antworten Zitat
Benutzerbild von CenBells
CenBells

Registriert seit: 30. Mär 2003
Ort: Kiel urspr. Lübeck
176 Beiträge
 
Delphi 7 Professional
 
#7

Re: TreeView - Auswahl merken, nach ProgStart herstellen

  Alt 15. Mär 2004, 12:39
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:
if n.AbsoluteIndex = MyTreeAuswahl then begin
  n.Selected := True;
  DeinTreeView.Selected := n;
end
Gruß
ken
  Mit Zitat antworten Zitat
Benutzerbild von BiBi
BiBi

Registriert seit: 30. Dez 2003
Ort: Regensburg
25 Beiträge
 
Delphi 7 Professional
 
#8

Re: TreeView - Auswahl merken, nach ProgStart herstellen

  Alt 15. Mär 2004, 13:30
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ß
----
BiBi
  Mit Zitat antworten Zitat
Benutzerbild von BiBi
BiBi

Registriert seit: 30. Dez 2003
Ort: Regensburg
25 Beiträge
 
Delphi 7 Professional
 
#9

Re: TreeView - Auswahl merken, nach ProgStart herstellen

  Alt 15. Mär 2004, 15:27
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ß
----
BiBi
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:31 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz