Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   + vorm Ordnere in der ShellTreeView (https://www.delphipraxis.net/96667-vorm-ordnere-der-shelltreeview.html)

SaFu 28. Jul 2007 23:01


+ vorm Ordnere in der ShellTreeView
 
Hi hab mal ne Frage

Bekommt man eigentlich das + zeichen zum öffnen der unterordner irgendwie weg??? ind der ShellTreeview

gruss sascha

bitsetter 28. Jul 2007 23:31

Re: + vorm Ordnere in der ShellTreeView
 
Hi,

meinst du das?
Delphi-Quellcode:
ShellTreeView1.ShowButtons:= false;

SaFu 28. Jul 2007 23:36

Re: + vorm Ordnere in der ShellTreeView
 
genau das wars :spin2:
jetzt hab ich nur das Problem das ich gedacht habe, das ich die unter ordner nicht mehr aufmachen kann, aber das geht ja trotzdem noch per doppelklick auf den ordner,
kann man das auch abschalten das das nicht mehr geht.

bitsetter 29. Jul 2007 00:05

Re: + vorm Ordnere in der ShellTreeView
 
Man könnte noch im onExpanding das Aufklappen verhindern:
Delphi-Quellcode:
procedure TForm1.ShellTreeView1Expanding(Sender: TObject; Node: TTreeNode;
  var AllowExpansion: Boolean);
begin
  if Node <> ShellTreeView1.Items.Item[0] then
    AllowExpansion := false;
end;
Edit: Code geändert, habe noch was besseres gefunden.

SaFu 30. Jul 2007 11:33

Re: + vorm Ordnere in der ShellTreeView
 
Das war genau das was ich gesucht habe

kann mann eigentlich einen Ordner definieren bei dem das gehen soll un bei den anderen so es ganz normal fünktionieren??

nur ne frage das eigentliche problem ist gelöst

Danke

angos 30. Jul 2007 12:05

Re: + vorm Ordnere in der ShellTreeView
 
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;

gruß

mirage228 30. Jul 2007 12:22

Re: + vorm Ordnere in der ShellTreeView
 
Zitat:

Zitat von angos
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;

Lieber so... :shock:
Delphi-Quellcode:
procedure TForm1.TreeViewExpanding(Sender: TObject; Node: TTreeNode;
  var AllowExpansion: Boolean);
begin
  AllowExpansion := Node = TreeView.Items[0];
end;
mfG
mirage228

angos 30. Jul 2007 12:56

Re: + vorm Ordnere in der ShellTreeView
 
jup, hast recht, ist übersichtlicher. Kommt aber aufs gleiche raus.

SaFu 30. Jul 2007 13:28

Re: + vorm Ordnere in der ShellTreeView
 
Und wenn ein weiterer Node zugelassen werden soll

bei mir ist es z.b. so C:\Dokumente und Einstellungen\Ordner1\Ordner2\

da die shellTreeview ja schon den ersten anlegt (Ein Fehler der Komponente???)

bei soll man alles unter dem ordner 2 nicht mehr öffnen können wie erweiter ich dann das Node

bitsetter 30. Jul 2007 14:13

Re: + vorm Ordnere in der ShellTreeView
 
Zitat:

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. :wink:

Zitat:

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\Ordner2' then
        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\Ordner2' then
    AllowExpansion:= Node= TShellTreeView(Sender).Items.Item[0];
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:11 Uhr.
Seite 1 von 2  1 2      

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