Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi SHBrowseForFolder mit "Neuer Ordner" (https://www.delphipraxis.net/64319-shbrowseforfolder-mit-neuer-ordner.html)

Baeuerle 2. Mär 2006 07:47


SHBrowseForFolder mit "Neuer Ordner"
 
Hallo,

ich möchte den Anwender einen Ordner auswählen bzw. neu anlegen lassen. Ich benutze hierzu
Delphi-Quellcode:
SHBrowseForFolder()
.

Mit dem Parameter
Delphi-Quellcode:
BIF_NEWDIALOGSTYLE
kann der Anwender auch einen neuen Ordner Anlegen doch unter Win98 geht dies leider nicht!!!!

Wie kann ich SHBrowseForFolder so konfigurieren, dass dies unter jedem Win32 OS funktioniert???

Danke Baeuerle

Luckie 2. Mär 2006 07:54

Re: SHBrowseForFolder mit "Neuer Ordner"
 
Im PSDK steht als minimum DLL shell32.dll 4.0. Welche Version ist denn auf dem Windows 98 Rechner vorhanden? Ansonsten guck selber noch mal: MSDN-Library durchsuchenSHBrowseForFolder.

Baeuerle 2. Mär 2006 08:00

Re: SHBrowseForFolder mit "Neuer Ordner"
 
Von der Versionsnummer der shell32.dll sollte es gehen !

Version: 4.72.3612.1700

Leider funktioniert es aber nicht!

EDIT:

Ok, ist klar warum.

SHBrowseForFolder Minimum version = 4

Für einzelne Parameter von TBrowseInfo benötigt man höhere Versionen

z.B. BIF_NEWSTYLE minimum Verion = 5 !!!


ABER, wie kann ich das Problem jetzt lösen, ohne die dll zu haben?

Kann ich in den Dialog direkt ein Button hinzufügen ????

Daniel 2. Mär 2006 08:05

Re: SHBrowseForFolder mit "Neuer Ordner"
 
In der Doku zu der Struktur stehts:

BIF_NEWDIALOGSTYLE
Version 5.0. Use the new user interface. Setting this flag provides the user with a larger dialog box that can be resized. The dialog box has several new capabilities including: drag-and-drop capability within the dialog box, reordering, shortcut menus, new folders, delete, and other shortcut menu commands. To use this flag, you must call OleInitialize or CoInitialize before calling SHBrowseForFolder.


Quelle: http://msdn.microsoft.com/library/de...browseinfo.asp

Geht also erst ab Version 5 der DLL und "OleInitialize" bzw "CoInitialize" musst Du vorher auch noch aufrufen. Stellt sich die Frtage, ob es diese Version 5 überhaupt für Win9x gab oder gibt. Es scheint darauf hinauszulaufen, dass Du dies zur Laufzeit prüfen musst, wenn Dir diese Funktion wichtig ist.

Luckie 2. Mär 2006 08:15

Re: SHBrowseForFolder mit "Neuer Ordner"
 
Wenn du Glück hast gehört die shell32.dll zu den Redistributables, also zu den DLLs von Microsoft die du selber ausliefern darfst. Ansonsten mal guck mal, ob die irgendwie mit dem IE zusammenhängt.

MathiasSimmack 2. Mär 2006 08:16

Re: SHBrowseForFolder mit "Neuer Ordner"
 
Eine Version 5 der "shell32.dll" für Windows-Versionen < 2000 gab und gibt es nicht. Eine Prüfung dürfte aber entfallen, weil die Funktion unbekannte Flags einfach ignoriert. Zumindest sind bisher bei unserer Hier im Forum suchenTFolderBrowser-[df="TFolderBrowser"]Klasse[/df] noch keine Klagen diesbezüglich gekommen. :stupid:

Baeuerle 2. Mär 2006 09:14

Re: SHBrowseForFolder mit "Neuer Ordner"
 
@Luckie

Wo kann ich die "Redistributables" nachlesen? Ich finde bei der MSDN nichts.


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