anchor.diff:    result:=fOptions.timeoutMS;
   end;
   
  +procedure TDataMatrixDecode.SetedgeMax(const Value: integer);
  +begin
  +  fOptions.edgeMax:=value;
  +end;
  +
  +procedure TDataMatrixDecode.SetedgeMin(const Value: integer);
  +begin
  +  fOptions.edgeMin:=Value;
  +end;
  +
  +procedure TDataMatrixDecode.SetedgeThresh(const Value: integer);
  +begin
  +  fOptions.edgeThresh:=value;
  +end;
  +
  +procedure TDataMatrixDecode.SetScanGap(const Value: integer);
  +begin
  +  fOptions.scanGap:=value;
  +end;
  +
  +procedure TDataMatrixDecode.SetsquareDevn(const Value: integer);
  +begin
  +  fOptions.squareDevn:=value;
  +end;
  +
   procedure TDataMatrixDecode.SetStopAfter(const Value: integer);
   begin
     fOptions.stopAfter:=Value;
  
positive.code: function SetDecodeOptions(decode:pDmtxDecode;image:pDmtxImage;options:DatamatrixDecodeOptions):boolean;
  begin
    try
      if dmtxDecodeSetProp(decode, DmtxPropScanGap, options.scanGap)=DmtxFail then raise Exception.Create('');
  
      if(options.edgeMin <> DmtxUndefined) then
        if dmtxDecodeSetProp(decode, DmtxPropEdgeMin, options.edgeMin)=DmtxFail then raise Exception.Create('');
  
      if(options.edgeMax <> DmtxUndefined) then
         if dmtxDecodeSetProp(decode, DmtxPropEdgeMax, options.edgeMax)=DmtxFail then raise Exception.Create('');
  
      if(options.squareDevn <> DmtxUndefined) then
        if dmtxDecodeSetProp(decode, DmtxPropSquareDevn, options.squareDevn)=DmtxFail then raise Exception.Create('');
  
      if dmtxDecodeSetProp(decode, DmtxPropSymbolSize, options.sizeIdxExpected)=DmtxFail then raise Exception.Create('');
  
      if dmtxDecodeSetProp(decode, DmtxPropEdgeThresh, options.edgeThresh)=DmtxFail then raise Exception.Create('');
  
      if(options.xMin <> DmtxUndefined) then
        if dmtxDecodeSetProp(decode, DmtxPropXmin, ScaleNumber(options.xMin, image.width, options.regionPercentage))=DmtxFail then raise Exception.Create('');
  
      if(options.xMax <> DmtxUndefined) then
        if dmtxDecodeSetProp(decode, DmtxPropXmax, ScaleNumber(options.xMax, image.width, options.regionPercentage))=DmtxFail then raise Exception.Create('');
  
      if(options.yMin <> DmtxUndefined) then
        if dmtxDecodeSetProp(decode, DmtxPropYmin, ScaleNumber(options.yMin, image.height, options.regionPercentage))=DmtxFail then raise Exception.Create('');
  
      if(options.yMax <> DmtxUndefined) then
        if dmtxDecodeSetProp(decode, DmtxPropYmax, ScaleNumber(options.yMax, image.height, options.regionPercentage))=DmtxFail then raise Exception.Create('');
      result:=true;
    except
      result:=false;
  
negative.code:   inherited;
  end;
  
  function TDataMatrixDecode.GetedgeMax: integer;
  begin
    result:=fOptions.edgeMax;
  end;
  
  function TDataMatrixDecode.GetedgeMin: integer;
  begin
    result:=fOptions.edgeMin;
  end;
  
  function TDataMatrixDecode.GetedgeThresh: integer;
  begin
    result:=fOptions.edgeThresh;
  end;
  
  function TDataMatrixDecode.GetScanGap: integer;
  begin
    Result:=fOptions.scanGap;
  end;
  
  function TDataMatrixDecode.getsquareDevn: integer;
  begin
    Result:=fOptions.squareDevn;
  end;
  
  function TDataMatrixDecode.GetStopafter: integer;
  begin
    result:=fOptions.stopAfter;
  