Показать сообщение отдельно
  #1  
Старый 01.04.2013, 01:44
Snake22 Snake22 вне форума
Активный
 
Регистрация: 20.02.2011
Сообщения: 374
Репутация: 744
По умолчанию Не вызывается GetOpenFileNameW

Хочу вызвать винапишный файлдиалог.
но при вызове ничего не происходит.то есть диалог просто не появляется.
код:
Код:
uses commdlg;
...

procedure TfrmAdd.TntButton2Click(Sender: TObject);
var OFNW : TOpenFilenameW;
    Buf : PWideChar;
begin
GetMem(Buf, SizeOf(PWideChar));
buf:='';

  with OFNW do
  begin
    lStructSize := SizeOf(DWORD);
    hWndOwner := hinstance;
    lpstrfilter := 'Executable files (*.exe)' + #0 + '*.exe' + #0;
    lpstrCustomFilter := 'All files (*.*)' + #0 + '*.*' + #0#0;
    nMaxCustFilter := 255;
    nFilterIndex := 1;
    lpstrFile := Buf;
    nMaxFile := 128;
    lpstrFileTitle := 'test';
    nMaxFileTitle:=128;
    lpstrInitialDir := 'c:\';
    lpstrTitle := 'Open File';
    Flags := OFN_FileMustExist + OFN_PathMustExist + OFN_FORCESHOWHIDDEN;
  end;
GetOpenFileNameW(ofnw); //при выполнении в  этой строчке ничего не происходит. диалог не появляется


end;
подскажите где я накосячил?
Ответить с цитированием