Мне понадобилось убрать из стандартного диалога открытия файла доступ к сетевому окружению (видел такое в других приложениях).
В справке компонента TOpenDialog прочел что флаг ofNoNetworkButton
работает только совместно с ofOldStyleDialog. Но результат меня не устроил, т.к. старый стиль страшный, как моя жизнь.
В SDK написано, что флаг OFN_NONETWORKBUTTON, используемый при вызове стандартного метода GetOpenFileName, просто убирает кнопку доступа к сети.
Собственно, попробовал обратиться напрямую к диалогам винды так:
Код:
function OpenFileDialogLocal(ParentHandle: THandle; const DefExt, Filter,
InitialDir, Title: AnsiString; var FileName: AnsiString): Boolean;
var
OpenFilename: TOpenFilename;
szFile: array[0..MAX_PATH] of Char;
begin
Result := False;
ZeroMemory(@OpenFilename, SizeOf(TOpenFileName));
with OpenFilename do
begin
lStructSize := SizeOf(TOpenFileName);
hwndOwner := ParentHandle;
lpstrFile := szFile;
nMaxFile := SizeOf(szFile);
if (Title <> '') then
lpstrTitle := PChar(Title);
if (InitialDir <> '') then
lpstrInitialDir := PChar(InitialDir);
StrPCopy(lpstrFile, FileName);
lpstrFilter := PChar(CharReplace(Filter, '|', #0)+#0#0);
if DefExt <> '' then
lpstrDefExt := PChar(DefExt);
Flags := OFN_NONETWORKBUTTON;
end;
if GetOpenFileName(OpenFilename) then
begin
Result := True;
FileName := StrPas(szFile);
end;
end;
Доступ к сети остался.
Вопрос. Где ошибка? Или это делается другим способом?