anchor.diff:    Inc(aRegion.boundMin.Y,adjust.Y);
     Inc(aRegion.boundMax.X,adjust.X);
     Inc(aRegion.boundMax.Y,adjust.Y);
  -  codes.AddObject(PAnsiChar(msg.output),TObject(aRegion));
  +  codes.AddObject(string(PAnsiChar(msg.output)),TObject(aRegion));
   end;
   
   
  
positive.code:   srcrowsize:=fImage.width*SizeOf(TRGBTriple);
    for row := 0 to Image.height - 1 do
    begin
      source:=pointer(cardinal(fImage.pxl)+(fOptions.xMin*Sizeof(TRGBTriple))+(row+fImage.height-options.yMax)*srcrowsize);
      destination:=pointer(cardinal(Image.pxl)+row*destrowsize);
      Move(source^,destination^,destrowsize);
    end;
  
negative.code:   try
      if SetDecodeOptions(decode,image,options) then
      begin
        timeout:=nil;
        if options.timeoutMS>0 then
        begin
  