anchor.diff:    if ((Self.RozpadRuseniBlok >= 0) and (Self.RozpadRuseniBlok < Self.RozpadBlok-1)) then
      begin
       //ziskani dotazovaneho useku
  -    Blky.GetBlkByID(Self.fproperties.Useky[Self.RozpadRuseniBlok], Usek);
  +    Blky.GetBlkByID(Self.fproperties.Useky[Self.RozpadRuseniBlok], TBlk(Usek));
   
       if (Self.RozpadRuseniBlok+1 < Self.fproperties.Useky.Count) then
  -      Blky.GetBlkByID(Self.fproperties.Useky[Self.RozpadRuseniBlok+1], DalsiUsek)
  +      Blky.GetBlkByID(Self.fproperties.Useky[Self.RozpadRuseniBlok+1], TBlk(DalsiUsek))
       else
         DalsiUsek := nil;
   
  -    if (((Usek as TBlkUsek).Zaver = TZaver.nouz) and ((Usek as TBlkUsek).Obsazeno = uvolneno) and
  -        ((DalsiUsek = nil) or (TBlkUsek(DalsiUsek).Obsazeno = TUsekStav.obsazeno) or
  -        (TBlkUsek(DalsiUsek).GetSettings.RCSAddrs.Count = 0))) then
  +    if ((Usek.Zaver = TZaver.nouz) and (Usek.Obsazeno = uvolneno) and
  +        ((DalsiUsek = nil) or (DalsiUsek.Obsazeno = TUsekStav.obsazeno) or
  +        (DalsiUsek.GetSettings.RCSAddrs.Count = 0))) then
        begin
         // cesta se rozpada...
         if (Self.AB) then
  -        (Usek as TBlkUsek).Zaver := TZaver.AB
  +        Usek.Zaver := TZaver.AB
         else
  -        (Usek as TBlkUsek).Zaver := TZaver.no;
  +        Usek.Zaver := TZaver.no;
   
         Self.RozpadRuseniBlok := Self.RozpadRuseniBlok + 1;
   
  -      if ((Self.fproperties.TypCesty = TJCType.vlak) and ((Usek as TBlkUsek).IsSouprava())) then
  +      if ((Self.fproperties.TypCesty = TJCType.vlak) and (Usek.IsSouprava())) then
          begin
  -        writelog('JC '+Self.nazev+': smazana souprava '+Soupravy.GetSprNameByIndex((Usek as TBlkUsek).Souprava)+
  +        writelog('JC '+Self.nazev+': smazana souprava '+Soupravy.GetSprNameByIndex(Usek.Souprava)+
             ' z bloku '+Usek.name, WR_SPRPREDAT, 0);
  -        (Usek as TBlkUsek).RemoveSoupravy();
  +        Usek.RemoveSoupravy();
          end;
        end;//if Self.RozpadBlok >= 1
      end;//if (cyklus2 = Self.RozpadRuseniBlok)
  
positive.code:     Self.RozpadBlok       := -5;
      Self.RozpadRuseniBlok := -5;
      writelog('JC '+Self.nazev+' - ruseni: rozpad cesty vlakem', WR_VC);
      if ((Nav as TBlkSCom).DNjc = Self) then
       begin
        if ((Nav as TBlkSCom).Navest > 0) then      // tato situace opravdu muze nastat - predstavte si posunovou cestu s jednim usekem vychazejici z nedetek koleje
          (Nav as TBlkSCom).JCZrusNavest();
        (Nav as TBlkSCom).DNjc := nil;
       end;
     end;
  end;//procedure
  
negative.code:   // mazani soupravy z useku pred navestidlem
    if ((Self.RozpadBlok > 0) and (Self.RozpadRuseniBlok = -1)) then
     begin
      Usek := Nav.UsekPred as TBlkUsek;
      if (Usek.Obsazeno = TUsekStav.uvolneno) then
       begin
        if (Usek.IsSouprava() and (Self.fproperties.TypCesty = TJCType.vlak)) then
         begin
          spri := Self.GetSoupravaIndex(nav, Usek);
          Usek.RemoveSouprava(spri);
          writelog('JC '+Self.nazev+': smazana souprava '+Soupravy.GetSprNameByIndex(spri)+
            ' z bloku '+Usek.name, WR_SPRPREDAT, 0);
         end;
  