C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
исключения try catch, загрузка картинки
toshkaexe
Отправлено: 07.03.2007, 22:03


Ученик-кочегар

Группа: Участник
Сообщений: 2



очему выкидывается исключение?строчка 1 работает нормально все загружается, проблемы с загрузкой файла во второй строчке... (Файл s11.bmp находится в одной папке с исходником.)
CODE

 
try
       {
       Form1->Image1->Picture->LoadFromFile("s11.bmp"); //1
       Form_Gistogramm->Image1->Picture->LoadFromFile("s11.bmp"); //2
       }
catch(...)
       {ShowMessage("ERROR");
       }

Admin
Отправлено: 07.03.2007, 22:17


Владимир

Группа: Администратор
Сообщений: 1190



Должно работать. А что с формой Form_Gistogramm
она существует, её создавать не надо ?
Попробуйте вот так — что напишет.

CODE
try
      {
      Form1->Image1->Picture->LoadFromFile("s11.bmp"); //1
      Form_Gistogramm->Show();
      Form_Gistogramm->Image1->Picture->LoadFromFile("s11.bmp"); //2
      }
catch(...)
      {ShowMessage("ERROR");
      }
toshkaexe
Отправлено: 07.03.2007, 23:14


Ученик-кочегар

Группа: Участник
Сообщений: 2



пишет ошибку
Project Project1.exe raised exeption class EAccessViolation whith message 'Access violation at address 004460EE.Read of address 000002CC'. Process stoped. Use Step or Run to continue.
Arsa
Отправлено: 08.03.2007, 02:13


Дежурный стрелочник

Группа: Участник
Сообщений: 77



Попрбуй так:
CODE

try
     {
     Form1->Image1->Picture->LoadFromFile("s11.bmp");
     Form_Gistogramm->Image1->Picture = Form1->Image1->Picture;
     }
catch(...)
     {ShowMessage("ERROR");
     }

или так:
QUOTE

try{
     Form_Gistogramm->Image1->Picture->LoadFromFile("s11.bmp"); //2
     Form1->Image1->Picture->LoadFromFile("s11.bmp"); //1
     
}catch(...){
     ShowMessage("ERROR");
}

Admin
Отправлено: 08.03.2007, 10:04


Владимир

Группа: Администратор
Сообщений: 1190



QUOTE
пишет ошибку
Project Project1.exe raised exeption class EAccessViolation whith message 'Access violation at address 004460EE.Read of address 000002CC'. Process stoped. Use Step or Run to continue.


Это понятно — а на какой строчке пишет ошибку ?
Уж не на Form_Gistogramm->Show(); ?
Эта форма уже существует — она в списке auto-create forms или
её надо динамически создать ?

Такое впечатление что есть попытка обращения к объекту
которого не существует, например к форме Form_Gistogramm или
к Image1 на этой форме.

Или вы нигде эту форму до этого не удаляли ?
типа delete Form_Gistogramm; или Free(); при её закрытии ?

Потому как если вы просто создадите проект из двух существующих
форм и вставите данный код — всё будет работать без ошибок,
можете попробовать.

Вернуться в Вопросы программирования в C++Builder