Maks150988

Advanced Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Цитата: Ну в диалоге выставлен. Код такой: Код: type TOpenFileName = packed record lStructSize : DWORD; hWndOwner : hWnd; hInstance : HINST; lpstrFilter : PAnsiChar; lpstrCustomFilter : PAnsiChar; nMaxCustFilter : DWORD; nFilterIndex : DWORD; lpstrFile : PAnsiChar; nMaxFile : DWORD; lpstrFileTitle : PAnsiChar; nMaxFileTitle : DWORD; lpstrInitialDir : PAnsiChar; lpstrTitle : PAnsiChar; Flags : DWORD; nFileOffset : Word; nFileExtension : Word; lpstrDefExt : PAnsiChar; lCustData : LPARAM; lpfnHook : function(Wnd: hWnd; Msg: UINT; wParam: WPARAM; lParam: LPARAM): UINT stdcall; lpTemplateName : PAnsiChar; end; ... function CharReplace(const Source: String; oldChar, newChar: Char): String; var i: Integer; begin Result := Source; for i := 1 to Length(Result) do if Result[i] = oldChar then Result[i] := newChar end; function GetOpenFileNameA(var OpenFile: TOpenFileName): Bool; stdcall; external 'comdlg32.dll' name 'GetOpenFileNameA'; var Inst, hWnd : Integer; FileName : array[0..4095] of Char; ... procedure SelectFile; var OpenFile : TOpenFileName; StringTable_TitleOpen : String; StringTable_FilterOpen : String; begin SetLength(StringTable_TitleOpen, 255); LoadString(HInstance, 1655, PChar(StringTable_TitleOpen), 255); SetLength(StringTable_FilterOpen, 255); LoadString(HInstance, 1653, PChar(StringTable_FilterOpen), 255); FillChar(OpenFile, SizeOf(TOpenFileName), 0); with OpenFile do begin lStructSize := SizeOf(TOpenFileName); hInstance := Inst; hWndOwner := hWnd; lpstrFilter := PChar(CharReplace(StringTable_FilterOpen, '|', #0)); nFilterIndex := 1; nMaxFile := SizeOf(FileName); lpstrTitle := PChar(StringTable_TitleOpen); lpstrFile := FileName; Flags := OFN_LONGNAMES or OFN_EXPLORER or OFN_FILEMUSTEXIST or OFN_PATHMUSTEXIST or OFN_HIDEREADONLY; if GetOpenFileNameA(OpenFile) = true then begin SetDlgItemText(FindWindow(nil, HWND_MAIN_DIALOG), MAIN_FILE_EDIT, lpstrFile); GetDlgItemText(FindWindow(nil, HWND_MAIN_DIALOG), MAIN_FILE_EDIT, FileName, 4096); end; end; end; | Вроде все указал. |