Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как вызвать и обработать стандартный диалог открытия файлов? [D7, WinXP]


kalexi ©   (2008-08-02 22:47:00) 

Сабж. Понял, что необходимо использовать функцию 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?


ЧИкАго   (2008-11-24 17:27:00) [1]

Удалено модератором


ЧИкАго   (2008-11-24 17:20:00) [2]

Удалено модератором


Leonid Troyanovsky   (2008-11-24 09:12:00) [3]

Удалено модератором


ЧИкАго   (2008-11-23 14:26:00) [4]

Удалено модератором


Leonid Troyanovsky   (2008-11-22 11:06:00) [5]

Удалено модератором


ЧИкАго   (2008-11-22 02:23:00) [6]

Благодарю! Код работает нормально использовал в своей программе. Пишу "Помошник БУГАЛТЕРА". Счастливо...


kalexi   (2008-08-02 23:38:00) [7]

Блин, дурак, сори...


Сергей М.   (2008-08-02 23:11:00) [8]


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


Подключи в uses юнит CommDlg и удивись - все гениальное изобретено до нас


Наверх

Титульная страница Поиск, карта сайта Написать письмо