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/