![]() |
Browseforfolder und Delphi 2007
Hi,
ich kämpfe gerade mit SHBrowseForFolder und Delphi 20007 herum. Wenn ich BIF_NEWDIALOGSTYLE setze und das Programm aufrufe, danach SHBrowseForFolder aufrufe ist bis hierhin alles wunderbar : Dialog wird angezeigt. Dann schließe ich den Dialog und schließe das Programm. Doch jetzt kommt das Problem : Im Task Manager bleibt noch der Process der Applikation vorhanden. In der IDE wird das Pogram nicht beendet. Betriebssystem ist XP SP3. Hat jemand schon mal das Problem gehabt ? Viele Grüße und schöne Ostern Gargano |
Re: Browseforfolder und Delphi 2007
Ist das auch der Fall, wenn du den Dialog nicht öffnest? Oder leigt es an dem Code, der ausgeführt wird, nach dem der Dialog mit OK geschlossen wurde? Passiert das auch, wenn der Dialog abgebrochen wurde? Weil, dass es am Dialog liegt, kann ich mir nicht vorstellen.
|
Re: Browseforfolder und Delphi 2007
Hallo Luckie,
Das passiert immer dann wenn SHBrowseForFolder mit BIF_NEWDIALOGSTYLE aufgerufen wird, egal ob ich abbreche oder OK drücke. Passiert auch bei Delphi 6. Das Lustige ist, unter Vista wird er alte Style angezeigt, aber das nur am Rande. Gruß Werner |
Re: Browseforfolder und Delphi 2007
Häng mal ein Demoprogramm mit Quellcode an. Ich will mal testen, ob das auch auf meinem System passiert.
|
Re: Browseforfolder und Delphi 2007
Liste der Anhänge anzeigen (Anzahl: 1)
OK, Zip hängt dran.
Jetzt habe ich das ganze nochmal in der VMWare getestet, dort ist XP mit SP2 und dort wird der alte DialogStyle angezeigt, mit dem Ergebnis, das es geht. Also nur bei dem neuen Style tritt der Effekt auf. Gruß Gargano |
Re: Browseforfolder und Delphi 2007
So, jetzt hab ichs:
Wenn pidlRoot = nil ist, dann geht das ganze nicht. Mit
Delphi-Quellcode:
und if (not SUCCEEDED(SHGetSpecialFolderLocation(GetActiveWindow, CSIDL_DRIVES, pidlPrograms))) then exit;
Delphi-Quellcode:
Funktioniert es.
pidlRoot:=pidlPrograms;
Gruß und schöne Ostern Gargano |
Re: Browseforfolder und Delphi 2007
Da hat MS geschlampt. Wenn pidlRoot nil ist, müsste die Funktion einen default Wt nehmen. Zumindest hätte ich es so gemacht.
|
Re: Browseforfolder und Delphi 2007
War noch nicht der Weisheit letzter Schluß, weil damit die Folder eingeschränkt werden.
Nach einigen Suchen, meine ich daß ich die Lösung hätte : Schuld ist der CoInitialize(nil) der als internen Parameter COINIT_APARTMENTTHREADED hat. verwendet man den
Delphi-Quellcode:
dann gehts es.
CoInitializeEx(nil,COINIT_MULTITHREADED);
Gruß Gargano [edit=mkinzler]Delphi-Tag eingefügt Mfg, mkinzler[/edit] |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:31 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-2025 by Thomas Breitkreuz