Hallo!
Ich frage schon wieder etwas! Ich habe ein ShellTreeView und mehrere Buttons für die Laufwerke. Nehmen wir an, ich habe Laufwerk D: im ShellTreeView. Nun doppelklicke ich auf einen Ordnernamen im ShellTreeView, sagen wir, "Inno Setup4", und dann auf "Examples".
Der Ordnername "Examples" wird in einer Variablen gespeichert. Dann wechsle ich das Laufwerk, das ShellTreeView zeigt nun die Ordner dieses anderen Laufwerks. Nun wechsle ich zu D: zurück und möchte, dass das ShellTreeView zum zuvor gesicherten Ordner springt, also dass es "Inno Setup4\Examples" markiert und auch öffnet. Bisher habe ich das:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22:
| procedure TForm1.ShellTreeView1DblClick(Sender: TObject); begin OldDir := ShellTreeView1.Selected.Text; SetLabel1Caption(Sender); end;
procedure TForm1.SetLabel1Caption(Sender: TObject); var CurItem: TTreeNode; begin if not (OldDir = '') then try CurItem := ShellTreeView1.Items.GetFirstNode; while CurItem <> nil do begin CurItem := CurItem.GetNext; if CurItem.Text = OldDir then break; end; ShellTreeView1.Selected := CurItem; except ; end end; |
Das klappt aber nur, wenn es sich um "Inno Setup4" handelt, bei dem darin enthaltenen Ordner "Examples" klappt es nicht. Anders gesagt: Es werden nur Ordner mit Level 1 gefunden. Ich möchte aber zu jedem Ordner zurückspringen können, egal, wie tief er verschachtelt ist. Mit Items-zählen würde es vielleicht gehen, aber das dauert.
Also - was könnte ich hier besser oder richtig machen?
gedunstig war's - und fahle wornen zerschellten karsig im gestrock. oh graus, es gloomt der jabberwock - und die graisligen gulpen nurmen!