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

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

Exception [D7, XP]


Страницы:   1 2

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]

неа


Страницы:   1 2

Наверх

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