Форум: "WinAPI";
Текущий архив: 2010.01.24;
Скачать: [xml.tar.bz2];
ВнизКак вызвать и обработать стандартный диалог открытия файлов? Найти похожие ветки
← →
kalexi (2008-08-02 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?
← →
Сергей М. © (2008-08-02 23:11) [1]
> из за неизвестного типа OPENFILENAME
Подключи в uses юнит CommDlg и удивись - все гениальное изобретено до нас
← →
kalexi (2008-08-02 23:38) [2]Блин, дурак, сори...
← →
ЧИкАго (2008-11-22 02:23) [3]Благодарю! Код работает нормально использовал в своей программе. Пишу "Помошник БУГАЛТЕРА". Счастливо...
← →
Leonid Troyanovsky © (2008-11-22 11:06) [4]Удалено модератором
← →
ЧИкАго (2008-11-23 14:26) [5]Удалено модератором
← →
Leonid Troyanovsky © (2008-11-24 09:12) [6]Удалено модератором
← →
ЧИкАго (2008-11-24 17:20) [7]Удалено модератором
← →
ЧИкАго (2008-11-24 17:27) [8]Удалено модератором
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2010.01.24;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.004 c