|
Вопрос # 637/ вопрос решён / |
|
Дорогие и много уважаемые эксперты!Нужна помощь.Я делаю графический редактор.Одна кнопка открывает фаил-другая сохраняет.Программа находится в дериктории c:/Painter когдая открываю фаил с помощью OpenDialog из дериктории c:/pic и с помощью функции savetofile пытаюсь сохранить в c:/Painter/Temp происходит ошибка программа пытается сохранить картинку в c:/pic/c:/Painter/Temp а этого каталога не существует, как зделать так чтобы картинка сохранялась в c:/Painter/Temp а не в c:/pic/c:/Painter/Temp эта ошибка происходит только при предварительном открытии картинки из другого каталога(а не из каталога программы) да и использовать savedialog я не могу по своим причинам.
 |
Вопрос задал: Аксион (статус: 4-ый класс)
Вопрос отправлен: 17 июня 2007, 14:54
Состояние вопроса: решён, ответов: 3.
|
Ответ #1. Отвечает эксперт: Николай Рубан
Здравствуйте, ММО!
Вам достаточно будет в параметрах SaveToFile использовать такой подход:
SaveToFile(ExtractFilePath(Application.ExeName)+'temp\FileName');
где FileName - имя сохраняемого файла.
Good Luck!!!
 |
Ответ отправил: Николай Рубан (статус: 10-ый класс)
Время отправки: 17 июня 2007, 15:03
Оценка за ответ: 5
Комментарий к оценке: Спасибо
|
Ответ #2. Отвечает эксперт: Градов Ю.М.
Здравствуйте, ММО!
Используйте это:
uses FileCtrl;
procedure TForm1.Button1Click(Sender: TObject);
begin
ifnot DirectoryExists('c:/Painter/Temp') then
ifnot CreateDir('c:/Painter/Temp') then
raise Exception.Create('Cannot create c:/Painter/Temp');
end;
 |
Ответ отправил: Градов Ю.М. (статус: 8-ой класс)
Время отправки: 17 июня 2007, 15:23
Оценка за ответ: 5
Комментарий к оценке: Спасибо
|
Ответ #3. Отвечает эксперт: Вадим К
Здравствуйте, ММО!
Функция CreateDir конечно позволит создать каталог, то только одно вложение. А писать процедуру, которая создаст весь путь очень утомительно. Но для этого есть Маленький секрет. Пусть, в s храниться имя файла с путём. Тогда используем слудующий код
ForceDir(ExtractFileDir(s));
if not DirectoryExsist(s) the Raise Exception.Create('Каталог не удалось создать');
SaveToFile(s);
Здесь есть один маленький нюанс. не все каталоги создать можно. Иногда это даже не описано в документации. К примеру попробуйте создать каталог с тремя точками в конце (можно и в проводнике) - вы будете приятно удивлены.
 |
Ответ отправил: Вадим К (статус: Академик)
Время отправки: 17 июня 2007, 23:34
Оценка за ответ: 5
Комментарий к оценке: Спасибо
|
Мини-форум вопроса
Всего сообщений: 0.
31 января 2011, 19:23: Статус вопроса изменён на решённый (изменил модератор Ерёмин А.А.): Автоматическая обработка (2 и более ответов с оценкой 5)
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|