Вниз
Скачать: CL | DM;

Как вызвать и обработать стандартный диалог открытия файлов?   Найти похожие ветки 

← →
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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.006 c
15-1258368049
stas
2009-11-16 13:40
2010.01.24
TWebBrowser


2-1259779619
Danco
2009-12-02 21:46
2010.01.24
Смена запуска Unit


15-1258750559
XXL
2009-11-20 23:55
2010.01.24
Про второй смысл в развлекательных медиа


8-1202567132
multiflex
2008-02-09 17:25
2010.01.24
"Низкоуровневое" воспроизведение


2-1260025909
Б
2009-12-05 18:11
2010.01.24
Минимизация. Как узнать?




   Наверх