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

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

Корявая GetOpenFileName [D7, Win95/98, WinXP]


Alexiy ©   (2004-07-12 14:53:00) 

Посмотрел чень много форумов, где обсуждалась эта тема. Но ответ не найден. Эта функция возвращает false. И диалога конечно, не появляется.
Одни говорят, что в 98 диалог будет, а в ХР - нет. Другие - что надо инициализировать переменную lpstrFile даже был вариант, сделать так:
ofn.lpstrFile:=VirtualAlloc(0, 255, MEM_COMMIT, PAGE_READWRITE);

Если кто-то располагает РАБОЧИМ кодом, поделитесь, плз..


Alexiy   (2004-07-13 15:37:00) [1]

Низкоуровневая отладка рулит!


clickmaker   (2004-07-12 17:55:00) [2]


> Alexiy   (12.07.04 15:59) [3]

Хм... Всю жизнь это работало
ofn.lStructSize:=sizeof(OPENFILENAME);


Alexiy   (2004-07-12 16:24:00) [3]

Всё, сделал. lStructSize:=$4C;
Удалите эту тему плз...


Alexiy   (2004-07-12 15:59:00) [4]

Код ошибки: $0001 =
CDERR_STRUCTSIZE - Элемент lStructSize структуры инициализации для соответствующего стандартного диалогового окна недопустим.

???


Alexiy   (2004-07-12 15:20:00) [5]

так и знал. Вот:

{ isFile: array[0..max_path] of char; - это в var есс-но }
ZeroMemory(@ofn, sizeof(OPENFILENAME));
ofn.lStructSize:=sizeof(OPENFILENAME);
ofn.hWndOwner:=GetActiveWindow();
ofn.hInstance:=0;
ofn.lpstrFile:=isFile;//VirtualAlloc(0, 255, MEM_COMMIT, PAGE_READWRITE);
ofn.nMaxFile:=200;
ofn.lpstrTitle:='Choose file...';
ofn.lpstrFilter:='PE format'+#0+'*.exe'+#0+'All file types'#0+'*.*'+#0#0;
ofn.nFilterIndex:=1;
ofn.lpstrFileTitle:=0;
ofn.lpstrInitialDir:='c:\';
ofn.nMaxFileTitle:=255;
ofn.Flags:=OFN_PATHMUSTEXIST Or OFN_FILEMUSTEXIST Or OFN_HIDEREADONLY;
GetOpenFileName(ofn);

На выходе - пустая ofn.lpstrFile
Да даже если по шаблону МСДН скопировать - нет результата


clickmaker   (2004-07-12 14:58:00) [6]


> Alexiy   (12.07.04 14:53)  

поделись своим кодом лучше


Наверх

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