Конференция "WinAPI" » Как вызвать и обработать стандартный диалог открытия файлов? [D7, WinXP]
 
  • kalexi (02.08.08 22:47) [0]
    Сабж. Понял, что необходимо использовать функцию GetOpenFileName, но как не понял.
    Мне нужно обьявить эту функцию, вызвать и вернуть путь к файлу. А также понять что за структура OPENFILENAME.

    Нашел следующий код (правилен ли он я не знаю так как не сумел проверить из за неизвестного типа OPENFILENAME):

    var
    ofn : OPENFILENAME;
    begin
    ZeroMemory(@ofn, sizeof(OPENFILENAME));
    with ofn do
      begin
        lStructSize:=sizeof(OPENFILENAME);
        lpstrInitialDir:='c:\windows';
        lpstrTitle:='Choose Any File';
        nMaxFile:=255;
        lpstrFile:=VirtualAlloc(0, 255, MEM_COMMIT, PAGE_READWRITE);
        lpstrFilter:='Win32 Executables'+#0+'*.exe'+#0+'All file types'#0+'*.*'+#0#0;
        Flags:=OFN_FILEMUSTEXIST + OFN_HIDEREADONLY + OFN_PATHMUSTEXIST;
      end;

    if GetOpenFileName(ofn) then
      MessageBox(0, ofn.lpstrFile, nil, MB_OK);
    VirtualFree(ofn.lpstrFile, 0, MEM_RELEASE);



    Объявлять кажется так:
    function GetOpenFileName(lpofn: pointer): integer; stdcall; external 'comdlg32.dll' name 'GetOpenFileNameA';



    Правильно ли и как обьявить структуру OPENFILENAME?
  • Сергей М. © (02.08.08 23:11) [1]

    > из за неизвестного типа OPENFILENAME


    Подключи в uses юнит CommDlg и удивись - все гениальное изобретено до нас
  • kalexi (02.08.08 23:38) [2]
    Блин, дурак, сори...
  • ЧИкАго (22.11.08 02:23) [3]
    Благодарю! Код работает нормально использовал в своей программе. Пишу "Помошник БУГАЛТЕРА". Счастливо...
  • Leonid Troyanovsky © (22.11.08 11:06) [4]

    > ЧИкАго   (22.11.08 02:23) [3]

    >  Пишу "Помошник БУГАЛТЕРА".


    Сочувствуем бедняге.

    --
    Regards, LVT.
  • ЧИкАго (23.11.08 14:26) [5]
    Здорово! Мне не надо сочувствия. Лучше предложи помощь.
  • Leonid Troyanovsky © (24.11.08 09:12) [6]
    Удалено модератором
  • ЧИкАго (24.11.08 17:20) [7]
    Удалено модератором
  • ЧИкАго (24.11.08 17:27) [8]
    Удалено модератором
 
Конференция "WinAPI" » Как вызвать и обработать стандартный диалог открытия файлов? [D7, WinXP]
Есть новые Нет новых   [134435   +33][b:0][p:0.001]