anchor.diff:              begin
                 LeftT := CPx + Obj.HSpaceL;
                 case Obj.VertAlign of
  -                ATop: TopP := Y - YOffset - LR.LineHt + Obj.VSpaceT;
  +                ATop, ANone: TopP := Y - YOffset - LR.LineHt + Obj.VSpaceT;
                   AMiddle: TopP := Y - YOffset - FO.tmHeight div 2 - (ImageHeight - Obj.VSpaceT + Obj.VSpaceB) div 2;
                   ABottom, ABaseline: TopP := Y - YOffset - ImageHeight - Descent - Obj.VSpaceB;
                 else
  
positive.code: 
      TopP := MargArray[TopPos];
      LeftP := MargArray[LeftPos];
      if Positioning = PosRelative then
      begin
        if TopP = Auto then
          TopP := 0;
        if LeftP = Auto then
          LeftP := 0;
      end
      else if Positioning = PosAbsolute then
      begin
        if TopP = Auto then
          TopP := 0;
        if (LeftP = Auto) then
          if (MargArray[RightPos] <> Auto)
            and (AutoCount = 0) then
            LeftP := AWidth - MargArray[RightPos] - MargArray[Width] - MargArray[MarginRight]
              - MargArray[MarginLeft] - MargArray[PaddingLeft] - MargArray[PaddingRight]
              - MargArray[BorderLeftWidth] - MargArray[BorderRightWidth]
          else
            LeftP := 0;
      end;
  
      if Positioning = posAbsolute then
      begin
        X := LeftP;
        Y := TopP + YRef;
      end;
  
      NewWidth := FindWidth(Canvas, AWidth, AHeight, AutoCount);
  
negative.code:             else if (S = 'MIDDLE') or (S = 'ABSMIDDLE') then
                VertAlign := AMiddle
              else if S = 'LEFT' then
              begin
                VertAlign := ANone;
                HorzAlign := ALeft;
              end
              else if S = 'RIGHT' then
              begin
                VertAlign := ANone;
                HorzAlign := ARight;
              end;
            end;
          BorderSy:
            begin
  