|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Delphi - *Решено* | Структура OpenFileName на Delphi |
|
|
Delphi - *Решено* | Структура OpenFileName на Delphi
|
![]() Обратный инженер Сообщения: 644 |
Доброго всем времени суток!
Значит конкретно интересует поле lpstrFilter указанной структуры. Типа аналогия чисто дельфийскому варианту: Вопрос же заключается в том,как правильно выразить необходимое значение этого поля в условиях Delphi? К примеру,на MSDN предлагают написать так: ...но это по-видимому вариант для Си,а мне нужен аналогичный вариант для Delphi. |
|
------- Отправлено: 15:08, 14-07-2005 |
Старый параноик Сообщения: 2423
|
Профиль | Отправить PM | Цитировать ЕМНИП есть такое: Chr(0)
Т.е. ofn.lpstrFilter = "Executables" + chr(0) + "*.exe"; |
Отправлено: 15:51, 14-07-2005 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
![]() Старожил Сообщения: 300
|
Профиль | Сайт | Отправить PM | Цитировать ИМХО:
1) вместо Chr(number), где number - некоторая целая константа, удобнее использовать конструкцию #number , хотя бы потому, что она не требует знака сложения до/после и высчитывается на этапе компиляции. 2) т.к. lpstrFilter указывает на пары нуль-терминантных строк, то оканчиваться должен двумя нулями. итог: ofn.lpstrFilter := 'Executables'#0'*.exe'#0#0; |
Отправлено: 16:50, 14-07-2005 | #3 |
![]() Обратный инженер Сообщения: 644
|
Профиль | Отправить PM | Цитировать Savant
Цитата:
![]() В очередной раз говорю тебе : "Спасибо!" ![]() |
|
------- Отправлено: 18:46, 14-07-2005 | #4 |
Новый участник Сообщения: 20
|
Профиль | Отправить PM | Цитировать Ммм... А если я подгружаю строку из ресурса программы? Как же мне поступить?
Использую PChar(переменная из var) допустим для lpstrTitle. А вот как тут как? Строковый ресурс примерно такой: Как в дилагое выбора файла в поле типа можно было выбрать интересующий тип файла? Это все отображается в одну строку. Помогите пожалуйста. |
|
Отправлено: 23:01, 19-08-2007 | #5 |
![]() Обратный инженер Сообщения: 644
|
Профиль | Отправить PM | Цитировать Должно быть что-то в этом роде:
Либо на Дельфях: Буфер,на который указавает lpstrFilter,характеризуется парами строк. Каждая пара означает определённый фильтр. Каждая строка в буфере должна заканчиваться нулём. После последней строки идёт двойной нуль. |
------- Отправлено: 11:48, 20-08-2007 | #6 |
Новый участник Сообщения: 20
|
Профиль | Отправить PM | Цитировать Попробовал создать ресурс так:
STRINGTABLE LANGUAGE LANG_RUSSIAN, 0x1 { 1653, "1653, "Исполняемый файл (*.exe)|*.exe|Динамическая библиотека (*.dll)|*.dll||" } |
Последний раз редактировалось Maksim V, 21-08-2007 в 00:52. Отправлено: 13:54, 20-08-2007 | #7 |
![]() Обратный инженер Сообщения: 644
|
Профиль | Отправить PM | Цитировать Maksim V
А можно спросить: Зачем так извращаться?? Почему нельзя параметры фильтра настроить по-человечески, т.е. во время заполнения структуры в самой программе?? |
------- Отправлено: 02:00, 21-08-2007 | #8 |
Новый участник Сообщения: 20
|
Профиль | Отправить PM | Цитировать Эээ... Это как так? Можно пример?
|
Отправлено: 11:48, 21-08-2007 | #9 |
![]() Обратный инженер Сообщения: 644
|
Профиль | Отправить 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 |
|
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
HDD - [решено] Структура файловой системы на диске повреждена и непригодна.. В чём проблема? Vista | rodnoy | Накопители (SSD, HDD, USB Flash) | 4 | 01-09-2008 23:58 | |
Ошибка - [решено] Проблема с системным диском: "Структура диска повреждена. Чтение невозможно" | Kashevaroff | Microsoft Windows 2000/XP | 12 | 16-12-2007 18:11 | |
[решено] Структура данных для JavaScript | Coutty | Вебмастеру | 7 | 11-08-2007 17:30 | |
Структура трафика | BanzayDima | Хочу все знать | 4 | 03-04-2005 20:54 | |
структура бд в MySQL | Dutchman Mihel | Вебмастеру | 10 | 09-09-2004 13:17 |
|