![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
исключения при открытии файла
Shturmovik © (2004-07-26 20:52:00)Значит у меня проблема с исключениями, всегда обходился без них а тут вот пришлось, прочитал, написал программу вроде все норма но не работает итак сначала листинг:
procedure TFormPhoto.FormActivate(Sender: TObject);
begin
DBEdit4.Visible:=false;
try
Image1.Picture.LoadFromFile(DBEdit4.Text);
Image1.Visible:=true;
except
on EFOpenError do
begin
Image1.Visible:=false;
MessageDlg('Файл фотографии '+DBEdit4.Text+' не найден.',
mtInformation, [mbOk], 0);
end;
end;
end;
Итак значит это фотоархив в базе данных, в DBEdit4 хранится путь к файлу, все выводится на Image1. Допустим мы удаляем файл и тогда при активизации формы выскакивает ошибка о несуществовании файла, очень непрятно. Тут я пытаюсь сделать чтоб вместо ошибки выскакивало окно MessageDlg и компонент Image1 ничего не отображал. Но не выходит :(
Кириешки (2004-07-26 22:58:00) [1]>VMcL © (26.07.04 22:53) [4]
Не вижу смысла создавать обработку исключений
EFOpenError, если
if not fileexists(DBEdit4.Text) сам по себе не дает им быть.
Раз файла нет, то и дело с концом.
Или я что-то недопонимаю?
VMcL (2004-07-26 22:53:00) [2]>>Кириешки © (26.07.04 22:47) [3]
FileExists() имеет лишь косвенное отношение к ошибке при открытии файла.
Кириешки (2004-07-26 22:47:00) [3]if not fileexists(DBEdit4.Text) then
begin
Image1.Visible:=false;
MessageDlg('Файл фотографии '+DBEdit4.Text+' не найден.',
mtInformation, [mbOk], 0);
end else
begin
Image1.Picture.LoadFromFile(DBEdit4.Text);
Image1.Visible:=true;
end;
Так не проще?
Кириешки (2004-07-26 22:43:00) [4]if fileexists() может быть ?
VMcL (2004-07-26 22:26:00) [5]>> Shturmovik (26.07.04 20:52)
Что значит "не выходит"? Будем в угадалки играть:
* Не компилируется?
* Выдаёт исключение?
* Попадает на строку XXX вместо того, чтобы попасть на строку YYY?
Что по этому поводу говорит отладчик?