AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi shelllistview & shellcombobox Verzeichnis zuweisen
Thema durchsuchen
Ansicht
Themen-Optionen

shelllistview & shellcombobox Verzeichnis zuweisen

Ein Thema von teekay · begonnen am 5. Mär 2005 · letzter Beitrag vom 21. Jun 2007
Antwort Antwort
teekay

Registriert seit: 3. Jun 2004
23 Beiträge
 
Delphi 7 Enterprise
 
#1

shelllistview & shellcombobox Verzeichnis zuweisen

  Alt 5. Mär 2005, 18:11
Hallo

ich habe folgendes Problemchen :
In meinem Programm befindet sich eine ShellListView Komponente und eine ShellComboBox - beim Beenden "merke" ich mir das zuletzt geöffnete Verzeichnis. Beim Neustart des Programms möchte ich nun das alte Verzeichnis wieder öffnen :

ShellComboBox1.Path := DirLast; //wobei DirLast den absoluten Pfad enthält Bsp: 'C:\test\test2\' Die ComboBox ist mit der ShellListView Komponente verknüpft. wenn ich über die Combo ein anderes Verzeichnis (per Maus) auswähle dann aktualisiert sich auch die ShellListView - nur bei der oben genannten Methode wird der Verzeichniswechsel nicht auf das ShellListView vererbt

Wenn ich das ganze mit einer ShellTreeView (anstatt der Combo) versuche - funktioniert es ohne weiteres
ShellTreeView1.Path := DirLast; leider kann ich diese aus Platzgründen nicht verwenden

die Eigenschaften AutoNavigate & AutoRefresh der ShellListView Komponente stehen auf True und das Root Verzeichnis der Komponenten ist jeweils auf "rfDesktop"

Soweit ich weiss kann man der ShelListView Komponente keinen Pfad direkt zuweisen (lediglich auslesen über die Funktion ShellListView1.RootFolder.Pathname)

ich danke euch schonmal im voraus für eure Hilfe

mfG TeeKay


p.s. ich verwende Delphi Enterprise 7.0
  Mit Zitat antworten Zitat
teekay

Registriert seit: 3. Jun 2004
23 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: shelllistview & shellcombobox Verzeichnis zuweisen

  Alt 7. Mär 2005, 13:25
Ich habe nochmal darüber nachgedacht

die HOLZHAMMER-METHODE wäre die TreeView Komponente auf dem Form zu belassen mit dem ShellListView zu verknüpfen und dann auf TreeView.visible := false; zu setzen

dann könnte ich beim Start Das Verzeichnis zuweisen, jedoch gefällt mir diese Lösung gar nicht...

also wenn noch jemanden ws einfällt - bin ich für alle vorschläge offen

mfg TeeKay
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#3

Re: shelllistview & shellcombobox Verzeichnis zuweisen

  Alt 20. Apr 2007, 11:50
Hallo,
ich habe jetzt auch das Problem. Hat dafür jemand eine Lösung gefunden? Dem ShellListview kann man ja leider keinen Ordner als Startverzeichnis zuweisen.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von mirage228
mirage228

Registriert seit: 23. Mär 2003
Ort: Münster
3.750 Beiträge
 
Delphi 2010 Professional
 
#4

Re: shelllistview & shellcombobox Verzeichnis zuweisen

  Alt 20. Apr 2007, 11:56
Ähh... wie wärs mit
ShellListView1.Root := DirLast; ?
Aktualisiert bei mir auch die ShellComboBox...
Edit: Allerdings wird auch der Root der ComboBox geändert sehe ich gerade ...

mfG
mirage228
David F.

May the source be with you, stranger.
PHP Inspection Unit (Delphi-Unit zum Analysieren von PHP Code)
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#5

Re: shelllistview & shellcombobox Verzeichnis zuweisen

  Alt 20. Apr 2007, 12:01
Dann kann ich nur leider nicht über das Verzeichnis DirLast hinausnavigieren, da dies ja dann der Root für den ShellListview ist. Und das ist ja nicht Sinn der Sache. Ich will nur ein Startverzeichnis setzen.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#6

