Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2010.01.24;
Скачать: 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 вся ветка

Текущий архив: 2010.01.24;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.015 c
2-1260025909
Б
2009-12-05 18:11
2010.01.24
Минимизация. Как узнать?


2-1259791180
kolj
2009-12-03 00:59
2010.01.24
Проблемы с ClientDataSet


4-1227602398
Lamer6666
2008-11-25 11:39
2010.01.24
Как отправить AT команду модему?


2-1259848543
kate158
2009-12-03 16:55
2010.01.24
добавление д-х из excel на пересечении строки и столбца


15-1258916708
antonn
2009-11-22 22:05
2010.01.24
Аптайм сервера, долгий uptime