anchor.diff:      // zamknout ji muzeme kdykoliv
   
       // pokud se nerovna moje poloha, nerovna se i poloha spojky -> obsazenost na spojce apod. je problem
  -    Blky.GetBlkByID(Self.VyhSettings.spojka, Blk);
       if ((Integer(Self.Zaver) > 0) and (Self.Zaver <> TZaver.staveni) or (Self.vyhZaver) or
  -        ((Blk <> nil) and ((Integer((Blk as TBlkVyhybka).Zaver) > 0) and ((Blk as TBlkVyhybka).Zaver <> TZaver.staveni) or ((Blk as TBlkVyhybka).vyhZaver)))) then
  +        ((spojka <> nil) and ((Integer(spojka.Zaver) > 0) and (spojka.Zaver <> TZaver.staveni) or (spojka.vyhZaver)))) then
        begin
         for oblr in Self.OblsRizeni do
           oblr.BlkWriteError(Self, 'Nelze pestavit '+Self.GlobalSettings.name+' - pod zvrem', 'TECHNOLOGIE');
         if (Assigned(callback_err)) then callback_err(self);
         Exit(4);
        end;
  -    if (((Self.Obsazeno = TUsekStav.obsazeno) or ((Blk <> nil) and ((Blk as TBlkVyhybka).Obsazeno = TUsekStav.obsazeno))) and (not nouz)) then
  +    if (((Self.Obsazeno = TUsekStav.obsazeno) or ((spojka <> nil) and (spojka.Obsazeno = TUsekStav.obsazeno))) and (not nouz)) then
        begin
         for oblr in Self.OblsRizeni do
           oblr.BlkWriteError(Self, 'Nelze pestavit '+Self.GlobalSettings.name+' - obsazeno', 'TECHNOLOGIE');
  
positive.code:  if (Self.VyhSettings.spojka > -1) then
    begin
     // pokud se jedna o spojku, volame SetPoloha i na spojku
     Blky.GetBlkByID(Self.VyhSettings.spojka, Blk);
     if ((Blk <> nil) and (Blk.typ = _BLK_VYH) and
     (((Blk as TBlkVyhybka).Stav.staveni_plus <> Self.VyhStav.staveni_plus) or ((Blk as TBlkVyhybka).Stav.staveni_minus <> Self.VyhStav.staveni_minus))) then
       (Blk as TBlkVyhybka).SetPoloha(new, zamek, nouz);
    end;
  
   Result := 0;
  
negative.code: 
  //vytvoreni menu pro potreby konkretniho bloku:
  function TBlkVyhybka.ShowPanelMenu(SenderPnl:TIdContext; SenderOR:TObject; rights:TORCOntrolRights):string;
  var spojka:TBlkVyhybka;
  begin
   Result := inherited;
  
   Blky.GetBlkByID(Self.VyhSettings.spojka, TBlk(spojka));
  
   if ((Self.Zaver = TZaver.no) and (not Self.vyhZaver) and (not Self.redukce_menu) and
      ((Self.zamek = nil) or ((Self.zamek as TBlkZamek).klicUvolnen)) and
    ((spojka = nil) or ((spojka.Zaver = TZaver.no) and (not spojka.vyhZaver)))) then
    begin
     // na vyhybce neni zaver a menu neni redukovane
  
     if ((Self.Obsazeno = TUsekStav.obsazeno) or ((spojka <> nil) and (spojka.Obsazeno = TUsekStav.obsazeno))) then
      begin
       if (Self.VyhStav.poloha = plus) then Result := Result + '!NS-,';
       if (Self.VyhStav.poloha = minus) then Result := Result + '!NS+,';
  