Delphi-PRAXiS

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;

Tassadar2k3 12. Jun 2008 15:38

Re: ShellTreeView - Ordner selektieren
 
Kann es sein das bei Root noch der Name des ShellTreeViews vorkommt? Sprich:

Delphi-Quellcode:
pfad:= ExtractFilePath(ParamStr(0)) + 'pics';
strvDirectory.Root:= pfad
Path := IncludeTrailingPathDelimiter([b]ShellTreeView.Root[/b]) + 'pics';
strvDirectory.SetFocus;
Wenn ich es nämlich so machen würde, wie du es geschrieben hattest würde ich wieder den folgenden Fehler bekommen:
Zitat:

Undeclared identifier: 'Root'
Wenn ich das 'Root' durch 'ShellTreeView.Root' ersetze bekomme ich immer noch nen Fehler:
Zitat:

Cannot focus a disabled or invisible window
Ich versteh das nicht ... Ich meine, dass kann doch wahrlich nicht so schwer sein da ne einfache Auswahl zu machen, oder?

hsbc 12. Jun 2008 17:51

Re: ShellTreeView - Ordner selektieren
 
Hallo,

vielleicht so:

ShellTreeView1.Path := IncludeTrailingPathDelimiter(Dein_Verzeichnis);
ShellTreeView1.Selected.MakeVisible;

mfg
Herbert

Tassadar2k3 12. Jun 2008 20:19

Re: ShellTreeView - Ordner selektieren
 
Klappt auch nicht ... Er überschreibt den Path ja auch nicht, d.h. es steht immer noch der Pfad zum Desktop drin.
Ich habe jetzt einfach mal versucht nen Ordner aufem Desktop zu selektieren, was aber auch nicht klappt. :wall:

Werd mal noch nen bischen rumprobieren ... :coder2:

Die Muhkuh 12. Jun 2008 20:53

Re: ShellTreeView - Ordner selektieren
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hi,

schau mal bitte, ob das angehängte funktioniert.

Einfach auf Button1 klicken, danach wird das, was im Edit oben steht, ausgewählt (zu Testzwecken mit C:\Windows vorbelegt) und zu guter letzt kommt eine Messagebox mit dem ShellTreeView.Path.

smallsmoker 12. Jun 2008 21:24

Re: ShellTreeView - Ordner selektieren
 
ja klappt :)

€: aber ist es gewollt das dateien nicht angezeigt werden ? (dadurch kann man manche ordner expanden in denen "nix" ausser dateien drinne ist (die ja ausgeblendet werden)

mfg smallsmoker

Tassadar2k3 12. Jun 2008 23:31

Re: ShellTreeView - Ordner selektieren
 
Zitat:

Zitat von Die Muhkuh
Hi,

schau mal bitte, ob das angehängte funktioniert.

Super - das funzt! :thumb:

Darf man fragen, wie du das nun bewerkstelligt hast?

Die Muhkuh 13. Jun 2008 12:39

Re: ShellTreeView - Ordner selektieren
 
Im Endeffekt ist es nur das:

Delphi-Quellcode:
  stv.Path := edit1.Text;
  stv.SetFocus;
  ShowMessage(stv.Path);
stv ist hierbei ein TShellTreeView.

Nixsager 7. Mär 2019 15:17

AW: ShellTreeView - Ordner selektieren
 
Ich habe eine Zusatzfrage.

Wenn man ein Berzeichnis angibt, kann es sein das das ausgewählte Verzeichnis nicht in dem sichbare Bereich angzeigt wird.

Wie lässt sich das Verzeichnis anzeigen.

Ich habe mit
Delphi-Quellcode:
ShellTreeView.AlphaSort(False)
gemacht, gibt es eine bessere Möglichkeit?


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