Einzelnen Beitrag anzeigen

TurboMagic

Registriert seit: 28. Feb 2016
Ort: Nordost Baden-Württemberg
2.942 Beiträge
 
Delphi 12 Athens
 
#1

Wie bei Änderung des Formats den Ordner wechseln?

  Alt 4. Mai 2021, 11:11
Hallo,

gegeben ist D10.3.3 und eine Action mit einem TOpenDialog.
Wenn der Benutzer auf einen bestimmten Dateityp wechselt soll im
OpenDialogTypeChange Event der Ordner, den der OpenDialog anzeigt
geändert werden.

In einer alten C++ buolder Zeitschrift hatte ich einen Lösungsansatz
gefunden den ich wie folgt nach Delphi portiert hatte, der aber nicht
mehr zu funktionieren scheint.

Delphi-Quellcode:
procedure ChangeDialogFolder(Dialog:TOpenDialog; NewPath: string);
var
  DlgHandle : HWND;
  EdtHandle : HWND;
  OkBtnHandle : HWND;

  OldPathLength : Integer;
  OldPath : string;
begin
  DlgHandle := GetParent(Dialog.Handle);
  EdtHandle := GetDlgItem(DlgHandle, edt1);

  OldPathLength := GetWindowTextLength(EdtHandle);
  SetLength(OldPath, OldPathLength);

  GetWindowText(EdtHandle, PWideChar(OldPath), OldPathLength + 1);
  OldPath := PWideChar(OldPath);

  SetWindowText(EdtHandle, NewPath);

  OkBtnHandle := GetDlgItem(DlgHandle, IDOK);
  SendMessage(OkBtnHandle, BM_CLICK, 0, 0);
  SetWindowText(EdtHandle, OldPath);
end;
Leider ist EdtHandle immer 0 und auch wenn ich das auf cmb1 ändere (also Combobox
weil anders als früher nur noch eine Combo Box auf dem Dialog da ist) ist's auch 0.

Gibt es irgend eine andere Möglichkeit den angezeigten Pfad zur Laufzeit zu ändern?
Nein, InitialDir tut das nur bevor der Dialog geöffnet wurde.

Grüße
TurboMagic
  Mit Zitat antworten Zitat