anchor.diff:    W := ASprite^.Width;
     TopMargin := ASprite^.TopMargin;
     x := 0;//+round(factor * ASprite^.LeftMargin);
  -  y := 0 +TopMargin;
  +  y := TopMargin;
     DoRenderSprite(ASprite^, x,y,w,h, 0);
   end;
   
  
positive.code:     end;
      1:begin
        x := 0;//+round(factor * (ASprite.Width - ASprite.SpriteWidth - ASprite.LeftMargin));
        y := 0+ASprite^.TopMargin;
      end;
      2:begin
        x := 0;//+ round(factor * ASprite.LeftMargin);
        y := 0+(ASprite^.Height - ASprite^.SpriteHeight - ASprite^.TopMargin);
      end;
      3:begin
        x := 0;//+round(factor * (ASprite.Width - ASprite.SpriteWidth - ASprite.LeftMargin));
        y := 0+(ASprite^.Height - ASprite^.SpriteHeight - ASprite^.TopMargin);
      end;
    end;
  
  
negative.code:   w := round(Double(ASprite^.Width) * factor);
    TopMargin := dim - h;
    x := 0;//+round(factor * ASprite.LeftMargin);
    y := TopMargin;
    DoRenderSprite(ASprite^, x,y,w,h, 0);
  end;
  
  