![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Exception [D7, XP]
Andy BitOff (PPC) © (2008-10-29 13:37:00)Дожно ли исключение ESomeError возбужденное в SomeProc() дойти до его обработки в StartProcess?
procedure Tfrm_1.StartProcess();
begin
try
with Tfrm_Progress.Create(Self) do begin
try
...
if ShowModal = mrCancel then begin
Raise ESomeError.Create('Прервано пользователем.');
end;
...
finally
Free;
end;
end;
except
on E: ESomeError do Application.MessageBox(PChar(E.Message), 'Сообщение.', MB_ICONSTOP or MB_OK or MB_SYSTEMMODAL);
end;
end;
юнит с Tfrm_Progress
procedure Tfrm_Progress.FormShow(Sender: TObject);
begin
PostMessage(Handle, WM_StartSomeProc, 0, 0); // Собственно, запуск SomeProc()
end;
...
procedure Tfrm_Progress.SomeProc();
begin
try
try
...
except
on E: Exception do begin
case ErrorCode of
eseSomeErrorOne: begin
Raise ESomeError.Create('ля-ля-ля' + #13#10 + E.Message);
end;
eseSomeErrorTwo: begin
Raise ESomeError.Create('ля-ля-ля' + opName + #13#10 + E.Message);
end;
else
Raise;
end;
end;
end;
finally
...
ModalResult := mrOk;
end;
end;
Поросенок Винни-Пух (2008-10-29 13:41:00) [21]неа