![]() |
TFileOpenDialog für Dir mit Delphi 7
Hallo zusammen!
Ich such' mir im Netz 'nen Wolf und werd' nicht fündig.:? Für ein altes D7-Projekt muss ich eine Verzeichnis-Auswahl einbauen. Eigentlich ganz einfach, wenn man den Standard-Dialog von D7 nimmt (TSelectDirectory). Da aber kein altes OS mehr läuft, dachte ich, man kann ja TFileOpenDialog mit der Einstellung [..DirOnly oder so] nehmen. Aber den gibt's ja nicht in D7. Alles, was ich gefunden habe, um das mit der API zu machen, hat in den Code-Beispielen nur den Standard-Dialog.:evil: Hat jemand Code oder 'nen Link für D7 + moderner SelectDirectory-Dialog? |
AW: TFileOpenDialog für Dir mit Delphi 7
da wirdst'e wohl im MSDN selbsr suchen müssen
und die APIs nach Delphi portieren. Das sind die neuen Vista-Dialoge, weil es seit da diese API gab und somit D7 es noch nicht kennen kann.
Delphi-Quellcode:
CLSID_FileOpenDialog: TGUID = '{DC1C5A9C-E88A-4dde-A5A1-60F82A20AEF7}'
Delphi-Quellcode:
{ TCustomFileOpenDialog }
function TCustomFileOpenDialog.CreateFileDialog: IFileDialog; var LGuid: TGUID; begin {$IF DEFINED(CLR)} LGuid := Guid.Create(CLSID_FileOpenDialog); {$ELSE} LGuid := CLSID_FileOpenDialog; {$ENDIF} CoCreateInstance(LGuid, nil, CLSCTX_INPROC_SERVER, StringToGUID(SID_IFileOpenDialog), Result); end; function TCustomFileOpenDialog.GetResults: HResult; begin if not (fdoAllowMultiSelect in Options) then Result := inherited GetResults else begin Result := (Dialog as IFileOpenDialog).GetResults(FShellItems); if Succeeded(Result) then Result := GetFileNames(FShellItems); end; end; |
AW: TFileOpenDialog für Dir mit Delphi 7
LMD hat auch entsprechende TOpen/Save-Dialog im Vista-Style für älter Delphi.
Hier musst du aber evtl. eine älteren Stand der Bibliotheken versuchen zu bekommen. Mit der neuesten 2021er Version/Edition unterstützen sie keine Antiken Versione mehr die älter als Delphi XE2 sind. |
AW: TFileOpenDialog für Dir mit Delphi 7
Moin,
@Himitsu: Das hatte ich mir schon gedacht, ich werd' das auf der Basis mal umsetzen. Wenn's zu kompliziert wird, muss die alte Anwendung eben im alten Style bleiben. @Bernhard: Die LMD-Tools sind doch kostenpflichtig, oder? Ich glaub', da bekomm' ich kein Geld für locker gemacht - wäre auch mit Kanonen auf Spatzen schießen... |
AW: TFileOpenDialog für Dir mit Delphi 7
Zitat:
|
AW: TFileOpenDialog für Dir mit Delphi 7
Zeit gegen Geld.
Oben die sehen ja zuerst das Geld, was "jetzt" rausgeht ... ob/was das Andere mit der "Zeit" kosten könnte, ist halt ne andere Sache. |
AW: TFileOpenDialog für Dir mit Delphi 7
Zitat:
![]() |
AW: TFileOpenDialog für Dir mit Delphi 7
Liste der Anhänge anzeigen (Anzahl: 2)
Zitat:
Im Zip fehlt noch ein Package (dpk), das es aber bei mir nicht gibt, weil ich die Komponente selber in einem eigenen Packge mit diversen anderen Komponenten integriert habe. Ein eigenes Package dafür zu ertellen solltest du aber sicher hinkriegen. Die Registrierungs-Unit und das dcr sind ja dabei. |
AW: TFileOpenDialog für Dir mit Delphi 7
Zitat:
Ab Vista ist der Verzeichnis-Auswahldialog gleich dem Datei Öffnen-Dialog und nur über ein Flag wird das verhalten gesteuert. Dein Dialog ist der (Ur-)alte dedizierte Verzeichnis-Auswahldialog. |
AW: TFileOpenDialog für Dir mit Delphi 7
Zitat:
|
AW: TFileOpenDialog für Dir mit Delphi 7
Hast du mir da ein Beispiel einer Anwendung bei der man diesen neuen Dialog in der Praxis sieht? Die obige Komponente kapselt die MS ShellFolder Interfaces und hat mit dem originalen D7 TSelectDirectory überhaupt nichts zu tun. In allen Programmen die ich nutze, erhalte ich immer diesen Dialog, wenn es um die Auswahl eines Verzeichnisses geht. Daher ist das eine ernsthaft gemeinte Frage.
|
AW: TFileOpenDialog für Dir mit Delphi 7
Zitat:
Besser wird es, wenn man noch das Input-Edit einblenden lässt, damit man Pfade eingeben/reinkopieren und direkt auswählen kann, anstatt grauenhaft sich durch den Tree klicken zu müssen. Auch in der Delphi-IDE hatten wir grade erst den Hersteller dazu gebracht diesen Dialog durch den neuen Dialog zu ersetzen. Aktueller Standard: Der FileOpenDialog, welcher aber statt Datei die Auswahl des Verzeichnisses erlaubt. |
AW: TFileOpenDialog für Dir mit Delphi 7
Für was brauchst du denn da eine Editfeld? Dieser Dialog hat doch garkein Eingabefeld, zumindest diese Komponente nicht. Ehrlich gesagt verstehe ich nicht was daran grauenhaft sein soll. Vieleicht ist die grundlegene MS Implementation dieser Komponente grauenhaft, aber an diese Komponente wüsste ich nicht, was da grauenhaft sein soll.
Die Frage steht immer noch im Raum: Wo finde ich eine Anwendung, in der man den "neuen" Dialog sehen kann? EDIT: Habe eben gecheckt, dass Delphi das selber so macht. Aber ehrlich gesagt finde ich des kein Stück besser, im Gegeneteil, da wird mir ein riesigs Fenster angezeigt, das einen Baum als auch einen Fileauswahlbereich hat. Was soll das? Was nützt mir das? Da ziehe ich die ShellBorwser Version mit der einfachen Baumstruktur doch deutlich dieser FileOpen Variante vor. |
AW: TFileOpenDialog für Dir mit Delphi 7
Zitat:
Zitat:
Da gab auch eine Win9x und XP-Style mit Zusatzbutton und Textfeld. |
AW: TFileOpenDialog für Dir mit Delphi 7
Zitat:
Um per Tastatur Verzeichnisnamen/Pfade eingeben zu können, oder eben Copy&Paste eines kompletten Pfades (z.B. aus dem Explorer oder einem anderem Programm), anstatt im Tree zu suchen. Ja, der "neue" Dialog ist größer, aber für die meißten User wesentlich benutzerfreundlicher. Und egal ob Verzeichnis- oder Dateiauswahl, es ist der gleiche Dialog. (einheitliches Design und Bedienung) |
AW: TFileOpenDialog für Dir mit Delphi 7
Zitat:
Ich sehe da nicht wirklich einen Nachteil zur neuen Version und vorallem läfut das in D7 wie er es wollte. |
AW: TFileOpenDialog für Dir mit Delphi 7
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:37 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