Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 31.10.2012, 03:28   #1
-Jack-
Форумчанин
 
Регистрация: 19.04.2009
Сообщений: 368
По умолчанию Try и TImage [Delphi 7]

Всем доброго времени суток. Столкнулся с такой интересной загвоздкой:
В CreateForm находится такой код:

Код:
  try
    Image1.Picture.LoadFromFile(ExtractFilePath(Application.ExeName)+'img.jpg');
  Finally
    ...
  end;
Но если файла нет (img.jpg), то все равно выводит ошибку "Cannot open file" ... как будто try-Finally нет вовсе
-Jack- вне форума Ответить с цитированием
Старый 31.10.2012, 03:31   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

вы запускаете под отладчиком или вне него?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 31.10.2012, 04:27   #3
-Jack-
Форумчанин
 
Регистрация: 19.04.2009
Сообщений: 368
По умолчанию

без отладчика запускал ...
если запускать с отладчиком, запуск стопорится и выдаётся ошибка на строчке:

Forms:
Код:
procedure TCustomForm.DoCreate;
begin
  if Assigned(FOnCreate) then
  try
    FOnCreate(Self);
  except
    if not HandleCreateException then
      raise;
  end;
  if fsVisible in FFormState then Visible := True;
end;

Последний раз редактировалось -Jack-; 31.10.2012 в 04:47.
-Jack- вне форума Ответить с цитированием
Старый 31.10.2012, 04:52   #4
-Jack-
Форумчанин
 
Регистрация: 19.04.2009
Сообщений: 368
По умолчанию

В принципе выкрутился, поставив проверку на присутствие файла - FileExists, но всё равно не понятно, почему выдаётся ошибка ...
-Jack- вне форума Ответить с цитированием
Старый 31.10.2012, 04:57   #5
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

Мне боле интересно почему её не должно быть. Разве finally перехватывает исключения? Насколько я знаю, оно лишь гарантирует выполнения кода внутри своего блока, но если исключение возникло, то после выполнения блока finally оно будет проброшено выше.
netrino вне форума Ответить с цитированием
Старый 31.10.2012, 05:12   #6
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

вообще то finally выполнится всегда и при исключении и без.

ТС, Делфи под отладчиком по умолчанию показывает исключения всегда(даже обработанные)
просто жмите продолжить.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 31.10.2012, 08:35   #7
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
ТС, Делфи под отладчиком по умолчанию показывает исключения всегда(даже обработанные)
это не так.
В опциях Delphi (Debugger Options - Language Exception) уберите галочку
(ну что-то типа [ ] "Notify on language exceptions"
или (в старых версия Delphi) - [ ] "Stop on Delphi exception" )


Однако в этом случае дело в другом.
Как правильно сказал netrino в пост #5 try finally и НЕ ДОЛЖНО перехватывать exceptions! Это не его задача!
Нужно обработать исключение, пользуйтесь блоком try ... except, который для этого и предназначен!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 01.11.2012, 02:11   #8
-Jack-
Форумчанин
 
Регистрация: 19.04.2009
Сообщений: 368
По умолчанию

Хм ... Не знал, спасибо большое ! Тему можно закрывать
-Jack- вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Delphi! Прозрачный timage AlienNation Мультимедиа в Delphi 4 30.08.2011 11:28
Delphi. Массив TImage Sna1L Помощь студентам 3 23.06.2011 16:10
TImage. Delphi PianeR Помощь студентам 2 02.02.2011 19:59
Рисование Delphi 7 на Timage Dalagardi Помощь студентам 4 24.04.2010 16:17
Timage в Delphi TaYgA Помощь студентам 16 25.10.2009 20:11