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);
}
OpenDialog vs. LoadFromFile
Возможно ли сделать так, что бы при вызове OpenDialog->Execute, не менялись пути скажем в Image1->Picture->LoadFromFile()?
так как у меня здесь указан не полный путь, и после Execute'а вылазит ошибка, что файл не найден..
Заранее благодарен.
Цитата: SerG1nho
Возможно ли сделать так, что бы при вызове OpenDialog->Execute, не менялись пути скажем в Image1->Picture->LoadFromFile()?
так как у меня здесь указан не полный путь, и после Execute'а вылазит ошибка, что файл не найден..
так как у меня здесь указан не полный путь, и после Execute'а вылазит ошибка, что файл не найден..
Что значит "не менялись пути скажем в Image1->Picture->LoadFromFile()", это ж метод?
Может стоит использовать полный путь? Один из вариантов получения полного пути к текущей директории ExtractFilePath(Application->ExeName).
Цитата: SerG1nho
...
так как у меня здесь указан не полный путь, и после Execute'а вылазит ошибка, что файл не найден
...
Правильно вылазит, LoadFromFile() обычно требует полный путь, а вообще желательно приводить код (так легче будет понять тебя)
Полный путь не подходит в случае, если пользователь установит программу не в "мою директорию".
Или (что тоже самое) ExtractFileDir(ParamStr(0));
Собственно проблема в том, что ОпенДиалог меняет рабочую папку приложения, относительно которой и строятся все относительные пути, поэтому они так и называются-"относительные"))
Я вот обнаружил решение всех проблем -
OpenDialog1->Options->ofNoChangeDir=True;
Цитата: 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);
}
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);
Image6->Picture->LoadFromFile(OpenPictureDialog1->FileName);
может просто сохранять имя файла где-нибудь g_sFileName = OpenPictureDialog1->FileName;и потом его подставлять в LoadFromFile(g_sFileName).