![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
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]Наверно твой блок не получает управления или ты не все нам сказал. Я например не понял, почему ты рещпл, что не работает.