Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

try... finally в Delphi 5 [D5, Win2k]


Punk4 ©   (2002-08-11 20:48:00) 

Обработка try ... except или finally нифинали не работает
какбудто эти юлоки не своять вовсе!

Следующий код не работает нифига:

try
TImage1.Picture.LoadFromFile("1,jpg");
finally
// отчищаем пиктуру
end;

Моет я идиот? Но если кто помоет отпишитесь сюда или на мыло!


Vlad1   (2002-08-18 19:45:00) [1]

Во-первых, надо uses jpeg. Во-вторых, проверку делай с помощью if not(image1.picture.graphic is TJpegImage) then.


alena.svt   (2002-08-12 13:37:00) [2]


Skier ©

Вроде я ему про это же и написала?


Skier   (2002-08-12 11:23:00) [3]

>Punk4
А ты это :
Debugger Options|Language Exceptions|Stop On Delphi Exceptions := True;

не пробовал ?


alena.svt   (2002-08-12 11:10:00) [4]

TImage не лучшее средство для показа картинок, но если тр. простенько то возможно у вас не получается из-за того что в Delphi не отключена опция "Stop on Delphi exception". Хотя ее и ненадо бы отключать имхо.
Положте на форму TButton , TImage, TEdit.
В OnButtonClick добавьте сл. код.

procedure TForm1.Button1Click(Sender: TObject);

begin
try
if not fileexists(Edit1.Text) then exit // если файла не существует значит отмена
else
Image1.Picture.LoadFromFile(Edit1.text);// В значение Edit1.text вводим путь и имя файла
except
// здесь можно вывести например ShowMessage("Ошибка при загрузке файла "+ ExtractFileName(Edit1.Text)+ ")");
end
end;

Дельфи среагирует на ошибку после чего нажмите далее Run и работайте.
Если вы запустите вне среды дельфи то ошибки не будет вовсе видно.
С уважением


True Smithson   (2002-08-12 09:03:00) [5]

Объясняю. В Delphi есть свой модуль для обработки JPEG. Когда ты пытаешься загрузить .jpg, управление реально передается этому модулю (объекту TJPEGImage) и он-то и ругается, что ему подсунули не JPEG. Твой блок try finally просто не видит exception. Он обрабатывается раньше...
Выход? Используй напрямую нужные объекты (TBitmap, TJPEGIMage, TGifImageб еtс) и в них обрабатывай ошибки. Я так делал.


Punk4   (2002-08-12 08:44:00) [6]

Пробовал нихрена не работает!
Пропускает выдает ошибку выполнения! Причем пробовал еще и на другой ситуации: открытие несуществующего файла! Тое самое!


drpass   (2002-08-11 21:53:00) [7]

try
Image1.Picture.LoadFromFile("1,jpg");
except
// выводим свое сообщение об ошибке, или вообще ничего не делаем
end;


Punk4   (2002-08-11 21:43:00) [8]

А как этот должно выглядить? А !
Я вообщето еще неочень в этом деле! помогите!


drpass   (2002-08-11 21:41:00) [9]

Ну и правильно, он должен выдавать сообщение об ошибке. Ошибки давятся не блоком try...finally, а блоком try...except


Punk4   (2002-08-11 21:22:00) [10]

Попробовал! НИФИГА!HELP!


esu   (2002-08-11 21:12:00) [11]

А ты не из Delphi пробовал запускать свою программу?


Punk4   (2002-08-11 21:09:00) [12]

Дав в том что файли имеет ресширение Жпег а на самом то деле он не Жпег


Anatoly Podgoretsky   (2002-08-11 21:04:00) [13]

^Sanya © (11.08.02 21:01)
А в чем у тебя различие?


Punk4   (2002-08-11 21:02:00) [14]

Понимаете, пиплы, кода в Имаже груже файл с расширением жпег(файл на самом деле не Жпег), он пишет что неверный формат у файла, (Узе Жпег указано!), то Делфа какбы пропускает указаные try ... finall и фо время выполнения выдает ошибку о не соответствии форматов!


^Sanya   (2002-08-11 21:01:00) [15]

->TImage1.Picture.LoadFromFile("1,jpg");
заменить на
TImage1.Picture.LoadFromFile("1.jpg"); - авось поможет...
Или ты специально "TImage1.Picture.LoadFromFile("1,jpg");" написал?


app   (2002-08-11 20:57:00) [16]

Наверно твой блок не получает управления или ты не все нам сказал. Я например не понял, почему ты рещпл, что не работает.


Наверх

Титульная страница Поиск, карта сайта Написать письмо