Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

OpenDialog vs. LoadFromFile

4.6K
03 мая 2008 года
SerG1nho
72 / / 30.10.2006
Суть проблемы такова -
Возможно ли сделать так, что бы при вызове OpenDialog->Execute, не менялись пути скажем в Image1->Picture->LoadFromFile()?
так как у меня здесь указан не полный путь, и после Execute'а вылазит ошибка, что файл не найден..
Заранее благодарен.
9.4K
03 мая 2008 года
AIGrifon
165 / / 13.11.2007
Цитата: SerG1nho
Возможно ли сделать так, что бы при вызове OpenDialog->Execute, не менялись пути скажем в Image1->Picture->LoadFromFile()?
так как у меня здесь указан не полный путь, и после Execute'а вылазит ошибка, что файл не найден..



Что значит "не менялись пути скажем в Image1->Picture->LoadFromFile()", это ж метод?
Может стоит использовать полный путь? Один из вариантов получения полного пути к текущей директории ExtractFilePath(Application->ExeName).

246
03 мая 2008 года
GIZMO
1.8K / / 30.07.2004
Цитата: SerG1nho

...
так как у меня здесь указан не полный путь, и после Execute'а вылазит ошибка, что файл не найден
...


Правильно вылазит, LoadFromFile() обычно требует полный путь, а вообще желательно приводить код (так легче будет понять тебя)

4.6K
03 мая 2008 года
SerG1nho
72 / / 30.10.2006
Полный путь не подходит в случае, если пользователь установит программу не в "мою директорию".
Вот код -
Код:
void __fastcall TForm1::Image5MouseUp(TObject *Sender, TMouseButton Button,
      TShiftState Shift, int X, int Y)
{
  Image5->Picture->LoadFromFile("img/button_folder1.JPG");
}
//-------------------------------------------------------------------------


void __fastcall TForm1::Image5Click(TObject *Sender)
{
double root;
OpenPictureDialog1->Execute();

Image6->Picture->LoadFromFile(OpenPictureDialog1->FileName);
}


После выполнения диалога на отображается картинка в Image5MouseUp
8.8K
03 мая 2008 года
Se AD WMD
165 / / 10.01.2007
Всётки надо использовать полный путь ExtractFileDir(Application->ExeName);
Или (что тоже самое) ExtractFileDir(ParamStr(0));

Собственно проблема в том, что ОпенДиалог меняет рабочую папку приложения, относительно которой и строятся все относительные пути, поэтому они так и называются-"относительные"))
4.6K
04 мая 2008 года
SerG1nho
72 / / 30.10.2006
Всем спасибо.
Я вот обнаружил решение всех проблем -
OpenDialog1->Options->ofNoChangeDir=True;
246
04 мая 2008 года
GIZMO
1.8K / / 30.07.2004
Цитата: SerG1nho
Полный путь не подходит в случае, если пользователь установит программу не в "мою директорию".
Вот код -
Код:
void __fastcall TForm1::Image5MouseUp(TObject *Sender, TMouseButton Button,
      TShiftState Shift, int X, int Y)
{
  Image5->Picture->LoadFromFile("img/button_folder1.JPG");
}
//-------------------------------------------------------------------------


void __fastcall TForm1::Image5Click(TObject *Sender)
{
double root;
OpenPictureDialog1->Execute();

Image6->Picture->LoadFromFile(OpenPictureDialog1->FileName);
}


Пишется так:

 
Код:
if(OpenPictureDialog1->Execute())
Image6->Picture->LoadFromFile(OpenPictureDialog1->FileName);

может просто сохранять имя файла где-нибудь g_sFileName = OpenPictureDialog1->FileName;и потом его подставлять в LoadFromFile(g_sFileName).
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог