Einzelnen Beitrag anzeigen

Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#6

Re: GetFileOpenName funktioniert nicht unter TurboDelphi

  Alt 30. Sep 2006, 17:15
Les dir in meinen WinAPI Tutorials Kapitel 2 "Standarddialoge" durch. Ab Windows 2000 ist die Struktur größer.

Ich habe mir das ganze mal in einer Funktion gekapsetl, da ich das öfters gebraucht habe:
Delphi-Quellcode:
function OpenFile(hParent: THandle; Filter: string): string;
var
  ofn : TOpenFilename;
  Buffer : array[0..MAX_PATH - 1] of Char;
begin
  result := '';
  ZeroMemory(@Buffer[0], sizeof(Buffer));
  ZeroMemory(@ofn, sizeof(TOpenFilename));
  if IsNt5OrHigher then
    ofn.lStructSize := sizeof(TOpenFilename)
  else
    ofn.lStructSize := OPENFILENAME_SIZE_VERSION_400;
  ofn.hWndOwner := hParent;
  ofn.hInstance := hInstance;
  ofn.lpstrFile := @Buffer[0];
  ofn.nMaxFile := sizeof(Buffer);
  ofn.Flags := OFN_EXPLORER;
  ofn.lpstrFilter := PChar(Filter);
  { Datei-Öffnen-Dialog aufrufen }
  if GetOpenFileName(ofn) then
    result := ofn.lpstrFile;
end;
IsNT5OrHigher ist eine eigenen Funktion. Was sie macht sollte klar sein.

Und in den uses moch CommDlg mit aufnehmen. Zu finden auch in meinen MpuTools.pas -> http://www.michael-puff.de/dirindex....phi/Sonstiges/
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat