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/)
-   -   Delphi ShellTreeView - Ordner selektieren (https://www.delphipraxis.net/115419-shelltreeview-ordner-selektieren.html)

Tassadar2k3 11. Jun 2008 20:54


ShellTreeView - Ordner selektieren
 
Hallo Forum :cheer: (Ich wollte mal irgend ein sinnfreies Smilie benutzen :))

Ich habe auf einem Formular ein ShellTreeView und möchte gerne einen Ordner beim Forum load selektieren / auswählen / markieren, quasi voreinstellen.

Diese beiden Sachen funktionieren schonmal nicht: (Bei Root ist mir das auch klar)
Delphi-Quellcode:
ShellTreeView1.Path
ShellTreeView1.Root
Das komische ist, wenn ich in den Pfad folgendes reinschreibe und mir mit nem MessaDlg ausgebe, steht da immer noch der "Standartpfad" drinne, nämlich der Desktop ...
Delphi-Quellcode:
  strvDirectory.Path := 'C:\Windows';
  MessageDlg(strvDirectory.Path,mtInformation,mbOKCancel,0);
Ergebnis des MessageDlgs -> 'C:\xyz\etc\pp\Desktop'

Jemand ne Idee?

Fussball-Robby 11. Jun 2008 21:02

Re: ShellTreeView - Ordner selektieren
 
Bei mir funktioniert das ohne Probleme, und wenn ich das ShellTreeView danach auch noch als aktives Control setzte, sieht man die Markierung sogar.
Delphi-Quellcode:
  ShellTreeView1.Path := 'C:\Windows';  
  ShowMessage(ShellTreeView1.Path);
  ActiveControl := ShellTreeView1;

SaFu 11. Jun 2008 21:35

Re: ShellTreeView - Ordner selektieren
 
vielleicht so

Delphi-Quellcode:
Path := IncludeTrailingPathDelimiter(Root) + //name vom ordner  
ShellTreeView1.SetFocus;

Tassadar2k3 11. Jun 2008 21:41

Re: ShellTreeView - Ordner selektieren
 
Mit dem ActiveControl war das schonmal nicht schlecht, jetzt markiert er immerhin schonmal etwas - ebend den Desktop ... Aber wie gesagt, obwohl ich den Pfad da reinschreibe, ist immer noch der Standartpfad drin ... :gruebel:

@fuknersascha: Ne geht auch nicht :mrgreen:
Du meinst doch quasi so:
Delphi-Quellcode:
Path := IncludeTrailingPathDelimiter(Root) + '\pics';

SaFu 11. Jun 2008 21:42

Re: ShellTreeView - Ordner selektieren
 
ja wenn der ordner in dem Root enthalten ist und das setfocus nicht vergessen sonst wird nichts makiert

DeddyH 11. Jun 2008 21:45

Re: ShellTreeView - Ordner selektieren
 
Bei
Zitat:

Delphi-Quellcode:
Path := IncludeTrailingPathDelimiter(Root) + '\pics';

ist der Backslash aber zuviel.

Tassadar2k3 11. Jun 2008 21:54

Re: ShellTreeView - Ordner selektieren
 
Da bekomme ich dann folgenden Error:
Zitat:

Undeclared identifier: 'Root'
Verwendeten Code:
Delphi-Quellcode:
  Path := IncludeTrailingPathDelimiter(Root) + 'Testdesktopordner';
  strvDirectory.SetFocus;

SaFu 12. Jun 2008 08:10

Re: ShellTreeView - Ordner selektieren
 
Dann setz deine shelltreeView auf den Pfad in dem der Ordner 'Testdesktopordner' drin ist

Delphi-Quellcode:
pfad:= {Pfad zu dem Ordner} +'Testdesktopordner';
SchellTreeview1.Root:= pfad
Gruß Sascha

Tassadar2k3 12. Jun 2008 08:40

Re: ShellTreeView - Ordner selektieren
 
Liste der Anhänge anzeigen (Anzahl: 1)
Was genau tut Root bei dir @ fuknersascha? Root setzt bei mir nur das "Hauptverzeichnis" um - was ich ja nicht möchte.
Ich möchte folgendes:

Beim load des Formulars soll er im ShellTreeView den Ordner selektieren in dem momentan das Projekt drin steht. Also z.B.:
'C:\Programme\Borland\Projekte\Memory' <- an den Pfad hänge ich dann noch ein '\pics' dran, damit er den gesamten Pfad zu den Bildern hat. Dieser, dann komplette Pfad, soll er markieren / selektieren.

Ich benutze Delphi6 - du ja anscheinend 2007 - liegt es vielleicht da dran, also das wir nicht auf einen Nenner kommen?

Ich habe mal in nem kleinen Screenshot beispielsweise verdeutlicht was ich haben möchte.

Schonmal danke für eure Hilfe (auch beim letzten Thread!) :dp:

SaFu 12. Jun 2008 08:48

Re: ShellTreeView - Ordner selektieren
 
vielleicht so

Delphi-Quellcode:
 pfad:= ExtractFilePath(ParamStr(0)) + 'pics';
 strvDirectory.Root:= pfad

  Path := IncludeTrailingPathDelimiter(Root) + 'pics';
  strvDirectory.SetFocus;


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:48 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