Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi TShellListView Pfad setzen (https://www.delphipraxis.net/97759-tshelllistview-pfad-setzen.html)

argonix 15. Aug 2007 20:43


TShellListView Pfad setzen
 
Hallo!
Nach mehreren erfolglosen Versuchen eine Lösung zu finden, meine Frage:
Wie kann ich (Wenn ich den Pfad als String habe) mit dem ShellListView zu diesem Ort navigieren?
(Vielleicht übersehe ich da was wichtiges oder habe noch keinen richtigen Ansatz gefunden, aber ich suche schon 2 Tage nach einer Möglichkeit und finde einfach nichts sinnvolles :wall:)

scrat1979 15. Aug 2007 21:07

Re: TShellListView Pfad setzen
 
Hallo!

Habe leider kein Delphi zur Hand und daher keine Möglichkeit es zu testen. Ich kann mich aber daran erinnern, daß ich dieses Problem auch mal hatte und nicht lösen konnte. Ich meine, daß ich mich daher für folgende Komponente entschieden habe: link. Eventuell ist dies einen Versuch wert, falls Du nicht zum Ergebnis kommen solltest.

SCRaT

argonix 16. Aug 2007 15:52

Re: TShellListView Pfad setzen
 
Ich benutze diese Komponenten auch, habe da aber auch keine Möglichkeit gefunden. Wie geht das? Das muss ja irgendwie möglich sein!

argonix 17. Aug 2007 21:15

Re: TShellListView Pfad setzen
 
Geht das wirklich nicht? Ich habe schon einige andere Komponenten ausprobiert, aber es ist überall das gleiche Problem!

Blackheart 17. Aug 2007 21:48

Re: TShellListView Pfad setzen
 
Delphi-Quellcode:
Shelllistview1.Root:='Dein Pfad';

argonix 17. Aug 2007 22:03

Re: TShellListView Pfad setzen
 
Zitat:

[Fehler] fileman.pas(165): E2010 Inkompatible Typen: 'TShellNode' und 'string'
Das geht so (leider) nicht. Kann man vielleicht den String in eine TShellNode packen? Bei mir hat das bis jetzt nicht funktioniert.

Blackheart 17. Aug 2007 22:54

Re: TShellListView Pfad setzen
 
Bei Mir funktioniert das , Du musst einen Absoluten Pfad angeben.

scrat1979 17. Aug 2007 23:13

Re: TShellListView Pfad setzen
 
Also mit den Shell-Komponenten von JamSoftware geht das 100%ig, die kosten allerdings auch Geld. Sollte das egal sein, würde ich Dir diese empfehlen. Hatte damit auch mal ein Projekt gemacht.

SCRaT

argonix 19. Aug 2007 22:00

Re: TShellListView Pfad setzen
 
Gibt es da keine kostenlose Möglichkeit? Irgendeinen WinAPI-Befehl, den ich übersehen habe? Denn die JamSoftware- Komponenten kriegen das ja auch hin.

jfheins 19. Aug 2007 23:03

Re: TShellListView Pfad setzen
 
Ich weis nicht, aber die (ofensichtliche) Möglichkeit wäre doch:
Delphi-Quellcode:
ShellListView1.Root := 'C:\';
Oder zur not eine ShellCombobox mit drauf und dann so: http://www.delphipraxis.net/internal...=711900#711900 ;)

Oder du ruft die private Funktion procedure SetPathFromID(ID: PItemIDList); auf :stupid:

argonix 20. Aug 2007 21:09

Re: TShellListView Pfad setzen
 
Und wie bekomme ich diese ID?

jfheins 26. Aug 2007 15:54

Re: TShellListView Pfad setzen
 
Die ID ist eine Eigensachaft von TShellFolder, aber der Haken (war mehr ein Witz) ist, dass die Funktion private ist - du kannst sie also nicht aufrufen ;)
(Die ShellControls sind imho nur sehr ... eingeschränkt verwendbar ;) )

argonix 29. Aug 2007 18:35

Re: TShellListView Pfad setzen
 