Re: shelllistview & shellcombobox Verzeichnis zuweisen

  Alt 20. Apr 2007, 13:20
Ich hatte das Problem auch mal (mit meinem SmallFTP) und habe es damals so gelöst, dass ich folgende Kompo abgeleitet habe:
Delphi-Quellcode:
TShellcomboBox1 = class(TShellComboBox)
  public
    procedure Change; override;
  end;
Wie man sieht, wird die Sichbarkeit von "Change" von protected auf public verändert. Nun kann man mittels
Delphi-Quellcode:
ShellComboBox1.Path := StartDir;
      ShellComboBox1.Change;
Einen Pfad festlegen

Ich weiß auch nicht, was sich die Entwickler da gedacht haben ... aber mit diesem Workaround funktioniert es, weil in der Change Methode die List und Treeview geupdated werden.

imho muss man die Shellcontrols ableiten und ein bisschen an ihnen rumfummeln, dmit man sie verwenden kann ...
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#7

Re: shelllistview & shellcombobox Verzeichnis zuweisen

  Alt 20. Apr 2007, 13:30
Puh, nur wegen diesem einem feature eine ganze Kompo neu ableiten, compilieren ud Installieren? Ganz schöner Overkill. Die Alernative ist aber auch nicht schöne: Von Hand im OnCreate erstellen.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von mirage228
mirage228

Registriert seit: 23. Mär 2003
Ort: Münster
3.750 Beiträge
 
Delphi 2010 Professional
 
#8

Re: shelllistview & shellcombobox Verzeichnis zuweisen

  Alt 20. Apr 2007, 13:42
Also ich hatte auch diverse Probleme mit den TShell* Komponenten. Ich bin deshalb auf VirtualExplorer Komponenten von http://www.mustangpeak.net/ gewechselt, diese basieren auf dem VirtualTreeView von Mike Lische (http://www.delphi-gems.com) und mit denen habe ich zweifelsohne weniger Stress und bessere Erfahrungen gemacht, als mit den TShell* Komponenten.
Vielleicht lohnt sich ja ein Umstieg für dich

mfG
mirage228
David F.

May the source be with you, stranger.
PHP Inspection Unit (Delphi-Unit zum Analysieren von PHP Code)
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#9

Re: shelllistview & shellcombobox Verzeichnis zuweisen

  Alt 20. Apr 2007, 13:51
Da muss ich ja noch eine ganzen Rattenschwanz von anderen Komponenten installieren. Und wie sieht es mit der Lizenz aus? Ich brauche das für ein kommerzielles Projekt. Und mein Chef ist auch nicht begeistert, wenn man tausend Fremdkomponenten einsetzt. Er hat gerade wieder einen halben Tag gebraucht, um ein altes Projekt wegen der vielen Fremdkomponeten zum Laufen zu bringen.

Ich habe es jetzt so gemacht, dass ich die ShellComboBox zur Laufzeit erstelle:
Delphi-Quellcode:
type
  TShellcomboBoxEx = class(TShellComboBox)
  public
    procedure Change; override;
  end;

// [..]

procedure TfrmLoadTemplate.FormCreate(Sender: TObject);
begin
  ShellComboBox1 := TShellComboBoxEx.Create(Self);
  with ShellComboBox1 do
  begin
    Name := 'ShellComboBox1';
    Parent := Self;
    Left := 74;
    Top := 3;
    Width := 343;
    Height := 22;
    Root := 'rfMyComputer';
    ShellListView := ShellListView1;
    UseShellImages := True;
    TabOrder := 0;
  end;
end;
Leider bekomme ich eine AccessViolation in Zeile 20, wenn der Root-Folder zugewiesen werden soll. Ich schätze mal, da fehlt irgendeine Initialisierung. Nur welche?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
bennle

Registriert seit: 22. Jul 2005
Ort: Kehl
139 Beiträge
 
Delphi 2007 Professional
 
#10

Re: shelllistview & shellcombobox Verzeichnis zuweisen

  Alt 21. Jun 2007, 21:19
Hmm was ist dabei herausgekommen?
Ich stehe genau vor dem selben Problem!
Gruß
Benny
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:01 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