Einzelnen Beitrag anzeigen

Benutzerbild von bitsetter
bitsetter

Registriert seit: 17. Jan 2007
1.169 Beiträge
 
Turbo Delphi für Win32
 
#10

Re: + vorm Ordnere in der ShellTreeView

  Alt 30. Jul 2007, 14:13
Zitat von angos:
Hi,

ja das ist möglich in dem du das Event von oben noch ein bisschen änderst. Folgender Code lässt das expanden nur bei dem ersten Node zu

Delphi-Quellcode:
procedure TForm1.TreeViewExpanding(Sender: TObject; Node: TTreeNode;
  var AllowExpansion: Boolean);
begin
  if Node = TreeView.Items[0] then
    AllowExpansion := True
  else
    AllowExpansion := False;
end;
Hallo,

genau das gleiche machte mein Code übrigens auch.

Zitat von fuknersascha:
Und wenn ein weiterer Node zugelassen werden soll

bei mir ist es z.b. so C:\Dokumente und Einstellungen\Ordner1\Ordner2\
Delphi-Quellcode:
procedure TForm1.ShellTreeView1Expanding(Sender: TObject; Node: TTreeNode;
  var AllowExpansion: Boolean);
var
  i: integer;
begin
  for i := 0 to TShellTreeView(Sender).Items.Count - 1 do
    if TShellTreeView(Sender).Items.Item[i]= Node then
      if TShellTreeView(Sender).Folders[i].PathName= 'C:\Dokumente und Einstellungen\Ordner1\Ordner2then
        exit;
 AllowExpansion:= Node= TShellTreeView(Sender).Items.Item[0];
end;
Jetzt werden vom ersten Ordner die Unterordner angezeigt und gegeben falls auch vom Ordner 'C:\Dokumente und Einstellungen\Ordner1\Ordner2'. Eventuell muss man noch die Groß- und Kleinschreibung des Pfades beachten. Kann natürlich sein, dass es da noch was besseres gibt.

EDIT: habe jetzt doch noch eine einfachere Möglichkeit gefunden:
Delphi-Quellcode:
procedure TForm1.ShellTreeView1Expanding(Sender: TObject; Node: TTreeNode;
  var AllowExpansion: Boolean);
begin
  if TShellTreeView(Sender).Folders[Node.AbsoluteIndex].PathName <> 'C:\Dokumente und Einstellungen\Ordner1\Ordner2then
    AllowExpansion:= Node= TShellTreeView(Sender).Items.Item[0];
end;
Gruß bitsetter
"Viele Wege führen nach Rom"
Wolfgang Mocker (geb. 1954), dt. Satiriker und Aphoristiker
  Mit Zitat antworten Zitat