Delphi-PRAXiS
Seite 1 von 2  1 2   

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/)
-   -   TFileOpenDialog für Dir mit Delphi 7 (https://www.delphipraxis.net/207756-tfileopendialog-fuer-dir-mit-delphi-7-a.html)

Poelser 29. Apr 2021 13:31

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?

himitsu 29. Apr 2021 14:27

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;

Bernhard Geyer 29. Apr 2021 16:11

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.

Poelser 30. Apr 2021 07:40

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...

Bernhard Geyer 30. Apr 2021 09:26

AW: TFileOpenDialog für Dir mit Delphi 7
 
Zitat:

Zitat von Poelser (Beitrag 1488244)
@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...

Wenn das im Beruflichen Umfeld unterwegs bist, ist selbst machen immer teurer als kaufen.

himitsu 30. Apr 2021 09:48

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.

Frickler 30. Apr 2021 10:03

AW: TFileOpenDialog für Dir mit Delphi 7
 
Zitat:

Zitat von Poelser (Beitrag 1488166)
Hat jemand Code oder 'nen Link für D7 + moderner SelectDirectory-Dialog?

Bei StackOverflow gibts mehrere Beispiele für Delphi 7 und sogar für Delphi 4.

Rolf Frei 30. Apr 2021 13:23

AW: TFileOpenDialog für Dir mit Delphi 7
 
Liste der Anhänge anzeigen (Anzahl: 2)
Zitat:

Zitat von Poelser (Beitrag 1488166)
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?

Habe hier eine Freeware ShellBrowser Komponente angehängt, die ich seit Jahren nutze und die ich selber noch etwas erweitert habe. Die läuft in D7 seit Jahren produktiv in meinen Anwendungen. Das müsste genau das sein was du suchst. Die anderen Posts hier leiten dich leider in die Irre und bringen dich nicht zu dem was du eigentlich suchst. Mit dem Open/Save Dialog hat das nichts zu tun.

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.

Bernhard Geyer 30. Apr 2021 14:08

AW: TFileOpenDialog für Dir mit Delphi 7
 
Zitat:

Habe hier eine Freeware ShellBrowser Komponente angehängt, die ich seit Jahren nutze und die ich selber noch etwas erweitert habe. Die läuft in D7 seit Jahren produktiv in meinen Anwendungen. Das müsste genau das sein was du suchst. Die anderen Posts hier leiten dich leider in die Irre und bringen dich nicht zu dem was du eigentlich suchst. Mit dem Open/Save Dialog hat das nichts zu tun.
Dein Wissenstand ist hier Pre-Vista.
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.

Poelser 30. Apr 2021 14:12

AW: TFileOpenDialog für Dir mit Delphi 7
 
Zitat:

Zitat von Rolf Frei (Beitrag 1488288)
Habe hier eine Freeware ShellBrowser Komponente angehängt, die ich seit Jahren nutze und die ich selber noch etwas erweitert habe. Die läuft in D7 seit Jahren produktiv in meinen Anwendungen. Das müsste genau das sein was du suchst. Die anderen Posts hier leiten dich leider in die Irre und bringen dich nicht zu dem was du eigentlich suchst. Mit dem Open/Save Dialog hat das nichts zu tun.

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.

Ganz großes Danke, das ist genau das was ich gesucht habe. Dafür gibt's auch ein virtuelles Bier :cheers:


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:37 Uhr.
Seite 1 von 2  1 2   

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