![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| Alex |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4147 Регистрация: 25.3.2002 Где: Москва Репутация: 80 Всего: 162 |
Не запуская Delphi скажите, что будет на экране после выполнения кода:
PS: Диалог имеет настройки по умолчанию. -------------------- Написать можно все - главное четко представлять, что ты хочешь получить в конце. |
|||
|
||||
| Quadr0 |
|
|||
|
Unregistered |
...
Это сообщение отредактировал(а) Quadr0 - 15.7.2011, 01:26 |
|||
|
||||
| Alex |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4147 Регистрация: 25.3.2002 Где: Москва Репутация: 80 Всего: 162 |
-------------------- Написать можно все - главное четко представлять, что ты хочешь получить в конце. |
|||
|
||||
| Rrader |
|
|||
|
Inspired =) ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1535 Регистрация: 7.5.2005 Репутация: 70 Всего: 191 |
Ошибка должна быть, если файл не будет существовать.
Добавлено @ 15:10 А он и так не существует, путь неверный. Добавлено @ 15:11 Аж в Delphi страшно смотреть правду... |
|||
|
||||
| ~FoX~ |
|
|||
![]() НЕ рыжий!!! ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2819 Регистрация: 8.10.2003 Где: Зеленоград Репутация: 13 Всего: 68 |
Ничего не будет - строка не соответствует OPENFILENAME структуре, функция GetSaveFileName вернет какой то там еррор и SaveDialog1.Execute не выполниться.
Только я прикола не понял... |
|||
|
||||
| Quadr0 |
|
|||
|
Unregistered |
...
Это сообщение отредактировал(а) Quadr0 - 15.7.2011, 01:26 |
|||
|
||||
| ~FoX~ |
|
|||
![]() НЕ рыжий!!! ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2819 Регистрация: 8.10.2003 Где: Зеленоград Репутация: 13 Всего: 68 |
Quadr0
Точно не помню но по вроде в структуру передается lpstrfile в которой разделитель может быть только '\' или '.' и еще какойто если MultySelect есть. Могу ошибаться конечно. Вобщем если путь указан не верно, то вызывается CommDlgExtendedError и это, типа опа приплыли - никаких вам диалогов. За подробностями в МСДН, мне лениво искать сегодня. Это сообщение отредактировал(а) ~FoX~ - 13.9.2005, 16:48 |
|||
|
||||
| Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 36 Всего: 329 |
исключительная ситуация, что-то типа Cannot create file
|
|||
|
||||
| Alex |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4147 Регистрация: 25.3.2002 Где: Москва Репутация: 80 Всего: 162 |
Ладно, дело было так. Ваш покорный слуга решил сегодня в 10 утра проверить ключевые моменты работы программы, которую сегодня заказчику показывать нужно было. Одним из таких моментов является экспорт отчетных документов в разные форматы, Проверяю, мне показывают форму настройки экспорта и по ее закрытию должен показываться пресловутый SaveDialog, но этого почему-то не происходит. Генератор отчета и его функции экспорта я использую FastReport 3, чертыхаясь, лезу в исходники (благо есть), ставлю точки останова и начинаю офигевать. Доходит до метода SaveDialog1.Execute, идет на его выполнение и тут же не показывая диалога вываливается с отрицательным результатом. 4 часа длятся пляски с бубном и ощущение, что крыша сейчас уедет, т.к. понять сие действие просто не реально. Пробуются все теории, которые только могли придти ко мне в голову и голову Петровичу. Результат ноль. В три часа путем уже невероятных шаманских действий замечаю, что единственную настройку SaveDialog, которую делают разработчики FR это передача названия файла по умолчанию, смотрю, что же там хранится. По совершенно глупейшей ошибке в путь попадает "/". Каким образом FR загружал шаблон отчета в пути, которого был "/" я не понял досих пор, но то, что SaveDialog даже не ругается на такой путь, а просто грохается это кошмар, он даже в GetLastError возвращает 0. Бардак в общем
-------------------- Написать можно все - главное четко представлять, что ты хочешь получить в конце. |
|||
|
||||
| p0s0l |
|
||||
![]() Г-н Посол ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 3668 Регистрация: 13.7.2003 Где: 58°38' с.ш. 4 9°41' в.д. Репутация: 58 Всего: 112 |
Мда... Бывает же
-------------------- С уважением, г-н Посол. |
||||
|
|||||
| Alex |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4147 Регистрация: 25.3.2002 Где: Москва Репутация: 80 Всего: 162 |
Буду знатьт. Спасибо Добавлено @ 21:53
Самое странное, что я в FR по ошибке подавал "E:\Prog_on_Delphi\Work\Svet\Rep/Склад Товарная накладная.fr3", а правильный путь должен был быть "E:\Prog_on_Delphi\Work\Svet\Rep\Склад Товарная накладная.fr3" и как он открывал этот файл для меня загадка -------------------- Написать можно все - главное четко представлять, что ты хочешь получить в конце. |
||||
|
|||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 192 Всего: 484 |
А винда какая было?
XP свободно съедает как досявые, так и линуксовые пути. Прямой слэш имеет явно линуксовое происхождение. 9х явно такой путь не съедят, а XP без проблем. |
|||
|
||||
| Alex |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4147 Регистрация: 25.3.2002 Где: Москва Репутация: 80 Всего: 162 |
Винда ХР SP2 и все обновления, которые доступны на сегодняшний день
-------------------- Написать можно все - главное четко представлять, что ты хочешь получить в конце. |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 192 Всего: 484 |
Значит нужно в исходняках SaveDialog'a порыться - где-то он неверно строку парсит.
По идее коресь в FR, но это обычная ситуация для времен кросплатформенности. |
|||
|
||||
| Alex |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4147 Регистрация: 25.3.2002 Где: Москва Репутация: 80 Всего: 162 |
А что там особенно ковыряться? SaveDialog они дергают стандартный, а если смотреть его исходники, то там идет самая обыкновенная заполнения массива данных и передача этого массива на вход Win Api функции вызова диалога, а в ней уже и отваливаемся.
А FR, тоже ничего криминального не делает и не парсит:
Добавлено @ 23:57 На самом деле даже вот такой код:
возвратит истину. Получается, что FindFirstFile, на котором построена FileExists находит файл и спокойно может с ним работать. -------------------- Написать можно все - главное четко представлять, что ты хочешь получить в конце. |
||||
|
|||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |