Huge Collections of Software Manuals and Knowledgebase

GreatManuals.com
Huge Collections of Software Manuals and Knowledgebase

 
Home Contact us Request to publish your help manuals Request to remove your help manuals

Introduction
 » Softek Barcode Reader
Barcode Toolkit Overview
 » Toolkit Interfaces
 » Supported Barcode Types
 » Program Sequence
 » Performance Considerations
Barcode Toolkit Examples
 » Visual Basic Using DLL
 » Visual Basic Using OCX
 » VB.Net
 » Borland Delphi
Methods
 » Methods
 » GetBarString
 » GetBarStringPos & GetBarStringRect
 » GetBarStringType
 » GetBarStringDirection
 » ScanBarCode
 » ScanBarCodeFromBitmap
 » ScanBarCodeFromDIB
 » SetScanRect
Properties
 » Properties
 » AllowDuplicateValues
 » BitmapResolution
 » Code39Checksum
 » ColorThreshold
 » ConvertUPCEToEAN13
 » LineJump
 » ErrorCorrection
 » ExtendedCode39
 » MaxLength
 » MinLength
 » MinOccurrence
 » MinSpaceBarWidth
 » MultipleRead
 » NoiseReduction
 » PageNo
 » Pattern
 » PdfBpp
 » PdfDpi
 » Photometric
 » PrefOccurrence
 » QuietZoneSize
 » ReadCodabar
 » ReadCode128
 » ReadCode25
 » ReadCode25ni
 » ReadCode39
 » ReadEAN13
 » ReadEAN8
 » ReadUPCA
 » ReadUPCE
 » ReadPatchCodes
 » ReadPDF417
 » ReadNumeric
 » ScanDirection
 » ShowCheckDigit
 » SkewTolerance
 » TifSplitMode
 » TifSplitPath
 » UseOverSampling
 

Borland Delphi

Barcode Recognition with Borland Delphi

Barcode Recognition Software

The Softek Barcode Toolkit is an application programmers toolkit which reads barcodes from image files and bitmaps - with a choice of 3 types of interface: DLL, OCX and COM

The following code was kindly provided by Marian Aldenhövel of MBA Software-Consulting.

unit SoftekBarCode;

{ (c)2003 Marian Aldenhövel MBA Software-Consulting
Rosenhain 23
53123 Bonn

marian@mba-software.de

This unit dynamically imports the functions from the Softek Barcode Library.

Usage:

- Call InitLibrary from somewhere in your program before calling any of
the functions.
- See the documentation from Softek for the use of the actual functions.

}

Barcode Generator Bookkeeping software Barcode software
Business financial software Billing software Accounting software

 

interface

uses Windows,SysUtils;

type short=shortint;
long=integer;
PLong=^long;

var stGetBitmapResolution:function():integer; stdcall;
stSetBitmapResolution:function(newValue:integer):integer; stdcall;
stGetDebugTraceFile:function():PChar; stdcall;
stSetDebugTraceFile:function(lpszNewValue:PChar):PChar; stdcall;
stGetLineJump:function():integer; stdcall;
stSetLineJump:function(nNewValue:integer):integer; stdcall;
stGetLowerRatio:function():double; stdcall;
stSetLowerRatio:function(newValue:double):double; stdcall;
stGetMinOccurrence:function():short; stdcall;
stSetMinOccurrence:function(nNewValue:short):short; stdcall;
stGetMultipleRead:function():bool; stdcall;
stSetMultipleRead:function(bNewValue:bool):bool; stdcall;
stGetNoiseReduction:function():short; stdcall;
stSetNoiseReduction:function(nNewValue:short):short; stdcall;
stGetPageNo:function():short; stdcall;
stSetPageNo:function(nNewValue:short):short; stdcall;
stGetPrefOccurrence:function():short; stdcall;
stSetPrefOccurrence:function(nNewValue:short):short; stdcall;
stGetQuietZoneSize:function():short; stdcall;
stSetQuietZoneSize:function(nNewValue:short):short; stdcall;
stGetRotation:function():short; stdcall;
stSetRotation:function(nNewValue:short):short; stdcall;
stGetUpperRatio:function():double; stdcall;
stSetUpperRatio:function(newValue:double):double; stdcall;
stGetReadCode39:function():bool; stdcall;
stSetReadCode39:function(bNewValue:bool):bool; stdcall;
stGetReadEAN13:function():bool; stdcall;
stSetReadEAN13:function(bNewValue:bool):bool; stdcall;
stGetReadEAN8:function():bool; stdcall;
stSetReadEAN8:function(bNewValue:bool):bool; stdcall;
stGetReadUPCA:function():bool; stdcall;
stSetReadUPCA:function(bNewValue:bool):bool; stdcall;
stGetReadUPCE:function():bool; stdcall;
stSetReadUPCE:function(bNewValue:bool):bool; stdcall;
stGetShowCheckDigit:function():bool; stdcall;
stSetShowCheckDigit:function(bNewValue:bool):bool; stdcall;
stGetReadCode128:function():bool; stdcall;
stSetReadCode128:function(bNewValue:bool):bool; stdcall;
stGetCode39NeedStartStop:function():bool; stdcall;
stSetCode39NeedStartStop:function(bNewValue:bool):bool; stdcall;
stGetReadCode25:function():bool; stdcall;
stSetReadCode25:function(bNewValue:bool):bool; stdcall;
stGetColorThreshold:function():short; stdcall;
stSetColorThreshold:function(nNewValue:short):short; stdcall;
stGetBarString:function(index:short):PChar; stdcall;
stScanBarCode:function(FileName:PChar):short; stdcall;
stScanBarCodeFromBitmap:function(hBitmap:long):short; stdcall;
stGetBarStringType:function(index:short):PChar; stdcall;
stGetBarStringPos:function(nBarCode:short;var pTopLeftX,pTopLeftY,pBotRightX,pBotRightY:Long):short; stdcall;
stSetScanRect:function(TopLeftX,TopLeftY,BottomRightX,BottomRightY:Long;MappingMode:short):bool; stdcall;
stGetReadPatchCodes:function():bool; stdcall;
stSetReadPatchCodes:function(bNewValue:bool):bool; stdcall;
stSaveBitmap:function(hBitmap:Long;strFilePath:PChar):bool; stdcall;

function stGetErrorString(ErrorCode:short):string;

procedure InitLibrary;
procedure DoneLibrary;

type ESoftekBarCodeError=class(Exception);

implementation

function stGetErrorString(ErrorCode:short):string;
begin
case ErrorCode of
-1:Result:='Error opening file';
-2:Result:='File is Multi Plane';
-3:Result:='Invalid number of bits per sample';
-4:Result:='Memory allocation error';
-5:Result:='Invalid TIF photometric value';
else Result:=Format('Unknown error %d',[ErrorCode]);
end;
end;

var LibraryHandle:THandle=0;

procedure InitLibrary;

function DoGetProcAdress(aName:string):pointer;
begin
Result:=GetProcAddress(LibraryHandle,PChar(aName));
if Result=NIL then RaiseLastOSError;
end;

begin
if LibraryHandle<>0 then exit;

LibraryHandle:=LoadLibrary('SoftekBarCode.dll');
if LibraryHandle=0 then RaiseLastOSError;

@stGetBitmapResolution:=DoGetProcAdress('stGetBitmapResolution');
@stSetBitmapResolution:=DoGetProcAdress('stSetBitmapResolution');
@stGetDebugTraceFile:=DoGetProcAdress('stGetDebugTraceFile');
@stSetDebugTraceFile:=DoGetProcAdress('stSetDebugTraceFile');
@stGetLineJump:=DoGetProcAdress('stGetLineJump');
@stSetLineJump:=DoGetProcAdress('stSetLineJump');
@stGetLowerRatio:=DoGetProcAdress('stGetLowerRatio');
@stSetLowerRatio:=DoGetProcAdress('stSetLowerRatio');
@stGetMinOccurrence:=DoGetProcAdress('stGetMinOccurrence');
@stSetMinOccurrence:=DoGetProcAdress('stSetMinOccurrence');
@stGetMultipleRead:=DoGetProcAdress('stGetMultipleRead');
@stSetMultipleRead:=DoGetProcAdress('stSetMultipleRead');
@stGetNoiseReduction:=DoGetProcAdress('stGetNoiseReduction');
@stSetNoiseReduction:=DoGetProcAdress('stSetNoiseReduction');
@stGetPageNo:=DoGetProcAdress('stGetPageNo');
@stSetPageNo:=DoGetProcAdress('stSetPageNo');
@stGetPrefOccurrence:=DoGetProcAdress('stGetPrefOccurrence');
@stSetPrefOccurrence:=DoGetProcAdress('stSetPrefOccurrence');
@stGetQuietZoneSize:=DoGetProcAdress('stGetQuietZoneSize');
@stSetQuietZoneSize:=DoGetProcAdress('stSetQuietZoneSize');
@stGetRotation:=DoGetProcAdress('stGetRotation');
@stSetRotation:=DoGetProcAdress('stSetRotation');
@stGetUpperRatio:=DoGetProcAdress('stGetUpperRatio');
@stSetUpperRatio:=DoGetProcAdress('stSetUpperRatio');
@stGetReadCode39:=DoGetProcAdress('stGetReadCode39');
@stSetReadCode39:=DoGetProcAdress('stSetReadCode39');
@stGetReadEAN13:=DoGetProcAdress('stGetReadEAN13');
@stSetReadEAN13:=DoGetProcAdress('stSetReadEAN13');
@stGetReadEAN8:=DoGetProcAdress('stGetReadEAN8');
@stSetReadEAN8:=DoGetProcAdress('stSetReadEAN8');
@stGetReadUPCA:=DoGetProcAdress('stGetReadUPCA');
@stSetReadUPCA:=DoGetProcAdress('stSetReadUPCA');
@stGetReadUPCE:=DoGetProcAdress('stGetReadUPCE');
@stSetReadUPCE:=DoGetProcAdress('stSetReadUPCE');
@stGetShowCheckDigit:=DoGetProcAdress('stGetShowCheckDigit');
@stSetShowCheckDigit:=DoGetProcAdress('stSetShowCheckDigit');
@stGetReadCode128:=DoGetProcAdress('stGetReadCode128');
@stSetReadCode128:=DoGetProcAdress('stSetReadCode128');
@stGetCode39NeedStartStop:=DoGetProcAdress('stGetCode39NeedStartStop');
@stSetCode39NeedStartStop:=DoGetProcAdress('stSetCode39NeedStartStop');
@stGetReadCode25:=DoGetProcAdress('stGetReadCode25');
@stSetReadCode25:=DoGetProcAdress('stSetReadCode25');
@stGetColorThreshold:=DoGetProcAdress('stGetColorThreshold');
@stSetColorThreshold:=DoGetProcAdress('stSetColorThreshold');
@stGetBarString:=DoGetProcAdress('stGetBarString');
@stScanBarCode:=DoGetProcAdress('stScanBarCode');
@stScanBarCodeFromBitmap:=DoGetProcAdress('stScanBarCodeFromBitmap');
@stGetBarStringType:=DoGetProcAdress('stGetBarStringType');
@stGetBarStringPos:=DoGetProcAdress('stGetBarStringPos');
@stSetScanRect:=DoGetProcAdress('stSetScanRect');
@stGetReadPatchCodes:=DoGetProcAdress('stGetReadPatchCodes');
@stSetReadPatchCodes:=DoGetProcAdress('stSetReadPatchCodes');
@stSaveBitmap:=DoGetProcAdress('stSaveBitmap');
end;

procedure DoneLibrary;
begin
if LibraryHandle=0 then exit;

if not FreeLibrary(LibraryHandle) then RaiseLastOSError;

stGetBitmapResolution:=NIL;
stSetBitmapResolution:=NIL;
stGetDebugTraceFile:=NIL;
stSetDebugTraceFile:=NIL;
stGetLineJump:=NIL;
stSetLineJump:=NIL;
stGetLowerRatio:=NIL;
stSetLowerRatio:=NIL;
stGetMinOccurrence:=NIL;
stSetMinOccurrence:=NIL;
stGetMultipleRead:=NIL;
stSetMultipleRead:=NIL;
stGetNoiseReduction:=NIL;
stSetNoiseReduction:=NIL;
stGetPageNo:=NIL;
stSetPageNo:=NIL;
stGetPrefOccurrence:=NIL;
stSetPrefOccurrence:=NIL;
stGetQuietZoneSize:=NIL;
stSetQuietZoneSize:=NIL;
stGetRotation:=NIL;
stSetRotation:=NIL;
stGetUpperRatio:=NIL;
stSetUpperRatio:=NIL;
stGetReadCode39:=NIL;
stSetReadCode39:=NIL;
stGetReadEAN13:=NIL;
stSetReadEAN13:=NIL;
stGetReadEAN8:=NIL;
stSetReadEAN8:=NIL;
stGetReadUPCA:=NIL;
stSetReadUPCA:=NIL;
stGetReadUPCE:=NIL;
stSetReadUPCE:=NIL;
stGetShowCheckDigit:=NIL;
stSetShowCheckDigit:=NIL;
stGetReadCode128:=NIL;
stSetReadCode128:=NIL;
stGetCode39NeedStartStop:=NIL;
stSetCode39NeedStartStop:=NIL;
stGetReadCode25:=NIL;
stSetReadCode25:=NIL;
stGetColorThreshold:=NIL;
stSetColorThreshold:=NIL;
stGetBarString:=NIL;
stScanBarCode:=NIL;
stScanBarCodeFromBitmap:=NIL;
stGetBarStringType:=NIL;
stGetBarStringPos:=NIL;
stSetScanRect:=NIL;
stGetReadPatchCodes:=NIL;
stSetReadPatchCodes:=NIL;
stSaveBitmap:=NIL;
end;

initialization
finalization
DoneLibrary;
end.

Home | Contact us | Request to publish your help manuals | Request to remove your help manuals