From 2d9d65000b78c6e77da5ee30cce33c9b7f8ed487 Mon Sep 17 00:00:00 2001 From: Merlijn Wajer Date: Wed, 3 Aug 2011 21:52:01 +0200 Subject: [PATCH] Lape: Most types added. Interpreter starts. Lacks a few methods, but most tests just work. :-) --- Units/MMLAddon/LPInc/lpcompile.inc | 9 +- Units/MMLAddon/LPInc/lpexportedmethodsinc.inc | 614 +++++++++--------- Units/MMLAddon/mmlpsthread.pas | 2 +- 3 files changed, 316 insertions(+), 309 deletions(-) diff --git a/Units/MMLAddon/LPInc/lpcompile.inc b/Units/MMLAddon/LPInc/lpcompile.inc index f714567..a67c950 100644 --- a/Units/MMLAddon/LPInc/lpcompile.inc +++ b/Units/MMLAddon/LPInc/lpcompile.inc @@ -33,11 +33,16 @@ addGlobalVar(ps_mouse_right, 'mouse_Right');//0 addGlobalVar(ps_mouse_left, 'mouse_Left');//1 addGlobalVar(ps_mouse_middle, 'mouse_Middle');//2 +addGlobalType('UInt32', 'TClickType'); + addGlobalType('UInt8', 'Byte'); addGlobalType('Int8', 'ShortInt'); addGlobalType('UInt16', 'Word'); addGlobalType('Int16', 'SmallInt'); addGlobalType('UInt32', 'LongWord'); +addGlobalType('UInt32', 'DWord'); +addGlobalType('UInt32', 'Cardinal'); + addGlobalType('Int32', 'LongInt'); addGlobalType('UInt64', 'QWord'); addGlobalType('LongInt', 'Integer'); @@ -56,6 +61,7 @@ addGlobalType('(SP_WriteTimeStamp, SP_OnTerminate)', 'TSP_Property'); addGlobalType('array of string', 'TStringArray'); addGlobalType('array of Integer', 'TIntegerArray'); addGlobalType('array of TIntegerArray', 'T2DIntegerArray'); +addGlobalType('array of TIntegerArray', 'T2DIntArray'); addGlobalType('array of T2DIntegerArray', 'T3DIntegerArray'); addGlobalType('array of byte', 'TByteArray'); addGlobalType('array of extended', 'TExtendedArray'); @@ -86,4 +92,5 @@ addGlobalType('record x, y, c, t, asz: integer; bp: boolean; end', 'TMDTMPoint') addGlobalType('array of TMDTMPoint', 'TMDTMPointArray'); addGlobalType('record Title: string; Handle: integer; Pid: integer; Width, Height: integer; end', 'TSysProc'); -addGlobalType('array of TSysProc', 'TSysProcArr'); \ No newline at end of file +addGlobalType('array of TSysProc', 'TSysProcArr'); + diff --git a/Units/MMLAddon/LPInc/lpexportedmethodsinc.inc b/Units/MMLAddon/LPInc/lpexportedmethodsinc.inc index 1599305..c04ea89 100644 --- a/Units/MMLAddon/LPInc/lpexportedmethodsinc.inc +++ b/Units/MMLAddon/LPInc/lpexportedmethodsinc.inc @@ -1,224 +1,224 @@ -AddGlobalFunc('procedure ps_SetDesktopAsClient;', @Lape_SetDesktopAsClient); -AddGlobalFunc('function ps_SetTargetArray(P: Integer; w, h: integer): integer', @Lape_SetTargetArray); -AddGlobalFunc('function ps_SetTargetBitmap(bitmap: Integer): integer', @Lape_SetTargetBitmap); -AddGlobalFunc('function ps_SetEIOSTarget(name: string; args: Variant): integer', @Lape_SetEIOSTarget); -AddGlobalFunc('procedure ps_SetImageTarget(idx: integer);', @Lape_SetImageTarget); -AddGlobalFunc('procedure ps_SetKeyMouseTarget(idx: integer);', @Lape_SetKeyMouseTarget); -AddGlobalFunc('function ps_GetImageTarget: integer', @Lape_GetImageTarget); -AddGlobalFunc('function ps_GetKeyMouseTarget: integer', @Lape_GetKeyMouseTarget); -AddGlobalFunc('function ps_ExportImageTarget: TTarget_Exported', @Lape_ExportImageTarget); -AddGlobalFunc('function ps_ExportKeyMouseTarget: TTarget_Exported', @Lape_ExportKeyMouseTarget); -AddGlobalFunc('procedure ps_FreeTarget(idx: integer);', @Lape_FreeTarget); -AddGlobalFunc('procedure ps_GetClientDimensions(var w, h: integer);', @Lape_GetClientDimensions); -AddGlobalFunc('procedure ps_GetClientPosition(var left, top: integer);', @Lape_GetClientPosition); -AddGlobalFunc('function ps_Freeze: boolean', @Lape_Freeze); -AddGlobalFunc('function ps_Unfreeze: boolean', @Lape_Unfreeze); -AddGlobalFunc('procedure ps_ActivateClient;', @Lape_ActivateClient); -AddGlobalFunc('function ps_IsTargetValid: boolean', @Lape_IsTargetValid); -AddGlobalFunc('procedure ps_Quicksort(var Arr: TIntegerArray);', @Lape_Quicksort); -AddGlobalFunc('procedure ps_tSwap(var a, b: TPoint);', @Lape_tSwap); -AddGlobalFunc('procedure ps_tpaSwap(var a, b: TPointArray);', @Lape_tpaSwap); -AddGlobalFunc('procedure ps_SwapE(var a, b: Extended);', @Lape_SwapE); -AddGlobalFunc('procedure ps_RAaSTPAEx(var a: TPointArray; const w, h: Integer);', @Lape_RAaSTPAEx); -AddGlobalFunc('procedure ps_RAaSTPA(var a: TPointArray; const Dist: Integer);', @Lape_RAaSTPA); -AddGlobalFunc('function ps_NearbyPointInArrayEx(const P: TPoint; w, h: Integer; const a: TPointArray): Boolean', @Lape_NearbyPointInArrayEx); -AddGlobalFunc('function ps_NearbyPointInArray(const P: TPoint; Dist: Integer; const a: TPointArray): Boolean', @Lape_NearbyPointInArray); -AddGlobalFunc('procedure ps_QuickTPASort(var A: TIntegerArray; var B: TPointArray; iLo, iHi: Integer; SortUp: Boolean);', @Lape_QuickTPASort); -AddGlobalFunc('procedure ps_QuickATPASort(var A: TIntegerArray; var B: T2DPointArray; iLo, iHi: Integer; SortUp: Boolean);', @Lape_QuickATPASort); -AddGlobalFunc('procedure ps_SortTPAFrom(var a: TPointArray; const From: TPoint);', @Lape_SortTPAFrom); -AddGlobalFunc('procedure ps_SortATPAFrom(var a: T2DPointArray; const From: TPoint);', @Lape_SortATPAFrom); -AddGlobalFunc('procedure ps_SortATPAFromFirstPoint(var a: T2DPointArray; const From: TPoint);', @Lape_SortATPAFromFirstPoint); -AddGlobalFunc('procedure ps_InvertTPA(var a: TPointArray);', @Lape_InvertTPA); -AddGlobalFunc('procedure ps_InvertATPA(var a: T2DPointArray);', @Lape_InvertATPA); -AddGlobalFunc('function ps_MiddleTPAEx(const TPA: TPointArray; var x, y: Integer): Boolean', @Lape_MiddleTPAEx); -AddGlobalFunc('function ps_MiddleTPA(const tpa: TPointArray): TPoint', @Lape_MiddleTPA); -AddGlobalFunc('procedure ps_SortATPASize(var a: T2DPointArray; const BigFirst: Boolean);', @Lape_SortATPASize); -AddGlobalFunc('procedure ps_SortATPAFromSize(var a: T2DPointArray; const Size: Integer; CloseFirst: Boolean);', @Lape_SortATPAFromSize); -AddGlobalFunc('function ps_InIntArrayEx(const a: TIntegerArray; var Where: Integer; const Number: Integer): Boolean', @Lape_InIntArrayEx); -AddGlobalFunc('function ps_InIntArray(const a: TIntegerArray; Number: Integer): Boolean', @Lape_InIntArray); -AddGlobalFunc('procedure ps_ClearSameIntegers(var a: TIntegerArray);', @Lape_ClearSameIntegers); -AddGlobalFunc('procedure ps_ClearSameIntegersAndTPA(var a: TIntegerArray; var p: TPointArray);', @Lape_ClearSameIntegersAndTPA); -AddGlobalFunc('function ps_SplitTPAEx(const arr: TPointArray; w, h: Integer): T2DPointArray', @Lape_SplitTPAEx); -AddGlobalFunc('function ps_SplitTPA(const arr: TPointArray; Dist: Integer): T2DPointArray', @Lape_SplitTPA); -AddGlobalFunc('function ps_FloodFillTPA(const TPA: TPointArray): T2DPointArray', @Lape_FloodFillTPA); -AddGlobalFunc('procedure ps_FilterPointsPie(var Points: TPointArray; const SD, ED, MinR, MaxR: Extended; Mx, My: Integer);', @Lape_FilterPointsPie); -AddGlobalFunc('procedure ps_FilterPointsDist(var Points: TPointArray; const MinDist, MaxDist: Extended; Mx, My: Integer);', @Lape_FilterPointsDist); -AddGlobalFunc('procedure ps_FilterPointsLine(var Points: TPointArray; Radial: Extended; Radius, MX, MY: Integer);', @Lape_FilterPointsLine); -AddGlobalFunc('procedure ps_FilterTPADist(var TPA: TPointArray; maxDist: integer);', @Lape_FilterTPADist); -AddGlobalFunc('function ps_GetATPABounds(const ATPA: T2DPointArray): TBox', @Lape_GetATPABounds); -AddGlobalFunc('function ps_GetTPABounds(const TPA: TPointArray): TBox', @Lape_GetTPABounds); -AddGlobalFunc('function ps_FindTPAinTPA(const SearchTPA, TotalTPA: TPointArray; var Matches: TPointArray): Boolean', @Lape_FindTPAinTPA); -AddGlobalFunc('function ps_GetSamePointsATPA(const ATPA: T2DPointArray; var Matches: TPointArray): boolean', @Lape_GetSamePointsATPA); -AddGlobalFunc('function ps_FindTextTPAinTPA(Height: integer; const SearchTPA, TotalTPA: TPointArray; var Matches: TPointArray): Boolean', @Lape_FindTextTPAinTPA); -AddGlobalFunc('procedure ps_SortCircleWise(var tpa: TPointArray; const cx, cy, StartDegree: Integer; SortUp, ClockWise: Boolean);', @Lape_SortCircleWise); -AddGlobalFunc('procedure ps_LinearSort(var tpa: TPointArray; cx, cy, sd: Integer; SortUp: Boolean);', @Lape_LinearSort); -AddGlobalFunc('function ps_RotatePoint(Const p: TPoint; angle, mx, my: Extended): TPoint', @Lape_RotatePoint); -AddGlobalFunc('function ps_ChangeDistPT(const PT: TPoint; mx,my: integer; newdist: extended): TPoint', @Lape_ChangeDistPT); -AddGlobalFunc('function ps_ChangeDistTPA(var TPA: TPointArray; mx,my: integer; newdist: extended): boolean', @Lape_ChangeDistTPA); -AddGlobalFunc('function ps_FindGapsTPA(const TPA: TPointArray; MinPixels: Integer): T2DPointArray', @Lape_FindGapsTPA); -AddGlobalFunc('function ps_RemoveDistTPointArray(x, y, dist: Integer; const ThePoints: TPointArray; RemoveHigher: Boolean): TPointArray', @Lape_RemoveDistTPointArray); -AddGlobalFunc('function ps_CombineTPA(const Ar1, Ar2: TPointArray): TPointArray', @Lape_CombineTPA); -AddGlobalFunc('function ps_ReArrangeandShortenArrayEx(const a: TPointArray; w, h: Integer): TPointArray', @Lape_ReArrangeandShortenArrayEx); -AddGlobalFunc('function ps_ReArrangeandShortenArray(const a: TPointArray; Dist: Integer): TPointArray', @Lape_ReArrangeandShortenArray); -AddGlobalFunc('function ps_TPAtoATPAEx(const TPA: TPointArray; w, h: Integer): T2DPointArray', @Lape_TPAtoATPAEx); -AddGlobalFunc('function ps_TPAtoATPA(const TPA: TPointArray; Dist: Integer): T2DPointArray', @Lape_TPAtoATPA); -AddGlobalFunc('function ps_CombineIntArray(const Ar1, Ar2: TIntegerArray): TIntegerArray', @Lape_CombineIntArray); -AddGlobalFunc('function ps_MergeATPA(const ATPA: T2DPointArray): TPointArray', @Lape_MergeATPA); -AddGlobalFunc('procedure ps_AppendTPA(var TPA: TPointArray; const ToAppend: TPointArray);', @Lape_AppendTPA); -AddGlobalFunc('function ps_TPAFromBox(const Box: TBox): TPointArray', @Lape_TPAFromBox); -AddGlobalFunc('function ps_RotatePoints(Const P: TPointArray; A, cx, cy: Extended): TPointArray', @Lape_RotatePoints); -AddGlobalFunc('function ps_FindTPAEdges(const p: TPointArray): TPointArray', @Lape_FindTPAEdges); -AddGlobalFunc('function ps_ClearTPAFromTPA(const arP, ClearPoints: TPointArray): TPointArray', @Lape_ClearTPAFromTPA); -AddGlobalFunc('function ps_ReturnPointsNotInTPA(Const TotalTPA: TPointArray; const Box: TBox): TPointArray', @Lape_ReturnPointsNotInTPA); -AddGlobalFunc('function ps_PointInTPA(p: TPoint; const arP: TPointArray): Boolean', @Lape_PointInTPA); -AddGlobalFunc('procedure ps_ClearDoubleTPA(var TPA: TPointArray);', @Lape_ClearDoubleTPA); -AddGlobalFunc('procedure ps_TPACountSort(Var TPA: TPointArray; const max: TPoint; Const SortOnX: Boolean);', @Lape_TPACountSort); -AddGlobalFunc('procedure ps_TPACountSortBase(Var TPA: TPointArray; const maxx, base: TPoint; const SortOnX: Boolean);', @Lape_TPACountSortBase); -AddGlobalFunc('procedure ps_InvertTIA(var tI: TIntegerArray);', @Lape_InvertTIA); -AddGlobalFunc('function ps_SumIntegerArray(const Ints: TIntegerArray): Integer', @Lape_SumIntegerArray); -AddGlobalFunc('function ps_AverageTIA(const tI: TIntegerArray): Integer', @Lape_AverageTIA); -AddGlobalFunc('function ps_AverageExtended(const tE: TExtendedArray): Extended', @Lape_AverageExtended); -AddGlobalFunc('procedure ps_SplitTPAExWrap(const arr: TPointArray; w, h: Integer; var res: T2DPointArray);', @Lape_SplitTPAExWrap); -AddGlobalFunc('procedure ps_SplitTPAWrap(const arr: TPointArray; Dist: Integer; var res: T2DPointArray);', @Lape_SplitTPAWrap); -AddGlobalFunc('procedure ps_FindGapsTPAWrap(const TPA: TPointArray; MinPixels: Integer; var Res: T2DPointArray);', @Lape_FindGapsTPAWrap); -AddGlobalFunc('procedure ps_RemoveDistTPointArrayWrap(x, y, dist: Integer; const ThePoints: TPointArray; RemoveHigher: Boolean; var Res: TPointArray);', @Lape_RemoveDistTPointArrayWrap); -AddGlobalFunc('procedure ps_CombineTPAWrap(const Ar1, Ar2: TPointArray; var Res: TPointArray);', @Lape_CombineTPAWrap); -AddGlobalFunc('procedure ps_ReArrangeandShortenArrayExWrap(const a: TPointArray; w, h: Integer; var Res: TPointArray);', @Lape_ReArrangeandShortenArrayExWrap); -AddGlobalFunc('procedure ps_ReArrangeandShortenArrayWrap(const a: TPointArray; Dist: Integer; var Res: TPointArray);', @Lape_ReArrangeandShortenArrayWrap); -AddGlobalFunc('procedure ps_TPAtoATPAExWrap(const TPA: TPointArray; w, h: Integer; var Res: T2DPointArray);', @Lape_TPAtoATPAExWrap); -AddGlobalFunc('procedure ps_TPAtoATPAWrap(const TPA: TPointArray; Dist: Integer; var Res: T2DPointArray);', @Lape_TPAtoATPAWrap); -AddGlobalFunc('procedure ps_CombineIntArrayWrap(const Ar1, Ar2: TIntegerArray; var Res: TIntegerArray);', @Lape_CombineIntArrayWrap); -AddGlobalFunc('procedure ps_MergeATPAWrap(const ATPA: T2DPointArray; var Res: TPointArray);', @Lape_MergeATPAWrap); -AddGlobalFunc('procedure ps_TPAFromBoxWrap(const Box: TBox; var Res: TPointArray);', @Lape_TPAFromBoxWrap); -AddGlobalFunc('procedure ps_RotatePointsWrap(Const P: TPointArray; A, cx, cy: Extended; var Res: TPointArray);', @Lape_RotatePointsWrap); -AddGlobalFunc('procedure ps_FindTPAEdgesWrap(const p: TPointArray; var Res: TPointArray);', @Lape_FindTPAEdgesWrap); -AddGlobalFunc('procedure ps_ClearTPAFromTPAWrap(const arP, ClearPoints: TPointArray; var Res: TPointArray);', @Lape_ClearTPAFromTPAWrap); -AddGlobalFunc('procedure ps_ReturnPointsNotInTPAWrap(Const TotalTPA: TPointArray; const Box: TBox; var Res: TPointArray);', @Lape_ReturnPointsNotInTPAWrap); -AddGlobalFunc('function ps_SameTPA(const aTPA, bTPA: TPointArray): Boolean', @Lape_SameTPA); -AddGlobalFunc('function ps_TPAInATPA(const TPA: TPointArray; const InATPA: T2DPointArray; var Index: LongInt): Boolean', @Lape_TPAInATPA); -AddGlobalFunc('procedure ps_OffsetTPA(var TPA: TPointArray; const Offset: TPoint);', @Lape_OffsetTPA); -AddGlobalFunc('procedure ps_OffsetATPA(var ATPA: T2DPointArray; const Offset: TPoint);', @Lape_OffsetATPA); -AddGlobalFunc('function ps_CopyTPA(const TPA: TPointArray): TPointArray', @Lape_CopyTPA); -AddGlobalFunc('function ps_CopyATPA(const ATPA: T2DPointArray): T2DPointArray', @Lape_CopyATPA); -AddGlobalFunc('function ps_Capitalize(str: string): string', @Lape_Capitalize); -AddGlobalFunc('function ps_CompressString(const Str: string): string', @Lape_CompressString); -AddGlobalFunc('function ps_DecompressString(const Compressed: string): string', @Lape_DecompressString); -AddGlobalFunc('function ps_Base64Encode(const str: string): string', @Lape_Base64Encode); -AddGlobalFunc('function ps_Base64Decode(const str: string): string', @Lape_Base64Decode); -AddGlobalFunc('function ps_ExtractFromStr(Str: string; Extract: StrExtr): string', @Lape_ExtractFromStr); -AddGlobalFunc('function ps_BoolToStr(bool: boolean): string', @Lape_BoolToStr); -AddGlobalFunc('function ps_Replace(Text, FindStr, ReplaceStr: string; Flags: TReplaceFlags): string', @Lape_Replace); -AddGlobalFunc('function ps_IntToStr(int: integer): string', @Lape_IntToStr); -AddGlobalFunc('function ps_FloatToStr(flt: extended): string', @Lape_FloatToStr); -AddGlobalFunc('function ps_StrToInt(value: String): Integer', @Lape_StrToInt); -AddGlobalFunc('function ps_StrToIntDef(value: String; default: Integer): Integer', @Lape_StrToIntDef); -AddGlobalFunc('function ps_StrToFloat(value: String): Extended', @Lape_StrToFloat); -AddGlobalFunc('function ps_StrToFloatDef(value: String; default: Extended): Extended', @Lape_StrToFloatDef); -AddGlobalFunc('function ps_StrToBool(value: String): Boolean', @Lape_StrToBool); -AddGlobalFunc('function ps_StrToBoolDef(value: String; default: Boolean): Boolean', @Lape_StrToBoolDef); -AddGlobalFunc('function ps_Between(s1, s2, str: string): string', @Lape_Between); -AddGlobalFunc('function ps_SetSettingValue(const KeyName,value: string): boolean', @Lape_SetSettingValue); -AddGlobalFunc('function ps_KeyIsSetting(const KeyName: String): Boolean', @Lape_KeyIsSetting); -AddGlobalFunc('function ps_KeyIsDirectory(const KeyName: String): Boolean', @Lape_KeyIsDirectory); -AddGlobalFunc('function ps_GetSettingValue(const KeyName: String): String', @Lape_GetSettingValue); -AddGlobalFunc('function ps_GetSettingValueDef(const KeyName, defVal: String): String', @Lape_GetSettingValueDef); -AddGlobalFunc('function ps_ListSettings(const KeyName: String; var KeyReturn: TStringArray): boolean', @Lape_ListSettings); -AddGlobalFunc('function ps_DeleteSetting(const KeyName: String): Boolean', @Lape_DeleteSetting); -AddGlobalFunc('function ps_DeleteSubSettings(const KeyName: String): Boolean', @Lape_DeleteSubSettings); -AddGlobalFunc('procedure ps_Writeln(const str: string);', @Lape_Writeln); -AddGlobalFunc('function ps_SetScriptProp(prop: TSP_Property; Value: TVariantArray): boolean', @Lape_SetScriptProp); -AddGlobalFunc('function ps_GetScriptProp(prop: TSP_Property; var Value: TVariantArray): boolean', @Lape_GetScriptProp); -AddGlobalFunc('procedure ps_Wait(t: DWord);', @Lape_Wait); -AddGlobalFunc('function ps_rs_GetUpText: String', @Lape_rs_GetUpText); -AddGlobalFunc('function ps_rs_GetUpTextAtEx(x, y: integer; shadow: boolean): string', @Lape_rs_GetUpTextAtEx); -AddGlobalFunc('function ps_rs_GetUpTextAt(x, y: integer): string', @Lape_rs_GetUpTextAt); -AddGlobalFunc('function ps_BitmapFromText(const text, font: String): integer', @Lape_BitmapFromText); -AddGlobalFunc('procedure ps_MoveMouse(x, y: integer);', @Lape_MoveMouse); -AddGlobalFunc('procedure ps_ScrollMouse(x,y: integer; Clicks: integer);', @Lape_ScrollMouse); -AddGlobalFunc('procedure ps_GetMousePos(var x, y: integer);', @Lape_GetMousePos); +AddGlobalFunc('procedure SetDesktopAsClient;', @Lape_SetDesktopAsClient); +AddGlobalFunc('function SetTargetArray(P: Integer; w, h: integer): integer', @Lape_SetTargetArray); +AddGlobalFunc('function SetTargetBitmap(bitmap: Integer): integer', @Lape_SetTargetBitmap); +AddGlobalFunc('function SetEIOSTarget(name: string; args: Variant): integer', @Lape_SetEIOSTarget); +AddGlobalFunc('procedure SetImageTarget(idx: integer);', @Lape_SetImageTarget); +AddGlobalFunc('procedure SetKeyMouseTarget(idx: integer);', @Lape_SetKeyMouseTarget); +AddGlobalFunc('function GetImageTarget: integer', @Lape_GetImageTarget); +AddGlobalFunc('function GetKeyMouseTarget: integer', @Lape_GetKeyMouseTarget); +AddGlobalFunc('function ExportImageTarget: TTarget_Exported', @Lape_ExportImageTarget); +AddGlobalFunc('function ExportKeyMouseTarget: TTarget_Exported', @Lape_ExportKeyMouseTarget); +AddGlobalFunc('procedure FreeTarget(idx: integer);', @Lape_FreeTarget); +AddGlobalFunc('procedure GetClientDimensions(var w, h: integer);', @Lape_GetClientDimensions); +AddGlobalFunc('procedure GetClientPosition(var left, top: integer);', @Lape_GetClientPosition); +AddGlobalFunc('function Freeze: boolean', @Lape_Freeze); +AddGlobalFunc('function Unfreeze: boolean', @Lape_Unfreeze); +AddGlobalFunc('procedure ActivateClient;', @Lape_ActivateClient); +AddGlobalFunc('function IsTargetValid: boolean', @Lape_IsTargetValid); +AddGlobalFunc('procedure Quicksort(var Arr: TIntegerArray);', @Lape_Quicksort); +AddGlobalFunc('procedure tSwap(var a, b: TPoint);', @Lape_tSwap); +AddGlobalFunc('procedure tpaSwap(var a, b: TPointArray);', @Lape_tpaSwap); +AddGlobalFunc('procedure SwapE(var a, b: Extended);', @Lape_SwapE); +AddGlobalFunc('procedure RAaSTPAEx(var a: TPointArray; const w, h: Integer);', @Lape_RAaSTPAEx); +AddGlobalFunc('procedure RAaSTPA(var a: TPointArray; const Dist: Integer);', @Lape_RAaSTPA); +AddGlobalFunc('function NearbyPointInArrayEx(const P: TPoint; w, h: Integer; const a: TPointArray): Boolean', @Lape_NearbyPointInArrayEx); +AddGlobalFunc('function NearbyPointInArray(const P: TPoint; Dist: Integer; const a: TPointArray): Boolean', @Lape_NearbyPointInArray); +AddGlobalFunc('procedure QuickTPASort(var A: TIntegerArray; var B: TPointArray; iLo, iHi: Integer; SortUp: Boolean);', @Lape_QuickTPASort); +AddGlobalFunc('procedure QuickATPASort(var A: TIntegerArray; var B: T2DPointArray; iLo, iHi: Integer; SortUp: Boolean);', @Lape_QuickATPASort); +AddGlobalFunc('procedure SortTPAFrom(var a: TPointArray; const From: TPoint);', @Lape_SortTPAFrom); +AddGlobalFunc('procedure SortATPAFrom(var a: T2DPointArray; const From: TPoint);', @Lape_SortATPAFrom); +AddGlobalFunc('procedure SortATPAFromFirstPoint(var a: T2DPointArray; const From: TPoint);', @Lape_SortATPAFromFirstPoint); +AddGlobalFunc('procedure InvertTPA(var a: TPointArray);', @Lape_InvertTPA); +AddGlobalFunc('procedure InvertATPA(var a: T2DPointArray);', @Lape_InvertATPA); +AddGlobalFunc('function MiddleTPAEx(const TPA: TPointArray; var x, y: Integer): Boolean', @Lape_MiddleTPAEx); +AddGlobalFunc('function MiddleTPA(const tpa: TPointArray): TPoint', @Lape_MiddleTPA); +AddGlobalFunc('procedure SortATPASize(var a: T2DPointArray; const BigFirst: Boolean);', @Lape_SortATPASize); +AddGlobalFunc('procedure SortATPAFromSize(var a: T2DPointArray; const Size: Integer; CloseFirst: Boolean);', @Lape_SortATPAFromSize); +AddGlobalFunc('function InIntArrayEx(const a: TIntegerArray; var Where: Integer; const Number: Integer): Boolean', @Lape_InIntArrayEx); +AddGlobalFunc('function InIntArray(const a: TIntegerArray; Number: Integer): Boolean', @Lape_InIntArray); +AddGlobalFunc('procedure ClearSameIntegers(var a: TIntegerArray);', @Lape_ClearSameIntegers); +AddGlobalFunc('procedure ClearSameIntegersAndTPA(var a: TIntegerArray; var p: TPointArray);', @Lape_ClearSameIntegersAndTPA); +AddGlobalFunc('function SplitTPAEx(const arr: TPointArray; w, h: Integer): T2DPointArray', @Lape_SplitTPAEx); +AddGlobalFunc('function SplitTPA(const arr: TPointArray; Dist: Integer): T2DPointArray', @Lape_SplitTPA); +AddGlobalFunc('function FloodFillTPA(const TPA: TPointArray): T2DPointArray', @Lape_FloodFillTPA); +AddGlobalFunc('procedure FilterPointsPie(var Points: TPointArray; const SD, ED, MinR, MaxR: Extended; Mx, My: Integer);', @Lape_FilterPointsPie); +AddGlobalFunc('procedure FilterPointsDist(var Points: TPointArray; const MinDist, MaxDist: Extended; Mx, My: Integer);', @Lape_FilterPointsDist); +AddGlobalFunc('procedure FilterPointsLine(var Points: TPointArray; Radial: Extended; Radius, MX, MY: Integer);', @Lape_FilterPointsLine); +AddGlobalFunc('procedure FilterTPADist(var TPA: TPointArray; maxDist: integer);', @Lape_FilterTPADist); +AddGlobalFunc('function GetATPABounds(const ATPA: T2DPointArray): TBox', @Lape_GetATPABounds); +AddGlobalFunc('function GetTPABounds(const TPA: TPointArray): TBox', @Lape_GetTPABounds); +AddGlobalFunc('function FindTPAinTPA(const SearchTPA, TotalTPA: TPointArray; var Matches: TPointArray): Boolean', @Lape_FindTPAinTPA); +AddGlobalFunc('function GetSamePointsATPA(const ATPA: T2DPointArray; var Matches: TPointArray): boolean', @Lape_GetSamePointsATPA); +AddGlobalFunc('function FindTextTPAinTPA(Height: integer; const SearchTPA, TotalTPA: TPointArray; var Matches: TPointArray): Boolean', @Lape_FindTextTPAinTPA); +AddGlobalFunc('procedure SortCircleWise(var tpa: TPointArray; const cx, cy, StartDegree: Integer; SortUp, ClockWise: Boolean);', @Lape_SortCircleWise); +AddGlobalFunc('procedure LinearSort(var tpa: TPointArray; cx, cy, sd: Integer; SortUp: Boolean);', @Lape_LinearSort); +AddGlobalFunc('function RotatePoint(Const p: TPoint; angle, mx, my: Extended): TPoint', @Lape_RotatePoint); +AddGlobalFunc('function ChangeDistPT(const PT: TPoint; mx,my: integer; newdist: extended): TPoint', @Lape_ChangeDistPT); +AddGlobalFunc('function ChangeDistTPA(var TPA: TPointArray; mx,my: integer; newdist: extended): boolean', @Lape_ChangeDistTPA); +AddGlobalFunc('function FindGapsTPA(const TPA: TPointArray; MinPixels: Integer): T2DPointArray', @Lape_FindGapsTPA); +AddGlobalFunc('function RemoveDistTPointArray(x, y, dist: Integer; const ThePoints: TPointArray; RemoveHigher: Boolean): TPointArray', @Lape_RemoveDistTPointArray); +AddGlobalFunc('function CombineTPA(const Ar1, Ar2: TPointArray): TPointArray', @Lape_CombineTPA); +AddGlobalFunc('function ReArrangeandShortenArrayEx(const a: TPointArray; w, h: Integer): TPointArray', @Lape_ReArrangeandShortenArrayEx); +AddGlobalFunc('function ReArrangeandShortenArray(const a: TPointArray; Dist: Integer): TPointArray', @Lape_ReArrangeandShortenArray); +AddGlobalFunc('function TPAtoATPAEx(const TPA: TPointArray; w, h: Integer): T2DPointArray', @Lape_TPAtoATPAEx); +AddGlobalFunc('function TPAtoATPA(const TPA: TPointArray; Dist: Integer): T2DPointArray', @Lape_TPAtoATPA); +AddGlobalFunc('function CombineIntArray(const Ar1, Ar2: TIntegerArray): TIntegerArray', @Lape_CombineIntArray); +AddGlobalFunc('function MergeATPA(const ATPA: T2DPointArray): TPointArray', @Lape_MergeATPA); +AddGlobalFunc('procedure AppendTPA(var TPA: TPointArray; const ToAppend: TPointArray);', @Lape_AppendTPA); +AddGlobalFunc('function TPAFromBox(const Box: TBox): TPointArray', @Lape_TPAFromBox); +AddGlobalFunc('function RotatePoints(Const P: TPointArray; A, cx, cy: Extended): TPointArray', @Lape_RotatePoints); +AddGlobalFunc('function FindTPAEdges(const p: TPointArray): TPointArray', @Lape_FindTPAEdges); +AddGlobalFunc('function ClearTPAFromTPA(const arP, ClearPoints: TPointArray): TPointArray', @Lape_ClearTPAFromTPA); +AddGlobalFunc('function ReturnPointsNotInTPA(Const TotalTPA: TPointArray; const Box: TBox): TPointArray', @Lape_ReturnPointsNotInTPA); +AddGlobalFunc('function PointInTPA(p: TPoint; const arP: TPointArray): Boolean', @Lape_PointInTPA); +AddGlobalFunc('procedure ClearDoubleTPA(var TPA: TPointArray);', @Lape_ClearDoubleTPA); +AddGlobalFunc('procedure TPACountSort(Var TPA: TPointArray; const max: TPoint; Const SortOnX: Boolean);', @Lape_TPACountSort); +AddGlobalFunc('procedure TPACountSortBase(Var TPA: TPointArray; const maxx, base: TPoint; const SortOnX: Boolean);', @Lape_TPACountSortBase); +AddGlobalFunc('procedure InvertTIA(var tI: TIntegerArray);', @Lape_InvertTIA); +AddGlobalFunc('function SumIntegerArray(const Ints: TIntegerArray): Integer', @Lape_SumIntegerArray); +AddGlobalFunc('function AverageTIA(const tI: TIntegerArray): Integer', @Lape_AverageTIA); +AddGlobalFunc('function AverageExtended(const tE: TExtendedArray): Extended', @Lape_AverageExtended); +AddGlobalFunc('procedure SplitTPAExWrap(const arr: TPointArray; w, h: Integer; var res: T2DPointArray);', @Lape_SplitTPAExWrap); +AddGlobalFunc('procedure SplitTPAWrap(const arr: TPointArray; Dist: Integer; var res: T2DPointArray);', @Lape_SplitTPAWrap); +AddGlobalFunc('procedure FindGapsTPAWrap(const TPA: TPointArray; MinPixels: Integer; var Res: T2DPointArray);', @Lape_FindGapsTPAWrap); +AddGlobalFunc('procedure RemoveDistTPointArrayWrap(x, y, dist: Integer; const ThePoints: TPointArray; RemoveHigher: Boolean; var Res: TPointArray);', @Lape_RemoveDistTPointArrayWrap); +AddGlobalFunc('procedure CombineTPAWrap(const Ar1, Ar2: TPointArray; var Res: TPointArray);', @Lape_CombineTPAWrap); +AddGlobalFunc('procedure ReArrangeandShortenArrayExWrap(const a: TPointArray; w, h: Integer; var Res: TPointArray);', @Lape_ReArrangeandShortenArrayExWrap); +AddGlobalFunc('procedure ReArrangeandShortenArrayWrap(const a: TPointArray; Dist: Integer; var Res: TPointArray);', @Lape_ReArrangeandShortenArrayWrap); +AddGlobalFunc('procedure TPAtoATPAExWrap(const TPA: TPointArray; w, h: Integer; var Res: T2DPointArray);', @Lape_TPAtoATPAExWrap); +AddGlobalFunc('procedure TPAtoATPAWrap(const TPA: TPointArray; Dist: Integer; var Res: T2DPointArray);', @Lape_TPAtoATPAWrap); +AddGlobalFunc('procedure CombineIntArrayWrap(const Ar1, Ar2: TIntegerArray; var Res: TIntegerArray);', @Lape_CombineIntArrayWrap); +AddGlobalFunc('procedure MergeATPAWrap(const ATPA: T2DPointArray; var Res: TPointArray);', @Lape_MergeATPAWrap); +AddGlobalFunc('procedure TPAFromBoxWrap(const Box: TBox; var Res: TPointArray);', @Lape_TPAFromBoxWrap); +AddGlobalFunc('procedure RotatePointsWrap(Const P: TPointArray; A, cx, cy: Extended; var Res: TPointArray);', @Lape_RotatePointsWrap); +AddGlobalFunc('procedure FindTPAEdgesWrap(const p: TPointArray; var Res: TPointArray);', @Lape_FindTPAEdgesWrap); +AddGlobalFunc('procedure ClearTPAFromTPAWrap(const arP, ClearPoints: TPointArray; var Res: TPointArray);', @Lape_ClearTPAFromTPAWrap); +AddGlobalFunc('procedure ReturnPointsNotInTPAWrap(Const TotalTPA: TPointArray; const Box: TBox; var Res: TPointArray);', @Lape_ReturnPointsNotInTPAWrap); +AddGlobalFunc('function SameTPA(const aTPA, bTPA: TPointArray): Boolean', @Lape_SameTPA); +AddGlobalFunc('function TPAInATPA(const TPA: TPointArray; const InATPA: T2DPointArray; var Index: LongInt): Boolean', @Lape_TPAInATPA); +AddGlobalFunc('procedure OffsetTPA(var TPA: TPointArray; const Offset: TPoint);', @Lape_OffsetTPA); +AddGlobalFunc('procedure OffsetATPA(var ATPA: T2DPointArray; const Offset: TPoint);', @Lape_OffsetATPA); +AddGlobalFunc('function CopyTPA(const TPA: TPointArray): TPointArray', @Lape_CopyTPA); +AddGlobalFunc('function CopyATPA(const ATPA: T2DPointArray): T2DPointArray', @Lape_CopyATPA); +AddGlobalFunc('function Capitalize(str: string): string', @Lape_Capitalize); +AddGlobalFunc('function CompressString(const Str: string): string', @Lape_CompressString); +AddGlobalFunc('function DecompressString(const Compressed: string): string', @Lape_DecompressString); +AddGlobalFunc('function Base64Encode(const str: string): string', @Lape_Base64Encode); +AddGlobalFunc('function Base64Decode(const str: string): string', @Lape_Base64Decode); +AddGlobalFunc('function ExtractFromStr(Str: string; Extract: StrExtr): string', @Lape_ExtractFromStr); +AddGlobalFunc('function BoolToStr(bool: boolean): string', @Lape_BoolToStr); +AddGlobalFunc('function Replace(Text, FindStr, ReplaceStr: string; Flags: TReplaceFlags): string', @Lape_Replace); +AddGlobalFunc('function IntToStr(int: integer): string', @Lape_IntToStr); +AddGlobalFunc('function FloatToStr(flt: extended): string', @Lape_FloatToStr); +AddGlobalFunc('function StrToInt(value: String): Integer', @Lape_StrToInt); +AddGlobalFunc('function StrToIntDef(value: String; default: Integer): Integer', @Lape_StrToIntDef); +AddGlobalFunc('function StrToFloat(value: String): Extended', @Lape_StrToFloat); +AddGlobalFunc('function StrToFloatDef(value: String; default: Extended): Extended', @Lape_StrToFloatDef); +AddGlobalFunc('function StrToBool(value: String): Boolean', @Lape_StrToBool); +AddGlobalFunc('function StrToBoolDef(value: String; default: Boolean): Boolean', @Lape_StrToBoolDef); +AddGlobalFunc('function Between(s1, s2, str: string): string', @Lape_Between); +AddGlobalFunc('function SetSettingValue(const KeyName,value: string): boolean', @Lape_SetSettingValue); +AddGlobalFunc('function KeyIsSetting(const KeyName: String): Boolean', @Lape_KeyIsSetting); +AddGlobalFunc('function KeyIsDirectory(const KeyName: String): Boolean', @Lape_KeyIsDirectory); +AddGlobalFunc('function GetSettingValue(const KeyName: String): String', @Lape_GetSettingValue); +AddGlobalFunc('function GetSettingValueDef(const KeyName, defVal: String): String', @Lape_GetSettingValueDef); +AddGlobalFunc('function ListSettings(const KeyName: String; var KeyReturn: TStringArray): boolean', @Lape_ListSettings); +AddGlobalFunc('function DeleteSetting(const KeyName: String): Boolean', @Lape_DeleteSetting); +AddGlobalFunc('function DeleteSubSettings(const KeyName: String): Boolean', @Lape_DeleteSubSettings); +AddGlobalFunc('procedure Writeln(const str: string);', @Lape_Writeln); +AddGlobalFunc('function SetScriptProp(prop: TSP_Property; Value: TVariantArray): boolean', @Lape_SetScriptProp); +AddGlobalFunc('function GetScriptProp(prop: TSP_Property; var Value: TVariantArray): boolean', @Lape_GetScriptProp); +AddGlobalFunc('procedure Wait(t: DWord);', @Lape_Wait); +AddGlobalFunc('function rs_GetUpText: String', @Lape_rs_GetUpText); +AddGlobalFunc('function rs_GetUpTextAtEx(x, y: integer; shadow: boolean): string', @Lape_rs_GetUpTextAtEx); +AddGlobalFunc('function rs_GetUpTextAt(x, y: integer): string', @Lape_rs_GetUpTextAt); +AddGlobalFunc('function BitmapFromText(const text, font: String): integer', @Lape_BitmapFromText); +AddGlobalFunc('procedure MoveMouse(x, y: integer);', @Lape_MoveMouse); +AddGlobalFunc('procedure ScrollMouse(x,y: integer; Clicks: integer);', @Lape_ScrollMouse); +AddGlobalFunc('procedure GetMousePos(var x, y: integer);', @Lape_GetMousePos); AddGlobalFunc('function ConvIntClickType(Int: Integer): TClickType', @Lape_); -AddGlobalFunc('procedure ps_HoldMouse(x, y: integer; clickType: integer);', @Lape_HoldMouse); -AddGlobalFunc('procedure ps_ReleaseMouse(x, y: integer; clickType: integer);', @Lape_ReleaseMouse); -AddGlobalFunc('procedure ps_ClickMouse(x, y: integer; clickType: integer);', @Lape_ClickMouse); -AddGlobalFunc('function ps_IsMouseButtonDown(button: integer): boolean', @Lape_IsMouseButtonDown); -AddGlobalFunc('function ps_round(e: extended): integer', @Lape_round); -AddGlobalFunc('function ps_iAbs(a: integer): integer', @Lape_iAbs); -AddGlobalFunc('function ps_ceil(e: extended): integer', @Lape_ceil); -AddGlobalFunc('function ps_pow(base,exponent: extended): extended', @Lape_pow); -AddGlobalFunc('function ps_RiemannGauss(Xstart,StepSize,Sigma: extended; AmountSteps: integer): extended', @Lape_RiemannGauss); -AddGlobalFunc('function ps_DiscreteGauss(Xstart,Xend: integer; sigma: extended): TExtendedArray', @Lape_DiscreteGauss); -AddGlobalFunc('function ps_GaussMatrix(N: integer; sigma: extended): T2DExtendedArray', @Lape_GaussMatrix); -AddGlobalFunc('function ps_exp(exponent: extended): extended', @Lape_exp); -AddGlobalFunc('function ps_Max(a,b: integer): integer', @Lape_Max); -AddGlobalFunc('function ps_Min(a, b: Integer): Integer', @Lape_Min); -AddGlobalFunc('function ps_MinE(a, b: extended): extended', @Lape_MinE); -AddGlobalFunc('function ps_MaxE(a,b: extended): extended', @Lape_MaxE); -AddGlobalFunc('function ps_Sqr(e: extended): extended', @Lape_Sqr); -AddGlobalFunc('function ps_Point(x,y: integer): TPoint', @Lape_Point); -AddGlobalFunc('function ps_Distance(x1,y1,x2,y2: integer): integer', @Lape_Distance); -AddGlobalFunc('function ps_Hypot(X, Y: Extended): Extended', @Lape_Hypot); -AddGlobalFunc('function ps_RandomRange(const aFrom, aTo: Integer): Integer', @Lape_RandomRange); -AddGlobalFunc('function ps_Random(Int: integer): integer', @Lape_Random); -AddGlobalFunc('function ps_RandomE: extended', @Lape_RandomE); -AddGlobalFunc('function ps_ArcTan2(y,x: extended): extended', @Lape_ArcTan2); -AddGlobalFunc('procedure ps_IncEx(var x: integer; increase: integer);', @Lape_IncEx); -AddGlobalFunc('procedure ps_DecEx(var x: integer; Decrease: integer);', @Lape_DecEx); -AddGlobalFunc('function ps_Factorial(number: longword): Int64', @Lape_Factorial); -AddGlobalFunc('procedure ps_KeyDown(key: Word);', @Lape_KeyDown); -AddGlobalFunc('procedure ps_KeyUp(key: Word);', @Lape_KeyUp); -AddGlobalFunc('procedure ps_SendKeys(const s: string);', @Lape_SendKeys); -AddGlobalFunc('procedure ps_PressKey(key: Word);', @Lape_PressKey); -AddGlobalFunc('function ps_isKeyDown(key: Word): boolean', @Lape_isKeyDown); -AddGlobalFunc('function ps_GetKeyCode(c: char): integer', @Lape_GetKeyCode); -AddGlobalFunc('procedure ps_OpenWebPage(const url: string);', @Lape_OpenWebPage); -AddGlobalFunc('function ps_GetPage(const S: String): String', @Lape_GetPage); -AddGlobalFunc('function ps_InitializeHTTPClient(HandleCookies: Boolean): Integer', @Lape_InitializeHTTPClient); -AddGlobalFunc('procedure ps_FreeHTTPClient(Client: Integer);', @Lape_FreeHTTPClient); -AddGlobalFunc('function ps_GetHTTPPage(Client: Integer; const URL: string): string', @Lape_GetHTTPPage); -AddGlobalFunc('procedure ps_SetHTTPUserAgent(Client: Integer; const Agent: string);', @Lape_SetHTTPUserAgent); -AddGlobalFunc('function ps_PostHTTPPage(Client: Integer; const Url,PostData: string): string', @Lape_PostHTTPPage); -AddGlobalFunc('function ps_PostHTTPPageEx(Client: Integer; const Url: string): string', @Lape_PostHTTPPageEx); -AddGlobalFunc('procedure ps_ClearPostData(Client: Integer);', @Lape_ClearPostData); -AddGlobalFunc('procedure ps_AddPostVariable(Client: Integer; const VarName, VarValue: string);', @Lape_AddPostVariable); -AddGlobalFunc('function ps_GetRawHeaders(Client: Integer): string', @Lape_GetRawHeaders); -AddGlobalFunc('procedure ps_SetProxy(Client: Integer; pHost, pPort: String);', @Lape_SetProxy); -AddGlobalFunc('function ps_RecvSocketStr(Client: integer): string', @Lape_RecvSocketStr); -AddGlobalFunc('function ps_RecvSocket(Client: integer): string', @Lape_RecvSocket); -AddGlobalFunc('function ps_RecvSocketEx(Client, Length: integer): string', @Lape_RecvSocketEx); -AddGlobalFunc('procedure ps_SendSocket(Client: integer; Data: string);', @Lape_SendSocket); -AddGlobalFunc('procedure ps_ConnectSocket(Client: integer; IP, Port: string);', @Lape_ConnectSocket); -AddGlobalFunc('procedure ps_CloseSocket(Client: integer);', @Lape_CloseSocket); -AddGlobalFunc('procedure ps_SetSocketTimeout(Client, Time: integer);', @Lape_SetSocketTimeout); -AddGlobalFunc('procedure ps_BindSocket(Client: integer; IP, Port: string);', @Lape_BindSocket); -AddGlobalFunc('procedure ps_ListenSocket(Client: integer);', @Lape_ListenSocket); -AddGlobalFunc('function ps_AcceptSocket(Client: integer): integer', @Lape_AcceptSocket); -AddGlobalFunc('procedure ps_SocketInfo(Client: integer; out IP, Port: string);', @Lape_SocketInfo); -AddGlobalFunc('function ps_CreateSocket: integer', @Lape_CreateSocket); -AddGlobalFunc('procedure ps_FreeSocket(Client: integer);', @Lape_FreeSocket); -AddGlobalFunc('function ps_CreateFile(const Path: string): Integer', @Lape_CreateFile); -AddGlobalFunc('function ps_OpenFile(const Path: string; Shared: Boolean): Integer', @Lape_OpenFile); -AddGlobalFunc('function ps_RewriteFile(const Path: string; Shared: Boolean): Integer', @Lape_RewriteFile); -AddGlobalFunc('function ps_AppendFile(const Path: string): Integer', @Lape_AppendFile); -AddGlobalFunc('procedure ps_CloseFile(FileNum: Integer);', @Lape_CloseFile); -AddGlobalFunc('function ps_EndOfFile(FileNum: Integer): Boolean', @Lape_EndOfFile); -AddGlobalFunc('function ps_FileSize(FileNum: Integer): LongInt', @Lape_FileSize); -AddGlobalFunc('function ps_ReadFileString(FileNum: Integer; var s: string; x: Integer): Boolean', @Lape_ReadFileString); -AddGlobalFunc('function ps_WriteFileString(FileNum: Integer; s: string): Boolean', @Lape_WriteFileString); -AddGlobalFunc('function ps_SetFileCharPointer(FileNum, cChars, Origin: Integer): Integer', @Lape_SetFileCharPointer); -AddGlobalFunc('function ps_FilePointerPos(FileNum: Integer): Integer', @Lape_FilePointerPos); -AddGlobalFunc('function ps_FileExists(const FileName: string): Boolean', @Lape_FileExists); -AddGlobalFunc('function ps_DirectoryExists(const DirectoryName: string): Boolean', @Lape_DirectoryExists); -AddGlobalFunc('function ps_CreateDirectory(const DirectoryName: string): boolean', @Lape_CreateDirectory); -AddGlobalFunc('function ps_ForceDirectores(const dir: string): boolean', @Lape_ForceDirectores); -AddGlobalFunc('function ps_GetFiles(const Path, Ext: string): TStringArray', @Lape_GetFiles); -AddGlobalFunc('function ps_GetDirectories(const path: string): TStringArray', @Lape_GetDirectories); -AddGlobalFunc('procedure ps_WriteINI(const Section, KeyName, NewString, FileName: string);', @Lape_WriteINI); +AddGlobalFunc('procedure HoldMouse(x, y: integer; clickType: integer);', @Lape_HoldMouse); +AddGlobalFunc('procedure ReleaseMouse(x, y: integer; clickType: integer);', @Lape_ReleaseMouse); +AddGlobalFunc('procedure ClickMouse(x, y: integer; clickType: integer);', @Lape_ClickMouse); +AddGlobalFunc('function IsMouseButtonDown(button: integer): boolean', @Lape_IsMouseButtonDown); +AddGlobalFunc('function round(e: extended): integer', @Lape_round); +AddGlobalFunc('function iAbs(a: integer): integer', @Lape_iAbs); +AddGlobalFunc('function ceil(e: extended): integer', @Lape_ceil); +AddGlobalFunc('function pow(base,exponent: extended): extended', @Lape_pow); +AddGlobalFunc('function RiemannGauss(Xstart,StepSize,Sigma: extended; AmountSteps: integer): extended', @Lape_RiemannGauss); +AddGlobalFunc('function DiscreteGauss(Xstart,Xend: integer; sigma: extended): TExtendedArray', @Lape_DiscreteGauss); +AddGlobalFunc('function GaussMatrix(N: integer; sigma: extended): T2DExtendedArray', @Lape_GaussMatrix); +AddGlobalFunc('function exp(exponent: extended): extended', @Lape_exp); +AddGlobalFunc('function Max(a,b: integer): integer', @Lape_Max); +AddGlobalFunc('function Min(a, b: Integer): Integer', @Lape_Min); +AddGlobalFunc('function MinE(a, b: extended): extended', @Lape_MinE); +AddGlobalFunc('function MaxE(a,b: extended): extended', @Lape_MaxE); +AddGlobalFunc('function Sqr(e: extended): extended', @Lape_Sqr); +AddGlobalFunc('function Point(x,y: integer): TPoint', @Lape_Point); +AddGlobalFunc('function Distance(x1,y1,x2,y2: integer): integer', @Lape_Distance); +AddGlobalFunc('function Hypot(X, Y: Extended): Extended', @Lape_Hypot); +AddGlobalFunc('function RandomRange(const aFrom, aTo: Integer): Integer', @Lape_RandomRange); +AddGlobalFunc('function Random(Int: integer): integer', @Lape_Random); +AddGlobalFunc('function RandomE: extended', @Lape_RandomE); +AddGlobalFunc('function ArcTan2(y,x: extended): extended', @Lape_ArcTan2); +AddGlobalFunc('procedure IncEx(var x: integer; increase: integer);', @Lape_IncEx); +AddGlobalFunc('procedure DecEx(var x: integer; Decrease: integer);', @Lape_DecEx); +AddGlobalFunc('function Factorial(number: longword): Int64', @Lape_Factorial); +AddGlobalFunc('procedure KeyDown(key: Word);', @Lape_KeyDown); +AddGlobalFunc('procedure KeyUp(key: Word);', @Lape_KeyUp); +AddGlobalFunc('procedure SendKeys(const s: string);', @Lape_SendKeys); +AddGlobalFunc('procedure PressKey(key: Word);', @Lape_PressKey); +AddGlobalFunc('function isKeyDown(key: Word): boolean', @Lape_isKeyDown); +AddGlobalFunc('function GetKeyCode(c: char): integer', @Lape_GetKeyCode); +AddGlobalFunc('procedure OpenWebPage(const url: string);', @Lape_OpenWebPage); +AddGlobalFunc('function GetPage(const S: String): String', @Lape_GetPage); +AddGlobalFunc('function InitializeHTTPClient(HandleCookies: Boolean): Integer', @Lape_InitializeHTTPClient); +AddGlobalFunc('procedure FreeHTTPClient(Client: Integer);', @Lape_FreeHTTPClient); +AddGlobalFunc('function GetHTTPPage(Client: Integer; const URL: string): string', @Lape_GetHTTPPage); +AddGlobalFunc('procedure SetHTTPUserAgent(Client: Integer; const Agent: string);', @Lape_SetHTTPUserAgent); +AddGlobalFunc('function PostHTTPPage(Client: Integer; const Url,PostData: string): string', @Lape_PostHTTPPage); +AddGlobalFunc('function PostHTTPPageEx(Client: Integer; const Url: string): string', @Lape_PostHTTPPageEx); +AddGlobalFunc('procedure ClearPostData(Client: Integer);', @Lape_ClearPostData); +AddGlobalFunc('procedure AddPostVariable(Client: Integer; const VarName, VarValue: string);', @Lape_AddPostVariable); +AddGlobalFunc('function GetRawHeaders(Client: Integer): string', @Lape_GetRawHeaders); +AddGlobalFunc('procedure SetProxy(Client: Integer; pHost, pPort: String);', @Lape_SetProxy); +AddGlobalFunc('function RecvSocketStr(Client: integer): string', @Lape_RecvSocketStr); +AddGlobalFunc('function RecvSocket(Client: integer): string', @Lape_RecvSocket); +AddGlobalFunc('function RecvSocketEx(Client, Length: integer): string', @Lape_RecvSocketEx); +AddGlobalFunc('procedure SendSocket(Client: integer; Data: string);', @Lape_SendSocket); +AddGlobalFunc('procedure ConnectSocket(Client: integer; IP, Port: string);', @Lape_ConnectSocket); +AddGlobalFunc('procedure CloseSocket(Client: integer);', @Lape_CloseSocket); +AddGlobalFunc('procedure SetSocketTimeout(Client, Time: integer);', @Lape_SetSocketTimeout); +AddGlobalFunc('procedure BindSocket(Client: integer; IP, Port: string);', @Lape_BindSocket); +AddGlobalFunc('procedure ListenSocket(Client: integer);', @Lape_ListenSocket); +AddGlobalFunc('function AcceptSocket(Client: integer): integer', @Lape_AcceptSocket); +AddGlobalFunc('procedure SocketInfo(Client: integer; out IP, Port: string);', @Lape_SocketInfo); +AddGlobalFunc('function CreateSocket: integer', @Lape_CreateSocket); +AddGlobalFunc('procedure FreeSocket(Client: integer);', @Lape_FreeSocket); +AddGlobalFunc('function CreateFile(const Path: string): Integer', @Lape_CreateFile); +AddGlobalFunc('function OpenFile(const Path: string; Shared: Boolean): Integer', @Lape_OpenFile); +AddGlobalFunc('function RewriteFile(const Path: string; Shared: Boolean): Integer', @Lape_RewriteFile); +AddGlobalFunc('function AppendFile(const Path: string): Integer', @Lape_AppendFile); +AddGlobalFunc('procedure CloseFile(FileNum: Integer);', @Lape_CloseFile); +AddGlobalFunc('function EndOfFile(FileNum: Integer): Boolean', @Lape_EndOfFile); +AddGlobalFunc('function FileSize(FileNum: Integer): LongInt', @Lape_FileSize); +AddGlobalFunc('function ReadFileString(FileNum: Integer; var s: string; x: Integer): Boolean', @Lape_ReadFileString); +AddGlobalFunc('function WriteFileString(FileNum: Integer; s: string): Boolean', @Lape_WriteFileString); +AddGlobalFunc('function SetFileCharPointer(FileNum, cChars, Origin: Integer): Integer', @Lape_SetFileCharPointer); +AddGlobalFunc('function FilePointerPos(FileNum: Integer): Integer', @Lape_FilePointerPos); +AddGlobalFunc('function FileExists(const FileName: string): Boolean', @Lape_FileExists); +AddGlobalFunc('function DirectoryExists(const DirectoryName: string): Boolean', @Lape_DirectoryExists); +AddGlobalFunc('function CreateDirectory(const DirectoryName: string): boolean', @Lape_CreateDirectory); +AddGlobalFunc('function ForceDirectores(const dir: string): boolean', @Lape_ForceDirectores); +AddGlobalFunc('function GetFiles(const Path, Ext: string): TStringArray', @Lape_GetFiles); +AddGlobalFunc('function GetDirectories(const path: string): TStringArray', @Lape_GetDirectories); +AddGlobalFunc('procedure WriteINI(const Section, KeyName, NewString, FileName: string);', @Lape_WriteINI); AddGlobalFunc('function ext_UnTar(const Input: string; var Content: TStringArray): boolean', @Lape_); AddGlobalFunc('function ext_UnTarEx(const Input: string; const outputdir: string; overwrite: boolean): boolean', @Lape_); AddGlobalFunc('function ext_DecompressBZip2(const input: string; var output: string; const BlockSize: Cardinal): boolean', @Lape_); AddGlobalFunc('function ext_GetPage(const url: string): string', @Lape_); -AddGlobalFunc('function ext_MessageDlg(const aCaption, aMsg: string; DlgType: TMsgDlgType; Buttons: TMsgDlgButtons; HelpCtx: Longint): Integer', @Lape_); -AddGlobalFunc('function ext_SDTMToMDTM(Const DTM: TSDTM): TMDTM', @Lape_); +//AddGlobalFunc('function ext_MessageDlg(const aCaption, aMsg: string; DlgType: TMsgDlgType; Buttons: TMsgDlgButtons; HelpCtx: Longint): Integer', @Lape_); +//AddGlobalFunc('function ext_SDTMToMDTM(Const DTM: TSDTM): TMDTM', @Lape_); AddGlobalFunc('function ext_InputQuery(const ACaption, APrompt: String; var Value: String): Boolean', @Lape_); AddGlobalFunc('function ext_ScriptText: string', @Lape_); AddGlobalFunc('function ext_GetSelectedText: string', @Lape_); @@ -226,94 +226,94 @@ AddGlobalFunc('procedure ext_OpenScript(vName, Data: string; Run: boolean);', @L AddGlobalFunc('procedure ext_OpenScriptEx(FileName: string; Run: boolean);', @Lape_); AddGlobalFunc('function ext_GetPageEx(const URL, PostData, MimeType: string): string', @Lape_); AddGlobalFunc('function ext_GetJSONValue(const Data, Value: string): string', @Lape_); -AddGlobalFunc('function ps_FindDTM(DTM: Integer; var x, y: Integer; xs, ys, xe, ye: Integer): Boolean', @Lape_FindDTM); -AddGlobalFunc('function ps_FindDTMs(DTM: Integer; var p: TPointArray; xs, ys, xe, ye: Integer): Boolean', @Lape_FindDTMs); -AddGlobalFunc('function ps_FindDTMRotatedAlternating(DTM: Integer; var x, y: Integer; xs, ys, xe, ye: Integer; sAngle, eAngle, aStep: Extended; var aFound: Extended): Boolean', @Lape_FindDTMRotatedAlternating); -AddGlobalFunc('function ps_FindDTMRotatedSE(DTM: Integer; var x, y: Integer; xs, ys, xe, ye: Integer; sAngle, eAngle, aStep: Extended; var aFound: Extended): Boolean', @Lape_FindDTMRotatedSE); -AddGlobalFunc('function ps_FindDTMsRotatedAlternating(DTM: Integer; var Points: TPointArray; xs, ys, xe, ye: Integer; sAngle, eAngle, aStep: Extended; var aFound: T2DExtendedArray): Boolean', @Lape_FindDTMsRotatedAlternating); -AddGlobalFunc('function ps_FindDTMsRotatedSE(DTM: Integer; var Points: TPointArray; xs, ys, xe, ye: Integer; sAngle, eAngle, aStep: Extended; var aFound: T2DExtendedArray): Boolean', @Lape_FindDTMsRotatedSE); -AddGlobalFunc('procedure ps_SetDTMName(DTM: integer; const name: string);', @Lape_SetDTMName); -AddGlobalFunc('function ps_DTMFromString(const DTMString: String): Integer', @Lape_DTMFromString); -AddGlobalFunc('procedure ps_FreeDTM(DTM: Integer);', @Lape_FreeDTM); -AddGlobalFunc('function ps_GetDTM(index: Integer): TMDTM', @Lape_GetDTM); -AddGlobalFunc('function ps_AddTSDTM(const d: TSDTM): Integer', @Lape_AddTSDTM); -AddGlobalFunc('function ps_AddDTM(const d: TMDTM): Integer', @Lape_AddDTM); -AddGlobalFunc('procedure ps_PrintDTM(const aDTM: TMDTM);', @Lape_PrintDTM); -AddGlobalFunc('function ps_MDTMToSDTM(Const DTM: TMDTM): TSDTM', @Lape_MDTMToSDTM); -AddGlobalFunc('function ps_SDTMToMDTM(Const DTM: TSDTM): TMDTM', @Lape_SDTMToMDTM); -AddGlobalFunc('function ps_CreateDTMPoint(x,y,c,t,asz: integer; bp: boolean): TMDTMPoint', @Lape_CreateDTMPoint); -AddGlobalFunc('function ps_haval(Data: string): string', @Lape_haval); -AddGlobalFunc('procedure ps_ColorToRGB(Color: integer; var r, g, b: Integer);', @Lape_ColorToRGB); -AddGlobalFunc('function ps_GetColor(x,y: integer): TColor', @Lape_GetColor); -AddGlobalFunc('procedure ps_GetColorsWrap(Coords: TPointArray; var Colors: TIntegerArray);', @Lape_GetColorsWrap); -AddGlobalFunc('function ps_GetColors(const Coords: TPointArray): TIntegerArray', @Lape_GetColors); -AddGlobalFunc('function ps_findcolor(var x, y: integer; color, x1, y1, x2, y2: integer): boolean', @Lape_findcolor); -AddGlobalFunc('function ps_findcolortoleranceOptimised(var x, y: integer; color, x1, y1, x2, y2, tol: integer): boolean', @Lape_findcolortoleranceOptimised); -AddGlobalFunc('function ps_findcolortolerance(var x, y: integer; color, x1, y1, x2, y2, tol: integer): boolean', @Lape_findcolortolerance); -AddGlobalFunc('function ps_FindColors(var TPA: TPointArray; Color, x1, y1, x2, y2: Integer): Boolean', @Lape_FindColors); -AddGlobalFunc('procedure ps_SetColorToleranceSpeed(cts: Integer);', @Lape_SetColorToleranceSpeed); -AddGlobalFunc('function ps_GetToleranceSpeed: Integer', @Lape_GetToleranceSpeed); -AddGlobalFunc('procedure ps_SetToleranceSpeed2Modifiers(nHue, nSat: Extended);', @Lape_SetToleranceSpeed2Modifiers); -AddGlobalFunc('procedure ps_GetToleranceSpeed2Modifiers(var hMod, sMod: Extended);', @Lape_GetToleranceSpeed2Modifiers); -AddGlobalFunc('function ps_SimilarColors(Col1,Col2,Tol: integer): boolean', @Lape_SimilarColors); -AddGlobalFunc('function ps_CountColor(Color, xs, ys, xe, ye: Integer): Integer', @Lape_CountColor); -AddGlobalFunc('function ps_CountColorTolerance(Color, xs, ys, xe, ye, Tolerance: Integer): Integer', @Lape_CountColorTolerance); -AddGlobalFunc('function ps_FindColorsToleranceOptimised(var Points: TPointArray; Color, xs, ys, xe, ye, Tolerance: Integer): Boolean', @Lape_FindColorsToleranceOptimised); -AddGlobalFunc('function ps_FindColorsTolerance(var Points: TPointArray; Color, xs, ys, xe, ye, Tolerance: Integer): Boolean', @Lape_FindColorsTolerance); -AddGlobalFunc('function ps_FindColorSpiral(var x, y: Integer; color, xs, ys, xe, ye: Integer): Boolean', @Lape_FindColorSpiral); -AddGlobalFunc('function ps_FindColorSpiralTolerance(var x, y: Integer; color, xs, ys, xe, ye,Tol: Integer): Boolean', @Lape_FindColorSpiralTolerance); -AddGlobalFunc('function ps_FindColorsSpiralTolerance(x, y: Integer; var Points: TPointArray; color, xs, ys, xe, ye: Integer; Tolerance: Integer): boolean', @Lape_FindColorsSpiralTolerance); -AddGlobalFunc('function ps_FindColoredArea(var x, y: Integer; color, xs, ys, xe, ye: Integer; MinArea: Integer): Boolean', @Lape_FindColoredArea); -AddGlobalFunc('function ps_FindColoredAreaTolerance(var x, y: Integer; Color, xs, ys, xe, ye, MinArea, tol: Integer): Boolean', @Lape_FindColoredAreaTolerance); -AddGlobalFunc('function ps_CreateBitmapString(bmp: integer): string', @Lape_CreateBitmapString); -AddGlobalFunc('function ps_GetMufasaBitmap(bmp: integer): TMufasaBitmap', @Lape_GetMufasaBitmap); -AddGlobalFunc('function ps_CreateBitmap(w,h: integer): integer', @Lape_CreateBitmap); -AddGlobalFunc('procedure ps_FreeBitmap(Number: integer);', @Lape_FreeBitmap); -AddGlobalFunc('procedure ps_SaveBitmap(Bmp: integer; path: string);', @Lape_SaveBitmap); -AddGlobalFunc('function ps_BitmapFromString(Width,height: integer; Data: string): integer', @Lape_BitmapFromString); -AddGlobalFunc('function ps_LoadBitmap(Path: String): integer', @Lape_LoadBitmap); -AddGlobalFunc('procedure ps_SetBitmapSize(Bmp,NewW,NewH: integer);', @Lape_SetBitmapSize); -AddGlobalFunc('procedure ps_StretchBitmapResize(Bmp,NewW,NewH: integer);', @Lape_StretchBitmapResize); -AddGlobalFunc('procedure ps_GetBitmapSize(Bmp: integer; var BmpW,BmpH: integer);', @Lape_GetBitmapSize); -AddGlobalFunc('procedure ps_SetBitmapName(Bmp: integer; name: string);', @Lape_SetBitmapName); -AddGlobalFunc('function ps_CreateMirroredBitmap(Bmp: integer): integer', @Lape_CreateMirroredBitmap); -AddGlobalFunc('function ps_CreateMirroredBitmapEx(Bmp: integer; MirrorStyle: TBmpMirrorStyle): integer', @Lape_CreateMirroredBitmapEx); -AddGlobalFunc('function ps_FastGetPixel(bmp,x,y: integer): LongWord', @Lape_FastGetPixel); -AddGlobalFunc('function ps_FastGetPixels(bmp: integer; TPA: TPointArray): TIntegerArray', @Lape_FastGetPixels); -AddGlobalFunc('function ps_GetBitmapAreaColors(bmp,xs, ys, xe, ye: Integer): T2DIntArray', @Lape_GetBitmapAreaColors); -AddGlobalFunc('procedure ps_FastSetPixel(Bmp,x,y: integer; Color: TColor);', @Lape_FastSetPixel); -AddGlobalFunc('procedure ps_FastSetPixels(Bmp: integer; TPA: TPointArray; Colors: TIntegerArray);', @Lape_FastSetPixels); -AddGlobalFunc('procedure ps_DrawTPABitmap(bitmap: integer; TPA: TPointArray; Color: integer);', @Lape_DrawTPABitmap); -AddGlobalFunc('procedure ps_DrawATPABitmap(bitmap: integer; ATPA: T2DPointArray);', @Lape_DrawATPABitmap); -AddGlobalFunc('procedure ps_DrawATPABitmapEx(bitmap: integer; ATPA: T2DPointArray; Colors: TIntegerArray);', @Lape_DrawATPABitmapEx); -AddGlobalFunc('procedure ps_FastDrawClear(bmp: integer; Color: TColor);', @Lape_FastDrawClear); -AddGlobalFunc('procedure ps_DrawBitmap(Bmp: Integer; Dest: TCanvas; x, y: Integer);', @Lape_DrawBitmap); -AddGlobalFunc('procedure ps_FastDrawTransparent(x, y: Integer; SourceBitmap, TargetBitmap: Integer);', @Lape_FastDrawTransparent); -AddGlobalFunc('procedure ps_SetTransparentColor(Bmp: integer; Color: TColor);', @Lape_SetTransparentColor); -AddGlobalFunc('function ps_GetTransparentColor(Bmp: integer): TColor', @Lape_GetTransparentColor); -AddGlobalFunc('procedure ps_FastReplaceColor(bmp: Integer; OldColor, NewColor: TColor);', @Lape_FastReplaceColor); -AddGlobalFunc('procedure ps_CopyClientToBitmap(bmp, xs, ys, xe, ye: Integer);', @Lape_CopyClientToBitmap); -AddGlobalFunc('function ps_BitmapFromClient(const xs, ys, xe, ye: Integer): Integer', @Lape_BitmapFromClient); -AddGlobalFunc('function ps_FindBitmap(Bitmap: integer; var x, y: Integer): Boolean', @Lape_FindBitmap); -AddGlobalFunc('function ps_FindBitmapIn(bitmap: integer; var x, y: Integer; xs, ys, xe, ye: Integer): Boolean', @Lape_FindBitmapIn); -AddGlobalFunc('function ps_FindBitmapToleranceIn(bitmap: integer; var x, y: Integer; xs, ys, xe, ye: Integer; tolerance: Integer): Boolean', @Lape_FindBitmapToleranceIn); -AddGlobalFunc('function ps_FindBitmapSpiral(bitmap: Integer; var x, y: Integer; xs, ys, xe, ye: Integer): Boolean', @Lape_FindBitmapSpiral); -AddGlobalFunc('function ps_FindBitmapsSpiralTolerance(bitmap: integer; x, y: Integer; var Points: TPointArray; xs, ys, xe, ye,tolerance: Integer): Boolean', @Lape_FindBitmapsSpiralTolerance); -AddGlobalFunc('function ps_FindBitmapSpiralTolerance(bitmap: integer; var x, y: Integer; xs, ys, xe, ye,tolerance: integer): Boolean', @Lape_FindBitmapSpiralTolerance); -AddGlobalFunc('function ps_RotateBitmap(bitmap: Integer; angle: Extended): Integer', @Lape_RotateBitmap); -AddGlobalFunc('function ps_Desaturate(Bitmap: integer): integer', @Lape_Desaturate); -AddGlobalFunc('procedure ps_InvertBitmap(Bitmap: integer);', @Lape_InvertBitmap); -AddGlobalFunc('function ps_CopyBitmap(Bitmap: integer): integer', @Lape_CopyBitmap); -AddGlobalFunc('function ps_GreyScaleBitmap(Bitmap: integer): integer', @Lape_GreyScaleBitmap); -AddGlobalFunc('function ps_BrightnessBitmap(Bitmap,br: integer): integer', @Lape_BrightnessBitmap); -AddGlobalFunc('function ps_ContrastBitmap(bitmap: integer; co: extended): integer', @Lape_ContrastBitmap); -AddGlobalFunc('function ps_PosterizeBitmap(Bitmap: integer; po: integer): integer', @Lape_PosterizeBitmap); -AddGlobalFunc('function ps_CreateMaskFromBitmap(Bitmap: integer): TMask', @Lape_CreateMaskFromBitmap); -AddGlobalFunc('function ps_FindMaskTolerance(const mask: TMask; var x, y: Integer; xs,ys, xe, ye: Integer; Tolerance, ContourTolerance: Integer): Boolean', @Lape_FindMaskTolerance); -AddGlobalFunc('function ps_FindBitmapMaskTolerance(mask: Integer; var x, y: Integer; xs, ys, xe, ye: Integer; Tolerance, ContourTolerance: Integer): Boolean', @Lape_FindBitmapMaskTolerance); -AddGlobalFunc('function ps_FindDeformedBitmapToleranceIn(bitmap: integer; var x, y: Integer; xs, ys, xe, ye: Integer; tolerance: Integer; Range: Integer; AllowPartialAccuracy: Boolean; var accuracy: Extended): Boolean', @Lape_FindDeformedBitmapToleranceIn); -AddGlobalFunc('procedure ps_RectangleBitmap(bitmap: integer; const box: TBox; Color: TColor);', @Lape_RectangleBitmap); -AddGlobalFunc('procedure ps_FloodFillBitmap(bitmap: integer; const StartPoint: TPoint; const SearchCol,ReplaceCol: TColor);', @Lape_FloodFillBitmap); -AddGlobalFunc('function ps_ConvoluteBitmap(bitmap: integer; matrix: T2DExtendedArray): integer', @Lape_ConvoluteBitmap); -AddGlobalFunc('function ps_CalculatePixelShift(Bmp1,Bmp2: Integer; CompareBox: TBox): integer', @Lape_CalculatePixelShift); -AddGlobalFunc('function ps_CalculatePixelTolerance(Bmp1,Bmp2: Integer; CompareBox: TBox; CTS: integer): extended', @Lape_CalculatePixelTolerance); +AddGlobalFunc('function FindDTM(DTM: Integer; var x, y: Integer; xs, ys, xe, ye: Integer): Boolean', @Lape_FindDTM); +AddGlobalFunc('function FindDTMs(DTM: Integer; var p: TPointArray; xs, ys, xe, ye: Integer): Boolean', @Lape_FindDTMs); +AddGlobalFunc('function FindDTMRotatedAlternating(DTM: Integer; var x, y: Integer; xs, ys, xe, ye: Integer; sAngle, eAngle, aStep: Extended; var aFound: Extended): Boolean', @Lape_FindDTMRotatedAlternating); +AddGlobalFunc('function FindDTMRotatedSE(DTM: Integer; var x, y: Integer; xs, ys, xe, ye: Integer; sAngle, eAngle, aStep: Extended; var aFound: Extended): Boolean', @Lape_FindDTMRotatedSE); +AddGlobalFunc('function FindDTMsRotatedAlternating(DTM: Integer; var Points: TPointArray; xs, ys, xe, ye: Integer; sAngle, eAngle, aStep: Extended; var aFound: T2DExtendedArray): Boolean', @Lape_FindDTMsRotatedAlternating); +AddGlobalFunc('function FindDTMsRotatedSE(DTM: Integer; var Points: TPointArray; xs, ys, xe, ye: Integer; sAngle, eAngle, aStep: Extended; var aFound: T2DExtendedArray): Boolean', @Lape_FindDTMsRotatedSE); +AddGlobalFunc('procedure SetDTMName(DTM: integer; const name: string);', @Lape_SetDTMName); +AddGlobalFunc('function DTMFromString(const DTMString: String): Integer', @Lape_DTMFromString); +AddGlobalFunc('procedure FreeDTM(DTM: Integer);', @Lape_FreeDTM); +//AddGlobalFunc('function GetDTM(index: Integer): TMDTM', @Lape_GetDTM); +AddGlobalFunc('function AddTSDTM(const d: TSDTM): Integer', @Lape_AddTSDTM); +//AddGlobalFunc('function AddDTM(const d: TMDTM): Integer', @Lape_AddDTM); +//AddGlobalFunc('procedure PrintDTM(const aDTM: TMDTM);', @Lape_PrintDTM); +//AddGlobalFunc('function MDTMToSDTM(Const DTM: TMDTM): TSDTM', @Lape_MDTMToSDTM); +//AddGlobalFunc('function SDTMToMDTM(Const DTM: TSDTM): TMDTM', @Lape_SDTMToMDTM); +//AddGlobalFunc('function CreateDTMPoint(x,y,c,t,asz: integer; bp: boolean): TMDTMPoint', @Lape_CreateDTMPoint); +AddGlobalFunc('function haval(Data: string): string', @Lape_haval); +AddGlobalFunc('procedure ColorToRGB(Color: integer; var r, g, b: Integer);', @Lape_ColorToRGB); +AddGlobalFunc('function GetColor(x,y: integer): TColor', @Lape_GetColor); +AddGlobalFunc('procedure GetColorsWrap(Coords: TPointArray; var Colors: TIntegerArray);', @Lape_GetColorsWrap); +AddGlobalFunc('function GetColors(const Coords: TPointArray): TIntegerArray', @Lape_GetColors); +AddGlobalFunc('function findcolor(var x, y: integer; color, x1, y1, x2, y2: integer): boolean', @Lape_findcolor); +AddGlobalFunc('function findcolortoleranceOptimised(var x, y: integer; color, x1, y1, x2, y2, tol: integer): boolean', @Lape_findcolortoleranceOptimised); +AddGlobalFunc('function findcolortolerance(var x, y: integer; color, x1, y1, x2, y2, tol: integer): boolean', @Lape_findcolortolerance); +AddGlobalFunc('function FindColors(var TPA: TPointArray; Color, x1, y1, x2, y2: Integer): Boolean', @Lape_FindColors); +AddGlobalFunc('procedure SetColorToleranceSpeed(cts: Integer);', @Lape_SetColorToleranceSpeed); +AddGlobalFunc('function GetToleranceSpeed: Integer', @Lape_GetToleranceSpeed); +AddGlobalFunc('procedure SetToleranceSpeed2Modifiers(nHue, nSat: Extended);', @Lape_SetToleranceSpeed2Modifiers); +AddGlobalFunc('procedure GetToleranceSpeed2Modifiers(var hMod, sMod: Extended);', @Lape_GetToleranceSpeed2Modifiers); +AddGlobalFunc('function SimilarColors(Col1,Col2,Tol: integer): boolean', @Lape_SimilarColors); +AddGlobalFunc('function CountColor(Color, xs, ys, xe, ye: Integer): Integer', @Lape_CountColor); +AddGlobalFunc('function CountColorTolerance(Color, xs, ys, xe, ye, Tolerance: Integer): Integer', @Lape_CountColorTolerance); +AddGlobalFunc('function FindColorsToleranceOptimised(var Points: TPointArray; Color, xs, ys, xe, ye, Tolerance: Integer): Boolean', @Lape_FindColorsToleranceOptimised); +AddGlobalFunc('function FindColorsTolerance(var Points: TPointArray; Color, xs, ys, xe, ye, Tolerance: Integer): Boolean', @Lape_FindColorsTolerance); +AddGlobalFunc('function FindColorSpiral(var x, y: Integer; color, xs, ys, xe, ye: Integer): Boolean', @Lape_FindColorSpiral); +AddGlobalFunc('function FindColorSpiralTolerance(var x, y: Integer; color, xs, ys, xe, ye,Tol: Integer): Boolean', @Lape_FindColorSpiralTolerance); +AddGlobalFunc('function FindColorsSpiralTolerance(x, y: Integer; var Points: TPointArray; color, xs, ys, xe, ye: Integer; Tolerance: Integer): boolean', @Lape_FindColorsSpiralTolerance); +AddGlobalFunc('function FindColoredArea(var x, y: Integer; color, xs, ys, xe, ye: Integer; MinArea: Integer): Boolean', @Lape_FindColoredArea); +AddGlobalFunc('function FindColoredAreaTolerance(var x, y: Integer; Color, xs, ys, xe, ye, MinArea, tol: Integer): Boolean', @Lape_FindColoredAreaTolerance); +AddGlobalFunc('function CreateBitmapString(bmp: integer): string', @Lape_CreateBitmapString); +//AddGlobalFunc('function GetMufasaBitmap(bmp: integer): TMufasaBitmap', @Lape_GetMufasaBitmap); +AddGlobalFunc('function CreateBitmap(w,h: integer): integer', @Lape_CreateBitmap); +AddGlobalFunc('procedure FreeBitmap(Number: integer);', @Lape_FreeBitmap); +AddGlobalFunc('procedure SaveBitmap(Bmp: integer; path: string);', @Lape_SaveBitmap); +AddGlobalFunc('function BitmapFromString(Width,height: integer; Data: string): integer', @Lape_BitmapFromString); +AddGlobalFunc('function LoadBitmap(Path: String): integer', @Lape_LoadBitmap); +AddGlobalFunc('procedure SetBitmapSize(Bmp,NewW,NewH: integer);', @Lape_SetBitmapSize); +AddGlobalFunc('procedure StretchBitmapResize(Bmp,NewW,NewH: integer);', @Lape_StretchBitmapResize); +AddGlobalFunc('procedure GetBitmapSize(Bmp: integer; var BmpW,BmpH: integer);', @Lape_GetBitmapSize); +AddGlobalFunc('procedure SetBitmapName(Bmp: integer; name: string);', @Lape_SetBitmapName); +AddGlobalFunc('function CreateMirroredBitmap(Bmp: integer): integer', @Lape_CreateMirroredBitmap); +AddGlobalFunc('function CreateMirroredBitmapEx(Bmp: integer; MirrorStyle: TBmpMirrorStyle): integer', @Lape_CreateMirroredBitmapEx); +AddGlobalFunc('function FastGetPixel(bmp,x,y: integer): LongWord', @Lape_FastGetPixel); +AddGlobalFunc('function FastGetPixels(bmp: integer; TPA: TPointArray): TIntegerArray', @Lape_FastGetPixels); +AddGlobalFunc('function GetBitmapAreaColors(bmp,xs, ys, xe, ye: Integer): T2DIntArray', @Lape_GetBitmapAreaColors); +AddGlobalFunc('procedure FastSetPixel(Bmp,x,y: integer; Color: TColor);', @Lape_FastSetPixel); +AddGlobalFunc('procedure FastSetPixels(Bmp: integer; TPA: TPointArray; Colors: TIntegerArray);', @Lape_FastSetPixels); +AddGlobalFunc('procedure DrawTPABitmap(bitmap: integer; TPA: TPointArray; Color: integer);', @Lape_DrawTPABitmap); +AddGlobalFunc('procedure DrawATPABitmap(bitmap: integer; ATPA: T2DPointArray);', @Lape_DrawATPABitmap); +AddGlobalFunc('procedure DrawATPABitmapEx(bitmap: integer; ATPA: T2DPointArray; Colors: TIntegerArray);', @Lape_DrawATPABitmapEx); +AddGlobalFunc('procedure FastDrawClear(bmp: integer; Color: TColor);', @Lape_FastDrawClear); +//AddGlobalFunc('procedure DrawBitmap(Bmp: Integer; Dest: TCanvas; x, y: Integer);', @Lape_DrawBitmap); +AddGlobalFunc('procedure FastDrawTransparent(x, y: Integer; SourceBitmap, TargetBitmap: Integer);', @Lape_FastDrawTransparent); +AddGlobalFunc('procedure SetTransparentColor(Bmp: integer; Color: TColor);', @Lape_SetTransparentColor); +AddGlobalFunc('function GetTransparentColor(Bmp: integer): TColor', @Lape_GetTransparentColor); +AddGlobalFunc('procedure FastReplaceColor(bmp: Integer; OldColor, NewColor: TColor);', @Lape_FastReplaceColor); +AddGlobalFunc('procedure CopyClientToBitmap(bmp, xs, ys, xe, ye: Integer);', @Lape_CopyClientToBitmap); +AddGlobalFunc('function BitmapFromClient(const xs, ys, xe, ye: Integer): Integer', @Lape_BitmapFromClient); +AddGlobalFunc('function FindBitmap(Bitmap: integer; var x, y: Integer): Boolean', @Lape_FindBitmap); +AddGlobalFunc('function FindBitmapIn(bitmap: integer; var x, y: Integer; xs, ys, xe, ye: Integer): Boolean', @Lape_FindBitmapIn); +AddGlobalFunc('function FindBitmapToleranceIn(bitmap: integer; var x, y: Integer; xs, ys, xe, ye: Integer; tolerance: Integer): Boolean', @Lape_FindBitmapToleranceIn); +AddGlobalFunc('function FindBitmapSpiral(bitmap: Integer; var x, y: Integer; xs, ys, xe, ye: Integer): Boolean', @Lape_FindBitmapSpiral); +AddGlobalFunc('function FindBitmapsSpiralTolerance(bitmap: integer; x, y: Integer; var Points: TPointArray; xs, ys, xe, ye,tolerance: Integer): Boolean', @Lape_FindBitmapsSpiralTolerance); +AddGlobalFunc('function FindBitmapSpiralTolerance(bitmap: integer; var x, y: Integer; xs, ys, xe, ye,tolerance: integer): Boolean', @Lape_FindBitmapSpiralTolerance); +AddGlobalFunc('function RotateBitmap(bitmap: Integer; angle: Extended): Integer', @Lape_RotateBitmap); +AddGlobalFunc('function Desaturate(Bitmap: integer): integer', @Lape_Desaturate); +AddGlobalFunc('procedure InvertBitmap(Bitmap: integer);', @Lape_InvertBitmap); +AddGlobalFunc('function CopyBitmap(Bitmap: integer): integer', @Lape_CopyBitmap); +AddGlobalFunc('function GreyScaleBitmap(Bitmap: integer): integer', @Lape_GreyScaleBitmap); +AddGlobalFunc('function BrightnessBitmap(Bitmap,br: integer): integer', @Lape_BrightnessBitmap); +AddGlobalFunc('function ContrastBitmap(bitmap: integer; co: extended): integer', @Lape_ContrastBitmap); +AddGlobalFunc('function PosterizeBitmap(Bitmap: integer; po: integer): integer', @Lape_PosterizeBitmap); +AddGlobalFunc('function CreateMaskFromBitmap(Bitmap: integer): TMask', @Lape_CreateMaskFromBitmap); +AddGlobalFunc('function FindMaskTolerance(const mask: TMask; var x, y: Integer; xs,ys, xe, ye: Integer; Tolerance, ContourTolerance: Integer): Boolean', @Lape_FindMaskTolerance); +AddGlobalFunc('function FindBitmapMaskTolerance(mask: Integer; var x, y: Integer; xs, ys, xe, ye: Integer; Tolerance, ContourTolerance: Integer): Boolean', @Lape_FindBitmapMaskTolerance); +AddGlobalFunc('function FindDeformedBitmapToleranceIn(bitmap: integer; var x, y: Integer; xs, ys, xe, ye: Integer; tolerance: Integer; Range: Integer; AllowPartialAccuracy: Boolean; var accuracy: Extended): Boolean', @Lape_FindDeformedBitmapToleranceIn); +AddGlobalFunc('procedure RectangleBitmap(bitmap: integer; const box: TBox; Color: TColor);', @Lape_RectangleBitmap); +AddGlobalFunc('procedure FloodFillBitmap(bitmap: integer; const StartPoint: TPoint; const SearchCol,ReplaceCol: TColor);', @Lape_FloodFillBitmap); +AddGlobalFunc('function ConvoluteBitmap(bitmap: integer; matrix: T2DExtendedArray): integer', @Lape_ConvoluteBitmap); +AddGlobalFunc('function CalculatePixelShift(Bmp1,Bmp2: Integer; CompareBox: TBox): integer', @Lape_CalculatePixelShift); +AddGlobalFunc('function CalculatePixelTolerance(Bmp1,Bmp2: Integer; CompareBox: TBox; CTS: integer): extended', @Lape_CalculatePixelTolerance); diff --git a/Units/MMLAddon/mmlpsthread.pas b/Units/MMLAddon/mmlpsthread.pas index ee7a85c..93b6c70 100644 --- a/Units/MMLAddon/mmlpsthread.pas +++ b/Units/MMLAddon/mmlpsthread.pas @@ -1280,7 +1280,7 @@ type psWriteLn(PlpString(Params^[0])^); end; -//Generate these wrappers with a script -Dg + {$I LPInc/Wrappers/other.inc} {$I LPInc/Wrappers/settings.inc} {$I LPInc/Wrappers/bitmap.inc}