:wall: :wiejetzt: Das funktioniert ALLES nicht. Viellicht kann ich das so einstellen, dass das Programm im Startordner immer den des neuen Namens sucht und öffnet. Dann wieder den Nächsten und immer weiter. Das würde allerdings dann länger dauern...

marabu 29. Aug 2007 20:20

Re: TShellListView Pfad setzen
 
Hallo,

es funktioniert zumindest in Delphi 7 so, wie es Blackheart in Beitrag #5 geschrieben hat. Ich empfehle dir ein neues Leerprojekt aufzumachen, eine ShellListView darauf zu ziehen und im OnCreate() der Form die Root-Eigenschaft auf einen absoluten Pfadnamen zu setzen.

Delphi-Quellcode:
procedure TDemoForm.FormCreate(Sender: TObject);
begin
  with ShellListView do
    Root := 'C:\Windows\System32';
end;
Grüße vom marabu

Blackheart 29. Aug 2007 20:48

Re: TShellListView Pfad setzen
 
Zitat:

Zitat von argonix
:wall: :wiejetzt: Das funktioniert ALLES nicht. Viellicht kann ich das so einstellen, dass das Programm im Startordner immer den des neuen Namens sucht und öffnet. Dann wieder den Nächsten und immer weiter. Das würde allerdings dann länger dauern...

Ich schätze mal das argonix noch etwas anderes vor hat als den Startordner vorzugeben, vieleicht könntest Du mal dein Vorhaben näher erläutern.
Vieleicht wird man dann daraus schlauer.

dominikkv 29. Aug 2007 20:52

Re: TShellListView Pfad setzen
 
Vllt wären die Raize Components eine alternative...
Dort gibts die TRzShellTree, TRzShellList und TRzShellCombo die eigendlich sehr leicht zu bedienen sind :cyclops:

argonix 30. Aug 2007 21:35

Re: TShellListView Pfad setzen
 
Für das Flion-Desktop Projekt, dass ich erstelle, benötige ich einen Dateimanager. Ziel dieses Projektes ist es, einen kompletten Ersatz für den Windows Explorer zu schaffen, also auch einen neuen Desktop zu erstellen. Mit der Programmierung der Shell komme ich gut klar und ich hätte echt nicht gedacht, das ausgerechnet der Dateimanager so ein Problem ist. Um auf den Punkt zu kommen: Der Dateimanager soll:

1. Mit dem zu öffnenden Pfad als Parameter ausgeführt werden können (und diesen auch dann anzeigen)
2. Einen "Zurück"- Button enthalten. (Der Button navigiert zum zuvor angezeigten Verzeichnis)

Dafür muss ich den Pfad setzen können. Ich benutze diese Komponenten zu Anzeige.

@dominikkv: Ich shaue mir die Komponenten mal an
[edit] Diese Komponenten kosten auch Geld. Wenn es keine andere Möglichkeit gibt, könnte ich versuchen, das Ganze (zumindest teilweise) mit Spenden für mein Programm zu bezahlen. Was kostenloses wäre mir natürlich viiiel lieber. [/edit]

olee 31. Jul 2008 22:26

Re: TShellListView Pfad setzen
 
ShellListView1.ShellTreeView.Path ?

wie wärs damit?

EDIT: Hat sich erledigt funktioniert nicht

extrem 1. Aug 2008 07:57

Re: TShellListView Pfad setzen
 
Zitat:

Zitat von argonix
[edit] Diese Komponenten kosten auch Geld. Wenn es keine andere Möglichkeit gibt, könnte ich versuchen, das Ganze (zumindest teilweise) mit Spenden für mein Programm zu bezahlen. Was kostenloses wäre mir natürlich viiiel lieber. [/edit]

Hast du dir schon mal die "Virtual Shell Tools" von http://www.mustangpeak.net/ angesehen?
Holliefiler 0.8.3 - ein Freeware-Dateimanager

[edit]Der Thread ist ja schon ganz schön alt. :cyclops: [/edit]

toms 1. Aug 2008 08:34

Re: TShellListView Pfad setzen
 
Zitat:

Zitat von Blackheart
Delphi-Quellcode:
Shelllistview1.Root:='Dein Pfad';

Getestet und funktioniert unter D6 / D2007 (XP Sp2)


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:57 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz