Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [Delphi] Исключительная ситуация.


Автор: Krig 9.5.2011, 18:30
Подскажите, пожалуйста, как можно доработать нижеприведенный метод для связывания двух городов карты так, чтобы возникла исключительная ситуация, если одного из городов нет на карте. Пусть исключение сохраняет в свойстве Message название отсутствующего города. Как написать обработчик этого исключения?

Код

Function Tmap.Link(const Nm1, Nm2: string): boolean;
var
  C1, C2: TCity;
  Slct: TSelect;
begin
  Result := FALSE;
  If Nm1 <> Nm2 then begin    {Нельзя связывать сам с собой}  
    C1 := Find(Nm1); C2 := Find(Nm2);
    {Города должны принадлежать карте}
    If (C1 <> Nil) and (C2 <> Nil) then begin
       Slct := TSelect.Create(C1.FLinks);
       {Связь может уже существовать}
       while (Slct.Current <> Nil) and
             ((Sclt.Current as TLink).FPCity <> C2) do
         Sclt.Next;
       {Собственно связыание}
       if Slct.Current = Nil then begin
         C1.FLinks.Insert(TLink.Create(C2), Nil);
         {Связь двунаправленная!}
         C2.FLinks.Insert(TLink.Create(C1), Nil);
         Result := TRUE;
       end;
       Slct.Free
    end
  end
end; 



Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)