Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Аватара для DillerInc

Обратный инженер


Сообщения: 644
Благодарности: 47

Профиль | Отправить PM | Цитировать


Цитата Maksim V:
Можно пример?
...например,так:
Код: Выделить весь код
var
 OpenDlgBox:TOpenFileName;
 pathFile : array [0..260] of Char = '';
 nameFile : array [0..260] of Char = '';

...

{ Заполняем структуру OpenDlgBox класса TOpenFileName }

 OpenDlgBox.lStructSize := SizeOf(OpenDlgBox);
 OpenDlgBox.lpstrFilter := 'Text Files'#0'*.txt'#0'Bitmap Files'#0'*.bmp'#0#0;
 OpenDlgBox.lpstrCustomFilter := NIL;
 OpenDlgBox.lpstrFile := pathFile;
 OpenDlgBox.nMaxFile := SizeOf(pathFile);
 OpenDlgBox.lpstrFileTitle := nameFile;
 OpenDlgBox.nMaxFileTitle := SizeOf(nameFile);
 OpenDlgBox.lpstrInitialDir := 'C:\Program Files\';
 OpenDlgBox.Flags := OFN_FILEMUSTEXIST or OFN_PATHMUSTEXIST;

begin
 GetOpenFileName(OpenDlgBox);
end;
...кстати,пример,где используется двойной фильтр.Массивы для пути и имени идут у меня как глобальные переменные,поэтому их можно инициализировать(в данном случае это будет нуль).
Кстати,если эти массивы не забить нулями(например,когда массивы находятся в процедуре как локальные переменные),то могут возникнуть глюки с вызовом функции GetOpenFileName.

Просто дело в том,что в начало массива pathFile,например,можно поместить строку с названием файла.Тогда это название будет отображено в поле Edit диалога открытия файла.Если же там будет какой-то бред в начале,то тогда будут и баги.
А вообще я это ещё не проверял,но скорее всего так оно и есть(на MSDN так сказано).

-------
То,что неясно,следует выяснить.То,что трудно творить,следует делать с великой настойчивостью. © Конфуций


Отправлено: 20:20, 21-08-2007 | #10