![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
OpenDialog на WinAPI (не работает MULTISELECT)
KocTeT © (2003-06-28 17:41:00)
Не знаю в чём ошибка, может если кто знает, то поможет:
function GetOpenFileNameA(var OpenFile: TOpenFileName): Bool; stdcall; external "comdlg32.dll" name "GetOpenFileNameA";
procedure SelectFile;
const
Filter = "Any File (*.*)"#0"*.*"#0#0;
Title = "Open Dialog...";
var
OpenFile : TOpenFileName;
begin
FillChar(OpenFile, SizeOf(TOpenFileName), 0);
with OpenFile do
begin
lStructSize := SizeOf(TOpenFileName);
hInstance := Inst;
hWndOwner := hWnd;
lpstrFilter := Filter;
nFilterIndex := 2;
nMaxFile := SizeOf(FileName);
lpstrFile := FileName;
lpstrTitle := Title;
Flags := OFN_LONGNAMES or OFN_ALLOWMULTISELECT or OFN_EXPLORER or OFN_FILEMUSTEXIST or OFN_PATHMUSTEXIST or OFN_HIDEREADONLY;
if GetOpenFileNameA(OpenFile) = true then
begin
messagebox(0,lpstrFile, "msg", 0);
end;
end;
end;
Запускается окно выбора файла, когда выбираешь один, то всё окей (в lpstrFile хранится имя файла), а когда несколько, то lpstrFile будет только каталог... Объясните что не так...
nikkie (2003-06-28 18:28:00) [1]
читаем MSDN...
OFN_ALLOWMULTISELECT <...> For Explorer-style dialog boxes, the directory and file name strings are NULL separated, with an extra NULL character after the last file name. <...>