Показать сообщение отдельно
  #1  
Старый 31.01.2007, 13:37
Holy Holy вне форума
Новичок
 
Регистрация: 31.07.2006
Сообщения: 55
Репутация: 10
По умолчанию Как скрыть сетевое окружение в OpenDialog?

Мне понадобилось убрать из стандартного диалога открытия файла доступ к сетевому окружению (видел такое в других приложениях).

В справке компонента 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;

Доступ к сети остался.

Вопрос. Где ошибка? Или это делается другим способом?
Ответить с цитированием