******************************************************************************* Constructor Func and Proc List of maXbox 4.7.6. codeX signed Constructor Func and Proc List of maXbox 5.1.4. codeX signed ******************************************************************************* ///////////////////////////////////////////////////////////////////////////// ref Help Extract Functions of maXbox4.exe BigBitBox API HEX in BOX47 Release Notes maXbox 5.1.4.90 March 2024 mX504 beta64-bit at the bottom 😀😀 😎👮🤗 ----------------------------------------------------------------------------- file EXE:34.04 MB(35,697,944) V4.7.6.50 June.2023 EKON26/BASTA/JAX/IBZ/SWS/PASCON file EXE:65.39 MB(68,561,568) V5.1.4.90 March 2024 EKON28/BASTA/JAX/IBZ/SWS/PASCON *****************Now the Funclist********************************************** Funclist Func : 22257_; Source Compiled: 2’844’308 lines 🌈🙏🏻🔭 *****************Now the Proclist********************************************** Proclist Proc Size is: 13051_ ᛗᚨᛪᛒᛟᛪ *****************Now Constructors********************************************** Constructlist Constructor Size is: 2052_ def head: max: maXbox10: 22/03/2024 18:38:52 file E:\maxbox\maxbox3\docs\maxbox_extract_funclist476_.txt doc file: maxbox_extract_funclist476.txt(sort function)maxbox_functions_sortlist.txt all unit file: http://www.softwareschule.ch/examples/packages.txt all unit file2:http://www.softwareschule.ch/unitlist.htm ------------------------------------------------------------------------- Funclist total Size all is: 373372! Constructor, Func and Procedure AExtraxt of EXE Functions of maXbox4.exe, locs of file = 45205_ ASize of EXE: 35,697,944 bytes CRC32: 38562FA8 SHA1: of maXbox4.exe (4.7.6.50) D047DBD5412C3E4A436089018B9C7FACF17A2EB5 SHA-256 193679043c46821c4b2460269111ff112e7c67b49e9cd9d951854e61bceedac7 https://www.hybrid-analysis.com/sample/193679043c46821c4b2460269111ff112e7c67b49e9cd9d951854e61bceedac7 https://www.virustotal.com/gui/file/193679043c46821c4b2460269111ff112e7c67b49e9cd9d951854e61bceedac7/details https://www.hybrid-analysis.com/sample/cf3b5e722fc42ad6e4d795623b3a88c94523abb28e84bd77a9d644418d379c97 https://www.virustotal.com/gui/file/cf3b5e722fc42ad6e4d795623b3a88c94523abb28e84bd77a9d644418d379c97/detection https://www.hybrid-analysis.com/sample/fa0f30abf34292e91070a5bd4682040eb6af79a8f6c7f55111c9692153120988 https://www.virustotal.com/gui/file/fa0f30abf34292e91070a5bd4682040eb6af79a8f6c7f55111c9692153120988/detection https://www.hybrid-analysis.com/sample/55a86c35b1d497c3a5d860da04734c791d5affa68b7e5c5461b7032d6a325c14 https://www.virustotal.com/gui/file/55a86c35b1d497c3a5d860da04734c791d5affa68b7e5c5461b7032d6a325c14/detection https://www.hybrid-analysis.com/sample/882ddadb9b330318bfff73d8db66d1a33be575be4cede3960374bfeb7c49c968 https://www.virustotal.com/gui/file/882ddadb9b330318bfff73d8db66d1a33be575be4cede3960374bfeb7c49c968/detection https://www.virustotal.com/gui/file/42c6b4dc932473f10a67708c141807acf3f832f7ba66005b495d41bf1653b019/detection https://www.hybrid-analysis.com/sample/1658eb368e4e8621c51d8e568de40a12be00ad02c63dfe7a3b655603661dc4f9 https://www.virustotal.com/gui/file/1658eb368e4e8621c51d8e568de40a12be00ad02c63dfe7a3b655603661dc4f9/detection https://www.hybrid-analysis.com/sample/4dfbada6765e47c72b7c2496f831419b3461fa7c4ac6e05e2a941b501e10e022 https://metadefender.opswat.com/results/file/bzIzMDUzMXUxb2NqQ2VfVTNmeWF3c0JwNGk/regular/multiscan https://www.virustotal.com/gui/file/4dfbada6765e47c72b7c2496f831419b3461fa7c4ac6e05e2a941b501e10e022/detection https://www.virustotal.com/gui/file/168f85cff6ecdfcc4e7614758bbdb333a38f4896f94b7056f3e53af8fd15a66b/detection https://www.virustotal.com/gui/file/222ee48c3409cbf176ffe9037d7958952e6754549c66d8397e927ad68ee3be17/detection https://www.hybrid-analysis.com/sample/c9f275808708fa8bbee56f816a6ae90f2438dd8a7085ecf8e4bbcff1e1747571 https://www.virustotal.com/gui/file/c9f275808708fa8bbee56f816a6ae90f2438dd8a7085ecf8e4bbcff1e1747571/detection https://www.hybrid-analysis.com/sample/ca5b41a709e61c1174d5105d1edc2759e01bd3c4a57a30b54dad568e104cac77 https://www.virustotal.com/gui/file/ca5b41a709e61c1174d5105d1edc2759e01bd3c4a57a30b54dad568e104cac77/details https://www.virustotal.com/gui/file/9347258d5985a2fe88a1df45c3cd99747babbaa034de3e1725139684a7b6e1c7/detection https://www.hybrid-analysis.com/sample/97943841d5908ea0846dc6763b14941350a0c1aa5d2b6248bfc79ffad7a0314e https://www.virustotal.com/gui/file/97943841d5908ea0846dc6763b14941350a0c1aa5d2b6248bfc79ffad7a0314e/detection https://www.hybrid-analysis.com/sample/102653b74b1efb16af424c243130e3c0395f9875d0e8900e688dd42a25d218a3 https://www.virustotal.com/gui/file/102653b74b1efb16af424c243130e3c0395f9875d0e8900e688dd42a25d218a3/detection https://www.hybrid-analysis.com/sample/66e02bfc560c5082c2bfcb5e4b8e2a7b19fa1f60386474097625d55c7cc6b472 https://www.virustotal.com/gui/file/66e02bfc560c5082c2bfcb5e4b8e2a7b19fa1f60386474097625d55c7cc6b472/detection https://www.virustotal.com/gui/file/2acfa55e4bb3ae08a46cf2a691c8f62a6404d84db3ae6fb4bb3f7042149bfb73/detection https://www.virustotal.com/gui/file/212f8fda437e877c7f89f771ce40e57814cfb4380ee010c090df78d8dbbc4d9f/detection https://www.virustotal.com/gui/file/4f4219830b728537ef6c4ddec92c2fbdfd8f6658a2f03c3981fdfcc833ae8c1e/detection https://www.virustotal.com/gui/file/c6e8c0861b0a05cb26ebdafe6985983eb8f6b4d92fb99ad2fa62d2ba50bed/detection https://www.virustotal.com/gui/file/5d231d7b91a8e1d79ee2b1f19279a0dd2685c7c99974b0da9df749347fc58/detection https://www.virustotal.com/gui/file/09eb95c4cc3b7fe60772405b170af4705085da89d190213228c65313c8733499/details https://www.virustotal.com/gui/file/e35b4b6cde46d1c0c8a0c30bc125d76d6738e9d0541523214c12d0aa1ba91ca9/details https://www.virustotal.com/gui/file/1a2ed2b64f9b7d68e1a16158d06742eef1cde94864a50ce29f08bfadaf402a44/detection https://www.virustotal.com/gui/file/ec6aeb784bdf2dec91834378ef46be698cc0d0eddad9e6488c7fcafac7728/detection https://www.virustotal.com/gui/file/9b4ce8468d70b11a0b111009ccf9b4a9e1daf6f9ec53680bf301256e5f69518a/detection https://www.virustotal.com/gui/file/db0c72990863b4a08341410b51d76a00632519c0f1df9cc4d63a40c28f2c9778/detection https://www.virustotal.com/gui/file/52a07df33308c2ded182c50194a4c731f9921461ba1cf26625005ec0db672/detection https://www.virustotal.com/gui/file/e99be9470f26f69169cc81dfbd8984c7a27dd3fb4b16941cb4028e5dbba66957/detection ////////////////////////////////////////////////////////////////////////// Func Metric of Script: 256_findfunctions476_of_EXE_80_1.txt Func *************Now the Funclist***************** Func GetResStringChecked(Ident:Str; const Args: array of const):str Func ( Index : Longint) : Integer Func (Command: Word; Data: Longint; var CallHelp:Bool):Bool Func _CheckAutoResult( ResultCode : HResult) : HResult Func _T(Name: tbtString): Variant; Func ABNFToText(const AText :Str) :Str Func Abs(e : Extended) : Extended; Func AbsInt(e : Extended) : Integer; Func AbsInt( const B : integer) : integer; Func AbsFloat( const B : double) : extended; Func Ackermann( const A, B : Integer) : Integer Func AcquireLayoutLock :Bool Func ActionByName( const AName :Str) : TWebActionItem Func ACTIVEBUFFER : PCHAR Func Add:TAggregate Func Add:TCollectionItem Func Add:TColumn Func Add:TComboExItem Func Add:TCookie Func Add:TCoolBand Func Add:TFavoriteLinkItem Func Add:TFileTypeItem Func Add:THeaderSection Func Add:THTMLTableColumn Func Add:TIdEMailAddressItem Func Add:TIdMessagePart Func Add:TIdUserAccount Func Add:TListColumn Func Add:TListItem Func Add:TStatusPanel Func Add:TTaskDialogBaseButtonItem Func Add:TWebActionItem Func Add:TWorkArea Func Add(AClass : TClass) : Integer Func Add(AComponent : TComponent) : Integer Func Add(AItem,AData : Integer) : Integer Func Add(AItem,AData : Pointer) : Pointer Func Add(AItem,AData : TObject) : TObject Func Add(AObject : TObject) : Integer Func Add(const Access, Count :Card; const Offset : Int64) : Integer Func Add(const S : WideString) : Int Func Add(Image, Mask : TBitmap) : Int Func Add(Index : LongInt; const Text :Str) : LongInt Func Add(Sibling : TTreeNode; const S :Str) : TTreeNode Func Add(const S:Str): Int Func Add(S:Str): Int; Func AddAt(const Access,Count:Card;const Offset:Int64;const Address:Pointer):Int Func ADDCHILD : TFIELDDEF Func AddChild( Index : LongInt; const Text :Str) : LongInt Func AddChild( Parent : TTreeNode; const S :Str) : TTreeNode Func AddChildFirst( Parent : TTreeNode; const S :Str) : TTreeNode Func AddChildObject(Index:LongInt;const Text:str;const Data:Pointer:LongInt Func AddChildObject( Parent:TTreeNode;const S:str;Ptr:Pointer) : TTreeNode Func AddChildObjectFirst(Parent:TTreeNode;const S:str;Ptr:Pointer):TTreeNode Func ADDFIELDDEF : TFIELDDEF Func AddFileExtIfNecessary( AFileName, AExt :Str) :Str Func AddFirst( Sibling : TTreeNode; const S :Str) : TTreeNode Func AddIcon( Image : TIcon) : Int Func AddImage( Value : TCustomImageList; Index : Int) : Int Func ADDINDEXDEF : TINDEXDEF Func AddItem(const Caption:str;const ImageIdx,SelectImageIdx,OverlayImagIdx,Indent:Int;Data:Ptr):TComboExItem Func AddItem( Item : THeaderSection; Index : Int) : THeaderSection Func AddItem( Item : TListItem; Index : Int) : TListItem Func AddItem( Item : TStatusPanel; Index : Int) : TStatusPanel Func AddMapping( const FieldName :Str) :Bool Func AddMasked( Image : TBitmap; MaskColor : TColor) : Int Func AddModuleClass( AClass : TComponentClass) : TComponent Func AddModuleName( const AClass :Str) : TComponent Func AddNode(Node,Relative:TTreeNode;const S:str;Ptr:Pointer;Method:TNodeAttachMode):TTreeNode Func AddObject( const S : WideString; AObject : TObject) : Int Func AddObject(Index:LongInt;const Text:str; const Data:Pointer): LongInt Func AddObject( Sibling : TTreeNode; const S :Str;Ptr: Pointer): TTreeNode Func AddObject(S:str;AObject:TObject):Int Func AddObjectFirst(Sibling:TTreeNode;const S string;Ptr:Pointer):TTreeNode Func AddParameter : TParameter Func AddParamSQLForDetail(Params:TParams;SQL:WideStr;Native:Bool;QuoteChar:WideString):WideString Func Addr64ToAddr32(const Value: TJclAddr64): TJclAddr32; Func Addr32ToAddr64(const Value: TJclAddr32): TJclAddr64; Func AdjustLineBreaksS(const S:Str):Str) TTextLineBreakStyle', '(tlbsLF, tlbsCRLF) Func AdjustLineBreaks(const S:Str; Style: TTextLineBreakStyle):Str; Func AllData :Str Func AllocMemCount: Int; Func AllocMemSize: Int; Func AllocPatternBitmap( BkColor, FgColor : TColor) : TBitmap Func AllowRegKeyForEveryone( Key : HKEY; Path :Str) :Bool Func AlphaComponent( const Color32 : TColor32) : Int Func AlphaSort :Bool Func AlphaSort( ARecurse :Bool) :Bool Func AnsiCat( const x, y : Ansistr) : Ansistr Func AnsiCompareFileName( S1, S2 :Str) : Int Func AnsiCompareFileName(const S1:Str; const S2:Str): Int) Func AnsiCompareStr( S1, S2 :Str) : Int Func AnsiCompareStr(const S1:Str; const S2:Str): Int;) Func AnsiCompareText( S1, S2 :Str) : Int Func AnsiCompareText(const S1:Str; const S2:Str): Int;) Func AnsiContainsStr( const AText, ASubText :Str) :Bool Func AnsiContainsText( const AText, ASubText :Str) :Bool Func AnsiCopy( const src : Ansistr; index, count : Int) : Ansistr Func AnsiDequotedStr( S :Str; AQuote : Char) :Str Func AnsiEndsStr( const ASubText, AText :Str) :Bool Func AnsiEndsText( const ASubText, AText :Str) :Bool Func AnsiExtractQuotedStr( var Src : PChar; Quote : Char) :Str Func AnsiExtractQuotedStr(var Src: PChar; Quote: Char):Str) Func AnsiIndexStr( const AText :Str; const AValues : array of string) : Int Func AnsiIndexText(const AText:str; const AValues:array of string):Int Func AnsiLastChar( S :Str) : PChar Func AnsiLastChar(const S:Str): PChar) Func AnsiLeftStr( const AText : Ansistr; const ACount : Int) : Ansistr Func AnsiLowerCase( S :Str) :Str Func AnsiLowercase(s :Str) :Str; Func AnsiLowerCaseFileName( S :Str) :Str Func AnsiMatchStr( const AText:str; const AValues:array of string):Bool Func AnsiMatchText(const AText:str; const AValues: array of string):Bool Func AnsiMidStr(const AText: Ansistr; const AStart, ACount: Int): Ansistr Func AnsiPos( const src, sub : Ansistr) : Int Func AnsiPos( Substr, S :Str) : Int Func AnsiPos(const Substr:Str; const S:Str): Int;) Func AnsiQuotedStr( S :Str; Quote : Char) :Str Func AnsiReplaceStr( const AText, AFromText, AToText :Str) :Str Func AnsiReplaceText( const AText, AFromText, AToText :Str) :Str Func AnsiResemblesText( const AText, AOther :Str) :Bool Func AnsiReverseString( const AText : Ansistr) : Ansistr Func AnsiRightStr( const AText : Ansistr; const ACount : Int) : Ansistr Func AnsiSameCaption(const Text1:Str; const Text2:Str):Bool) Func AnsiSameStr( S1, S2 :Str) :Bool Func AnsiSameStr(const S1:Str; const S2:Str):Bool) Func AnsiSameText( const S1, S2 :Str) :Bool Func AnsiSameText( S1, S2 :Str) :Bool Func AnsiSameText(const S1:Str; const S2:Str):Bool) Func AnsiStartsStr( const ASubText, AText :Str) :Bool Func AnsiStartsText( const ASubText, AText :Str) :Bool Func AnsiStrComp( S1, S2 : PChar) : Int Func AnsiStrComp(S1: PChar; S2: PChar): Int) Func AnsiStrIComp( S1, S2 : PChar) : Int Func AnsiStrIComp(S1: PChar; S2: PChar): Int) Func AnsiStrLastChar( P : PChar) : PChar Func AnsiStrLastChar(P: PChar): PChar) Func AnsiStrLComp( S1, S2 : PChar; MaxLen :Card) : Int Func AnsiStrLIComp( S1, S2 : PChar; MaxLen :Card) : Int Func AnsiStrLower( Str : PChar) : PChar Func AnsiStrPos( Str, SubStr : PChar) : PChar Func AnsiStrPos(Str: PChar; SubStr: PChar): PChar) Func AnsiStrScan(Str: PChar; Chr: Char): PChar) Func AnsiStrUpper( Str : PChar) : PChar Func AnsiToUtf8( const S :Str) : UTF8String Func AnsiToUtf8Ex( const S :Str; const cp : Int) : UTF8String Func AnsiUpperCase( S :Str) :Str Func AnsiUppercase(s :Str) :Str; Func AnsiUpperCaseFileName( S :Str) :Str Func ApplyUpdates(const Delta:OleVariant;MaxErrors:Int;out ErrorCount:Int): OleVariant Func ApplyUpdates(const Delta:OleVariant;MaxErrors: Int;out ErrorCount:Int): OleVariant; Func ApplyUpdates( MaxErrors : Int) : Int Func ApplyUpdates1(const Delta:OleVar;MaxErrs:Int;out ErrCount:Int;var OwnerData:OleVar):OleVariant; Func ArcCos(const X : Extended) : Extended Func ArcCosh(const X : Extended) : Extended Func ArcCot(const X : Extended) : Extended Func ArcCotH(const X : Extended) : Extended Func ArcCsc(const X : Extended) : Extended Func ArcCscH(const X : Extended) : Extended Func ArcSec(const X : Extended) : Extended Func ArcSecH(const X : Extended) : Extended Func ArcSin(const X : Extended) : Extended Func ArcSinh(const X : Extended) : Extended Func ArcTan(const X : Extended) : Extended Func ArcTan2(const Y, X : Extended) : Extended Func ArithmeticMean(const X : TDynDoubleArray) : Float Func ArrayLength: Int; Func AsHex( const AValue : T4x4LongWordRecord):Str Func AsHex( const AValue : T5x4LongWordRecord):Str Func ASNDecLen( var Start : Int; const Buffer :Str) : Int Func ASNDecOIDItem( var Start : Int; const Buffer :Str) : Int Func ASNEncInt( Value : Int) :Str Func ASNEncLen( Len : Int) :Str Func ASNEncOIDItem( Value : Int) :Str Func ASNEncUInt( Value : Int) :Str Func ASNItem(var Start: Int; const Buffer:str; var ValueType:Int):str Func ASNObject( const Data :Str; ASNType : Int) :Str Func Assigned(I: Longint):Bool; Func AspectRatio(aWidth, aHeight: Int):Str; Func AsWideString( Field : TField) : WideString Func AtLeast( ACount : Int) :Bool Func AttemptToUseSharedMemoryManager :Bool Func Authenticate :Bool Func AuthenticateUser( const AUsername, APassword :Str) :Bool Func Authentication :Str Func BatchMove( ASource : TBDEDataSet; AMode : TBatchMode) : Longint Func BcdCompare( const bcd1, bcd2 : TBcd) : Int Func BcdFromBytes( const AValue : TBytes) : TBcd Func BcdPrecision( const Bcd : TBcd) : Word Func BcdScale( const Bcd : TBcd) : Word Func BcdToBytes( const Value : TBcd) : TBytes Func BCDToCurr( const BCD : TBcd; var Curr : Currency) :Bool Func BcdToDouble( const Bcd : TBcd) : Double Func BcdToInt( const Bcd : TBcd; Truncate :Bool) : Int Func BcdToStr( const Bcd : TBcd) :Str; Func BcdToStrF(const Bcd:TBcd;Format:TFloatFormat;const Precision,Digits:Int):str Func beep2(dwFreq, dwDuration: Int):Bool; Func BeginPeriod( const Period :Card) :Bool Func BeginTrans : Int Func BeginTransaction : TDBXTransaction; Func BeginTransaction1( Isolation : TDBXIsolation) : TDBXTransaction; Func BigMulu(aone, atwo:Str):Str; Func BigNumber(aone, atwo:Str):Str; Func BigExp(aone,atwo:Str):Str; Func BigPow(aone, atwo: Int):Str; Func BigMul(aone,atwo:Str):Str; Func BigAdd(aone,atwo:Str):Str; Func BigSub(aone,atwo:Str):Str; Func BigLog(atwo:String; sig: integer):String; Func BigFactorial(aone:Str):Str; Func BinaryToDouble( ABinary :Str; DefValue : Double): Double Func BinomialCoeff( N, R :Card) : Float Func BinominalCoefficient(n, k: Int):Str; Func BinStrToInt( const ABinary :Str) : Int Func BinToByte(Binary:Str): Byte; Func BinToHex2(Binary:Str):Str; Func BinToInt(Binary:Str): Int; Func BinToChar(St:Str): Char; Func BinToStr(ans:Str):Str; Func BitBlt(hdcDest:HDC;nXDest,nYDest,nWidth,nHeigh:Int;hdcSrc:HDC;nXSrc,nYSrc:Int;dwRop:DWORD):Bool; Func BitmapsAreIdentical( ABitmap1, ABitmap2 : TBitmap) :Bool Func BitsHighest( X: Byte) : Int; Func BitsHighest1(X: ShortInt) : Int; Func BitsHighest2(X: SmallInt) : Int; Func BitsHighest3(X: Word) : Int; Func BitsHighest4(X: Int) : Int; Func BitsHighest5(X:Card) : Int; Func BitsHighest6(X: Int64) : Int; Func BitsLowest( X: Byte) : Int; Func BitsLowest1(X: Shortint) : Int; Func BitsLowest2(X: Smallint) : Int; Func BitsLowest3(X: Word) : Int; Func BitsLowest4(X:Card) : Int; Func BitsLowest5(X: Int) : Int; Func BitsLowest6(X: Int64) : Int; Func BitsNeeded( const X : Byte) : Int; Func BitsNeeded1(const X : Word) : Int; Func BitsNeeded2(const X : Int) : Int; Func BitsNeeded3(const X : Int64) : Int; Func BlueComponent(const Color32 : TColor32) : Int Func BooleanToInt( const Pb :Bool) : Int Func BoolToStr(B:Bool; UseBoolStrs:Bool):Str) Func BoolToStr1(value :Bool) :Str; Func booltoint( aBool :Bool) : LongInt Func inttobool( aInt : LongInt) :Bool Func Bounds( ALeft, ATop, AWidth, AHeight : Int) : TRect Func Bounds(ALeft, ATop, AWidth, AHeight: Int): TRect) Func BreakApart(BaseString,BreakString:str;StringList: TStrings): TStrings Func BrightColor( const Color : TColor; const Pct : Single) : TColor Func BrightColorChannel( const Channel : Byte; const Pct : Single) : Byte Func BufferRequest( Length : Int) : TStream Func BuildFileList(const Path:Str;const Attr:Int;const List:TStrings):Bool Func Buttons: PTaskDialogButton Func BytesPerScanline(PixelsPerScanline,BitsPerPixel,Alignment:Longint):Longint Func BytesToCardinal( const AValue : TIdBytes; const AIndex : Int) :Card Func BytesToChar( const AValue : TIdBytes; const AIndex : Int) : Char Func BytesToInt64( const AValue : TIdBytes; const AIndex : Int) : Int64 Func BytesToInt( const AValue : TIdBytes; const AIndex : Int) : Int Func BytesToIPv6( const AValue : TIdBytes; const AIndex : Int) : TIdIPv6Address Func BytesToShort( const AValue : TIdBytes; const AIndex : Int) : Short Func BytesToString(ABytes:TIdBytes; AStartIndex:Int; AMaxCount:Int):Str; Func BytesToStr(const Value: TBytes):Str; Func BytesToWord( const AValue : TIdBytes; const AIndex : Int) : Word Func ByteToBin(Int: Byte):Str; Func ByteToCharIndex( S :Str; Index : Int) : Int Func ByteToCharIndex(const S:Str; Index: Int): Int) Func ByteToCharLen( S :Str; MaxLen : Int) : Int Func ByteToCharLen(const S:Str; MaxLen: Int): Int) Func ByteToHex( const AByte : Byte) :Str Func ByteToOctal( const AByte : Byte) :Str Func ByteType( S :Str; Index : Int) : TMbcsByteType Func ByteType(const S:Str; Index: Int): TMbcsByteType) Func CalcTitleRect( Col : TColumn; ARow : Int; var MasterCol:TColumn):TRect Func CalculateDFAFingerprint( oStates : TList) : Int Func CallTerminateProcs:Bool) Func CANFOCUS:BOOLEAN Func CanLoad( const Ext :Str) :Bool Func CanParse( AWebRequest : TWebRequest) :Bool Func CanSave( const Ext :Str) :Bool Func CanStart( cChar : char) :Bool Func CaptureScreen : TBitmap; Func CaptureScreen1( Rec : TRect) : TBitmap; Func CardinalToFourChar( ACardinal : LongWord) :Str Func CastSoapToNative(Info:PTypeInfo;const SoapData:WideString;NatData:Pointer;IsNull:Bool):Bool Func CastSoapToVariant1(SoapInfo:PTypeInfo;const SoapData:WideString):Variant; Func Ceil( const X : Extended) : Int Func Ceil16( X : Int) : Int Func Ceil4( X : Int) : Int Func Ceil8( X : Int) : Int Func Ceiling( const X : Extended) : Int Func CellRect( ACol, ARow : Longint) : TRect Func CelsiusToFahrenheit( const AValue : Double) : Double Func CenterPoint( const Rect : TRect) : TPoint Func CenterPoint(const Rect: TRect): TPoint) Func ChangeFileExt( FileName, Extension :Str) :Str Func ChangeFileExt(const FileName:Str; const Extension:Str):Str) Func CharInSet2( const Ch : Char; const SetOfChar : TSetOfChar) :Bool Func CharInSet3( C : Char; const CharSet : TSysCharSet) :Bool Function CharInSet4(C: Char; const CharSet: CharSet):Bool; Func CharInSet( const Ch : Char; const testSet: TSysCharSet):Bool Func CharIsInEOF( const AString :Str; ACharPos : Int) :Bool Func CharIsInSet(const AString:str;const ACharPos:Int;const ASet:str):Bool Func CharLength( S :Str; Index : Int) : Int Func CharRange( const AMin, AMax : Char) :Str Func CharsetToIdent(Charset: Longint; var Ident:Str):Bool) Func CharToBin(vChr: Char):Str; Func CharNext(lpsz: PChar): PChar; stdcall; Func CharToByteIndex( S :Str; Index : Int) : Int Func CharToByteIndex(const S:Str; Index: Int): Int) Func CharToByteLen( S :Str; MaxLen : Int) : Int Func CharToByteLen(const S:Str; MaxLen: Int): Int) Func CharToHex(const APrefix :Str; const cc : Char) : shortstring; Func CharToHexStr(Value: char):Str); Func CharToOem(ins, outs: PChar):boolean; Func CharToUniCode(Value: Char):Str; Func CheckMenuDropdown :Bool Func CheckMessages : longint Func CheckBox:Str; Func CheckOpen( Status : DBIResult) :Bool Func CheckPassword( const APassword :Str) :Bool Func CheckResponse(const AResponse:SmallInt;const AAllowedResponses:array of SmallInt):SmallInt Func CheckCrc32( var X : array of Byte; N : Int; Crc :Card) : Int; Func CheckSynchronize(Timeout: Int):Bool Func CheckWin32Version( AMajor : Int; AMinor : Int) :Bool Func CheckCom(AComNumber: Int): Int;; Func CheckLPT1:Str;; Func ChrA(const a: byte): char; Func ClassIDToProgID(const ClassID: TGUID):Str; Func ClassNameIs(const Name:Str):Bool Func ClearBit( const Value : Byte; const Bit : TBitRange) : Byte; Func ClearBit1(const Value : Shortint; const Bit : TBitRange) : Shortint; Func ClearBit2(const Value : Smallint; const Bit : TBitRange) : Smallint; Func ClearBit3(const Value : Word; const Bit : TBitRange) : Word; Func ClearBit4(const Value : Int; const Bit : TBitRange) : Int; Func ClearBit5(const Value :Card; const Bit : TBitRange) :Card; Func ClearBit6(const Value : Int64; const Bit : TBitRange) : Int64; Func CLIENTTOSCREEN(POINT:TPOINT):TPOINT Func Clipboard : TClipboard Func ClipCodes( const X, Y, MinX, MinY, MaxX, MaxY : Float) : TClipCodes; Func ClipCodes1( const X, Y : Float; const ClipRect : TRect) : TClipCodes; Func ClipLine( var X1, Y1, X2, Y2 : Int; const ClipRect : TRect) :Bool; Func ClipLineToRect(var P1,P2:TFloatPoint;const Rect:TFloatRect) :Bool Func Clone( out stm : IStream) : HResult Func CloneConnection : TSQLConnection Func CloneMemoryStream( Original : TMemoryStream) : TMemoryStream Func CLOSEQUERY:BOOLEAN Func CloseVolume( var Volume : THandle) :Bool Func CloseHandle(Handle: Int): Int; stdcall; Func CPlApplet(hwndCPl:THandle;uMsg:DWORD;lParam1,lParam2:Longint):Longint Func CmdLine: PChar; Func CmdShow: Int; // type TPos = (tLat, tLon);TShowFmt = (sfNautical, sfStatute, sfMetric); Func CoordinateStr(Idx: Int; PosInSec: Double; PosLn: TPos):Str; Func Color32(const R, G, B : Byte; const A : Byte) : TColor32; Func Color32(WinColor : TColor) : TColor32; Func Color321(const Index : Byte; const Palette : TPalette32) : TColor32; Func ColorAdjustLuma( clrRGB : TColor; n : Int; fScale :BOOLean) : TColor Func ColorHLSToRGB( Hue, Luminance, Saturation : Word) : TColorRef Func ColorToHTML( const Color : TColor) :Str Func ColorToIdent(Color: Longint; var Ident:Str):Bool) Func ColorToRGB(color: TColor): Longint Func ColorToString(Color: TColor):Str) Func ColorToWebColorName( Color : TColor) :Str Func ColorToWebColorStr( Color : TColor) :Str Func ColumnAtDepth( Col : TColumn; ADepth : Int) : TColumn Func Combination(npr, ncr: Int): extended; Func CombinationInt(npr, ncr: Int): Int64; Func CombineInfo( Bitmap : TCustomBitmap32) : TCombineInfo Func CommaAdd( const AStr1, AStr2 :Str) :Str Func CommercialRound( const X : Extended) : Int64 Func Commit( grfCommitFlags : Longint) : HResult Func Compare( const NameExt :Str) :Bool Func CompareDate(const A, B: TDateTime): TValueRelationship; Func CompareDateTime( const ADateTime1, ADateTime2 : TDateTime) : Int Func CompareFiles(const FN1,FN2:str;Breathe:TNotifyEvent;BreathingSender:TObject):bool Func CompareMemoryStreams( S1, S2 : TMemoryStream) :Bool Func CompareStr( S1, S2 :Str) : Int Func CompareStr(const S1:Str; const S2:Str): Int) Func CompareString(const S1:Str; const S2:Str): Int) Func CompareText( S1, S2 :Str) : Int Func CompareText(const S1:Str; const S2:Str): Int) Func CompareTextLike(cWildStr,cStr:str;const cWildChar:char;lCaseSensitive:bool):bool Func CompareTime(const A, B: TDateTime): TValueRelationship; Func CompareValueE(const A,B:Extended;Epsilon:Extended= 0):TValueRelationship; overload; Func CompareValueD(const A, B:Double; Epsilon:Double = 0):TValueRelationship; overload; Func CompareValueS(const A, B: Single; Epsilon: Single = 0): TValueRelationship; overload; Func CompareValueI(const A, B: Int): TValueRelationship; overload; Func CompareValueI64(const A, B: Int64): TValueRelationship; overload; Func CompatibleConversionType(const AType:TConvType; const AFamily : TConvFamily):Boolean Func CompatibleConversionTypes( const AFrom, ATo : TConvType) :Bool Func ComponentTypeToString( const ComponentType : DWORD) :Str Func ComposeDateTime(Date,Time : TDateTime) : TDateTime;; Func ComponentToStringProc(Component: TComponent):Str; Func StringToComponentProc(Value:Str): TComponent; Func CompToCurrency( Value : Comp) : Currency Func CompToDouble( Value : Comp) : Double Func ComputeFileCRC32(const FileName :Str) : Int; Func ComputeSHA256(astr:Str; amode: char):Str) //mode F:File, S:str Func ComputeSHA512(astr:Str; amode: char):Str) //mode F:File, S:str Func ComPortSelect: Int; // Search for the first available port Func Concat(s:Str):Str Func ConnectAndGetAll :Str Func Connected :Bool Func constrain(x, a, b: Int): Int; Func ConstraintCallBack(Req:DsInfoReq;var ADataSources:DataSources): DBIResult Func ConstraintsDisabled :Bool Func CONTAINSCONTROL(CONTROL:TCONTROL):BOOLEAN Func ContainsState( oState : TniRegularExpressionState) :Bool Func ContainsStr( const AText, ASubText :Str) :Bool Func ContainsText( const AText, ASubText :Str) :Bool Func ContainsTransition(oTransition:TniRegularExpressionTransition):boolean Func Content:Str Func ContentFromStream( Stream : TStream) :Str Func ContentFromString( const S :Str) :Str Func CONTROLSDISABLED :Bool Func Convert( const AValue : Double; const AFrom, ATo : TConvType) : Double; Func Convert1(const AValue:Double;const AFrom1,AFrom2,ATo1,ATo2:TConvType):Double; Func ConvertFrom( const AFrom : TConvType; const AValue : Double) : Double Func ConvertReadStream( Stream : TStream; Buffer : PChar; BufSize : Int) : Int Func ConvertTo( const AValue : Double; const ATo : TConvType) : Double Func ConvertWriteStream( Stream : TStream; Buffer: PChar; BufSize : Int) : Int Func ConvFamilyToDescription( const AFamily : TConvFamily) :Str Func ConvTypeToDescription( const AType : TConvType) :Str Func ConvTypeToFamily( const AFrom, ATo : TConvType) : TConvFamily; Func ConvTypeToFamily( const AType : TConvType) : TConvFamily; Func ConvAdd(const AVal:Dbl;const AType1:TConvType;const AVal2:Dbl;const AType2,AResultType:TConvType):Double Func ConvCompareValue(const AValue1:Double;const AType1:TConvType;const AValue2:Double;const AType2:TConvType):TValueRelationship Func ConvDec( const AValue:Double;const AType,AAmountType:TConvType):Double; Func ConvDec1(const AValue:Dbl;const AType:TConvType;const AAmount:Dble;const AAmountType:TConvType):Double; Func ConvDiff(const AVal1:Dbl;const AType1:TConvType;const AVal2:Dble;const AType2,AResuType:TConvType):Double Func ConvInc( const AValue:Double; const AType,AAmountType:TConvType):Double; Func ConvInc1(const AValue:Dbl;const AType:TConvType;const AAmount:Double;const AAmountType:TConvType):Double; Func ConvSameValue(const AValue1:Dbl;const AType1:TConvType;const AValue2:Dbl;const AType2:TConvType):Bool Func ConvToStr( const AValue : Double; const AType : TConvType) :Str Func ConvWithinNext( const AValue, ATest : Double; const AType : TConvType; const AAmount : Double; const AAmountType : TConvType) :Bool Func ConvWithinPrevious(const AValue,ATest:Double;const AType:TConvType;const AAmount:Double;const AAmountType: TConvType) :Bool Func Copy(s: AnyString; iFrom, iCount: Longint): AnyString; Func CopyFile( Source, Dest :Str; CanOverwrite :Bool) : Bool Func CopyFileEx( Source, Dest :Str; Flags : FILEOP_FLAGS) : Bool Func CopyFileTo( const Source, Destination :Str) :Bool Func CopyFrom(Source:TStream;Count:Int64):LongInt Func CopyPalette( Palette : HPALETTE) : HPALETTE Func CopyTo( Length : Int) :Str Func CopyTo(stm:IStream;cb:Largeint;out cbRead:Largeint;out cbWritten:Largeint):HResult Func CopyToEOF :Str Func CopyToEOL :Str Func Cos(e : Extended) : Extended; Func Cosecant( const X : Extended) : Extended Func Cot( const X : Extended) : Extended Func Cotan( const X : Extended) : Extended Func CotH( const X : Extended) : Extended Func Count : Int Func CountBitsCleared( X:Byte) : Int; Func CountBitsCleared1(X:Shortint) : Int; Func CountBitsCleared2(X:Smallint) : Int; Func CountBitsCleared3(X:Word) : Int; Func CountBitsCleared4(X:Int) : Int; Func CountBitsCleared5(X:Card) : Int; Func CountBitsCleared6(X:Int64) : Int; Func CountBitsSet( X:Byte) : Int; Func CountBitsSet1(X:Word) : Int; Func CountBitsSet2(X:Smallint) : Int; Func CountBitsSet3(X:ShortInt) : Int; Func CountBitsSet4(X:Int) : Int; Func CountBitsSet5(X:Card) : Int; Func CountBitsSet6(X:Int64) : Int; Func countDirfiles(const apath:Str): Int; Func CountGenerations(Ancestor,Descendent: TClass): Int Func Coversine( X : Float) : Float Func CRC32(const fileName:Str): LongWord; Func CREATEBLOBSTREAM( FIELD : TFIELD; MODE : TBLOBSTREAMMODE) : TSTREAM Func CreateColumns : TDBGridColumns Func CreateDataLink : TGridDataLink Func CreateDir( Dir :Str) :Bool Func CreateDir(const Dir:Str):Bool) Func CreateDOSProcessRedirected(const CommandLine,InputFile,OutputFile:str): Bool Func CreateEnvironmentBlock(const Options:TEnvironmentOptions;const AdditionalVars:TStrings):PChar Func CREATEFIELD(OWNER:TCOMPONENT;PARENTFIELD:TOBJECTFIELD;const FIELDNAME:str;CREATECHILDREN:BOOL):TFIELD Func CreateGlobber( sFilespec :Str) : TniRegularExpression Func CreateGrayMappedBmp( Handle : HBITMAP) : HBITMAP Func CreateGrayMappedRes( Instance : THandle; ResName : PChar) : HBITMAP Func CreateGUID(out Guid: TGUID): HResult) Func CreateInstance( const unkOuter: IUnknown;const iid:TGUID; out obj):HResult Func CreateMappedBmp(Handle : HBITMAP; const OldColors,NewColors:array of TColor):HBITMAP Func CreateMappedRes(Instance:THandle;ResName:PChar;const OldColors,NewColors:array of TColor):HBITMAP Func CreateMessageDialog(const Msg:str;DlgType:TMsgDlgType;Buttons:TMsgDlgButtons):TForm; Func CreateMessageDialog1(const Msg:str;DlgType:TMsgDlgType;Btns:TMsgDlgBtns;DefaultBtn:TMsgDlgBtn):TForm; Func CreateOleObject(const ClassName:Str): IDispatch; Func CREATEPARAM(FLDTYPE:TFIELDTYPE;const PARAMNAME:str; PARAMTYPE:TPARAMTYPE): TPARAM Func CreateParameter(const Name:WideString;DataType:TDataType;Direction:TParameterDirection;Size:Int;Value: OleVariant):TParameter Func CreateLocate( DataSet : TDataSet) : TJvLocateObject Func CreateMappedBmp(Handle: HBITMAP;const OldColors,NewColors:array of TColor) :HBITMAP Func CreateMappedRes(Instance:THandle;ResName:PChar;const OldColors,NewColors:array of TColor):HBITMAP Func CreateMutex2(lpMutexAttributes:TObject;bInitialOwner:BOOL;lpName:PChar): THandle; Func CreateSemaphore2(lpSemaphoreAttributes:TObject;lInitialCount,lMaximumCount:Longint;lpName:PChar):THandle; //Ex.: vMutex := CreateMutex2(Nil, True, MutexName); Func IPAddrToName // ShowMessage(IPAddrToName(LocalIp)); Func CreateRecordBuffer( Length : Int) : TRecordBuffer Func CreateValueBuffer( Length : Int) : TValueBuffer Func CreatePopupCalculator(AOwner:TComponent;ABiDiMode:TBiDiMode):TWinControl Func CreateRecordBuffer( Length : Int) : TRecordBuffer Func CreateRotatedFont( Font : TFont; Angle : Int) : HFONT Func CreateTwoColorsBrushPattern( Color1, Color2 : TColor) : TBitmap Func CreateValueBuffer( Length : Int) : TValueBuffer Func CreateHexDump( AOwner : TWinControl) : THexDump Func Csc( const X : Extended) : Extended Func CscH( const X : Extended) : Extended Func currencyDecimals: Byte Func currencyFormat: Byte Func currencyString:Str Func CurrentProcessId : TIdPID Func CurrentReadBuffer :Str Func CurrentThreadId : TIdPID Func CurrentYear : Word Func CurrToBCD(const Curr:Currency;var BCD:TBcd;Precision:Int;Decimals:Int):Bool Func CurrToStr( Value : Currency) :Str; Func CurrToStrF(Value:Currency;FormatSettings:TFormatSettings;Digits:Int):str; Func CurrToStrFS(Value:Currency;Format:TFloatFormat;Digits:Int;const FormatSettings:TFormatSettings):str; Func CursorToIdent(cursor: Longint; var Ident:Str):Bool; Func CursorToString(cursor: TCursor):Str; Func CustomSort( SortProc : TLVCompare; lParam : Longint) :Bool Func CustomSort(SortProc:TTVCompare;Data:Longint;ARecurse :Bool):Boolean Func CycleToDeg( const Cycles : Extended) : Extended Func CycleToGrad( const Cycles : Extended) : Extended Func CycleToRad( const Cycles : Extended) : Extended Func D2H( N : Longint; A : Byte) :Str Func DarkColor( const Color : TColor; const Pct : Single) : TColor Func DarkColorChannel( const Channel: Byte; const Pct : Single) : Byte Func DataLinkDir :Str Func DataRequest( Data : OleVariant) : OleVariant Func DataRequest( Input : OleVariant) : OleVariant Func DataToRawColumn( ACol : Int) : Int Func Date : TDateTime Func Date: TDateTime; Func DateIsNull( const pdtValue : TDateTime; const pdtKind : TdtKind):Boolean Func DateOf( const AValue : TDateTime) : TDateTime Func DateSeparator: char; Func DateTimeGMTToHttpStr( const GMTValue : TDateTime) :Str Func DateTimeToFileDate( DateTime : TDateTime) : Int Func DateTimeToFileDate(DateTime: TDateTime): Int; Func DateTimeToGmtOffSetStr( ADateTime : TDateTime; SubGMT :Bool):Str Func DateTimeToInternetStr(const Value:TDateTime;const AIsGMT:Boolean) String Func DateTimeToJulianDate( const AValue : TDateTime) : Double Func DateTimeToModifiedJulianDate( const AValue : TDateTime) : Double Func DateTimeToStr( DateTime : TDateTime) :Str; Func DateTimeToStr2(DateTime: TDateTime;FormatSettings:TFormatSettings):str; Func DateTimeToTimeStamp(DateTime: TDateTime): TTimeStamp Func DateTimeToUnix( const AValue : TDateTime) : Int64 Func DateTimeToUnix(D: TDateTime): Int64; Func DateToStr( DateTime : TDateTime) :Str; Func DateToStr(const DateTime: TDateTime):Str; Func DateToStr(D: TDateTime):Str; Func DateToStr2(DateTime:TDateTime;FormatSettings:TFormatSettings):str; Func DayOf( const AValue : TDateTime) : Word Func DayOfTheMonth( const AValue : TDateTime) : Word Func DayOfTheMonth(const AValue: TDateTime): Word; Func DayOfTheWeek( const AValue : TDateTime) : Word Func DayOfTheYear( const AValue : TDateTime) : Word Func DayOfTheYear(const AValue: TDateTime): Word; Func DayOfWeek( DateTime : TDateTime) : Word Func DayOfWeek(const DateTime: TDateTime): Word; Func DayOfWeekStr( DateTime : TDateTime) :Str Func DaysBetween( const ANow, AThen : TDateTime) : Int Func DaysInAMonth( const AYear, AMonth : Word) : Word Func DaysInAYear( const AYear : Word) : Word Func DaysInMonth( const AValue : TDateTime) : Word Func DaysInYear( const AValue : TDateTime) : Word Func DaySpan( const ANow, AThen : TDateTime) : Double Func DBUseRightToLeftAlignment( AControl : TControl; AField : TField) :Bool Func DecimalSeparator: char; Func DecLimit( var B : Byte; const Limit : Byte; const Decr : Byte) : Byte; Func DecLimit1(var B:Shortint;const Limit:Shortint const Decr:Shortint):Shortint; Func DecLimit2(var B:Smallint;const Limit:Smallint;const Decr:Smallint):Smallint; Func DecLimit3( var B : Word; const Limit : Word; const Decr : Word) : Word; Func DecLimit4( var B : Int; const Limit : Int; const Decr : Int) : Int; Func DecLimit5(var B Cardinal;const Limit Cardinal;const Decr:Card):Card; Func DecLimit6(var B:Int64;const Limit : Int64; const Decr : Int64) : Int64; Func DecLimitClamp(var B:Byte; const Limit : Byte; const Decr : Byte) : Byte; Func DecLimitClamp1(var B:Shortint;const Limit:Shortint;const Decr:Shortint): Shortint; Func DecLimitClamp2(var B:Smallint;const Limit: Smallint;const Decr: Smallint): Smallint; Func DecLimitClamp3(var B:Word;const Limit: Word; const Decr : Word) : Word; Func DecLimitClamp4( var B : Int; const Limit : Int; const Decr : Int) : Int; Func DecLimitClamp5(var B:Card;const Limit:Card; const Decr:Card) Cardinal; Func DecLimitClamp6(var B: Int64; const Limit:Int64; const Decr:Int64): Int64; Func DecodeDateFully(DateTime: TDateTime; var Year,Month,Day,DOW:Word):Bool Func DecodeSoundexInt( AValue : Int) :Str Func DecodeSoundexWord( AValue : Word) :Str Func DefaultAlignment : TAlignment Func DefaultCaption :Str Func DefaultColor : TColor Func DefaultFont : TFont Func DefaultImeMode : TImeMode Func DefaultImeName : TImeName Func DefaultReadOnly :Bool Func DefaultWidth : Int Func DegMinSecToFloat( const Degs, Mins, Secs : Float) : Float Func DegToCycle(const Degrees : Extended) : Extended Func DegToGrad(const Degrees : Extended) : Extended Func DegToGrad(const Value : Extended) : Extended; Func DegToGrad1(const Value : Double) : Double; Func DegToGrad2(const Value : Single) : Single; Func DegToRad(const Degrees : Extended) : Extended Func DegToRad(const Value : Extended) : Extended; Func DegToRad1(const Value : Double) : Double; Func DegToRad2(const Value : Single) : Single; Func DelChar(const pStr :Str; const pChar : Char) :Str Func DelEnvironmentVar( const Name :Str) :Bool Func Delete( const MsgNum : Int) :Bool Func DeleteDirectory(const DirectoryName:str;MoveToRecycleBin:Boolean):Bool Func DeleteFile(const FileName:Str):Bool) Func DeleteFileEx( FileName :Str; Flags : FILEOP_FLAGS) :Bool Func DelimiterPosn( const sString :Str; const sDelimiters:Str): Int; Func DelimiterPosn1(const sString:str;const sDelimiters:str;out cDelimiter:char):Int; Func DelSpace( const pStr :Str) :Str Func DelString( const pStr, pDelStr :Str) :Str Func DelTree( const Path :Str) :Bool Func Depth: Int Func Description :Str Func DescriptionsAvailable :Bool Func DescriptionToConvFamily(const ADescription:str;out AFamily:TConvFamily):Boolean Func DescriptionToConvType(const ADescription:str;out AType:TConvType):Bool; Func DescriptionToConvType1(const AFamil:TConvFamily;const ADescr:str;out AType:TConvType):Bool; Func DetectUTF8Encoding( const s : UTF8String) : TEncodeType Func DialogsToPixelsX( const Dialogs : Word) : Word Func DialogsToPixelsY( const Dialogs : Word) : Word Func Digits( const X :Card) : Int Func DirectoryExists( const Name :Str) :Bool Func DirectoryExists( Directory :Str) :Bool Func DiskFree( Drive : Byte) : Int64 Func DiskFree(Drive: Byte): Int64) Func DiskInDrive( Drive : Char) :Bool Func DiskSize( Drive : Byte) : Int64 Func DiskSize(Drive: Byte): Int64) Func DISPATCHCOMMAND( ACOMMAND : WORD):BOOLEAN Func DispatchEnabled :Bool Func DispatchMask : TMask Func DispatchMethodType : TMethodType Func DISPATCHPOPUP( AHANDLE : HMENU) :Bool Func DispatchRequest(Sender:TObject;Request:TWebRequest;Response:TWebResponse):Boolean Func DisplayCase( const S :Str) :Str Func DisplayRect( Code : TDisplayCode) : TRect Func DisplayRect( TextOnly :Bool) : TRect Func DisplayStream( Stream : TStream) :Str TBufferCoord', 'record Char : Int; Line : Int; end TDisplayCoord', 'record Column : Int; Row : Int; end Func DisplayCoord( AColumn, ARow : Int) : TDisplayCoord Func BufferCoord( AChar, ALine : Int) : TBufferCoord Func DomainName( const AHost :Str) :Str Func DownloadFile(SourceFile, DestFile:Str):Bool; //fast! Func DownloadFileOpen(SourceFile, DestFile:Str):Bool; //open process Func DosPathToUnixPath( const Path :Str) :Str Func DottedLineTo( const Canvas : TCanvas; const X, Y : Int) :Bool; Func DoubleDecliningBalance(const Cost,Salvage:Extended;Life,Period:Int):Extended Func DoubleToBcd( const AValue : Double) : TBcd; Func DoubleToHex( const D : Double) :Str Func DoUpdates :Bool Func Dragging:Bool; Func DrawCaption( p1 : HWND; p2 : HDC; const p3 : TRect; p4 : UINT) : BOOL Func DrawAnimatedRects(hwnd: HWND;idAni Int;const lprcFrom,lprcTo: TRect): BOOL Func DrawEdge( hdc : HDC; var qrc : TRect; edge : UINT; grfFlags : UINT) : BOOL Func DrawFrameControl(DC:HDC; const Rect:TRect; uType, uState: UINT) : BOOL {Works like InputQuery but displays 2edits.If PasswordChar<>#0,second edits PasswordChar is set} Func DualInputQuery(const ACapt,Prpt1,Prpt2:str;var AVal1,AVal2:str;PasswrdChar:Char=#0):Bool; Func DupeString( const AText :Str; ACount : Int) :Str Func Edit :Bool Func EditCaption :Bool Func EditText :Bool Func EditFolderList( Folders : TStrings) :Bool Func EditQueryParams(DataSet:TDataSet;List: TParams; AHelpContext:THelpContext): Bool Func Elapsed( const Update :Bool) :Card Func EnableProcessPrivilege(const Enable:Boolean; const Privilege:str):Bool Func EnableThreadPrivilege(const Enable Boolean;const Privilege:str): Bool Func EncodeDate( Year, Month, Day : Word) : TDateTime Func EncodeDate(Year, Month, Day: Word): TDateTime; Func EncodeDateDay( const AYear, ADayOfYear : Word) : TDateTime Func EncodeDateMonthWeek(const AYear,AMonth,AWeekOfMonth ADayOfWeek:Word): TDateTime Func EncodeDateTime(const AYear,AMonth,ADay,AHour,AMinute,ASecond,AMilliSec:Word):TDateTime Func EncodeDateWeek(const AYear,AWeekOfYear:Word;const ADayOfWeek:Word):TDateTime Func EncodeDayOfWeekInMonth(const AYear,AMonth,ANthDayOfWeek,ADayOfWeek Word): TDateTime Func EncodeString( s :Str) :Str Func DecodeString( s :Str) :Str Func EncodeTime( Hour, Min, Sec, MSec : Word) : TDateTime Func EncodeTime(Hour, Min, Sec, MSec: Word): TDateTime; Func EndIP :Str Func EndOfADay( const AYear, AMonth, ADay : Word) : TDateTime; Func EndOfADay1( const AYear, ADayOfYear : Word) : TDateTime; Func EndOfAMonth( const AYear, AMonth : Word) : TDateTime Func EndOfAWeek(const AYear,AWeekOfYear:Word; const ADayOfWeek:Word):TDateTime Func EndOfAYear( const AYear : Word) : TDateTime Func EndOfTheDay( const AValue : TDateTime) : TDateTime Func EndOfTheMonth( const AValue : TDateTime) : TDateTime Func EndOfTheWeek( const AValue : TDateTime) : TDateTime Func EndOfTheYear( const AValue : TDateTime) : TDateTime Func EndPeriod( const Period :Card) :Bool Func EndsStr( const ASubText, AText :Str) :Bool Func EndsText( const ASubText, AText :Str) :Bool Func EnsureMsgIDBrackets( const AMsgID :Str) :Str Func EnsureRange( const AValue, AMin, AMax : Int) : Int; Func EnsureRange1( const AValue, AMin, AMax : Int64) : Int64; Func EnsureRange2( const AValue, AMin, AMax : Double) : Double; Func EOF:Bool Func EOln:Bool Func EqualRect( const R1, R2 : TRect) :Bool Func EqualRect(const R1, R2: TRect):Bool) Func Equals( Strings : TWideStrings) :Bool Func Equals(Strings: TStrings):Bool; Func EqualState(oState: TniRegularExpressionState) :Bool Func ErrOutput: Text) Func ExceptionParam:Str; Func ExceptionPos:Card; Func ExceptionProc:Card; Func ExceptionToString(er: TIFException; Param:Str):Str; Func ExceptionType: TIFException; Func ExcludeTrailingBackslash( S :Str) :Str Func ExcludeTrailingBackslash(const S:Str):Str) Func ExcludeTrailingPathDelimiter( const APath :Str) :Str Func ExcludeTrailingPathDelimiter( S :Str) :Str Func ExcludeTrailingPathDelimiter(const S:Str):Str) Func ExecConsoleApp(const AppName,Parameters:str;AppOutput:TStrings):bool; Func ExecProc : Int Func ExecSQL : Int Func ExecSQL( ExecDirect :Bool) : Int Func Execute: _Recordset; Func Execute:Bool Func Execute:Bool; Func Execute(const SQL:str;Params:TParams;Cache:Boolean;cursor:phDBICur):Int Func Execute(const SQL: WideString;Params:TParams;ResultSet: TPSResult):Int Func Execute( ParentWnd : HWND) :Bool Func Execute1(constCommText:WideString;const CType:TCommType;const ExecuteOpts:TExecuteOpts):_Recordset; Func Execute1( const Parameters : OleVariant) : _Recordset; Func Execute1( ParentWnd : HWND) :Bool; Func Execute2( var RecordsAffected:Int;const Parameters:OleVariant):_Recordset; Func ExecuteAction( Action : TBasicAction) :Bool Func ExecuteDirect( const SQL : WideString) : Int Func ExecuteFile(const FileName:str;const Params:str;const DefDir:str;ShowCmd:Int):THandle Proc ExecuteThread2(afunc:TThreadFunction2;thrOK:bool);AddTypeS('TThreadFunction2','procedure Func CreateThread2(ThreadFunc: TThreadFunction2) : THandle Func ExeFileIsRunning(ExeFile:Str):Bool; Func ExePath:Str; Func ScriptPath:Str; Func ScriptName:Str; Func ExePathName:Str; Func Exists( AItem : Pointer) :Bool Func ExitWindows( ExitCode :Card) :Bool Func Exit2( ExitCode :Card) :Bool function Exit3(exitcode: integer): integer; begin system.exit(exitcode); end; Func Exp(x: Extended): Extended; Func ExpandEnvironmentVar( var Value :Str) :Bool Func ExpandFileName( FileName :Str) :Str Func ExpandFileName(const FileName:Str):Str) Func ExpandUNCFileName( FileName :Str) :Str Func ExpandUNCFileName(const FileName:Str):Str) Func ExpJ( const X : Float) : Float; Func Exsecans( X : Float) : Float Func Extract( const AByteCount : Int) :Str Func Extract( Item : TClass) : TClass Func Extract( Item : TComponent) : TComponent Func Extract( Item : TObject) : TObject Func ExtractFileDir( FileName :Str) :Str Func ExtractFileDir(const FileName:Str):Str) Func ExtractFileDrive( FileName :Str) :Str Func ExtractFileDrive(const FileName:Str):Str) Func ExtractFileExt( FileName :Str) :Str Func ExtractFileExt(const FileName:Str):Str) Func ExtractFileExtNoDot( const FileName :Str) :Str Func ExtractFileExtNoDotUpper( const FileName :Str) :Str Func ExtractFileName( FileName :Str) :Str Func ExtractFileName(const filename:Str):str; Func ExtractFilePath( FileName :Str) :Str Func ExtractFilePath(const filename:Str):str; Func ExtractRelativePath( BaseName, DestName :Str) :Str Func ExtractRelativePath(const BaseName:Str; const DestName:Str):Str) Func ExtractShortPathName( FileName :Str) :Str Func ExtractShortPathName(const FileName:Str):Str) Func ExtractStrings(Separators,WhiteSpace:TSysCharSet;Content:PChar;Strings:TStrings):Int Func ExtractStrings(Separators:TSysCharSet;WhiteSpace:TSysCharSet;Content:PChar;Str:TStrings):Int) Func ExtractStrings2(Separators:TSysCharSet;WhiteSpace:TSysCharSet;Content:string;Str:TStrings):Int) Func Fact(numb: Int): Extended; Func FactInt(numb: Int): int64; Func Factorial( const N : Int) : Extended Func FahrenheitToCelsius( const AValue : Double) : Double Func FalseBoolStrs: array of string Func Fetch(var AInput:str;const ADelim:str;const ADelete:Bool;const ACaseSensitive:Bool):str Func FetchCaseInsensitive(var AInput:str;const ADelim:str;const ADelete:Bool):str Func Fibo(numb: Int): Extended; Func FiboInt(numb: Int): Int64; Func Fibonacci( const N : Int) : Int Func FIELDBYNAME(const FIELDNAME :Str) : TFIELD Func FIELDBYNAME(const FIELDNAME : WIDESTRING) : TFIELD Func FIELDBYNAME(const NAME :Str) : TFIELD Func FIELDBYNAME(const NAME :Str) : TFIELDDEF Func FIELDBYNUMBER( FIELDNO : Int) : TFIELD Func FileAge( FileName :Str) : Int Func FileAge(const FileName:Str): Int) Func FileCompareText( const A, B :Str) : Int Func FileContains(const FileName:str;Text:str;CaseSensitive:Bool;ExceptionOnError:Bool):Bool Func FileCreate(FileName:Str): Int; //FileCreate2(FileName:str;Rights:Int):Int; Func FileCreate(const FileName:Str): Int) Func FileCreateTemp( var Prefix :Str) : THandle Func FileDateToDateTime( FileDate : Int) : TDateTime Func FileDateToDateTime(FileDate: Int): TDateTime; Func FileExists( const FileName :Str) :Bool Func FileExists( FileName :Str) :Bool Func fileExists(const FileName:Str):Bool; Func FileGetAttr( FileName :Str) : Int Func FileGetAttr(const FileName:Str): Int) Func FileGetDate( Handle : Int) : Int Func FileGetDate(handle: Int): Int Func FileGetDisplayName( const FileName :Str) :Str Func FileGetSize( const FileName :Str) : Int Func FileGetTempName( const Prefix :Str) :Str Func FileGetTypeName( const FileName :Str) :Str Func FileIsReadOnly( FileName :Str) :Bool Func FileLoad( ResType:TResType;const Name:str;MaskColor:TColor):Boolean Func FileOpen( FileName :Str; Mode : LongWord) : Int Func FileOpen(const FileName:Str; mode:Int): Int) Func FileRead(handle: Int; Buffer: PChar; count: LongWord): Int Func FileSearch( Name, DirList :Str) :Str Func FileSearch(const Name, dirList:Str):Str) Func FileSeek( Handle : Int; Offset : Int64; Origin : Int) : Int64; Func FileSeek( Handle, Offset, Origin : Int) : Int; Func FileSeek(handle, offset, origin: Int): Int Func FileSetAttr( FileName :Str; Attr : Int) : Int Func FileSetAttr(const FileName:Str; Attr: Int): Int) Func FileSetDate(FileName :Str; Age : Int) : Int; Func FileSetDate(handle: Int; age: Int): Int Func FileSetDate2(FileHandle : Int; Age : Int) : Int; Func FileSetDateH( Handle : Int; Age : Int) : Int; Func FileSetReadOnly( FileName :Str; ReadOnly :Bool) :Bool Func FileSize( const FileName :Str) : int64 Func FileSizeByName( const AFilename :Str) : Longint Func FileWrite(Handle: Int; const Buffer: pChar; Count: LongWord): Int) Func FilterSpecArray : TComdlgFilterSpecArray Func FIND(ACAPTION :Str) : TMENUITEM Func Find(AItem : Pointer; out AData : Pointer) :Bool Func FIND(const ANAME :Str) : TNAMEDITEM Func Find(const DisplayName :Str) : TAggregate Func Find(const Item : TBookmarkStr; var Index : Int) :Bool Func FIND(const NAME :Str) : TFIELD Func FIND(const NAME :Str) : TFIELDDEF Func FIND(const NAME :Str) : TINDEXDEF Func Find(const S : WideString; var Index : Int) :Bool Func Find(S:str;var Index:Int):Boolean Func FindAuthClass( AuthName :Str) : TIdAuthenticationClass Func FindBand( AControl : TControl) : TCoolBand Func FindBoundary( AContentType :Str) :Str Func FindButton( AModalResult : TModalResult) : TTaskDialogBaseButtonItem Func FindCaption(StartIndex:Int;Value:str;Partial,Inclusive,Wrap:Boolean):TListItem Func FindCdLineSwitch( Switch :Str; IgnoreCase :Bool) :Bool; Func FindCloseW(FindFile: Int): LongBool; stdcall; Func FindCmdLineSwitch(Switch:str;Chars:TSysCharSet;IgnoreCase:Boolean):Bool; Func FindCmmdLineSwitch( Switch :Str) :Bool; Func FindComponent(AName:Str): TComponent; Func FindComponent(vlabel:Str): TComponent; Func FindComponent2(vlabel:Str): TComponent; Func FindControl(Handle: HWnd): TWinControl; Func FindData( StartIndex : Int; Value : Pointer; Inclusive, Wrap :Bool):TListItem Func FindDatabase( const DatabaseName :Str) : TDatabase Func FindDragTarget(const Pos: TPoint; AllowDisabled:Bool): TControl; Func FINDFIELD( const FIELDNAME :Str) : TFIELD Func FINDFIELD( const FIELDNAME : WideString) : TFIELD Func FindFirst2(const Path:Str; Attr: Int; var F: TSearchRec):Int) Func FindNext2(var F: TSearchRec): Int) Proc FindClose2(var F: TSearchRec) Func FINDFIRST :Bool TJvSpecialFolder = (sfRecycleBin, sfControlPanel, sfDesktop, sfDesktopDirectory, sfMyComputer, sfFonts, sfNetHood, sfNetwork, sfPersonal, sfPrinters, sfPrograms,sfRecent,sfSendTo,sfStartMenu, stStartUp, sfTemplates); FFolder: array [TJvSpecialFolder] of Int = (CSIDL_BITBUCKET, CSIDL_CONTROLS, CSIDL_DESKTOP, CSIDL_DESKTOPDIRECTORY, CSIDL_DRIVES, CSIDL_FONTS, CSIDL_NETHOOD, CSIDL_NETWORK, CSIDL_PERSONAL, CSIDL_PRINTERS, CSIDL_PROGRAMS, CSIDL_RECENT, CSIDL_SENDTO, CSIDL_STARTMENU, CSIDL_STARTUP, CSIDL_TEMPLATES); Func FindFilesDlg(StartIn:str;SpecialFolder:TJvSpecialFolder;UseFolder:Bool):Bool); Func Findfirst(const filepath:Str; attr: Int): Int; Func FindFirst2(const Path:Str; Attr: Int; var F: TSearchRec): Int) Func FindFirstNotOf( AFind, AText :Str) : Int Func FindFirstOf( AFind, AText :Str) : Int Func FindImmediateTransitionOn( cChar : char) : TniRegularExpressionState Func FINDINDEXFORFIELDS( const FIELDS :Str) : TINDEXDEF Func FindInstanceOf( AClass : TClass; AExact :Bool; AStartAt : Int) : Int Func FINDITEM( VALUE : Int; KIND : TFINDITEMKIND) : TMENUITEM Func FindItemId( Id : Int) : TCollectionItem Func FindKey( const KeyValues : array of const) :Bool Func FINDLAST:BOOLEAN Func FindLineControl( ComponentType, ControlType : DWORD) : TJclMixerLineControl Func FindModuleClass( AClass : TComponentClass) : TComponent Func FindModuleName( const AClass :Str) : TComponent Func FINDNEXT :Bool Func FindNext: Int; Func FindNext2(var F: TSearchRec): Int) Func FindNextPage( CurPage : TTabSheet; GoForward, CheckTabVisible :Bool):TTabSheet Func FindNextToSelect : TTreeNode Func FINDPARAM( const VALUE :Str) : TPARAM Func FindParam( const Value : WideString) : TParameter Func FINDPRIOR :Bool Func FindResource(ModuleHandle:HMODULE;ResourceName,ResourceType:PChar):TResourceHandle Func FindSession( const SessionName :Str) : TSession Func FindStringResource(Ident: Int):Str) Func FindText(const SearchStr:str;StartPos,Length:Int;Options:TSearchTypes):Int Func FindUnusedFileName( const FileName, FileExt, Suffix : Ansistr) : Ansistr Func FindVCLWindow(const Pos: TPoint): TWinControl; Func FindWindow(C1, C2: PChar): Longint; Func FindInPaths(const fileName,paths:Str):Str; Func Finger :Str Func First: TClass Func First: TComponent Func First: TObject Func FirstDelimiter( const delimiters :Str; const Str :Str) : Int; Func FirstDelimiter1(const delimiters:WideString; const Str : WideString) : Int; Func FirstInstance( const ATitle :Str) :Bool Func FloatPoint( const X, Y : Float) : TFloatPoint; Func FloatPoint1( const P : TPoint) : TFloatPoint; Func FloatPtInRect( const Rect : TFloatRect; const P : TFloatPoint) :Bool Func FloatRect( const ALeft, ATop, ARight, ABottom : Double) : TFloatRect; Func FloatRect1( const Rect : TRect) : TFloatRect; Func FloatsEqual( const X, Y : Float) :Bool Func FloatToBin(const D: Double):Str; //doubletohex -> hextobin! in buffer Func FloatToCurr( Value : Extended) : Currency Func FloatToDateTime( Value : Extended) : TDateTime Func FloatToStr( Value : Extended) :Str; Func FloatToStr(e : Extended) :Str; Func FloatToStrF(Value:Extended;Format:TFloatFormat;Precision,Digits:Int):str; Func FloatToStrF(Value:Extended;Format:TFloatFormat;Precision:Int;Digits:Int):Str) Func FloatToStr2( Value : Extended; Format : TFloatFormat; Precision, Digits : Int; FormatSettings : TFormatSettings):Str; Func FloatToStrFS(Value:Extended;Format:TFloatFormat;Precision,Digits:Int;FormatSettings:TFormatSettings):str; Func FloatToText(BufferArg:PChar;const Value:Extended;ValueType:TFloatValue;Format:TFloatFormat;Precision,Digits:Int):Int) Func Floor( const X : Extended) : Int Func FloorInt( Value : Int; StepSize : Int) : Int Func FloorJ( const X : Extended) : Int Func Flush( const Count :Card) :Bool Func Flush(var t: Text): Int Func FmtLoadStr(Ident: Int; const Args: array of const):Str) Func FOCUSED:BOOLEAN Func ForceBackslash( const PathName :Str) :Str Func ForceDirectories( const Dir :Str) :Bool Func ForceDirectories( Dir :Str) :Bool Func ForceDirectories( Name :Str) :Bool Func ForceInBox( const Point : TPoint; const Box : TRect) : TPoint Func ForceInRange( A, Min, Max : Int) : Int Func ForceInRangeR( const A, Min, Max : Double) : Double Func ForEach( AProc : TBucketProc; AInfo : Pointer) :Bool; Func ForEach1( AEvent : TBucketEvent) :Bool; Func ForegroundTask:Bool Func Format(const Format:Str; const Args: array of const):Str; Func FormatBcd( const Format :Str; Bcd : TBcd) :Str Func FormatBigInt(s:Str):Str; Func FormatByteSize(const bytes: int64):Str; Func FormatBuf(var Buffer:PChar;BufLen:Card;const Format:str;FmtLen:Card;const Args:array of const):Card Func FormatCount(iCount:Int;const sSingular:str;const sPlural:str):str Func FormatCurr( Format :Str; Value : Currency) :Str; Func FormatCurr(const Format:Str; Value: Currency):Str) Func FormatDateTime( Format :Str; DateTime : TDateTime) :Str; Func FormatDateTime(const fmt:Str; D: TDateTime):Str; Func FormatDateTime2(const Formatting:str;DateTime:TDateTime;const FormatSettings: TFormatSettings):str; Func FormatFloat( Format :Str; Value : Extended) :Str; Func FormatFloat(const Format:Str; Value: Extended):Str) Func FormatFloat( Format :Str; Value : Extended) :Str; Func FormatFloat2(Format:str;Value:Extended;FormatSettings:TFormatSettings):str; Func FormatF('%.2f - %.12f ',[notes[it],(ln(notes[it+1]/notes[it])*1200)/ln(2)]); //with println - writeln Func FormatCurr( Format :Str; Value : Currency) :Str; Func FormatCurr2(Format:str;Value:Currency;FormatSettings:TFormatSettings):str; Func Format2(const Frmat:str;const Args:array of const;const FSettings:TFormatSettings):str Func FormatInt(i: Int):Str; Func FormatInt64(i: int64):Str; Func FormatMaskText( const EditMask :Str; const Value :Str) :Str Func FormatValue( AValue :Card) :Str Func FormatVersionString( const HiV, LoV : Word) :Str; Func FormatVersionString1( const Major, Minor, Build, Revision : Word) :Str; Func Frac(X: Extended): Extended); Func FreeResource( ResData : HGLOBAL) : LongBool Func FromCommon( const AValue : Double) : Double Func FromCommon(const AValue: Double): Double; Func FTPGMTDateTimeToMLS( const ATimeStamp:TDateTime; const AIncludeMSecs:Boolean):str Func FTPLocalDateTimeToMLS(const ATimeStamp:TDateTime;const AIncludeMSecs:Boolean):str Func FTPMLSToGMTDateTime( const ATimeStamp :Str) : TDateTime Func FTPMLSToLocalDateTime( const ATimeStamp :Str) : TDateTime Func FuncIn(AValue: Variant; ASet: Variant):Bool; //Func Funclist Size is: 6444 of mX3.9.8.9 Func FutureValue(const Rate:Extended;NPeriods:Int;const Payment,PresentValue:Extended;PaymentTime:TPaymentTime):Extended Func FullTimeToStr(SUMTime: TDateTime):Str;; Func Gauss( const x, Spread : Double) : Double Func Gauss(const x,Spread: Double): Double; Func GCD(x, y : LongInt) : LongInt; Func GCDJ( X, Y :Card) :Card Func GDAL: LongWord Func GdiFlush : BOOL Func GdiSetBatchLimit( Limit : DWORD) : DWORD Func GdiGetBatchLimit : DWORD Func GenerateHeader : TIdHeaderList Func GeometricMean( const X : TDynFloatArray) : Float Func Get( AURL :Str) :Str; Func Get2( AURL :Str) :Str; Func Get8087CW : Word Func GetActiveOleObject(const ClassName:Str): IDispatch; Func GetAliasDriverName( const AliasName :Str) :Str Func GetAPMBatteryFlag : TAPMBatteryFlag Func GetAPMBatteryFullLifeTime : DWORD Func GetAPMBatteryLifePercent : Int Func GetAPMBatteryLifeTime : DWORD Func GetAPMLineStatus : TAPMLineStatus Func GetAppdataFolder :Str Func GetAppDispatcher : TComponent Func GetArrayLength: Int; Func GetASCII:Str; Func GetASCIILine:Str; Func GetAsHandle( Format : Word) : THandle Func GetAssociatedProgram(const Extension:str;var Filename,Description:str):bool; Func GetBackupFileName( const FileName :Str) :Str Func GetBaseAddress(PID:DWORD):DWORD; //Process API Func GetBBitmap( Value : TBitmap) : TBitmap Func GetBIOSCopyright :Str Func GetBIOSDate : TDateTime Func GetBIOSExtendedInfo :Str Func GetBIOSName :Str Func getBitmap(apath:Str): TBitmap; Func GetBitmap( Index : Int; Image : TBitmap) :Bool //object Func getBitMapObject(const bitmappath:Str): TBitmap; Func GetButtonState( Button : TPageScrollerButton) : TPageScrollerButtonState Func GetCapsLockKeyState :Bool Func GetCaptureControl: TControl; Func GetCDAudioTrackList(var TrackList:TJclCdTrackInfoArray;Drive:Char):TJclCdTrackInfo; Func GetCDAudioTrackList1(TrackList:TStrings;IncludeTrackType:Boolean;Drive:Char):str; Func GetCdInfo( InfoType : TJclCdMediaInfo; Drive : Char) :Str Func GetChangedText( const Text:str; SelStart, SelLength : Int; Key : Char):str Func GetClientThread( ClientSocket : TServerClientWinSocket) : TServerClientThread Func GetClockValue : Int64 Func getCmdLine: PChar; Func getCmdShow: Int; Func GetCPUSpeed: Double; Func GetColField( DataCol : Int) : TField Func GetColorBlue( const Color : TColor) : Byte Func GetColorFlag( const Color : TColor) : Byte Func GetColorGreen( const Color : TColor) : Byte Func GetColorRed( const Color : TColor) : Byte Func GetComCtlVersion : Int Func GetComPorts: TStringlist; Func GetCommonAppdataFolder :Str Func GetCommonDesktopdirectoryFolder:Str Func GetCommonFavoritesFolder :Str Func GetCommonFilesFolder :Str Func GetCommonProgramsFolder :Str Func GetCommonStartmenuFolder :Str Func GetCommonStartupFolder :Str Func GetComponent( Owner, Parent : TComponent) : TComponent Func GetConnectionRegistryFile( DesignMode :Bool):Str Func GetCookiesFolder :Str Func GetCPUSpeed( var CpuSpeed : TFreqInfo) :Bool Func GetCurrent:TFavoriteLinkItem Func GetCurrent:TListItem Func GetCurrent:TTaskDialogBaseButtonItem Func GetCurrent:TToolButton Func GetCurrent:TTreeNode Func GetCurrent:WideString Func GetCurrentDir :Str Func GetCurrentDir:Str) Func GetCurrentFolder :Str Func GETCURRENTRECORD( BUFFER : PCHAR) :Bool Func GetCurrentProcessId : TIdPID Func GetCurrentThreadHandle : THandle Func GetCurrentThreadID: LongWord; stdcall; Func GetCustomHeader( const Name :Str) :Str Func GetDataItem( Value : Pointer) : Longint Func GetDataLinkFiles(FileNames:TWideStrings; Directory string): Int; Func GetDataLinkFiles1( FileNames : TStrings; Directory:Str):Int; Func GETDATASIZE : Int Func GetDC(hdwnd: HWND): HDC; Func GetDefaultFileExt( const MIMEType :Str) :Str Func GetDefaults :Bool Func GetDefaultSchemaName : WideString Func GetDefaultStreamLoader : IStreamLoader Func GetDesktopDirectoryFolder :Str Func GetDesktopFolder :Str Func GetDFAState( oStates : TList) : TniRegularExpressionState Func GetDirectorySize( const Path :Str) : Int64 Func GetDisplayWidth : Int Func GetDLLVersion(const DLLName:str;var pdwMajor, pdwMinor:Int):Boolean Func GetDomainName :Str Func GetDriverRegistryFile( DesignMode :Bool) :Str Func GetDriveType(rootpath: pchar):Card; Func GetDriveTypeStr( const Drive : Char) :Str Func GetEnumerator : TFavoriteLinkItemsEnumerator Func GetEnumerator : TListItemsEnumerator Func GetEnumerator : TTaskDialogButtonsEnumerator Func GetEnumerator : TToolBarEnumerator Func GetEnumerator : TTreeNodesEnumerator Func GetEnumerator : TWideStringsEnumerator Func GetEnvVar( const VarName :Str) :Str Func GetEnvironmentVar( const AVariableName :Str) :Str Func GetEnvironmentVariable( const VarName :Str) :Str Func GetEnvironmentVar(const Name string; var Value:str;Expand:Boolean):Bool Func GetEnvironmentVars( const Vars : TStrings; Expand :Bool):Boolean Func getEnvironmentString:Str; Func GetExceptionHandler : TObject Func GetFavoritesFolder :Str Func GetFieldByName( const Name :Str) :Str Func GetFieldInfo(const Origin: Widestring;var FieldInfo TFieldInfo):Boolean Func GetFieldValue( ACol : Int) :Str Func GetFileAgeCoherence( const FileName :Str) :Bool Func GetFileCreation( const FileName :Str) : TFileTime Func GetFileCreationTime( const Filename :Str) : TDateTime Func GetFileInformation( const FileName :Str) : TSearchRec Func GetFileLastAccess( const FileName :Str) : TFileTime Func GetFileLastWrite( const FileName :Str) : TFileTime Func GetFileList(FileList: TStringlist; apath:Str): TStringlist; Func GetFileList1(apath:Str): TStringlist; Func GetFileMIMEType( const AFileName :Str) :Str Func GetFileSize( const FileName :Str) : Int64 Func GetFileVersion( AFileName :Str) :Card Func GetFileVersion( const AFilename :Str) :Card Func GetFileSize2(Handle: Int; x: Int): Int; stdcall; Func GetFileDate(aFile:str; aWithTime:Boolean):str; Func GetFileCount(adirmask:Str): Int; //files count in directory! Func GetFilterData( Root : PExprNode) : TExprData Func getFirstChild : LongInt Func getFirstChild : TTreeNode Func GetFirstDelimitedToken( const cDelim:char;const cStr:Str):str Func GetFirstNode : TTreeNode Func GetFontsFolder :Str Func GetFormulaValue( const Formula :Str) : Extended Func GetFreePageFileMemory : Int Func GetFreePhysicalMemory : Int Func GetFreeSystemResources( const ResourceType : TFreeSysResKind): Int; Func GetFreeSystemResources1 : TFreeSystemResources; Func GetFreeVirtualMemory : Int Func GetFromClipboard :Bool Func GetFullURI( const AOptionalFileds : TIdURIOptionalFieldsSet):Str Func GetGBitmap( Value : TBitmap) : TBitmap Func GetGMTDateByName( const AFileName : TIdFileName) : TDateTime Func GetGroupState( Level : Int) : TGroupPosInds Func GetHandle : HWND Func GETHELPCONTEXT( VALUE : Int; BYCOMMAND :Bool) : THELPCONTEXT Func GetHexArray(ahexdig: THexArray): THexArray; Func GetHighLightColor( const Color : TColor; Luminance : Int):TColor Func GetHINSTANCE: longword; Func GetHistoryFolder :Str Func GetHitTestInfoAt( X, Y : Int) : THitTests Func getHMODULE: longword; Func GetHostByName(const AComputerName:Str):str; Func GetHostName :Str Func getHostIP:Str; Func GetHotSpot : TPoint Func GetHueBitmap( Value : TBitmap) : TBitmap Func GetImageBitmap : HBITMAP Func GETIMAGELIST : TCUSTOMIMAGELIST Func GetIncome( const aNetto : Currency): Currency Func GetIncome( const aNetto : Extended): Extended Func GetIncome( const aNetto : Extended): Extended Func GetIncome(const aNetto : Extended) : Extended Func GetIncome(const aNetto: Currency): Currency Func GetIncome2( const aNetto : Currency) : Currency Func GetIncome2( const aNetto : Currency): Currency Func getIndex_Attrs( tag :Str; var idx : Int; var Attrs :Str) :Str Func GETINDEXFORFIELDS( const FIELDS :Str; CASEINSENSITIVE :Bool) : TINDEXDEF Func GetIndexForOrderBy( const SQL : WideString; DataSet : TDataSet): TIndexDef Func GetInstRes(Instance:THandle;ResType:TResType;const Name:str;Width:Int;LoadFlags:TLoadResources;MaskColor:TColor):Bool; Func GetInstRes1(Instance:THandle;ResType:TResType;ResID:DWORD;Width:Int;LoadFlags:TLoadResources;MaskColor:TColor):Bool; Func GetIntelCacheDescription( const D : Byte):Str Func GetInteractiveUserName :Str Func GetInternetCacheFolder :Str Func GetInternetFormattedFileTimeStamp( const AFilename :Str) :Str Func GetIPAddress( const HostName :Str) :Str Func GetIP( const HostName :Str) :Str Func GetIPHostByName(const AComputerName:Str):Str; Func GetIsAdmin:Bool; Func GetItem( X, Y : Int) : LongInt Func GetItemAt( X, Y : Int) : TListItem Func GetItemHeight(Font: TFont): Int; Func GetItemPath( Index : Int) :Str Func GetKeyFieldNames( List : TStrings) : Int; Func GetKeyFieldNames1( List : TWideStrings) : Int; Func GetKeyState( const VirtualKey :Card) :Bool Func GetLastChild : LongInt Func GetLastChild : TTreeNode Func GetLastDelimitedToken(const cDelim:char;const cStr:str):Str Func GetLastError: Int Func GetLAT_CONV_FACTOR: double; //for WGS84 power(1 - 1 / 298.257223563, 2); Func GetLinesCount(sFileName :Str): Int; Func GetLoader( Ext :Str) : TBitmapLoader Func GetLoadFilter :Str Func GetLocalComputerName :Str Func GetLocaleChar( Locale, LocaleType : Int; Default : Char) : Char Func GetLocaleStr( Locale, LocaleType : Int; Default :Str) :Str Func GetLocalUserName :Str Func GetLoginUsername : WideString Func getLongDayNames:Str) Func GetLongHint(const hint:Str):Str Func getLongMonthNames:Str) Func GetMacAddresses( const Machine :Str; const Addresses : TStrings) : Int Func GetMainAppWndFromPid( PID : DWORD) : HWND Func GetMapX(C_form,apath:Str; const Data:Str):Bool; //c_form: [html/json/xml] //if GetMAPX('html',ExePath+'cologne2mapX.html','cathedral cologne then Proc GetGEOMap(C_form,apath:Str; const Data:Str); Func GetMapXGeoReverse(C_form:Str; const lat,long:Str):Str; //if GetMapXGeoReverse('XML',topPath,'47.0397826','7.62914761277888 then Func GetGeoCode(C_form,apath:Str; const data:Str; sfile:bool):Str; Func GetMaskBitmap : HBITMAP Func GetMaxAppAddress : Int Func GetMciErrorMessage( const MciErrNo : MCIERROR) :Str Func GetMemoryLoad : Byte Func GetMIMEDefaultFileExt( const MIMEType :Str) : TIdFileName Func GetMIMETypeFromFile( const AFile :Str) :Str Func GetMIMETypeFromFile( const AFile : TIdFileName) :Str Func GetMinAppAddress : Int Func GetModule : TComponent Func GetModuleHandle( ModuleName : PChar) : HMODULE Func GetModuleName( Module : HMODULE) :Str Func GetModulePath( const Module : HMODULE) :Str Func GetModuleFileName(Module: Int; Filename: PChar;Size: Int): Int; stdcall; Func GetMorseID(InChar : Char): Word;; Func GetMorseString2(InChar : Char):Str;; Func GetMorseLine(dots:Bool):Str;; //whole table! {1 or dots} Func GetMorseTable(dots:Bool):Str;; //whole table! Func GetMorseSign(InChar : Char):Str;; Func GetCommandLine: PChar; stdcall; Func GetMonochromeBitmap( Value : TBitmap) : TBitmap Func GetMultiN(aval: Int):Str; Func GetName :Str Func GetNearestItem( Point : TPoint; Direction : TSearchDirection) : TListItem Func GetNethoodFolder :Str Func GetNext : TTreeNode Func GetNextChild( Value : LongInt) : LongInt Func GetNextChild( Value : TTreeNode) : TTreeNode Func GetNextDelimitedToken( const cDelim : char; var cStr :Str) :Str Func GetNextItem(StartItem:TListItem;Direction:TSearchDirection;States:TItemStates):TListItem Func GetNextPacket : Int Func getNextSibling : TTreeNode Func GetNextVisible : TTreeNode Func GetNode( ItemId : HTreeItem) : TTreeNode Func GetNodeAt( X, Y : Int) : TTreeNode Func GetNodeDisplayWidth( Node : TOutlineNode) : Int Func GetNumberOfProcessors: longint; Func GetNumLockKeyState :Bool Func GetObjectProperty( Instance : TPersistent; const PropName :Str) : TObject Func GetOnlyTransitionOn( cChar : char) : TniRegularExpressionState Func GetOptionalParam( const ParamName :Str) : OleVariant Func GetOSName:Str; Func GetOSVersion:Str; Func GetOSNumber:Str; Func GetOsVersionInfo: TOSVersionInfo; //thx to wischnewski Func GetPackageModuleHandle( PackageName : PChar) : HMODULE Func GetPageSize:Card; Func GetParameterFileName :Str Func GetParams( var OwnerData : OleVariant) : OleVariant Func GETPARENTCOMPONENT : TCOMPONENT Func GetParentForm(control: TControl): TForm Func GETPARENTMENU : TMENU Func GetPassword:Bool Func GetPassword:Str Func GetPersonalFolder :Str Func GetPidFromProcessName( const ProcessName :Str) : DWORD Func getPI: extended; //of const PI math Func GetPixel(dc:HDC; PixelCoords.X: TPoint, PixelCoords.Y: TPoint); Func GetPosition : TPoint Func GetPrev : TTreeNode Func GetPrevChild( Value : LongInt) : LongInt Func GetPrevChild( Value : TTreeNode) : TTreeNode Func getPrevSibling : TTreeNode Func GetPrevVisible : TTreeNode Func GetPrinthoodFolder :Str Func GetPrivilegeDisplayName( const PrivilegeName:Str):Str Func getProcessList: TStrings; Func GetProcessId : TIdPID Func GetProcessNameFromPid( PID : DWORD) :Str Func GetProcessNameFromWnd( Wnd : HWND) :Str Func GetProcessMemoryInfo(Process:THandle;ppsmemCounters:TProcessMemoryCounters;cb:DWORD):BOOL Func getProcessAllMemory(ProcessID : DWORD): TProcessMemoryCounters; Func getProcessMemoryInfo2(ProcessID : DWORD): TProcessMemoryCounters; Func GetProgramFilesFolder :Str Func GetProgramsFolder :Str Func GetProxy :Str Func GetQuoteChar : WideString Func GetQrCode4(Width,Height:Word; Correct_Level:str;const Data:str;aformat:str):TLinearBitmap; Func GetQrCodetoFile(Width,Height:Word;Correct_Level:str;const Data:str;aformat:str):TLinearBitmap; Func GetRate : Double Func getPerfTime:Str; Func getRuntime:Str; Func GetRBitmap( Value : TBitmap) : TBitmap Func GetReadableName( const AName :Str) :Str Func GetRecentDocs : TStringList Func GetRecentFolder :Str Func GetRecords( Count : Int; out RecsOut : Int; Options : Int) : OleVariant; Func GetRecords1(Count:Int;out RecsOut:Int;Options:Int;const CommandText:WideString;var Params,OwnerData:OleVariant):OleVariant; Func GetRecordset(const CommandText: WideString;ConnectionString:WideString):_Recordset Func GetRegisteredCompany :Str Func GetRegisteredOwner :Str Func GetResource(ResType:TResType;const Name:str;Width:Int;LoadFlags:TLoadResources;MaskColor:TColor:Bool Func GetResourceName( ObjStream : TStream; var AName :Str) :Bool Func GetResponse( const AAllowedResponses : array of SmallInt) : SmallInt; Func GetResponse1( const AAllowedResponse : SmallInt) : SmallInt; Func GetRValue(rgb: DWORD): Byte Func GetGValue(rgb: DWORD): Byte Func GetBValue(rgb: DWORD): Byte Func GetCValue(cmyk: COLORREF): Byte Func GetMValue(cmyk: COLORREF): Byte Func GetYValue(cmyk: COLORREF): Byte Func GetKValue(cmyk: COLORREF): Byte Func CMYK( c, m, y, k : Byte) : COLORREF Proc GetScreenShot(var ABitmap : TBitmap); Func GetOSName:Str; Func GetProcAddress( hModule : HMODULE; lpProcName : LPCSTR):FARPROC Func GetProcAddress(Module : HMODULE; Proc : PChar): Dword Func GetSafeCallExceptionMsg :Str Func GetSaturationBitmap( Value : TBitmap) : TBitmap Func GetSaveFilter :Str Func GetSaver( Ext :Str) : TBitmapLoader Func GetScrollLockKeyState :Bool Func GetSearchString :Str Func GetSelections( AList : TList) : TTreeNode Func GETSELTEXTBUF(BUFFER:PCHAR;BUFSIZE:Int):Int Func GetSendToFolder :Str Func GetServer : IAppServer Func GetServerList : OleVariant Func GetShadowColor( const Color : TColor; Luminance:Int): TColor Func GetShellProcessHandle : THandle Func GetShellProcessName :Str Func GetShellVersion :Card Func getShortDayNames:Str) Func GetShortHint(const hint:Str):Str Func getShortMonthNames:Str) Func GetSizeOfFile( const FileName :Str) : Int64; Func GetSizeOfFile1( Handle : THandle) : Int64; Func GetStdHandle(nStdHandle: Int): Int; stdcall; Func GetStartmenuFolder :Str Func GetStartupFolder :Str Func GetStringProperty( Instance: TPersistent; const PropName:str):WideString Func GetSuccessor( cChar : char): TniRegularExpressionState Func GetSwapFileSize : Int Func GetSwapFileUsage : Int Func GetSystemLocale : TIdCharSet Func GetSystemMetrics( nIndex : Int) : Int Func GetSystemPathSH(Folder: Int): TFilename ; Func GetTableNameFromQuery( const SQL : Widestring) : Widestring Func GetTableNameFromSQL( const SQL : WideString) : WideString Func GetTableNameFromSQLEx(const SQL:WideString; IdOption:IDENTIFIEROption):WideString Func GetTasksList( const List : TStrings) :Bool Func getTeamViewerID:Str; Func GetTemplatesFolder :Str Func GetText : PwideChar Func GetText:PChar Func GetTextBuf( Buffer : PChar; BufSize : Int) : Int Func GETTEXTBUF(BUFFER:PCHAR;BUFSIZE:Int):Int Func GetTextItem( const Value :Str) : Longint Func GETTEXTLEN:Int Func GetThreadLocale: Longint; stdcall Func GetCurrentThreadID: LongWord; stdcall; Func GetTickCount :Card Func GetTickDiff( const AOldTickCount, ANewTickCount :Card) :Card Func GetTicketNr : longint Func GetTime :Card Func GetTime : TDateTime Func GetTimeout : Int Func GetTimeStr:Str Func GetTimeString:Str Func GetTimeZoneInformation(var lpTimeZoneInformation: TTimeZoneInformation):DWORD Ex: if GetTimeZoneInformation(tzi) >0 then writeln(itoa(tzi.bias)); Func GetTodayFiles(startdir, amask:Str): TStringlist; Func getTokenCounts : Int Func GetTotalPageFileMemory : Int Func GetTotalPhysicalMemory : Int Func GetTotalVirtualMemory : Int Func GetUniqueFileName( const APath, APrefix, AExt :Str) :Str Func GetUseNowForDate :Bool Func GetUserDomainName( const CurUser :Str) :Str Func GetUserName :Str Func GetUserName:Str; Func GetUserNameAPI( lpBuffer : PChar; var nSize : DWORD):BOOL; Func GetUserObjectName( hUserObject : THandle) :Str Func GetValueBitmap( Value : TBitmap) : TBitmap Func GetValueMSec :Card Func GetValueStr :Str Func GetVersion: int; Func GetVersionString(FileName:Str):Str; Func getVideoDrivers:Str; Func GetVisibleNode( Index : LongInt) : TOutlineNode Func GetVolumeFileSystem( const Drive :Str) :Str Func GetVolumeName( const Drive :Str) :Str Func GetVolumeSerialNumber( const Drive :Str) :Str Func GetWebAppServices : IWebAppServices Func GetWebRequestHandler : IWebRequestHandler Func GetWindowCaption( Wnd : HWND) :Str Func GetWindowDC(hdwnd: HWND): HDC; Func GetWindowIcon( Wnd : HWND; LargeIcon :Bool) : HICON Func GetWindowRect(hwnd: HWND; arect: TRect):Bool Func GetWindowsComputerID :Str Func GetWindowsDirectory(lpBuffer: PChar; uSize: longword):longword; Func GetWindowsFolder :Str Func GetWindowsServicePackVersion : Int Func GetWindowsServicePackVersionString :Str Func GetWindowsSystemFolder :Str Func GetWindowsTempFolder :Str Func GetWindowsUserID :Str Func GetWindowsVersion : TWindowsVersion Func GetWindowsVersionString :Str Func GmtOffsetStrToDateTime( S :Str) : TDateTime Func GMTToLocalDateTime( S :Str) : TDateTime Func GotoKey :Bool Func GradToCycle( const Grads : Extended) : Extended Func GradToDeg( const Grads : Extended) : Extended Func GradToDeg( const Value : Extended) : Extended; Func GradToDeg1( const Value : Double) : Double; Func GradToDeg2( const Value : Single) : Single; Func GradToRad( const Grads : Extended) : Extended Func GradToRad( const Value : Extended) : Extended; Func GradToRad1( const Value : Double) : Double; Func GradToRad2( const Value : Single) : Single; Func Gray32( const Intensity : Byte; const Alpha : Byte) : TColor32 Func GreenComponent( const Color32 : TColor32) : Int Func GUIDToString(const GUID: TGUID):Str) Func HandleAllocated :Bool Func HandleAllocated:Bool; Func HandleRequest :Bool Func HandleRequest( Request : TWebRequest; Response : TWebResponse:Boolean Func HarmonicMean( const X : TDynFloatArray) : Float Func HasAsParent( Value : TTreeNode) :Bool Func HASCHILDDEFS :Bool Func HasCurValues :Bool Func HasExtendCharacter( const s : UTF8String) :Bool Func HasFormat( Format : Word) :Bool Func HashValue( AStream : TStream) : T5x4LongWordRecord; Func HashValue(AStream : TStream) : T4x4LongWordRecord Func HashValue(AStream: TStream): LongWord Func HashValue(AStream: TStream): Word Func HashValue1(AStream TStream; const ABeginPos,AEndPos:Int64):T5x4LongWordRecord; Func HashValue1(AStream : TStream): T4x4LongWordRecord Func HashValue128(const ASrc:Str): T4x4LongWordRecord; Func HashValue128Stream(AStream: TStream): T4x4LongWordRecord; Func HashValue16( const ASrc :Str) : Word; Func HashValue16stream( AStream : TStream) : Word; Func HashValue32( const ASrc :Str) : LongWord; Func HashValue32Stream( AStream : TStream) : LongWord; Func HasMergeConflicts :Bool Func hasMoreTokens :Bool Func HASPARENT :Bool Func HasParent:Bool Func HasTransaction( Transaction : TDBXTransaction) :Bool Func HasUTF8BOM( S : TStream) :Bool; Func HasUTF8BOM1( S : Ansistr) :Bool; Func Haversine( X : Float) : Float Func Head( s :Str; const subs :Str; var tail :Str):str Func HELPCOMMAND(COMMAND:Int;DATA:LONGINT):BOOLEAN Func HELPCONTEXT(CONTEXT:THELPCONTEXT):BOOLEAN Func HELPJUMP(JUMPID:str):BOOLEAN Func HeronianMean( const a, b : Float) : Float Func HexStrToStr(Value:Str):Str; Func HexToBin(Text,Buffer:PChar; BufSize:Int):Int; Func HexToBin2(HexNum:Str):Str; Func HexToDouble( const Hex :Str) : Double Func HexToInt(hexnum:Str): LongInt; Func HexToStr(Value:Str):Str; Func HexifyBlock( var Buffer, BufferSize : Int) :Str Func Hi(vdat: word): byte; Func HiByte(W: Word): Byte) Func High: Int64; Func HighlightCell(DataCol,DataRow:Int;const Value:str;AState:TGridDrawState):Bool Func HINSTANCE: longword; Func HiWord(l: DWORD): Word) Func HMODULE: longword; Func HourOf( const AValue : TDateTime) : Word Func HourOfTheDay( const AValue : TDateTime) : Word Func HourOfTheMonth( const AValue : TDateTime) : Word Func HourOfTheWeek( const AValue : TDateTime) : Word Func HourOfTheYear( const AValue : TDateTime) : Word Func HoursBetween( const ANow, AThen : TDateTime) : Int64 Func HourSpan( const ANow, AThen : TDateTime) : Double Func HSLToRGB1( const H, S, L : Single) : TColor32; Func HTMLDecode( const AStr :Str) :Str Func HTMLEncode( const AStr :Str) :Str Func HTMLEscape( const Str :Str) :Str Func HtmlTable(DataSet:TDataSet;DataSetHandler:TDSTableProducer;MaxRows:Int):str Func HTTPDecode( const AStr :Str) :Str Func HTTPEncode( const AStr :Str) :Str Func Hypot( const X, Y : Extended) : Extended Func IBMax( n1, n2 : Int) : Int Func IBMin( n1, n2 : Int) : Int Func IBRandomString( iLength : Int) :Str Func IBRandomInt( iLow, iHigh : Int) : Int Func IBStripString( st :Str; CharsToStrip :Str) :Str Func IBFormatIdentifier( Dialect : Int; Value :Str) :Str Func IBFormatIdentifierValue( Dialect : Int; Value :Str) :Str Func IBExtractIdentifier( Dialect : Int; Value :Str) :Str Func IBQuoteIdentifier( Dialect : Int; Value :Str) :Str Func IBAddIBParamSQLForDetail(Params:TParams;SQL:str;Native:Boolean;Dialect:Int):str Proc IBDecomposeDatabaseName(DatabaseName:Str;var ServerName,Protocol,DatabasePath:str) Func RandomString( iLength : Int) :Str; Func RandomInt( iLow, iHigh : Int) : Int; Func StripString( st :Str; CharsToStrip :Str) :Str; Func Strip(const SubString:Str; MainString:Str):Str; Func StripTags(const S:Str):Str; //<''> of HTML Func SizeToString(size : Int64; const unitStr :Str) :Str; Func NumbertoString(No: Word):Str; Func FormatIdentifier( Dialect : Int; Value :Str) :Str; Func FormatIdentifierValue( Dialect : Int; Value :Str) :Str; Func ExtractIdentifier( Dialect : Int; Value :Str) :Str; Func QuoteIdentifier( Dialect : Int; Value :Str) :Str; Func AddIBParamSQLForDetail(Params:TParams;SQL:str;Native:Boolean;Dialect:Int):str; Proc DecomposeDatabaseName(DatabaseName:str;var ServerName,Protocol,DatabasePath:str; Func NextSQLToken(var p: PChar; var Token:Str; CurSection: TSQLToken): TSQLToken; Func IconToBitmap( Ico : HICON) : TBitmap Func IconToBitmap2( Ico : HICON; Size : Int; TransparentColor : TColor) : TBitmap Func IconToBitmap3( Ico : HICON; Size : Int; TransparentColor : TColor) : TBitmap Func IdentToCharset(const Ident:Str; var Charset: Longint):Bool) Func IdentToColor(const Ident:Str; var Color: Longint):Bool) Func IdentToCursor(const Ident:Str; var cursor: Longint):Bool; Func IdGetDefaultCharSet : TIdCharSet Func IDispatchInvoke(Self:IDispatch;ProperSet:Bool;const Name:Str;Par:array of variant):variant Func IdPorts2 : TStringList Func IdToMib( const Id :Str) :Str Func IdSHA1Hash(apath:Str):Str; Func IdHashSHA1(apath:Str):Str; Func IfStr(const bCondition:boolean;const sTrue:str;const sFalse:str):Str Func IfThen( AValue :Bool; const ATrue :Str; AFalse :Str) :Str; Func IfThenInt( AValue :Bool; const ATrue : Int; AFalse : Int): Int;; Func IfThenDouble( AValue :Bool; const ATrue : double; AFalse : double): double;; Func IfThenBool( AValue :Bool; const ATrue :Bool; AFalse :Bool):Bool;; Func iif1( ATest :Bool; const ATrue : Int; const AFalse : Int) : Int; Func iif2( ATest :Bool; const ATrue :Str; const AFalse :Str) :Str; Func iif3( ATest:Boolean; const ATrue:Bool;const AFalse:Bool):Bool; Func ImportTest(S1:Str;s2:longint; s3:Byte; s4:word; var s5:str):Str; Func IncDay( const AValue : TDateTime; const ANumberOfDays : Int) : TDateTime Func IncHour( const AValue : TDateTime; const ANumberOfHours : Int64) : TDateTime Func IncLimit( var B : Byte; const Limit : Byte; const Incr : Byte) : Byte; Func IncLimit1(var B:Shortint;const Limit:Shortint;const Incr:Shortint):Shortint; Func IncLimit2(var B:Smallint;const Limit:Smallint;const Incr:Smallint):Smallint; Func IncLimit3( var B : Word; const Limit : Word; const Incr : Word) : Word; Func IncLimit4( var B : Int; const Limit : Int; const Incr : Int) : Int; Func IncLimit5(var B:Card;const Limit:Card;const Incr:Card):Card; Func IncLimit6( var B : Int64; const Limit : Int64; const Incr : Int64) : Int64; Func IncLimitClamp( var B : Byte; const Limit : Byte; const Incr : Byte) : Byte; Func IncLimitClamp1(var B: Shortint;const Limit:Shortint;const Incr: Shortint): Shortint; Func IncLimitClamp2(var B:Smallint;const Limit:Smallint;const Incr: Smallint): Smallint; Func IncLimitClamp3( var B : Word; const Limit : Word; const Incr : Word) : Word; Func IncLimitClamp4( var B : Int; const Limit : Int; const Incr : Int) : Int; Func IncLimitClamp5(var B:Card;const Limit:Card; const Incr:Card):Card; Func IncLimitClamp6(var B: Int64;const Limit:Int64; const Incr:Int64):Int64; Func IncludeTrailingBackslash( S :Str) :Str Func IncludeTrailingBackslash(const S:Str):Str) Func IncludeTrailingPathDelimiter( const APath :Str) :Str Func IncludeTrailingPathDelimiter( S :Str) :Str Func IncludeTrailingPathDelimiter(const S:Str):Str) Func IncludeTrailingSlash( const APath :Str) :Str Func IncMilliSecond(const AValue:TDateTime;const ANumberOfMilliSeconds:Int64):TDateTime Func IncMinute(const AValue:TDateTime;const ANumberOfMinutes:Int64):TDateTime Func IncMonth( DateTime : TDateTime; NumberOfMonths : Int) : TDateTime Func IncMonth(const DateTime: TDateTime; NumberOfMonths: Int): TDateTime) Func IncSecond(const AValue:TDateTime;const ANumberOfSeconds: nt64) : TDateTime Func IncWeek(const AValue : TDateTime; const ANumberOfWeeks : Int) : TDateTime Func IncYear(const AValue : TDateTime; const ANumberOfYears : Int) : TDateTime Func IndexOf(AClass : TClass) : Int Func IndexOf(AComponent : TComponent) : Int Func IndexOf(AObject : TObject) : Int Func INDEXOF(const ANAME :Str) : Int Func IndexOf(const DisplayName :Str) : Int Func IndexOf(const Item : TBookmarkStr) : Int Func IndexOf(const S : WideString) : Int Func IndexOf(const View : TJclFileMappingView) : Int Func INDEXOF(FIELD : TFIELD) : Int Func IndexOf(ID : LCID) : Int Func INDEXOF(ITEM : TMENUITEM) : Int Func IndexOf(Value : TListItem) : Int Func IndexOf(Value : TTreeNode) : Int Func IndexOf(const S:Str): Int; Func IndexOfName( const Name : WideString) : Int Func IndexOfName(Name:Str): Int; Func IndexOfObject( AObject : TObject) : Int Func IndexofObject(AObject:tObject):Int Func IndexOfTabAt( X, Y : Int) : Int Func IndexStr( const AText :Str; const AValues : array of string) : Int Func IndexText( const AText :Str; const AValues : array of string): Int Func IndexOfInt( AList : TStringList; Value : Variant) : Int Func IndexOfFloat( AList : TStringList; Value : Variant) : Int Func IndexOfDate( AList : TStringList; Value : Variant) : Int Func IndexOfString( AList : TStringList; Value : Variant) : Int Func IndyCompareStr( const A1 :Str; const A2 :Str) : Int Func IndyGetHostName :Str Func IndyInterlockedDecrement( var I : Int) : Int Func IndyInterlockedExchange( var A : Int; B : Int) : Int Func IndyInterlockedExchangeAdd( var A : Int; B : Int) : Int Func IndyInterlockedIncrement( var I : Int) : Int Func IndyLowerCase( const A1 :Str) :Str Func IndyStrToBool( const AString :Str) :Bool Func IndyUpperCase( const A1 :Str) :Str Func InitCommonControl( CC : Int) :Bool Func InitTempPath :Str Func InMainThread :Bool Func inOpArray(W : WideChar; sets:array of WideChar):Bool Func Input: Text) Func InputBox( const ACaption, APrompt, ADefault :Str) :Str Func InputBox(const ACaption:str;const APrompt:str;const ADefault:str):str) Func InputLn(const AMask:str;AEcho:Boolean;ATabWidth:Int;AMaxLineLength:Int):str Func InputQuery( const ACaption, APrompt :Str; var Value :Str) :Bool Func InputQuery(const ACaption:str; const APrompt:str; var Value:Str):Bool) Func InquireSignal( RtlSigNum : Int) : TSignalState Func InRangeR( const A, Min, Max : Double) :Bool Func Insert(Index:Int):TCollectionItem Func Insert(Index:Int):TComboExItem Func Insert(Index:Int):THeaderSection Func Insert(Index:Int):TListItem Func Insert(Index:Int):TStatusPanel Func Insert(Index:Int):TWorkArea Func Insert(Index:LongInt; const Text :Str) : LongInt Func Insert(Sibling : TTreeNode; const S :Str) : TTreeNode Func INSERTNEWLINEAFTER( AITEM : TMENUITEM) : Int Func INSERTNEWLINEBEFORE( AITEM : TMENUITEM) : Int Func InsertNode( Node, Sibling : TTreeNode; const S :Str; Ptr : Pointer) : TTreeNode Func InsertObject( Index : LongInt; const Text :Str; const Data : Pointer) : LongInt Func InsertObject( Sibling : TTreeNode; const S :Str; Ptr : Pointer) : TTreeNode Func Instance : Longint Func InstanceSize: Longint Func Int(e : Extended) : Extended; Func Int64ToStr(i: Int64):Str; Func IntToBcd( const AValue : Int) : TBcd Func Intensity( const Color32 : TColor32) : Int; Func Intensity( const R, G, B : Single) : Single; Func InterestPayment(const Rate:Ext;Period,NPeriods:Int;const PresentValue,FutureValue:Ext;PaymentTime :TPaymentTime):Ext Func InterestRate(NPeriods:Int;const Payment,PresVal,FutureVal:Extended;PaymentTime:TPaymentTime):Extended Func InternalDecodeDate(DateTime:TDateTime;var Year,Month,Day,DOW:Word):Boolean Func InternalRateOfReturn(const Guess:Extended;const CashFlows:array of Double):Extended Func InternalUpdateRecord( Tree : TUpdateTree) :Bool Func IntersectRect( out Rect : TRect; const R1, R2 : TRect) :Bool Func IntersectRect(out Rect: TRect; const R1, R2: TRect):Bool) Func IntMibToStr( const Value :Str) :Str Func IntPower( const Base : Extended; const Exponent : Int) : Extended Func IntToBin( Value :Card) :Str Func IntToHex( Value : Int; Digits : Int) :Str; Func IntToHex(a: Int; b: Int):Str; Func IntToHex64( Value : Int64; Digits : Int) :Str; Func IntToHex64(Value: Int64; Digits: Int):Str) Func IntTo3Str( Value : Longint; separator:Str) :Str Func inttobool( aInt : LongInt) :Bool Func IntToStr(i: Int64):Str; Func IntToStr64(Value: Int64):Str) Func IOResult: Int Func IPv6AddressToStr(const AValue: TIdIPv6Address):Str Func IPAddrToHostName(const IP:Str):Str; Func IsAccel(VK: Word; const Str:Str):Bool Func IsAddressInNetwork( Address :Str) :Bool Func IsAdministrator :Bool Func IsAlias( const Name :Str) :Bool Func IsApplicationRunning( const AClassName, ApplName:str):Bool Func IsASCII( const AByte : Byte) :Bool; Func IsASCIILDH( const AByte : Byte) :Bool; Func IsAssembly(const FileName:Str):Bool; Func IsBcdNegative( const Bcd : TBcd) :Bool Func IsBinary(const AChar : Char) :Bool Func IsConsole:Bool) Func IsDelimiter( Delimiters, S :Str; Index : Int) :Bool Func IsDelimiter(const Delimiters:Str;const S:Str;Index: Int):Boolean) Func IsDelphiDesignMode :Bool Func IsDelphiRunning :Bool Func IsDFAState :Bool Func IsDirectory( const FileName :Str) :Bool Func IsDomain( const S :Str) :Bool Func IsDragObject(Sender: TObject):Bool; Func IsEditing :Bool Func ISEMPTY :Bool Func IsEqual( Value : TParameters) :Bool Func ISEQUAL( VALUE : TPARAMS) :Bool Func IsEqualGUID(const guid1, guid2: TGUID):Bool) Func IsFirstNode :Bool Func IsFloatZero( const X : Float) :Bool Func IsFormatRegistered( Extension, AppID :Str) :Bool Func IsFormOpen(const FormName:Str):Bool; Func IsFQDN( const S :Str) :Bool Func IsGrayScale :Bool Func IsHex( AChar : Char) :Bool; Func IsHexString(const AString:Str):Bool; Func IsHostname( const S :Str) :Bool Func IsInfinite( const AValue : Double) :Bool Func IsInLeapYear( const AValue : TDateTime) :Bool Func IsInternet:Bool; Func IsLeadChar( ACh : Char) :Bool Func IsLeapYear( Year : Word) :Bool Func IsLeapYear(Year: Word):Bool) Func IsLibrary:Bool) Func ISLINE :Bool Func IsLinkedTo( DataSet : TDataSet) :Bool Func ISLINKEDTO( DATASOURCE : TDATASOURCE) :Bool Func IsLiteralChar( const EditMask :Str; Offset : Int) :Bool Func IsMatch( const Pattern, Text :Str) :Bool //Grep like RegEx Func IsMainAppWindow( Wnd : HWND) :Bool Func IsMediaPresentInDrive( Drive : Char) :Bool Func IsMemoryManagerSet:Bool) Func IsMultiTableQuery( const SQL : WideString) :Bool Func IsMultiThread:Bool) Func IsNumeric( AChar : Char) :Bool; Func IsNumeric2( const AString :Str) :Bool; Func IsNTFS:Bool; Func IsOctal( AChar : Char) :Bool; Func IsOctalString(const AString:Str) :Bool; Func IsPathDelimiter( S :Str; Index : Int) :Bool Func IsPathDelimiter(const S:Str; Index: Int):Bool) Func IsPM( const AValue : TDateTime) :Bool Func IsPositiveFloatArray( const X : TDynFloatArray) :Bool Func IsPortAvailable( ComNum :Card) :Bool; Func IsCOMPortReal( ComNum :Card) :Bool; Func IsCOM( ComNum :Card) :Bool; Func IsCOMPort:Bool; Func IsPrimeFactor( const F, N :Card) :Bool Func IsPrimeRM( N :Card) :Bool //rabin miller Func IsPrimeTD( N :Card) :Bool //trial division Func IsPrivilegeEnabled( const Privilege :Str) :Bool Func ISqrt( const I : Smallint) : Smallint Func IsReadOnly(const Filename:Str):Bool; Func IsRectEmpty( const Rect : TRect) :Bool Func IsRectEmpty(const Rect: TRect):Bool) Func IsRelativePrime( const X, Y :Card) :Bool Func ISRIGHTTOLEFT :Bool Func IsRightToLeft:Bool Func IsSameDay( const AValue, ABasis : TDateTime) :Bool Func ISSEQUENCED :Bool Func IsSystemModule( const Module : HMODULE) :Bool Func IsSystemResourcesMeterPresent :Bool Func IsTCPPortOpen(dwPort : Word; ipAddressStr:Str):Bool; Func IsToday( const AValue : TDateTime) :Bool Func IsToday(const AValue: TDateTime):Bool; Func IsTopDomain( const AStr :Str) :Bool Func IsUTF8LeadByte( Lead : Char) :Bool Func IsUTF8String( const s : UTF8String) :Bool Func IsUTF8TrailByte( Lead : Char) :Bool Func ISVALIDCHAR( INPUTCHAR : CHAR) :Bool Func IsValidDate( const AYear, AMonth, ADay : Word) :Bool Func IsValidDateDay( const AYear, ADayOfYear : Word) :Bool Func IsValidDateMonthWeek(const AYear,AMonth,AWeekOfMonth,ADayOfWeek:Word): Bool Func IsValidDateTime(const AYear,AMonth,ADay,AHour,AMinute,ASecond,AMilliSecond:Word): Bool Func IsValidDateWeek( const AYear, AWeekOfYear, ADayOfWeek : Word) :Bool Func IsValidIdent( Ident :Str) :Bool Func IsValidIdent1(const Ident:Str; AllowDots:Bool):Bool) Func IsValidIP( const S :Str) :Bool Func IsValidTime( const AHour, AMinute, ASecond, AMilliSecond : Word) :Bool Func IsValidPNG(stream: TStream):Bool; Func IsValidJPEG(stream: TStream):Bool; Func IsValidISBN( const ISBN : Ansistr) :Bool Func IsVariantManagerSet:Bool; //deprecated; Func IsVirtualPcGuest :Bool; Func IsVmWareGuest :Bool; Func IsVCLControl(Handle: HWnd):Bool; Func IsWhiteString( const AStr :Str) :Bool Func IsWindowResponding( Wnd : HWND; Timeout : Int) :Bool Func IsWoW64:Bool; Func IsWin64:Bool; Func IsWow64String(var s:Str):Bool; Func IsWin64String(var s:Str):Bool; Func IsWindowsVista:Bool; Func isPowerof2(num: int64):Bool; Func powerOf2(exponent: Int): int64; Func IsZero(const A: Extended; Epsilon: Extended):Bool //overload; Func IsZero1(const A: Double; Epsilon: Double):Bool //overload; Func IsZero2(const A: Single; Epsilon: Single):Bool //overload; Func ItemAtPos( Pos : TPoint; IgnoreTabHeight :Bool) : Int Func ITEMATPOS(POS:TPOINT;EXISTING:BOOLEAN):Int Func ItemRect( Index : Int) : TRect Func ITEMRECT(INDEX:Int):TRECT Func ItemWidth( Index : Int) : Int Func JavahashCode(val:Str): Int; Func JosephusG(n,k: Int; var graphout:Str): Int; Func JulianDateToDateTime( const AValue : Double) : TDateTime Func JustName(PathName :Str) :Str; //in path and ext Func JvMessageBox( const Text, Caption :Str; Flags : DWORD) : Int; Func JvMessageBox1( const Text :Str; Flags : DWORD) : Int; Func KeepAlive :Bool Func KeysToShiftState(Keys: Word): TShiftState; Func KeyDataToShiftState(KeyData: Longint): TShiftState; Func KeyboardStateToShiftState2(const KeyboardState: TKeyboardState):TShiftState; Func KeyboardStateToShiftState: TShiftState; overload; Func Languages : TLanguages Func Last: TClass Func Last: TComponent Func Last: TObject Func LastDelimiter( Delimiters, S :Str) : Int Func LastDelimiter(const Delimiters:Str; const S:Str): Int) Func LastPos( const ASubstr :Str; const AStr :Str) : Int Func Latitude2WGS84(lat: double): double; Func LCM(m,n:longint):longint; Func LCMJ( const X, Y :Card) :Card Func Ldexp( const X : Extended; const P : Int) : Extended Func LeftStr( const AText : Ansistr; const ACount : Int) : Ansistr; Func LeftStr( const AText : WideString; const ACount : Int) : WideString; Func Length: Int; Proc LetFileList(FileList: TStringlist; apath:Str); Func lengthmp3(mp3path:Str):Int; Func LineInRect( const P1, P2 : TPoint; const Rect : TRect) :Bool; Func LineInRect1( const P1, P2 : TFloatPoint; const Rect : TFloatRect) :Bool; Func LinesCount(sfilename:str):extended; Func TextFileLineCount(const FileName:Str): Int; Func LineSegmentIntersection(const L1P1:TFloatPoint;L1P2:TFloatPoint;const L2P1:TFloatPoint; L2P2:TFloatPoint;var P:TFloatPoint):Boolean Func LineStart(Buffer, BufPos: PChar): PChar Func LineStart(Buffer, BufPos: PChar): PChar) Func ListSeparator: char; Func Ln(x: Extended): Extended; Func LnXP1( const X : Extended) : Extended Func Lo(vdat: word): byte; Func LoadCursor(hInstance: HINST; lpCursorName: PChar): HCURSOR Func LoadedModulesList(const List:TStrings;ProcessID:DWORD;HandlesOnly:Boolean):Bool Func LoadFileAsString( const FileName :Str) :Str Func LoadFromFile( const FileName :Str) : TBitmapLoader Func LoadFile(const FileName: TFileName):Str; Func LoadLibraryEx(LibName: PChar; hFile: Longint; Flags: Longint): Longint; stdcall; Func LoadPackage(const Name:Str): HMODULE Func LoadResource( ModuleHandle : HMODULE; ResHandle: TResourceHandle):HGLOBAL Func LoadStr( Ident : Int) :Str Func LoadString(Instance: Longint; IDent: Int; Buffer: PChar; Size: Int):Int;stdcall; Func LoadWideStr( Ident : Int) : WideString Func LOCATE(const KEYFIELDS:str;const KEYVALUES:VARIANT;OPTIONS:TLOCATEOPTIONS):BOOLEAN Func LockRegion(libOffset:Longint;cb:Largeint;dwLockType:Longint): HResult Func LockServer( fLock : LongBool) : HResult Func LockVolume( const Volume :Str; var Handle : THandle) :Bool Func Log( const X : Extended) : Extended Func Log10( const X : Extended) : Extended Func Log2( const X : Extended) : Extended Func LogBase10(X: Float): Float; Func LogBase2(X: Float): Float; Func LogBaseN(Base, X: Float): Float; Func LogN( const Base, X : Extended) : Extended Func LogOffOS :Bool Func LoginDialog( const ADatabaseName :Str; var AUserName, APassword :Str):Bool Func LoginDialogEx(const ADbName:str;var AUserName,APassword:str;NameReadOnly:Bool):Bool; Func LongDateFormat:Str; Func LongTimeFormat:Str; Func LongWordToFourChar( ACardinal : LongWord) :Str Func LOOKUP(const KEYFIELDS:Str;const KEYVALUES:VARIANT;const RESULTFIELDS:str):VARIANT Func LookupName( const name :Str) : TInAddr Func LookupService( const service :Str) : Int Func Low: Int64; Func LowerCase( S :Str) :Str Func Lowercase(s : AnyString) : AnyString; Func LRot( const Value : Byte; const Count : TBitRange) : Byte; Func LRot1( const Value : Word; const Count : TBitRange) : Word; Func LRot2( const Value : Int; const Count : TBitRange) : Int; Func MainInstance: longword Func MainThreadID: longword Func Map(x, in_min, in_max, out_min, out_max: Int): Int; //arduino Func mapMax(ax, in_min, in_max, out_min, out_max: Int): Int; Func MakeCanonicalIPv4Address( const AAddr :Str) :Str Func MakeCanonicalIPv6Address( const AAddr :Str) :Str Func MakeDIB( out Bitmap : PBitmapInfo) : Int Func MakeDWordIntoIPv4Address( const ADWord :Card) :Str Func MakeFile(const FileName:Str): Int); Func MakeLong(A, B: Word): Longint) Func MakeTempFilename( const APath :Str) :Str Func MakeValidFileName( const Str :Str) :Str Func MakeValueMap( Enumeration :Str; ToCds :Bool) :Str Func MakeWord(A, B: Byte): Word) Func MakeYear4Digit( Year, Pivot : Int) : Int Func MapDateTime(const DateFormatType:str;DateFormat:str;Value:str;ToCds:Bool):str Func MapValues( Mapping :Str; Value :Str) :Str Func MaskDoFormatText(const EditMask:str;const Value:str;Blank:Char):str Func MaskGetCharType( const EditMask :Str; MaskOffset : Int) : TMaskCharType Func MaskGetCurrentDirectives( const EditMask :Str; MaskOffset:Int):TMaskDirectives Func MaskGetFldSeparator( const EditMask :Str) : Int Func MaskGetMaskBlank( const EditMask :Str) : Char Func MaskGetMaskSave( const EditMask :Str) :Bool Func MaskIntlLiteralToChar( IChar : Char) : Char Func MaskOffsetToOffset( const EditMask :Str; MaskOffset : Int) : Int Func MaskOffsetToWideOffset( const EditMask :Str; MaskOffset : Int) : Int Func MaskString( Mask, Value :Str) :Str Func Match( const sString :Str) : TniRegularExpressionMatchResul Func Match1( const sString:Str;iStart:Int):TniRegularExpressionMatchResult Func Matches( const Filename :Str) :Bool Func MatchesMask( const Filename, Mask :Str) :Bool Func MatchStr( const AText :Str; const AValues : array of string):Bool Func MatchText( const AText :Str; const AValues : array of string):Bool Func Max( AValueOne, AValueTwo : Int) : Int Func Max(const x,y: Int): Int; Func Max1(const B1, B2 : Shortint) : Shortint; Func Max2(const B1, B2 : Smallint) : Smallint; Func Max3(const B1, B2 : Word) : Word; Func Max3(const x,y,z: Int): Int; Func Max4(const B1, B2 : Int) : Int; Func Max5(const B1, B2 :Card) :Card; Func Max6(const B1, B2 : Int64) : Int64; Func Max64(const AValueOne, AValueTwo : Int64) : Int64 Func MaxFloat(const X, Y : Float) : Float Func MaxFloatArray(const B : TDynFloatArray) : Float Func MaxFloatArrayIndex( const B : TDynFloatArray) : Int Func MaxIntValue(const Data: array of Int):Int) Func MaxJ( const B1, B2 : Byte) : Byte; Func MaxPath:Str; Func MaxValue(const Data: array of Double): Double) Func MaxCalc( const Formula :Str) : Extended //math expression parser Proc MaxCalcF( const Formula :Str); //out to console memo2 Func MaxCalcS( const Formula :Str):Str; Func MD5(const fileName:Str):Str; Func Mean( const Data : array of Double) : Extended Func Median( const X : TDynFloatArray) : Float Func Memory : Pointer Func MemoryPos( const ASubStr :Str; MemBuff : PChar; MemorySize: Int): Int Func MessageBox(hndl:Card; text, caption:Str; utype:Card): Int; Func MESSAGEBOX(TEXT,CAPTION:PCHAR;FLAGS:WORD):Int Func MessageDlg(const Msg:str;DlgType:TMsgDlgType;Buttons:TMsgDlgButtons;HelpCtx:Longint):Int; Func MessageDlg1(const Msg:str;DlgType:TMsgDlgType;Buttons:TMsgDlgButtons;HelpCtx:Longint;DefaultButton:TMsgDlgBtn):Int; Func MessageDlgPos(const Msg:str;DlgType:TMsgDlgType;Buttons:TMsgDlgButtons;HelpCtx:Longint;X,Y:Int):Int; Func MessageDlgPos1(const Msg:str; DlgType:TMsgDlgType; Buttons:TMsgDlgButtons;HelpCtx:Longint;X,Y: Int;DefaultButton:TMsgDlgBtn):Int; Func MessageDlgPosHelp(const Msg:str;DlgType:TMsgDlgType;Buttons:TMsgDlgButtons;HelpCtx:Longint;X,Y: Int;const HelpFileName:str):Int; Func MessageDlgPosHelp1(const Msg:str;DlgType:TMsgDlgType;Buttons:TMsgDlgButtons;HelpCtx:Longint;X,Y:Int; const HelpFileName:str; DefaultButton:TMsgDlgBtn):Int; Func MibToId( Mib :Str) :Str Func MidStr( const AText : Ansistr; const AStart, ACount : Int) : Ansistr; Func MidStr( const AText : WideString; const AStart, ACount : Int) : WideString; Func microsecondsToCentimeters(mseconds:longint):longint;//340m/s speed of sound Func Micros(const Timer:THPTimer;const TimerRunning:Boolean):Int64//TypeS('THPTimer', 'Int64 Func MIDIOut( DeviceID :Card) : IJclMIDIOut Proc GetMidiOutputs( const List : TStrings) // GetGEOMAPX('html',ExePath+'cologne2mapX.html','cathedral cologne Proc GetGEOMap(C_form,apath:str; const Data:Str);//c_form:[html/json/xml] Func MIDISingleNoteTuningData( Key : TMIDINote; Frequency : Single) : TSingleNoteTuningData Func MIDINoteToStr( Note : TMIDINote) :Str Func WinMidiOut( DeviceID :Card) : IJclWinMidiOut Proc GetMidiOutputs( const List : TStrings) Proc MidiOutCheck( Code : MMResult) Proc MidiInCheck( Code : MMResult) Func MilliSecondOf( const AValue : TDateTime) : Word Func MilliSecondOfTheDay( const AValue : TDateTime): LongWord Func MilliSecondOfTheHour( const AValue : TDateTime): LongWord Func MilliSecondOfTheMinute( const AValue : TDateTime): LongWord Func MilliSecondOfTheMonth( const AValue : TDateTime): LongWord Func MilliSecondOfTheSecond( const AValue : TDateTime): Word Func MilliSecondOfTheWeek( const AValue : TDateTime): LongWord Func MilliSecondOfTheYear( const AValue : TDateTime): Int64 Func MilliSecondsBetween( const ANow, AThen : TDateTime): Int64 Func MilliSecondSpan( const ANow, AThen : TDateTime): Double Func milliToDateTime( MilliSecond : LongInt) : TDateTime; Func Micros( const Timer : THPTimer; const TimerRunning:Boolean):Int64 Func millis: int64; Func Min( AValueOne, AValueTwo : Int) : Int Func Min1(const B1,B2: Shortint) : Shortint; Func Min2(const B1,B2: Smallint) : Smallint; Func Min3(const B1,B2: Word) : Word; Func Min4(const B1,B2: Int) : Int; Func Min5(const B1,B2:Card) :Card; Func Min6(const B1,B2: Int64) : Int64; Func Min64( const AValueOne, AValueTwo : Int64) : Int64 Func MinClientRect : TRect; Func MinClientRect1( IncludeScroller :Bool) : TRect; Func MinClientRect2( TabCount : Int; IncludeScroller :Bool) : TRect; Func MinFloat( const X, Y : Float) : Float Func MinFloatArray( const B : TDynFloatArray) : Float Func MinFloatArrayIndex( const B : TDynFloatArray) : Int Func MinimizeName(const Filename:str;Canvas : TCanvas; MaxLen:Int):Str Func MinimizeName(const Filename:TFileName;Canvas:TCanvas; MaxLen:Int):FileName Func MinimizeName(const Filename:Str; Canvas: TCanvas;MaxLen: Int):TFileName Func MinIntValue( const Data : array of Int) : Int Func MinIntValue(const Data: array of Int):Int) Func MinJ( const B1, B2 : Byte) : Byte; Func MinuteOf( const AValue : TDateTime) : Word Func MinuteOfTheDay( const AValue : TDateTime) : Word Func MinuteOfTheHour( const AValue : TDateTime) : Word Func MinuteOfTheMonth( const AValue : TDateTime) : Word Func MinuteOfTheWeek( const AValue : TDateTime) : Word Func MinuteOfTheYear( const AValue : TDateTime) : LongWord Func MinutesBetween( const ANow, AThen : TDateTime) : Int64 Func MinuteSpan( const ANow, AThen : TDateTime) : Double Func MinValue( const Data : array of Double) : Double Func MinValue(const Data: array of Double): Double) Func MixerLeftRightToArray( Left, Right :Card) : TDynCardinalArray Func MMCheck( const MciError : MCIERROR; const Msg :Str) : MCIERROR Func ModFloat( const X, Y : Float) : Float Func ModifiedJulianDateToDateTime( const AValue : Double) : TDateTime Func Modify( const Key :Str; Value : Int) :Bool Func ModuleCacheID :Card Func ModuleFromAddr( const Addr : Pointer) : HMODULE Func MonitorFromPoint(const Point:TPoint;MonitorDefault:TMonitorDefaultTo): TMonitor Func MonitorFromRect(const Rect:TRect;MonitorDefault:TMonitorDefaultTo):TMonitor Func MonitorFromWindow(const Handle:THandle; MonitorDefault:TMonitorDefaultTo): TMonitor Func MonthOf( const AValue : TDateTime) : Word Func MonthOfTheYear( const AValue : TDateTime) : Word Func MonthsBetween( const ANow, AThen : TDateTime) : Int Func MonthSpan( const ANow, AThen : TDateTime) : Double Func MonthStr( DateTime : TDateTime) :Str Func MouseCoord( X, Y : Int) : TGridCoord Func MOVEBY( DISTANCE : Int) : Int Func MoveFile( Source, Dest :Str; Flags : FILEOP_FLAGS) :Bool Func MoveNext :Bool Func MSecsToTimeStamp( MSecs : Comp) : TTimeStamp Func MSecsToTimeStamp(MSecs: Comp): TTimeStamp) Func Name :Str Func NetPresentValue(const Rate:Extended;const CashFlows:array of Double;PaymentTime:TPaymentTime):Extended Func NetworkVolume(DriveChar: Char):Str Func NEWBOTTOMLINE : Int Func NewCompareNode(Field: TField;Operator:TCANOperator; const Value:Variant) : PExprNode Func NEWITEM(const ACAPTION:str;ASHORTCUT:TSHORTCUT;ACHECKED,AENABLED:BOOL;AONCLICK: TNOTIFYEVENT;HCTX:WORD;const ANAME:str):TMENUITEM Func NEWLINE : TMENUITEM Func NEWMENU( OWNER : TCOMPONENT;const ANAME:str;ITEMS: array of TMenuItem): TMAINMENU Func NewNode(Kind: TExprNodeKind;Operator:TCANOperator;const Data:Variant;Left,Right:PExprNode):PExprNode Func NEWPOPUPMENU(OWNER:TCOMPONENT;const ANAME:str; ALIGNMENT:TPOPUPALIGNMENT;AUTOPOPUP:BOOLEAN; const ITEMS : array of TCMENUITEM) : TPOPUPMENU Func NewState( eType : TniRegularExpressionStateType) : TniRegularExpressionState Func NEWSUBMENU(const ACAPT:str;HCTX:WORD;const ANAME:str;ITEMS:array of TMenuItem;AENABLED:BOOL): TMENUITEM Func NEWTOPLINE : Int Func Next : TIdAuthWhatsNext Func NextCharIndex( S :Str; Index : Int) : Int Func NextRecordSet : TCustomSQLDataSet Func NextRecordset( var RecordsAffected : Int) : _Recordset Func NextSQLToken1(var p: WideChar;out Token:WideString;CurSection:TSQLToken):TSQLToken; Func NextToken : Char Func nextToken : WideString Func NextToken:Char Func Norm( const Data : array of Double) : Extended Func NormalizeAngle( const Angle : Extended) : Extended Func NormalizeBcd(const InBcd TBcd;var OutBcd:TBcd;const Prec,Scale Word):Bool Func NormalizeRect( const Rect : TRect) : TRect Func NormalizeRect(const Rect: TRect): TRect; Func Now :TDateTime Func Now2:tDateTime Func NumProcessThreads:Int Func NumThreadCount : Int Func NthDayOfWeek( const AValue : TDateTime) : Word Func NtProductType : TNtProductType Func NtProductTypeString :Str Func Null: Variant; Func NullPoint : TPoint Func NullRect : TRect Func Null2Blank(aString:str):str; Func NumberOfPeriods(const Rate:Extended;Payment:Extended;const PresentValue,FutureValue:Extended;PaymentTime:TPaymentTime):Extended Func NumIP:Int Func Odd(x: Longint):Bool; function OleVariantToString(const Value: OleVariant): string; function StringToOleVariant(const Value: string): OleVariant; function OleVariantToMemoryStream(const OV: OleVariant): TMemoryStream; Func OffsetFromUTC : TDateTime Func OffsetPoint( const P, Offset : TPoint) : TPoint Func OffsetRect( var Rect : TRect; DX : Int; DY : Int) :Bool Func OffsetRect(var Rect: TRect; DX:Int; DY:Int):Bool) Func OffsetToMaskOffset( const EditMask :Str; Offset : Int) : Int Func OkToChangeFieldAlignment( AField : TField; Alignment : TAlignment):Bool Func OldBCDToCurr( const BCD : TBcd; var Curr : Currency) :Bool Func OldCurrToBCD(const Curr:Currency;var BCD:TBcd;Precision:Int;Decimals:Int):Bool Func OpenBit:Int Func OpenDatabase : TDatabase Func OpenDatabase( const DatabaseName:str):TDatabase Proc OpenDir(adir:Str); Func OpenGLColorToWinColor( const Red, Green, Blue:Float):TColor Func OpenMap(const Data:Str):Bool; Func OpenMapX(const Data:Str):Bool; Func OpenObject( Value : PChar) :Bool; Func OpenObject1( Value :Str) :Bool; Proc Openweb('http://snippets.delphidabbler.com/#') Proc OpenURL( const AText : TKkString); Proc OpenWeb( const AText : TKkString); Proc OpenBrowser( const AText : TKkString); Func OpenSession( const SessionName :Str) : TSession Func OpenVolume( const Drive : Char) : THandle Func OrdFourByteToCardinal(AByte1, AByte2, AByte3, AByte4 : Byte):Card Func OrdFourByteToLongWord( AByte1, AByte2, AByte3, AByte4 : Byte): LongWord Func OrdToBinary( const Value: Byte) :Str; Func OrdToBinary1(const Value: Shortint) :Str; Func OrdToBinary2(const Value: Smallint) :Str; Func OrdToBinary3(const Value: Word) :Str; Func OrdToBinary4(const Value: Int) :Str; Func OrdToBinary5(const Value:Card) :Str; Func OrdToBinary6(const Value: Int64) :Str; Func OSCheck( RetVal :Bool) :Bool Func OSFileTypeToString( const OSFileType:DWORD;const OSFileSubType:DWORD):str Func OSIdentToString( const OSIdent : DWORD) :Str Func Output: Text) Func Overlay( ImageIndex : Int; Overlay : TOverlay):Boolean Func Owner : TCustomListView Func Owner : TPersistent Func PadInputLiterals(const EditMask:str;const Value:str;Blank:Char):str Func PadL( pStr :Str; pLth : Int) :Str Func Padl(s : AnyString;I : longInt) : AnyString; Func PadLCh( pStr :Str; pLth : Int; pChr : char) :Str Func PadR( pStr :Str; pLth : Int) :Str Func Padr(s : AnyString;I : longInt) : AnyString; Func PadRCh( pStr :Str; pLth : Int; pChr : char) :Str Func PadString(const AString:Str;const ALen:Int; const AChar:Char):str Func Padz(s : AnyString;I : longInt) : AnyString; Func PaethPredictor( a, b, c : Byte) : Byte Func PARAMBYNAME( const VALUE :Str) : TPARAM Func ParamByName( const Value : WideString): TParameter Func ParamCount: Int Func ParamsEncode( const ASrc :Str):Str Func ParamStr(Index: Int):Str) Func ParseDate( const DateStr :Str): TDateTime Func PARSESQL( SQL :Str; DOCREATE :Bool) :Str Func ParseSQL( SQL : WideString; DoCreate :Bool): WideString Func PathAddExtension( const Path, Extension :Str):str Func PathAddSeparator( const Path :Str) :Str Func PathAppend( const Path, Append :Str) :Str Func PathBuildRoot( const Drive : Byte) :Str Func PathCanonicalize( const Path :Str) :Str Func PathCommonPrefix( const Path1, Path2 :Str) : Int Func PathCompactPath(const DC:HDC;const Path:str;const Width:Int;CmpFmt:TCompactPath):str; Func PathCompactPath1(const Canv:TCanvas;const Path:str;const Width:Int;CmpFmt:TCompactPath):str; Func PathEncode( const ASrc :Str) :Str Func PathExtractFileDirFixed( const S : Ansistr): Ansistr Func PathExtractFileNameNoExt( const Path :Str):Str Func PathExtractPathDepth( const Path :Str; Depth: Int):str Func PathGetDepth( const Path :Str): Int Func PathGetLongName( const Path :Str):Str Func PathGetLongName2( Path :Str):Str Func PathGetShortName( const Path :Str):Str Func PathIsAbsolute( const Path :Str): Bool Func PathIsChild( const Path, Base : Ansistr): Bool Func PathIsDiskDevice( const Path :Str): Bool Func PathIsUNC( const Path :Str) : Bool Func PathRemoveExtension( const Path:Str):Str Func PathRemoveSeparator( const Path:Str):Str Func Payment(Rate:Extended;NPeriods:Int;const PresentVal,FutureVal:Extended;PaymentTime:TPaymentTime):Extended Func Peek: Pointer Func Peek: TObject Func PERFORM(MSG:Card;WPARAM,LPARAM:LONGINT):LONGINT Func PeriodPayment(const Rate:Extended;Period,NPeriods:Int; const PresentValue,FutureValue: Extended;PaymentTime:TPaymentTime):Extended Func Permutation(npr, k: Int): extended; Func PermutationInt(npr, k: Int): Int64; Func PermutationJ( N, R :Card) : Float Func Pi : Extended; Func PiE : Extended; Func PixelsToDialogsX( const Pixels : Word) : Word Func PixelsToDialogsY( const Pixels : Word) : Word Func PlaySound(s: pchar; flag,syncflag: Int):Bool; Func Point( X, Y : Int) : TPoint Func Point(X, Y: Int): TPoint) Func PointAssign( const X, Y : Int) : TPoint Func PointDist( const P1, P2 : TPoint) : Double; Func PointDist(const P1,P2: TFloatPoint): Double; Func PointDist1( const P1, P2 : TFloatPoint) : Double; Func PointDist2(const P1,P2: TPoint): Double; Func PointEqual( const P1, P2 : TPoint) :Bool Func PointIsNull( const P : TPoint) :Bool Func PointToLineSegmentDist( const Point, LineP1, LineP2 : TFloatPoint): Double Func Poly( const X : Extended; const Coefficients : array of Double): Extended Func PortTCPIsOpen(dwPort : Word; ipAddressStr:Str):bool; Func IsTCPPortOpen(dwPort : Word; ipAddressStr:Str):bool; Func Pop : Pointer Func Pop : TObject Func PopnStdDev( const Data : array of Double) : Extended Func PopnVariance( const Data : array of Double) : Extended Func PopulationVariance( const X : TDynFloatArray) : Float Func Pos(SubStr, S: AnyString): Longint; Func PosEqual( const Rect : TRect) :Bool Func PosEx( const SubStr, S :Str; Offset : Int) : Int Func PosInSmallIntArray(const ASearchInt:SmallInt;AArray:array of SmallInt):Int Func PosInStrArray(const SearchStr:str;Contents:array of str;const CaseSensitive:Bool):Int Func Post1( AURL:str; const ASource : TStrings) :Str; Func Post2( AURL:str; const ASource : TStream) :Str; Func Post3( AURL:str; const ASource : TIdMultiPartFormDataStream) :Str; Func PostData( const UserData : WideString; const CheckSum : DWORD) :Bool Func PostData( const UserData : WideString; const CheckSum : Int):Bool Func PostMessage(hWnd:HWND;Msg:longword;wParam: ongint;lParam:longint):Bool; Func Power( const Base, Exponent : Extended) : Extended Func PowerBig(aval, n:Int):Str; Func PowerIntJ( const X : Float; N : Int) : Float; Func PowerJ( const Base, Exponent : Float) : Float; Func PowerOffOS :Bool Func PreformatDateString( Ps :Str) :Str Func PresentValue(const Rate:Extend;NPeriods:Int;const Payment,FutureVal:Extend;PaymentTime:TPaymentTime):Extended Func PrimeFactors( N :Card) : TDynCardinalArray Func Printer : TPrinter Func ProcessPath2(const ABasePath:str;const APath:str;const APathDelim:str):str Func ProcessResponse : TIdHTTPWhatsNext Func ProduceContent :Str Func ProduceContentFromStream( Stream : TStream) :Str Func ProduceContentFromString( const S :Str) :Str Func ProgIDToClassID(const ProgID:Str): TGUID; Func PromptDataLinkFile(ParentHandle:THandle;InitialFile:WideString):WideString Func PromptDataSource(ParentHandle:THandle;InitialString:WideString):WideString Func PromptForFileName(var AFileName:str;const AFilter:str;const ADefaultExt:str;const ATitle:str;const AInitialDir:str;SaveDialog:Bool):Bool Func PromptForFileName(var AFileName:str;const AFilter:str;const ADefaultExt:str;const ATitle:str;const AInitialDir:Str;SaveDialog:Bool):Bool) Func PSScriptNeedFile(Sender:TObject;const OrginFileName:Str;var FileName,Output:Str):Bool Func PtInRect( const Rect : TRect; const P : TPoint) :Bool Func PtInRect(const Rect: TRect; const P: TPoint):Bool) Func Push( AItem : Pointer) : Pointer Func Push( AObject : TObject) : TObject Func Put1( AURL :Str; const ASource : TStream) :Str; Func Pythagoras( const X, Y : Extended) : Extended Func queryDLLInterface( var queryList : TStringList) : TStringList Func queryDLLInterfaceTwo( var queryList : TStringList) : TStringList Func QueryInterface(const IID: TGUID; out Obj): HResult, CdStdCall Func queryPerformanceCounter2(mse: int64): int64; //Func QueryPerformanceCounter(var lpPerformanceCount: Int64): LongBool; stdcall; //Func QueryPerformanceFrequency(mse: int64):Bool; Func QueryPerformanceCounter(var lcount: Int64):Bool; stdcall; Func QueryPerformanceFrequency(var lfreq: int64):Bool; stdcall; Proc QueryPerformanceCounter1(var aC: Int64); Func QueryPerformanceFrequency1(var freq: int64):Bool; Func Quote( const ACommand :Str) : SmallInt Func QuotedStr( S :Str) :Str Func RadToCycle( const Radians : Extended) : Extended Func RadToDeg( const Radians : Extended) : Extended Func RadToDeg( const Value : Extended) : Extended; Func RadToDeg1(const Value : Double) : Double; Func RadToDeg2(const Value : Single) : Single; Func RadToGrad(const Radians : Extended) : Extended Func RadToGrad(const Value : Extended) : Extended; Func RadToGrad1( const Value : Double) : Double; Func RadToGrad2( const Value : Single) : Single; Func RandG( Mean, StdDev : Extended) : Extended Func Random(const ARange: Int): Int; Func random2(a: Int): double Func RandomE: Extended; Func RandomF: Extended; Func RandomFrom( const AValues : array of string):Str; Func RandomRange( const AFrom, ATo : Int) : Int Func randSeed: longint Proc setRandseed; //no params! Func RawToDataColumn( ACol : Int) : Int Func Read : Char Func Read( pv : Pointer; cb : Longint; pcbRead : PLongint) : HResult Func Read(Buffer:str;Count:LongInt):LongInt Func ReadBinaryStream( const Section, Name :Str; Value : TStream) : Int Func ReadBool( const Section, Ident :Str; Default :Bool) :Bool Func ReadCardinal( const AConvert :Bool) :Card Func ReadChar : Char Func ReadClient( var Buffer, Count : Int) : Int Func ReadDate( const Section, Name :Str; Default : TDateTime) : TDateTime Func ReadDateTime( const Section, Name :Str; Default : TDateTime) : TDateTime Func ReadFloat( const Section, Name :Str; Default : Double) : Double Func ReadFromStack(const ARaiseExceptfDiscon:Bool;ATimeout:Int;const ARaiseExceptTimeout:Bool):Int Func ReadInt( const AConvert :Bool) : Int Func ReadInt( const Section, Ident :Str; Default : Longint) : Longint Func ReadLn :Str Func ReadLn(ATerminator:Str;const ATimeout:Int;AMaxLineLength:Int):str Func Readln(question:Str):Str; Func readm:Str; //read last line in memo2 - console! Func ReadLnWait( AFailCount : Int) :Str Func ReadReg(Base: HKEY; KeyName, ValueName:Str):Str; Func ReadRegistry(Base: HKEY; KeyName, ValueName:Str):Str; Func ReadSmallInt( const AConvert :Bool) : SmallInt Func ReadString( const ABytes : Int) :Str Func ReadString( const Section, Ident, Default :Str) :Str Func ReadString( Count : Int) :Str Func ReadTime( const Section, Name :Str; Default : TDateTime) : TDateTime Func ReadTimeStampCounter : Int64 Func RebootOS :Bool Func Receive( ATimeOut : Int) : TReplyStatus Func ReceiveBuf( var Buf, Count : Int) : Int Func ReceiveLength : Int Func ReceiveText :Str Func ReceiveSerialData(var Data: TByteArray; DataSize:Card):Card Func ReceiveSerialText:Str Func RecodeDate(const AValue:TDateTime;const AYear,AMonth,ADay:Word):TDateTime Func RecodeDateTime(const AValue:TDateTime;const AYear,AMonth,ADay,AHr,AMin,ASec,AMilliSec:Word):TDateTime Func RecodeDay( const AValue : TDateTime; const ADay : Word) : TDateTime Func RecodeHour( const AValue : TDateTime; const AHour : Word) : TDateTime Func RecodeMilliSecond(const AValue:TDateTime;const AMilliSecond:Word):TDateTime Func RecodeMinute( const AValue : TDateTime; const AMinute : Word) : TDateTime Func RecodeMonth( const AValue : TDateTime; const AMonth : Word) : TDateTime Func RecodeSecond( const AValue : TDateTime; const ASecond : Word) : TDateTime Func RecodeTime(const AValue:TDateTime;const AHour,AMinute,ASecd,AMilliSec:Word):TDateTime Func RecodeYear( const AValue : TDateTime; const AYear : Word) : TDateTime Func Reconcile( const Results : OleVariant) :Bool Func Rect( Left, Top, Right, Bottom : Int) : TRect Func Rect(ALeft: Int; ATop: Int; ARight: Int; ABottom: Int): TRect) Func Rect2( const ATopLeft, ABottomRight : TPoint) : TRect; Func RectAssign( const Left, Top, Right, Bottom : Int) : TRect Func RectAssignPoints( const TopLeft, BottomRight : TPoint) : TRect Func RectBounds( const Left, Top, Width, Height : Int) : TRect Func RectCenter( const R : TRect) : TPoint Func RectEqual( const R1, R2 : TRect) :Bool Func RectHeight( const R : TRect) : Int Func RectIncludesPoint( const R : TRect; const Pt : TPoint) :Bool Func RectIncludesRect( const R1, R2 : TRect) :Bool Func RectIntersection( const R1, R2 : TRect) : TRect Func RectIntersectRect( const R1, R2 : TRect) :Bool Func RectIsEmpty( const R : TRect) :Bool Func RectIsNull( const R : TRect) :Bool Func RectIsSquare( const R : TRect) :Bool Func RectIsValid( const R : TRect) :Bool Func RectsAreValid( R : array of TRect) :Bool Func RectUnion( const R1, R2 : TRect) : TRect Func RectWidth( const R : TRect) : Int Func RedComponent( const Color32 : TColor32) : Int Func Refresh :Bool Func RefStringListCopy(aRefArray:TStringlist):TStringList; Func RegisterConversionFamily( const ADescription :Str) : TConvFamily Func RegisterConversionType(AConvTypeInfo: TConvTypeInfo; out AType : TConvType) :Bool; Func RegisterConversionType(const AFam:TConvFamil;const ADescr:str;const AFact:Double):TConvType Func RegistryRead(keyHandle: Longint; keyPath, myField:Str):Str; Func ReleaseDC(hdwnd: HWND; hdc: HDC): Int; Func ReleaseHandle : HBITMAP Func ReleaseHandle : HENHMETAFILE Func ReleaseHandle : HICON Func ReleasePalette : HPALETTE Func RemainderFloat( const X, Y : Float) : Float Func Remove(AClass : TClass) : Int Func Remove(AComponent : TComponent) : Int Func Remove(AItem : Int) : Int Func Remove(AItem : Pointer) : Pointer Func Remove(AItem : TObject) : TObject Func Remove(AObject : TObject) : Int Func RemoveBackslash( const PathName :Str) :Str Func RemoveDF( aString :Str) :Str //removes thousand separator Func RemoveDir( Dir :Str) :Bool Func RemoveDir(const Dir:Str):Bool) Func RemoveDirectory(PathName: PChar): WordBool; stdcall; Func RemoveFileExt( const FileName :Str) :Str Func RemoveHeaderEntry( AHeader, AEntry :Str) :Str Func RenameFile( OldName, NewName :Str) :Bool Func RenameFile(const OldName:Str; const NewName:Str):Bool) Func ReplaceStr( const AText, AFromText, AToText :Str) :Str Func ReplaceText( const AText, AFromText, AToText :Str):Str Func Replicate(c : char;I : longInt) :Str; Func Request : TWebRequest Func ResemblesText( const AText, AOther :Str):Bool Func Reset :Bool Func Reset2(mypath:Str): TStringlist //string; Func ResInstLoad(Instance:THandle;ResType:TResType;const Name:str;MaskColor:TColor):Bool Func ResourceLoad(ResType:TResType;const Name string;MaskColor:TColor):oolean Func Response : TWebResponse Func ResumeSupported :Bool Func RETHINKHOTKEYS :Bool Func RETHINKLINES :Bool Func Retrieve( const MsgNum : Int; AMsg : TIdMessage) :Bool Func RetrieveCurrentDir :Str Func RetrieveDeltas( const cdsArray : array of TClientDataset): Variant Func RetrieveHeader( const MsgNum : Int; AMsg : TIdMessage):Bool Func RetrieveMailBoxSize : Int Func RetrieveMsgSize( const MsgNum : Int) : Int Func RetrieveProviders( const cdsArray : array of TClientDataset): Variant Func RetrieveRaw( const MsgNum : Int; const Dest: TStrings):bool Func ReturnMIMEType( var MediaType, EncType :Str):Bool Func ReverseBits( Value:Byte) : Byte; Func ReverseBits1(Value:Shortint) : Shortint; Func ReverseBits2(Value:Smallint) : Smallint; Func ReverseBits3(Value:Word) : Word; Func ReverseBits4(Value:Card) :Card; Func ReverseBits4(Value:Int) : Int; Func ReverseBits5(Value:Int64) : Int64; Func ReverseBytes(Value:Word) : Word; Func ReverseBytes1(Value:Smallint):Smallint; Func ReverseBytes2(Value:Int): Int; Func ReverseBytes3(Value:Card):Card; Func ReverseBytes4(Value:Int64): Int64; Func ReverseString(const AText :Str) :Str Func ReverseDNSLookup(const IPAddrs:Str;DNSServer:Str;Timeout,Retries:Int;var HName:Str):Bool; Func Revert : HResult Func RGB(R,G,B: Byte): TColor; Func RGB2BGR( const Color : TColor) : TColor Func RGB2TColor( R, G, B : Byte) : TColor Func RGBToWebColorName( RGB : Int) :Str Func RGBToWebColorStr( RGB : Int) :Str Func RgbToHtml( Value : TColor) :Str Func HtmlToRgb(const Value:Str): TColor; Func RightStr(const AStr :Str; Len : Int) :Str Func RightStr(const AText : Ansistr; const ACount : Int): Ansistr; Func RightStr(const AText : WideString; const ACount : Int): WideString; Func ROL( AVal: LongWord; AShift : Byte): LongWord Func ROR( AVal: LongWord; AShift : Byte): LongWord Func RotatePoint(Point:TFloatPoint;const Center:TFloatPoint;const Angle:Float):TFloatPoint Func RotatePoint(Point:TFloatPoint;const Center:TFloatPoint;const Angle:Double):TFloatPoint; Func Round(e : Extended) : Longint; Func Round64(e: extended): Int64; Func RoundAt( const Value :Str; Position : SmallInt) :Str type TRoundToRange = -37..37; TRoundToEXRangeExtended = -20..20; Func RoundTo(const AValue:Extende;const ADigit:TRoundToEXRangeExtended):Extended;; Func SimpleRoundTo(const AValue:Extended;const ADigit: TRoundToRange): Extended;; Func RoundFrequency( const Frequency : Int) : Int Func RoundInt( Value : Int; StepSize : Int) : Int Func RoundPoint( const X, Y : Double) : TPoint Func RoundRect( const ALeft, ATop, ARight,ABottom :Double):TRect Func RowCount : Int Func RowRequest(const Row:OleVariant;RequestType:Int;var OwnerData:OleVariant):OleVariant Func RowRequest( Row : OleVariant; Options : TFetchOptions) : OleVariant Func RPos( const ASub, AIn :Str; AStart : Int) : Int Func RRot( const Value : Byte; const Count : TBitRange) : Byte; Func RRot1( const Value : Word; const Count : TBitRange) : Word; Func RRot2( const Value : Int; const Count : TBitRange) : Int; Func RunDLL32(const ModuleNa,FuncName,CmdLine:str;WaitForCompletion:Bool;CmdShow:Int):Bool Func RunningProcessesList( const List : TStrings; FullPath :Bool) :Bool Func RunByteCode(Bytecode: Ansistr; out RuntimeErrors: Ansistr):Bool;; Func RunCompiledScript2(Bytecode: Ansistr;out RuntimeErrors:Ansistr): Bool; Func S_AddBackSlash( const ADirName :Str) :Str Func S_AllTrim( const cStr :Str) :Str Func S_AtRepl( const cAT, cStr, cRepl :Str) :Str Func S_Cut( const cStr :Str; const iLen : Int) :Str Func S_DecryptCRC32( const crc :Str; StartKey, MultKey, AddKey : Int): Int Func S_DirExists( const ADir :Str) :Bool Func S_Empty( const cStr :Str) :Bool Func S_EncryptCRC32(const crc:LongWORD;StartKey,MultKey,AddKey:Int):str Func S_LargeFontsActive :Bool Func S_LimitDigits( AValue : Extended; ANumDigits : Int) : Extended Func S_LTrim( const cStr :Str) :Str Func S_ReadNextTextLineFromStream( stream : TStream) :Str Func S_RepeatChar( const iLen : Int; const AChar : Char) :Str Func S_ReplFirst( const cAT, cStr, cRepl :Str) :Str Func S_RoundDecimal( AValue : Extended; APlaces : Int) : Extended Func S_RTrim( const cStr :Str) :Str Func S_RTrimCopy( const cStr :Str; iPos, iLen : Int) :Str //Type TS_ShellExecuteCmd = (seCmdOpen,seCmdPrint,seCmdExplore); Func S_ShellExecute(aFilename:str;aParameters:str;aCommand:TS_ShellExecuteCmd):str Func S_Space( const iLen : Int) :Str Func S_StrBlanks( const cStr :Str; const iLen : Int) :Str Func S_StrBlanksCuttooLong( const cStr :Str; const iLen : Int) :Str Func S_StrCRC32( const Text :Str) : LongWORD Func S_StrDecrypt96(const InString:Str;StartKey,MultKey,AddKey:Int):str Func S_StrEncrypt96(const InString:Str;StartKey,MultKey,AddKey:int):Str Func S_StringtoUTF_8( const AString :Str) :Str Func S_StrLBlanks( const cStr :Str; const iLen : Int) :Str Func S_StrToReal(const cStr:Str; var R: Double):Bool Func S_TokenEnd( cBuffer : PChar; lEmptyToken :Bool) :Bool Func S_TokenNext( cBuffer : PChar; lEmptyToken :Bool):Str Func S_UTF_8ToString( const AString :Str) :Str Func S_WBox( const AText :Str) : Int Func SameDate( const A, B : TDateTime) :Bool Func SameDate(const A, B: TDateTime):Bool; Func SameDateTime( const A, B : TDateTime) :Bool Func SameDateTime(const A, B: TDateTime):Bool; Func SameFileName( S1, S2 :Str) :Bool Func SameText( S1, S2 :Str) :Bool Func SameText(const S1:Str; const S2:Str):Bool) Func SameTime( const A, B : TDateTime) :Bool Func SameTime(const A, B: TDateTime):Bool; Func SameValue(const A, B: Extended; Epsilon: Extended):Bool //overload; Func SameValue1(const A, B: Double; Epsilon: Double):Bool //overload; Func SameValue2(const A, B: Single; Epsilon: Single):Bool //overload; Func SampleVariance( const X : TDynFloatArray) : Float Func Sar( const Value : Shortint; const Count : TBitRange) : Shortint; Func Sar1( const Value : Smallint; const Count : TBitRange) : Smallint; Func Sar2( const Value : Int; const Count : TBitRange) : Int; Func SaveToFile( const AFileName : TFileName) :Bool Func SaveAsExcelFile(AGrid:TStringGrid;ASheetName,AFileName:str;open:bool):Bool; Func SaveAsExcel(aGrid:TStringGrid;aSheetName,aFileName:str;openexcel:boolean):Bool; Func ScanF(const aformat:Str; const args: array of const):Str; Func SCREENTOCLIENT(POINT:TPOINT):TPOINT Func SearchBuf(Buf:PChar;BufLen:Int;SelStart,SelLength:Int;SearchString:str;Options:TStringSearchOptions):PChar Func SearchBuf2(Buf:str;SelStart,SelLength:Int;SearchString:str;Options:TStringSearchOptions):Int; Func SearchRecattr: Int; Func SearchRecExcludeAttr: Int; Func SearchRecFileSize64( const SearchRec: TSearchRec):Int64 Func SearchRecname:Str; Func SearchRecsize: Int; Func SearchRecTime: Int; Func Sec( const X : Extended) : Extended Func Secant( const X : Extended) : Extended Func SecH( const X : Extended) : Extended Func SecondOf( const AValue : TDateTime) : Word Func SecondOfTheDay( const AValue : TDateTime) : LongWord Func SecondOfTheHour( const AValue : TDateTime) : Word Func SecondOfTheMinute( const AValue : TDateTime) : Word Func SecondOfTheMonth( const AValue : TDateTime) : LongWord Func SecondOfTheWeek( const AValue : TDateTime) : LongWord Func SecondOfTheYear( const AValue : TDateTime) : LongWord Func SecondsBetween( const ANow, AThen : TDateTime) : Int64 Func SecondSpan( const ANow, AThen : TDateTime) : Double Func SectionExists( const Section :Str) :Bool Func Seek( const KeyValues : Variant; SeekOption : TSeekOption) :Bool Func Seek(dlibMove: Longint; dwOrigin: Longint; out libNewPosition : Largeint):HResult Func Seek(Offset:LongInt;Origin:Word):LongInt Func SelectDirectory(var Directory:str; Options:TSelectDirOpts;HelpCtx:Longint):Bool; Func SelectDirectory1(const Caption:str;const Root:WideString;var Directory:str; Options:TSelectDirExtOpts;Parent:TWinControl):Bool; Func SelectImage(var AFileName:str;const Extensions,Filter:str):Boolean Func SendAppMessage(Msg:Card; WParam, LParam: Longint): Longint Func SendBuf( var Buf, Count : Int) : Int Func SendCmd( const AOut :Str; const AResponse : SmallInt) : SmallInt; Func SendCmd1( const AOut :Str; const AResponse : array of SmallInt) : SmallInt; Func SendKey( AppName :Str; Key : Char) :Bool Func SendMessage(hWnd: HWND; Msg: longword; wParam: longint; lParam: longint):Bool; Func SendStream( AStream : TStream) :Bool Func SendStreamThenDrop( AStream : TStream) :Bool Func SendText( const S :Str) : Int Func SendSerialData(Data: TByteArray; DataSize:Card):Card Func SendSerialText(Data:Str):Card Func Sent :Bool Func ServicesFilePath:Str Func SetAlpha( const Color32 : TColor32; NewAlpha : Int) : TColor32 Func SetBit( const Value:Byte; const Bit : TBitRange) : Byte; Func SetBit1(const Value:Shortint; const Bit : TBitRange) : Shortint; Func SetBit2(const Value:Smallint; const Bit : TBitRange) : Smallint; Func SetBit3(const Value:Word; const Bit : TBitRange) : Word; Func SetBit4(const Value:Card; const Bit : TBitRange) Cardinal; Func SetBit4(const Value:Int; const Bit : TBitRange) : Int; Func SetBit5(const Value:Int64; const Bit : TBitRange) : Int64; Func SetClipboard( NewClipboard : TClipboard) : TClipboard Func SetColorBlue( const Color : TColor; const Blue : Byte) : TColor Func SetColorFlag( const Color : TColor; const Flag : Byte) : TColor Func SetColorGreen( const Color : TColor; const Green : Byte) : TColor Func SetColorRed( const Color : TColor; const Red : Byte) : TColor Func SetCurrentDir( Dir :Str) :Bool Func SetCurrentDir(const Dir:Str):Bool) Func SetCurrentDirectory(PathName: PChar): WordBool; stdcall; Func SetDirCreation( const DirName :Str; const DateTime : TDateTime):Bool Func SetDirLastAccess(const DirName:str;const DateTime: TDateTime) : Bool Func SetDirLastWrite(const DirName:str; const DateTime : TDateTime): Bool Func SetDisplayResolution( const XRes, YRes : DWORD) : Longint Func SetEndOfFile(Handle: Int): LongBool; stdcall; Func SetEnvironmentVar( const Name, Value :Str) :Bool Func SetErrorProc( ErrorProc : TSocketErrorProc) : TSocketErrorProc Func SetFileCreation(const FileName:str; const DateTime : TDateTime): Bool Func SetFileLastAccess( const FileName:str; const DateTime:TDateTime): Bool Func SetFileLastWrite(const FileName:str;const DateTime:TDateTime):BoolFunc SetFileTimeStamp(const FileName:str;TimeStamp:Int):Bool Func SETFOCUSEDCONTROL(CONTROL:TWINCONTROL):BOOLEAN Func SetLocalTime( Value : TDateTime) :Bool Func SetPrecisionTolerance( NewTolerance : Float) : Float Func SetPrinter( NewPrinter : TPrinter) : TPrinter Func SetPrivilege(privilegeName:Str; enable:Bool):Bool; Func SetRGBValue( const Red, Green, Blue : Byte) : TColor Func SetSequence( S, Localizar, Substituir : shortstring): shortstring Func SetSize( libNewSize : Longint) : HResult Func SetUserObjectFullAccess( hUserObject : THandle) :Bool Func Sgn( const X : Extended) : Int Func SHA1(const fileName:Str):Str; Func SHA256(astr:Str; amode: char):Str) Func SHA512(astr:Str; amode: char):Str) Func ShareMemoryManager :Bool Func ShellExecute(hWnd:HWND;Operation,FileN,Parameters,Dir:str;ShowCmd:Int):Int;stdcall; Func Shellexecute2(hwnd: HWND; const FileName:Str):Int; stdcall; Func ShellExecute3(aFilename:str;aParameters:str;aCommand:TS_ShellExecuteCmd):str; Func SHORTCUT( KEY : WORD; SHIFT : TSHIFTSTATE): TSHORTCUT Func SHORTCUTTOTEXT( SHORTCUT : TSHORTCUT):Str Func ShortDateFormat:str; Func ShortenString(const DC:HDC;const S:WideString;const Width:Int;const RTL:Bool;EllipsisWidth:Int):WideString Func ShortTimeFormat:Str; Func SHOWMODAL:Int Func ShowModalControl(aControl:TControl;BS:TFormBorderStyle;BI:TBorderIcons;WS:TWindowState;aColor:TColor;BW:Int;Title:str;BeforeShowModal: TNotifyEvent):TModalResult; Func ShowModalPanel(aPnl:TCustomPanel;Titl:str;ShowCloseIcn:Bool;BefShowModal:TNotifyEvent):TModalResult; Func ShowWindow(C1: HWND; C2: Int):Bool; Proc ShowMemory //in Dialog Func ShowMemory2:Str; Func ShutDownOS :Bool Func Signe( const X, Y : Extended) : Extended Func Sign( const X : Extended) : Int Func Sin(e : Extended) : Extended; //Assuming trigonometric arguments in degrees //| Use instead PrintF('in deg: %.18f',[sin(degtorad(60.0))]); //0.866025403784438647 Func sinc( const x : Double) : Double Func SinJ( X : Float) : Float Func Size( const AFileName :Str) : Int Func SizeOf: Longint; Func SizeofResource( ModuleHandle : HMODULE; ResHandle: TResourceHandle): Int Func SlashSep(const Path, S:Str):Str Func SLNDepreciation( const Cost, Salvage : Extended; Life : Int) : Extended Func SleepEx( dwMilliseconds : DWORD; bAlertable : BOOL) : DWORD Func SmallPoint(X, Y: Int): TSmallPoint) Func Soundex( const AText :Str; ALength : TSoundexLength) :Str Func SoundexCompare( const AText, AOther :Str; ALength : TSoundexLength) : Int Func SoundexInt( const AText :Str; ALength : TSoundexIntLength) : Int Func SoundexProc( const AText, AOther :Str) :Bool Func SoundexSimilar(const AText,AOther:str;ALength:TSoundexLength):Boolean Func SoundexWord( const AText :Str) : Word Func SourcePos : Longint Func SourcePos:LongInt Func Split0( Str :Str; const substr :Str) : TStringList Proc SplitNameValue( const Line :Str; var Name, Value :Str) Func SQLRequiresParams( const SQL : WideString) :Bool Func Sqr(e : Extended) : Extended; Func Sqrt(e : Extended) : Extended; Func StartIP :Str Func StartPan( WndHandle : THandle; AControl : TControl) :Bool Func StartOfADay( const AYear, AMonth, ADay : Word) : TDateTime; Func StartOfADay1( const AYear, ADayOfYear : Word) : TDateTime; Func StartOfAMonth( const AYear, AMonth : Word) : TDateTime Func StartOfAWeek( const AYear, AWeekOfYear : Word; const ADayOfWeek:Word):TDateTime Func StartOfAYear( const AYear : Word) : TDateTime Func StartOfTheDay( const AValue : TDateTime) : TDateTime Func StartOfTheMonth( const AValue : TDateTime) : TDateTime Func StartOfTheWeek( const AValue : TDateTime) : TDateTime Func StartOfTheYear( const AValue : TDateTime) : TDateTime Func StartsStr( const ASubText, AText :Str) :Bool Func StartsText( const ASubText, AText :Str) :Bool Func StartsWith( const ANSIStr, APattern :Str) :Bool Func StartsWith( const str :Str; const sub :Str) :Bool Func StartsWithACE( const ABytes : TIdBytes) :Bool Func StatusString( StatusCode : Int) :Str Func StdDev( const Data : array of Double) : Extended Func Stop : Float Func StopCount( var Counter : TJclCounter) : Float Func StoreColumns :Bool Func StrAfter( const sString :Str; const sDelimiters :Str):Str; Func StrAfter1(const sString:str; const sDelimiters:str;out cDelimiter:char):str; Func StrAlloc( Size :Card) : PChar Func StrAlloc(Size:Card): PChar) Func StrBefore( const sString :Str; const sDelimiters :Str) :Str; Func StrBefore1(const sString:str;const sDelimiters:str;out cDelimiter:char):str; Func StrBufSize( Str : PChar) :Card Func StrBufSize(const Str: PChar):Card) Func StrByteType( Str : PChar; Index :Card) : TMbcsByteType Func StrByteType(Str: PChar; Index:Card): TMbcsByteType) Func StrCat( Dest : PChar; Source : PChar) : PChar Func StrCat(Dest: PChar; const Source: PChar): PChar) Func StrCharLength( Str : PChar) : Int Func StrComp( Str1, Str2 : PChar) : Int Func StrComp(const Str1: PChar; const Str2: PChar): Int) Func StrCopy( Dest : PChar; Source : PChar) : PChar Func StrCopy(Dest: PChar; const Source: PChar): PChar) Func Stream_to_Ansistr( Source : TStream) : Ansistr Func Stream_to_Base64( Source : TStream) : Ansistr Func Stream_to_decimalbytes( Source : TStream) :Str Func Stream2WideString( oStream : TStream) : WideString Func StreamtoAnsistr( Source : TStream) : Ansistr Func StreamToByte( Source : TStream) :Str Func StreamToDecimalbytes( Source : TStream) :Str Func StreamtoOrd( Source : TStream) :Str Func StreamToString( Source: TStream) :Str Func StreamToString2(Source: TStream) :Str Func StreamToString3(Source: TStream) :Str Func StreamToString4(Source: TStream) :Str Func StrECopy( Dest : PChar; Source : PChar) : PChar Func StrEmpty( const sString :Str) :Bool Func StrEnd( Str : PChar) : PChar Func StrEnd(const Str: PChar): PChar) Func StrFilter( const sString :Str; xValidChars : TCharSet) :Str Func StrFmt(Buffer, Format: PChar; const Args: array of const): PChar) Func StrGet(var S :Str; I : Int) : Char; Func StrGet2(S :Str; I : Int) : Char; Func StrHasPrefix( const sString :Str; const sPrefix :Str) :Bool Func StrHasSuffix( const sString :Str; const sSuffix :Str) :Bool Func StrHtmlDecode( const AStr :Str) :Str Func StrHtmlEncode( const AStr :Str) :Str Func StrToBytes(const Value:Str): TBytes; Func StrIComp( Str1, Str2 : PChar) : Int Func StringOfChar(c : char;I : longInt) :Str; Func StringOfChar2( ch : WideChar; Count : Int) : WideString; Func StringPad(InputStr,FillChar:Str; StrLen:Int; StrJustify:Boolean):Str; Func StringRefCount(const s:Str): Int; Func StringReplace(S,OldPattern,NewPattern:str;Flags:TReplaceFlags):str Func JStringReplace(const S,OldPattern, NewPattern:Str; Flags : TReplaceFlags):str Func StringReplace(const SourceString,OldPattern,NewPattern:str;Flags:TReplaceFlags):str; Func StringRemove( const S, Pattern :Str; Flags : TReplaceFlags) :Str Func StringToBoolean( const Ps :Str) :Bool Func StringToColor(const S:Str): TColor) Func StringToCursor(const S:Str): TCursor; Func StringToGUID(const S:Str): TGUID) Func StringTokenizer( const str :Str; const delim :Str) : IStringTokenizer Func StringToStringArray( const str :Str; const delim:Str): TStringDynArray Func StringWidth( S :Str) : Int Func StrInternetToDateTime( Value :Str) : TDateTime Func StrIsDateTime( const Ps :Str) :Bool Func StrIsFloatMoney( const Ps :Str) :Bool Func StrIsInt( const S :Str) :Bool Func StrLCat( Dest : PChar; Source : PChar; MaxLen :Card) : PChar Func StrLComp( Str1, Str2 : PChar; MaxLen :Card) : Int Func StrLCopy( Dest : PChar; Source : PChar; MaxLen :Card) : PChar Func StrLen( Str : PChar) :Card Func StrLen(const Str: PChar):Card) Func StrLessPrefix( const sString :Str; const sPrefix:Str):Str Func StrLessSuffix( const sString :Str; const sSuffix:Str):Str Func StrLIComp( Str1, Str2 : PChar; MaxLen :Card) : Int Func StrLower( Str : PChar) : PChar Func StrMove( Dest : PChar; Source : PChar; Count :Card) : PChar Func StrMove(Dest: PChar; const Source: PChar; Count:Card): PChar) Func StrNew( Str : PChar) : PChar Func StrNew(const Str: PChar): PChar) Func StrNextChar( Str : PChar) : PChar Func StrPad( const sString:str;const sPad:str;const iLength:Int):Str Func StrParse( var sString :Str; const sDelimiters :Str) :Str; Func StrParse1(var sString:str;const sDelimiters:str;out cDelimiter:char) string; Func StrPas( Str : PChar) :Str Func StrPas(const Str: PChar):Str) Func StrPCopy( Dest : PChar; Source :Str) : PChar Func StrPCopy(Dest: PChar; const Source:Str): PChar) Func StrPLCopy( Dest : PChar; Source :Str; MaxLen :Card) : PChar Func StrPos( Str1, Str2 : PChar) : PChar Func StrScan(const Str: PChar; Chr: Char): PChar) Func StrRScan(const Str: PChar; Chr: Char): PChar) Func StrToBcd( const AValue :Str) : TBcd Func StrToBool( S :Str) :Bool Func StrToBoolDef( S :Str; Default :Bool) :Bool Func StrToCard( const AStr :Str) :Card Func StrToConv( AText :Str; out AType : TConvType) : Double Func StrToCurr( S :Str) : Currency; Func StrToCurr(const S:Str): Currency) Func StrToCurrDef( S :Str; Default : Currency) : Currency; Func StrToDate( S :Str) : TDateTime; Func StrToDate(const s:Str): TDateTime; Func StrToDateDef( S :Str; Default : TDateTime) : TDateTime; Func StrToDateTime( S :Str) : TDateTime; Func StrToDateTime(const S:Str): TDateTime) Func StrToDateTimeDef( S :Str; Default : TDateTime) : TDateTime; Func StrToDay( const ADay :Str) : Byte Func StrToFloat( S :Str) : Extended; Func StrToFloat(s:Str): Extended; Func StrToFloatDef( S :Str; Default : Extended) : Extended; Func StrToFloatDef(const S:Str; const Default: Extended): Extended) Func StrToFloat( S :Str) : Extended; Func StrToFloat2( S :Str; FormatSettings : TFormatSettings) : Extended; Func StrToFloatDef( S :Str; Default : Extended) : Extended; Func StrToFloatDef2(S:str;Default:Extended;FormatSettings:TFormatSettings):Extended; Func StrToCurr( S :Str) : Currency; Func StrToCurr2( S :Str; FormatSettings : TFormatSettings) : Currency; Func StrToCurrDef( S :Str; Default : Currency) : Currency; Func StrToCurrDef2(S:str; Default:Currency; FormatSettings:TFormatSettings):Currency; Func StrToTime2( S :Str; FormatSettings : TFormatSettings): TDateTime; Func StrToTimeDef( S :Str; Default : TDateTime) : TDateTime; Func StrToTimeDef2(S:str; Default:TDateTime;FormatSettings:TFormatSettings):TDateTime; Func TryStrToTime( S :Str; Value : TDateTime) :Bool; Func StrToDateTime( S :Str) : TDateTime; Func StrToDateTime2( S :Str; FormatSettings : TFormatSettings) : TDateTime; Func StrToDateTimeDef( S :Str; Default : TDateTime) : TDateTime; Func StrToFloatRegionalIndependent(aValue:str;aDecimalSymbol:Char;aDigitGroupSymbol:Char):Extended Func StrToInt( S :Str) : Int Func StrToInt(s:Str): Longint; Func StrToInt64( S :Str) : Int64 Func StrToInt64(s:Str): int64; Func StrToInt64Def( S :Str; Default : Int64) : Int64 Func StrToInt64Def(const S:Str; const Default: Int64):Int64) Func StrToIntDef( S :Str; Default : Int) : Int Func StrToIntDef(const S:Str; Default: Int): Int) Func StrToIntDef(s:Str; def: Longint): Longint; Func StrToMonth( const AMonth :Str) : Byte Func StrToTime( S :Str) : TDateTime; Func StrToTime(const S:Str): TDateTime) Func StrToTimeDef( S :Str; Default : TDateTime) : TDateTime; Func StrToWord( const Value :Str) : Word Func StrToXmlDate( const DateStr :Str; const Format :Str) :Str Func StrToXmlDateTime( const DateStr :Str; const Format :Str) :Str Func StrToXmlTime( const TimeStr :Str; const Format :Str) :Str Func StrUpper( Str : PChar) : PChar Func StuffString(const AText:str;AStart, ALength:Card;const ASubText:str):str Func Sum( const Data : array of Double) : Extended Func SumFloatArray( const B : TDynFloatArray) : Float Func SumInt( const Data : array of Int) : Int Func SumOfSquares( const Data : array of Double) : Extended Func SumPairProductFloatArray( const X, Y : TDynFloatArray) : Float Func SumSquareDiffFloatArray( const B : TDynFloatArray; Diff : Float) : Float Func SumSquareFloatArray( const B : TDynFloatArray) : Float Func Supports( CursorOptions : TCursorOptions) :Bool Func SupportsClipboardFormat( AFormat : Word) :Bool Func SwapWord(w : word): word) Func SwapInt(i : Int): Int) Func SwapLong(L : longint): longint) Func Swap(i : Int): Int) Func SYDDepreciation(const Cost,Salvage:Extended;Life,Period:Int): Extended Func SyncTime :Bool Func SysErrorMessage( ErrorCode : Int) :Str Func SysErrorMessage(ErrorCode: Int):Str) Func SystemTimeToDateTime( SystemTime : TSystemTime) : TDateTime Func SystemTimeToDateTime(const SystemTime: TSystemTime): TDateTime; Func SysStringLen(const S: WideString): Int; stdcall; Func TabRect( Index : Int) : TRect Func Tan( const X : Extended) : Extended Func TaskMessageDlg(const Title,Msg:str;DlgType:TMsgDlgType;Buttons:TMsgDlgButtons;HelpCtx:Longint):Int; Func TaskMessageDlg1(const Title,Msg:str;DlgType:TMsgDlgType;Buttons:TMsgDlgButtons; HelpCtx:Longint;DefaultButton:TMsgDlgBtn):Int; Func TaskMessageDlgPos(const Title,Msg:str;DlgType:TMsgDlgType;Bts:TMsgDlgButtons;HelpCtx:Longint;X,Y:Int):Int; Func TaskMessageDlgPos1(const Title,Msg:str;DlgType:TMsgDlgType;Buttons:TMsgDlgButtons;HelpCtx:Longint;X,Y:Int;DefaultButton:TMsgDlgBtn):Int; Func TaskMessageDlgPosHelp(const Title,Msg:str;DlgType:TMsgDlgType;Buttons:TMsgDlgButtons;HelpCtx:Longint;X,Y:Int;const HelpFileName:str): Int; Func TaskMessageDlgPosHelp1(const Title, Msg:str;DlgType: TMsgDlgType; Buttons : TMsgDlgButtons;HelpCtx:Longint;X,Y:Int; const HelpFileName:str;DefaultButton:TMsgDlgBtn):Int; Func TenToY( const Y : Float) : Float Func TerminateApp( ProcessID : DWORD; Timeout : Int) : TJclTerminateAppResult Func TerminateTask( Wnd : HWND; Timeout : Int) : TJclTerminateAppResult Func TestBit( const Value:Byte; const Bit : TBitRange) : Bool; Func TestBit2(const Value:Shortint; const Bit : TBitRange): Bool; Func TestBit3(const Value:Smallint; const Bit : TBitRange): Bool; Func TestBit4(const Value:Word; const Bit : TBitRange):Bool; Func TestBit5(const Value:Card; const Bit : TBitRange): Bool; Func TestBit6(const Value:Int; const Bit : TBitRange): Bool; Func TestBit7(const Value:Int64; const Bit : TBitRange): Bool; Func TestBits(const Value, Mask:Byte) :Bool; Func TestBits1(const Value,Mask:Shortint) :Bool; Func TestBits2(const Value,Mask:Smallint) :Bool; Func TestBits3(const Value,Mask:Word) :Bool; Func TestBits4(const Value,Mask:Card) :Bool; Func TestBits5(const Value,Mask:Int) :Bool; Func TestBits6(const Value,Mask:Int64) :Bool; Func TestFDIVInstruction :Bool Func TestStreamFormat(Stream: TStream): TStreamOriginalFormat Func TextExtent( const Text :Str) : TSize Func TextHeight(Text:Str): Int; Func TextIsSame( const A1 :Str; const A2 :Str) :Bool Func TextStartsWith( const S, SubS :Str) :Bool Func TextToFloat(Buffer: PChar; var Value: Extended; ValueType: TFloatValue):Boolean) Func ConvInt(i : Int):str; Func IntToText(i : Int):str; Func TEXTTOSHORTCUT( TEXT :Str) : TSHORTCUT Func TextWidth(Text:Str): Int; Func ThreadCount : Int Func ThousandSeparator: char; Func Ticks :Card Func Time : TDateTime Func Time: TDateTime; Func TimeGetTime: int64; Func TimeOf( const AValue:TDateTime):TDateTime Func TimeSeparator: char; Func TimeStampToDateTime(const TimeStamp: TTimeStamp): TDateTime Func TimeStampToMSecs( TimeStamp : TTimeStamp) : Comp Func TimeStampToMSecs(const TimeStamp: TTimeStamp): Comp) Func TimeToStr( DateTime : TDateTime) :Str; Func TimeToStr(const DateTime: TDateTime):Str; Func TimeZoneBias : TDateTime Func ToCommon( const AValue : Double) : Double Func ToCommon(const AValue: Double): Double; Func Today : TDateTime Func ToggleBit( const Value:Byte; const Bit : TBitRange) : Byte; Func ToggleBit1(const Value:Shortint; const Bit : TBitRange): Shortint; Func ToggleBit2(const Value:Smallint; const Bit : TBitRange): Smallint; Func ToggleBit3(const Value:Word; const Bit : TBitRange) : Word; Func ToggleBit4(const Value:Card; const Bit : TBitRange):Card; Func ToggleBit5(const Value:Int; const Bit : TBitRange) : Int; Func ToggleBit6(const Value:Int64; const Bit : TBitRange) : Int64; Func TokenComponentIdent:str Func TokenFloat : Extended Func TokenFloat:Extended Func TokenInt : Longint Func TokenInt:LongInt Func TokenString :Str Func TokenString:str Func TokenSymbolIs( const S :Str) :Bool Func TokenSymbolIs(S:str):Boolean Func Tomorrow : TDateTime Func ToRightOf( const pc : TControl; piSpace : Int) : Int Func ToString :Str Func TotalVariance( const Data : array of Double) : Extended Func Trace2( AURL :Str) :Str; Func TrackMenu( Button : TToolButton) :Bool Func TRANSLATE( SRC, DEST : PCHAR; TOOEM :Bool) : Int Func TranslateURI( const URI :Str) :Str Func TranslationMatchesLanguages( Exact :Bool) :Bool Func TransparentStretchBlt(DstDC:HDC;DstX,DstY,DstW,DstH:Int;SrcDC:HDC;SrcX,SrcY,SrcW,SrcH:Int;MaskDC:HDC;MaskX, MaskY:Int):Bool Func Trim( S :Str) :Str; Func Blank( S :Str) :Str; //alias to Trim Func Trim( S : WideString) : WideString; Func Trim(s : AnyString) : AnyString; Func TrimAllOf( ATrim, AText :Str):str Func TrimLeft( S :Str) :Str; Func TrimLeft( S : WideString) : WideString; Func TrimLeft(const S:Str):Str) Func TrimRight( S:Str) :Str; Func TrimRight( S: WideString) : WideString; Func TrimRight(const S:Str):Str) Func TrueBoolStrs: array of string Func Trunc(e : Extended) : Longint; Func Trunc64(e: extended): Int64; Func TruncPower( const Base, Exponent : Float) : Float Func TryConvTypeToFamily(const AFrom,ATo:TConvType; out AFamily:TConvFamily):Bool; Func TryConvTypeToFamily1(const AType:TConvType;out AFamily:TConvFamily):Bool; Func TryEncodeDate(Year, Month, Day: Word; var Date: TDateTime):Bool; Func TryEncodeDateDay(const AYear,ADayOfYear:Word out AValue:TDateTime): Bool Func TryEncodeDateMonthWeek(const AY,AMonth,AWeekOfMonth,ADayOfWeek:Word;var AValue:TDateTime):Bool Func TryEncodeDateTime(const AYear,AMonth,ADay,AHour,AMin,ASec,AMilliSecond:Word;out AValue:TDateTime):Bool Func TryEncodeDateWeek(const AY,AWeekOfYear:Word;out AValue:TDateTime;const ADayOfWeek:Word):Bool Func TryEncodeDayOfWeekInMonth(const AYear,AMonth,ANthDayOfWeek,ADayOfWeek:Word;out AVal:TDateTime):Bool Func TryEncodeTime(Hour, Min, Sec, MSec: Word; var Time: TDateTime):Bool; Func TryFloatToDateTime( Value : Extended; AResult : TDateTime) :Bool Func TryJulianDateToDateTime( const AValue : Double; out ADateTime : TDateTime) :Bool Func TryLock :Bool Func TryModifiedJulianDateToDateTime(const AValue:Double;out ADateTime:TDateTime):Boolean Func TryRecodeDateTime(const AValue:TDateTime;const AYear,AMonth,ADay,AHour,AMinute,ASecond, AMilliSecond:Word; out AResult:TDateTime):Boolean Func TryStrToBcd( const AValue :Str; var Bcd : TBcd) :Bool Func TryStrToConv( AText :Str; out AValue : Double; out AType : TConvType) :Bool Func TryStrToDate( S :Str; Value : TDateTime) :Bool; Func TryStrToDateTime( S :Str; Value : TDateTime) :Bool; Func TryStrToTime( S :Str; Value : TDateTime) :Bool; Func TryStrToInt(const S: Ansistr; var I: Int):Bool; Func TryStrToInt64(const S: Ansistr; var I: Int64):Bool; Func TryStrToBool(const S:Str; out Value:Bool):Bool; Func TwoByteToWord( AByte1, AByte2 : Byte) : Word Func TwoCharToWord( AChar1, AChar2 : Char) : Word Func TwoToY( const Y : Float) : Float Func UCS4StringToWideString( const S : UCS4String) : WideString Func UIDL( const ADest : TStrings; const AMsgNum : Int) :Bool Func Unassigned: Variant; Func UndoLastChange( FollowChange :Bool) :Bool Func UniCodeToStr(Value:Str):Str; Func UnionRect( out Rect : TRect; const R1, R2 : TRect) :Bool Func UnionRect(out Rect: TRect; const R1, R2: TRect):Bool) Func UnixDateTimeToDelphiDateTime( UnixDateTime :Card) : TDateTime Func UnixPathToDosPath( const Path :Str) :Str Func UnixToDateTime( const AValue : Int64) : TDateTime Func UnixToDateTime(U: Int64): TDateTime; Func UnlockRegion(libOffset Longint;cb: Largeint;dwLockType:Longint):HResult Func UnlockResource( ResData : HGLOBAL) : LongBool Func UnlockVolume( var Handle : THandle) :Bool Func UnMaskString( Mask, Value :Str) :Str Func UpCase(ch : Char ) : Char; Func UpCaseFirst( const AStr :Str) :Str Func UpCaseFirstWord( const AStr :Str) :Str Func UpdateAction( Action : TBasicAction) :Bool Func UpdateKind : TUpdateKind Func UPDATESTATUS : TUPDATESTATUS Func UpperCase( S :Str) :Str Func Uppercase(s : AnyString) : AnyString; Func URLDecode( ASrc :Str) :Str Func URLEncode( const ASrc :Str) :Str Func UseRightToLeftAlignment :Bool Func UseRightToLeftAlignmentForField(const AField:TField;Alignment:TAlignment):Bool Func UseRightToLeftReading :Bool Func UTF8CharLength( Lead : Char) : Int Func UTF8CharSize( Lead : Char) : Int Func UTF8Decode( const S : UTF8String) : WideString Func UTF8Encode( const WS : WideString) : UTF8String Func UTF8LowerCase( const S : UTF8string) : UTF8string Func Utf8ToAnsi( const S : UTF8String) :Str Func Utf8ToAnsiEx( const S : UTF8String; const cp : Int) :Str Func UTF8UpperCase( const S : UTF8string) : UTF8string Func ValidFieldIndex( FieldIndex : Int) :Bool Func ValidParentForm(control: TControl): TForm Func Value : Variant Func ValueExists( const Section, Ident :Str) :Bool Func ValueOf( const Key :Str) : Int Func ValueInSet(AValue: Variant; ASet: Variant):Bool; Func VALUEOFKEY( const AKEY : VARIANT) : VARIANT Func VarArrayFromStrings( Strings : TStrings) : Variant Func VarArrayFromWideStrings( Strings : TWideStrings) : Variant Func VarArrayGet(var S : Variant; I : Int) : Variant; Func VarFMTBcd : TVarType Func VarFMTBcdCreate1 : Variant; Func VarFMTBcdCreate2(const AValue :Str; Precision, Scale : Word) : Variant; Func VarFMTBcdCreate3(const AValue: Double;Precision: Word; Scale: Word):Variant; Func VarFMTBcdCreate4(const ABcd : TBcd) : Variant; Func Variance(const Data : array of Double) : Extended Func VariantAdd2( const V1 : Variant; const V2 : Variant):Variant Func VariantAnd2( const V1 : Variant; const V2 : Variant):Variant Func VariantDiv2( const V1 : Variant; const V2 : Variant):Variant Func VariantGetElement( const V : Variant; i1 : Int) : Variant; Func VariantGetElement1( const V : Variant; i1, i2 : Int) : Variant; Func VariantGetElement2( const V : Variant; i1, i2, i3 : Int) : Variant; Func VariantGetElement3( const V : Variant; i1, i2, i3, i4 : Int):Variant; Func VariantGetElement4( const V : Variant; i1, i2, i3, i4, i5: Int):Variant; Func VariantMod2( const V1 : Variant; const V2 : Variant) : Variant Func VariantMul2( const V1 : Variant; const V2 : Variant) : Variant Func VariantNeg(const V1: Variant) : Variant Func VariantNot(const V1: Variant) : Variant Func VariantOr2(const V1: Variant; const V2 : Variant) :Variant Func VariantShl2(const V1: Variant; const V2 : Variant):Variant Func VariantShr2(const V1: Variant; const V2 : Variant):Variant Func VariantSub2(const V1: Variant; const V2 : Variant):Variant Func VariantXor2(const V1: Variant; const V2 : Variant):Variant Func VarIsEmpty(const V: Variant):Bool; Func VarIsFMTBcd( const AValue : Variant) :Bool; Func VarIsNull(const V: Variant):Bool; Func VarToBcd( const AValue : Variant) : TBcd Func VarType(const V: Variant): TVarType; Func VarType( const V : Variant) : TVarType Func VarAsType( const V : Variant; AVarType : TVarType): Variant Func VarIsType( const V : Variant; AVarType : TVarType):Bool; Func VarIsType1(const V: Variant;const AVarTypes: array of TVarType):Bool; Func VarIsByRef( const V : Variant) : Bool Func VarIsEmpty( const V : Variant) : Bool Proc VarCheckEmpty( const V : Variant) Func VarIsNull( const V : Variant) : Bool Func VarIsClear( const V : Variant) : Bool Func VarIsCustom( const V : Variant) : Bool Func VarIsOrdinal( const V : Variant) : Bool Func VarIsFloat( const V : Variant) : Bool Func VarIsNumeric( const V : Variant) : Bool Func VarIsStr( const V : Variant) :Bool Func VarToStr( const V : Variant) :Str Func VarToStrDef( const V : Variant; const ADefault :Str) :Str Func VarToWideStr( const V : Variant) : WideString Func VarToWideStrDef( const V : Variant; const ADefault : WideString):WideString Func VarToDateTime( const V : Variant) : TDateTime Func VarFromDateTime( const DateTime : TDateTime) : Variant Func VarInRange( const AValue, AMin, AMax : Variant) :Bool Func VarEnsureRange( const AValue, AMin, AMax : Variant) : Variant TVariantRelationship', '( vrEqual, vrLessThan, vrGreaterThan, vrNotEqual) Func VarSameValue( const A, B : Variant) :Bool Func VarCompareValue( const A, B : Variant) : TVariantRelationship Func VarIsEmptyParam( const V : Variant) :Bool Func VarIsError( const V : Variant; out AResult : HRESULT):Boolean; Func VarIsError1( const V : Variant) :Bool; Func VarAsError( AResult : HRESULT) : Variant Proc VarCopyNoInd( var Dest : Variant; const Source : Variant) Func VarIsArray( const A : Variant) :Bool; Func VarIsArray1( const A : Variant; AResolveByRef :Bool) :Bool; Func VarArrayCreate( const Bounds : array of Int; AVarType : TVarType):Variant Func VarArrayOf( const Values : array of Variant) : Variant Func VarArrayRef( const A : Variant) : Variant Func VarTypeIsValidArrayType( const AVarType : TVarType):Bool Func VarTypeIsValidElementType( const AVarType : TVarType):Boolean Func VarArrayDimCount( const A : Variant) : Int Func VarArrayLowBound( const A : Variant; Dim : Int) : Int Func VarArrayHighBound( const A : Variant; Dim : Int) : Int Func VarArrayLock( const A : Variant) : ___Pointer Proc VarArrayUnlock( const A : Variant) Func VarArrayGet( const A : Variant; const Indices : array of Int) : Variant Proc VarArrayPut(var A:Variant;const Value:Variant;const Indices: array of Int) function VarArrayToStr2(const vArray: variant): string; function VarStrNull2(const V: OleVariant): string; function CopyObject(Src, Dest: TObject; Related: Boolean = FALSE): Boolean; function VariantToString(V : OleVariant) : String; Proc DynArrayToVariant(var V: Variant;const DynArray: ___Pointer;TypeInfo: ___Pointer) Proc DynArrayFromVariant(var DynArray:___Pointer;const V: Variant;TypeInfo:___Pointer) Func Unassigned : Variant Func Null : Variant Func VectorAdd( const V1, V2 : TFloatPoint) : TFloatPoint Func VectorAdd(const V1,V2: TFloatPoint): TFloatPoint; Func VectorDot( const V1, V2 : TFloatPoint) : Double Func VectorDot(const V1,V2: TFloatPoint): Double; Func VectorLengthSqr( const V : TFloatPoint) : Double Func VectorLengthSqr(const V: TFloatPoint): Double; Func VectorMult( const V : TFloatPoint; const s : Double) : TFloatPoint Func VectorMult(const V: TFloatPoint; const s: Double): TFloatPoint; Func VectorSubtract( const V1, V2 : TFloatPoint) : TFloatPoint Func VectorSubtract(const V1,V2: TFloatPoint): TFloatPoint; Func Verify( AUserName :Str) :Str Func Versine( X : Float) : Float Func VersionCheck:Bool; Func VersionCheckAct:Str; Func VersionLanguageId( const LangIdRec : TLangIdRec) :Str Func VersionLanguageName( const LangId : Word) :Str Func VersionResourceAvailable( const FileName :Str):Boolean Func Visible :Bool Func VolumeID(DriveChar: Char):Str Func WaitFor( const AString :Str) :Str Func WaitFor( const TimeOut :Card): TJclWaitResult Func WaitFor1 : TWaitResult; Func WaitForData( Timeout : Longint) :Bool Func WebColorNameToColor( WebColorName :Str) : TColor Func WebColorStrToColor( WebColor :Str) : TColor Func WebColorToRGB( WebColor : Int) : Int Func wGet(aURL, afile:Str):Bool;' Func wGet2(aURL, afile:Str):Bool;' //without file open Func wGetX(aURL, afile:Str):Bool; Func wGetX2(aURL, afile:Str):Bool;' //without file open Func WebGet(aURL, afile:Str):Bool;' Func WebExists:Bool; //alias to isinternet Func WeekOf( const AValue : TDateTime) : Word Func WeekOfTheMonth( const AValue : TDateTime) : Word; Func WeekOfTheMonth1( const AValue : TDateTime; var AYear, AMonth : Word) : Word; Func WeekOfTheYear( const AValue : TDateTime) : Word; Func WeekOfTheYear1( const AValue : TDateTime; var AYear : Word) : Word; Func WeeksBetween( const ANow, AThen : TDateTime) : Int Func WeeksInAYear( const AYear : Word) : Word Func WeeksInYear( const AValue : TDateTime) : Word Func WeekSpan( const ANow, AThen : TDateTime): Double Func WideAdjustLineBreaks( const S : WideString; Style:TTextLineBreakStyle):WideString Func WideCat( const x, y : WideString) : WideString Func WideCompareStr( S1, S2 : WideString) : Int Func WideCompareStr(const S1: WideString; const S2: WideString): Int) Func WideCompareText( S1, S2 : WideString) : Int Func WideCompareText(const S1: WideString; const S2: WideString): Int) Func WideCopy( const src : WideString; index, count : Int) : WideString Func WideDequotedStr( const S : WideString; AQuote : WideChar) : WideString Func WideEqual( const x, y : WideString) :Bool Func WideFormat(const Format: WideString; const Args: array of const):WideString) Func WideGreater( const x, y : WideString) :Bool Func WideLength( const src : WideString) : Int Func WideLess( const x, y : WideString) :Bool Func WideLowerCase( S : WideString) : WideString Func WideLowerCase(const S: WideString): WideString) Func WidePos( const src, sub : WideString) : Int Func WideQuotedStr( const S : WideString; Quote : WideChar) : WideString Func WideReplaceStr( const AText, AFromText, AToText : WideString) : WideString Func WideReplaceText( const AText, AFromText, AToText : WideString) : WideString Func WideSameStr( S1, S2 : WideString) :Bool Func WideSameStr(const S1: WideString; const S2: WideString):Bool) Func WideSameText( S1, S2 : WideString) :Bool Func WideSameText(const S1: WideString; const S2: WideString):Bool) Func WideStringReplace(const S,OldPattern,NewPattern:Widestr;Flags:TReplaceFlags):Widestr Func WideStringToUCS4String( const S : WideString) : UCS4String Func WideUpperCase( S : WideString) : WideString Func Win32BackupFile( const FileName :Str; Move :Bool) :Bool Func Win32Check(RetVal:Bool):Bool) Func Win32DeleteFile(const FileName:str; MoveToRecycleBin:Boolean):Bool Func Win32RestoreFile( const FileName :Str) :Bool Func Win32Type : TIdWin32Type Func WinColor( const Color32 : TColor32) : TColor Func winexec(FileName: pchar; showCmd: Int): Int; Func WinExec32( const Cmd :Str; const CmdShow : Int) :Bool Func WinExec32AndWait( const Cmd :Str; const CmdShow : Int) :Card Func WithinPastDays( const ANow, AThen : TDateTime; const ADays : Int) : Bool Func WithinPastHours(const ANow, AThen:TDateTime; const AHours : Int64): Bool Func WithinPastMilliSeconds(const ANow,AThen:TDateTime;const AMilliSeconds:Int64):Bool Func WithinPastMinutes(const ANow,AThen:TDateTime;const AMinutes:Int64):Bool Func WithinPastMonths(const ANow, AThen:TDateTime; const AMonths:Int): Bool Func WithinPastSeconds(const ANow,AThen: DateTime;const ASeconds:Int64): Bool Func WithinPastWeeks( const ANow, AThen : TDateTime; const AWeeks : Int): Bool Func WithinPastYears( const ANow, AThen : TDateTime; const AYears : Int): Bool Func WNetAddConnection( lpRemoteName, lpPassword, lpLocalName : PChar): DWORD Func WordToStr( const Value : Word) :Str Func WordGridFormatIdentToInt(const Ident:Str; var Value:Longint): Bool Func IntToWordGridFormatIdent( Value : Longint; var Ident :Str): Bool Proc GetWordGridFormatValues( Proc : TGetStrProc) Func WorkArea : Int Func WrapText( Line :Str; MaxCol : Int) :Str; Func WrapText2(Line, BreakStr:str;BreakChars:TSysCharSet;MaxCol:Int):str; Func Write( pv : Pointer; cb : Longint; pcbWritten : PLongint) : HResult Func Write(Buffer:str;Count:LongInt):LongInt Func WriteClient( var Buffer, Count : Int) : Int Func WriteFile(const AFile:str; const AEnableTransferFile:Boolean):Card Func WriteHeaders(StatusCode: Int; const ReasonString, Headers:Str):Boolean Func WriteString( const AString :Str): Bool Func WStrGet(var S : AnyString; I : Int): WideChar; Func wvsprintf( Output : PChar; Format : PChar; arglist : va_list) : Int Func wsprintf( Output : PChar; Format : PChar) : Int Func XmlDateTimeToStr( const XmlDateTime :Str; const Format:Str):str Func XmlTimeToStr( const XmlTime :Str; const Format :Str):Str Func XorDecode( const Key, Source :Str) :Str Func XorEncode( const Key, Source :Str) :Str Func XorString( const Key, Src : ShortString): ShortString Func Yield : Bool Func YearOf( const AValue : TDateTime) : Word Func YearsBetween( const ANow, AThen : TDateTime) : Int Func YearSpan( const ANow, AThen : TDateTime) : Double Func Yesterday : TDateTime Func YesNoDialog(const ACaption, AMsg:Str):Bool; Function(const Name :Str; Proc : TUserFunction) Func using Special_Scholz from V 3.8.5.0 Func TimeToFloat(value:Extended):Extended; // Normalstunden --> Industriestunden Func FloatToTime(value:Extended):Extended; // Industriestunden --> Normalstunden Func FloatToTime2Dec(value:Extended):Extended; Func MinToStd(value:Extended):Extended; Func MinToStdAsString(value:Extended):str; Func RoundFloatToStr(zahl:Extended; decimals:Int):str; Func RoundFloat(zahl:Extended; decimals:Int):Extended; Func Round2Dec (zahl:Extended):Extended; Func GetAngle(x,y:Extended):Double; Func AddAngle(a1,a2:Double):Double; ********************************************************************* unit uPSI_StText; ********************************************************************* Func TextSeek( var F : TextFile; Target : LongInt) :Bool Func TextFileSize( var F : TextFile) : LongInt Func TextPos( var F : TextFile) : LongInt Func TextFlush( var F : TextFile) :Bool ********************************************************************* from JvVCLUtils; ********************************************************************* { Windows resources (bitmaps and icons) VCL-oriented routines } Proc DrawBitmapTransparent(Dest:TCanvas;DstX,DstY:Int;Bitmap:TBitmap;TransparentColor:TColor); Proc DrawBitmapRectTransparent(Dest: TCanvas;DstX,DstY:Int;SrcRect:TRect;Bitmap:TBitmap;TransparColor:TColor); Proc StretchBitmapRectTransparent(Dest: TCanvas; DstX, DstY, DstW,DstH: Int; SrcRect: TRect; Bitmap: TBitmap; TransparentColor:TColor); Func MakeBitmap(ResID: PChar): TBitmap; Func MakeBitmapID(ResID: Word): TBitmap; Func MakeModuleBitmap(Module: THandle; ResID: PChar): TBitmap; Func CreateTwoColorsBrushPattern(Color1, Color2: TColor): TBitmap; Func CreateDisabledBitmap_NewStyle(FOriginal: TBitmap; BackColor: TColor): TBitmap; Func CreateDisabledBitmapEx(FOriginal: TBitmap; OutlineColor, BackColor, HighlightColor, ShadowColor: TColor; DrawHighlight:Bool): TBitmap; Func CreateDisabledBitmap(FOriginal: TBitmap; OutlineColor: TColor): TBitmap; Func ChangeBitmapColor(Bitmap: TBitmap; Color, NewColor: TColor): TBitmap; Proc AssignBitmapCell(Source: TGraphic; Dest: TBitmap; Cols, Rows,Index: Int); {$IFDEF WIN32} Proc ImageListDrawDisabled(Images: TImageList; Canvas: TCanvas; X, Y, Index: Int; HighlightColor, GrayColor: TColor; DrawHighlight:Bool); {$ENDIF} Func MakeIcon(ResID: PChar): TIcon; Func MakeIconID(ResID: Word): TIcon; Func MakeModuleIcon(Module: THandle; ResID: PChar): TIcon; Func CreateBitmapFromIcon(Icon: TIcon; BackColor: TColor): TBitmap; {$IFDEF WIN32} Func CreateIconFromBitmap(Bitmap: TBitmap; TransparentColor: TColor): TIcon; {$ENDIF} { Service routines } Proc NotImplemented; Proc ResourceNotFound(ResID: PChar); Func PointInRect(const P: TPoint; const R: TRect):Bool; Func PointInPolyRgn(const P: TPoint; const Points: array of TPoint):Bool; Func PaletteColor(Color: TColor): Longint; Func WidthOf(R: TRect): Int; Func HeightOf(R: TRect): Int; Proc PaintInverseRect(const RectOrg, RectEnd: TPoint); Proc DrawInvertFrame(ScreenRect: TRect; Width: Int); Proc CopyParentImage(Control: TControl; Dest: TCanvas); Proc Delay(MSecs: Longint); Proc DeleteLine(StrList: TStringList; SearchPattern:Str); Proc CenterControl(Control: TControl); Func PaletteEntries( Palette : HPALETTE) : Int Func WindowClassName( Wnd : HWND) :Str Func ScreenWorkArea : TRect Proc MoveWindowOrg( DC : HDC; DX, DY : Int) Proc SwitchToWindow( Wnd : HWND; Restore :Bool) Proc ActivateWindow( Wnd : HWND) Proc ShowWinNoAnimate( Handle : HWND; CmdShow : Int) Proc CenterWindow( Wnd : HWND) Proc ShadeRect( DC : HDC; const Rect : TRect) Proc KillMessage( Wnd : HWND; Msg :Card) Func DialogsToPixelsX(Dlgs:Word):Word Func DialogsToPixelsY(Dlgs:Word):Word Func PixelsToDialogsX(Pixs:Word):Word Func PixelsToDialogsY(Pixs:Word):Word {$IFDEF WIN32} Proc ShowMDIClientEdge(ClientHandle: THandle; ShowEdge:Bool); Func MakeVariant(const Values: array of Variant): Variant; {$ENDIF} Func CreateRotatedFont(Font: TFont; Angle: Int): HFONT; Func MsgBox(const Caption, Text:Str; Flags: Int): Int; Func MsgDlg(const Msg:str;AType:TMsgDlgType;AButtons:TMsgDlgButtons;HelpCtx:Longint):Word; {$IFDEF CBUILDER} Func FindPrevInstance(const MainFormClass: ShortString; const ATitle:Str): HWND; Func ActivatePrevInstance(const MainFormClass: ShortString; const ATitle:Str):Boolean; {$ELSE} Func FindPrevInstance(const MainFormClass, ATitle:Str): HWND; Func ActivatePrevInstance(const MainFormClass, ATitle:Str):Bool; {$ENDIF CBUILDER} Func IsForegroundTask:Bool; Proc MergeForm(AControl: TWinControl; AForm: TForm; Align: TAlign; Show:Bool); Func GetAveCharSize(Canvas: TCanvas): TPoint; Func MinimizeText(const Text:Str; Canvas: TCanvas; MaxWidth: Int):Str; Proc FreeUnusedOle; Proc Beep; Func GetWindowsVersionJ:Str; Func LoadDLL(const LibName:Str): THandle; Func RegisterServer(const ModuleName:Str):Bool; {$IFNDEF WIN32} Func IsLibrary:Bool; {$ENDIF} { Gradient filling routine } type TFillDirection = (fdTopToBottom, fdBottomToTop, fdLeftToRight, fdRightToLeft); Proc GradientFillRect(Canvas:TCanvas; ARect:TRect;StartColor,EndColor:TColor;Direction:TFillDirection;Colors: Byte); { String routines } Func GetEnvVar(const VarName:Str):Str; Func AnsiUpperFirstChar(const S:Str):Str; Func StringToPChar(var S:Str): PChar; Func StrPAlloc(const S:Str): PChar; Proc SplitCommandLine(const CmdLine:Str; var ExeName,Params:str); Func DropT(const S:Str):Str; { Memory routines } Func AllocMemo(Size: Longint): Pointer; Func ReallocMemo(fpBlock: Pointer; Size: Longint): Pointer; Proc FreeMemo(var fpBlock: Pointer); Func GetMemoSize(fpBlock: Pointer): Longint; Func CompareMem(fpBlock1, fpBlock2: Pointer; Size:Card):Bool; {$IFNDEF COMPILER5_UP} Proc FreeAndNil(var Obj); {$ENDIF} // from PNGLoader Func OptimizeForPNG(Image:TLinearBitmap;QuantizationSteps:Int;TransparentColor:TColor):Int Proc TransformRGB2LOCO( Image : TLinearBitmap) Proc TransformLOCO2RGB( Image : TLinearBitmap) Proc SortPalette( const Pal : TPalette; var ColorMap : TColorMap) Func DrawButtonFace(Canvas:TCanvas;const Client:TRect;BevelWidth:Int;Style:TButtonStyle; IsRounded,IsDown,IsFocused:Boolean):TRect //TButtons Func IsAnAllResult( const AModalResult : TModalResult) :Bool Func InitWndProc( HWindow : HWnd; Message, WParam : Longint; LParam: Longint):Longint AddConstantN('CTL3D_ALL','LongWord').SetUInt( $FFFF); //Proc ChangeBiDiModeAlignment( var Alignment : TAlignment) //Func SendAppMessage( Msg :Card; WParam, LParam : Longint) : Longint //Proc MoveWindowOrg( DC : HDC; DX, DY : Int) Proc SetImeMode( hWnd : HWND; Mode : TImeMode) Proc SetImeName( Name : TImeName) Func Win32NLSEnableIME( hWnd : HWND; Enable :Bool) :Bool Func Imm32GetContext( hWnd : HWND) : HIMC Func Imm32ReleaseContext( hWnd: HWND; hImc : HIMC) :Bool Func Imm32GetConversionStatus(hImc : HIMC; var Conversion, Sentence : longword):Bool Func Imm32SetConversionStatus(hImc : HIMC; Conversion, Sentence : longword):Bool Func Imm32SetOpenStatus( hImc : HIMC; fOpen :Bool) :Bool // Func Imm32SetCompositionWindow( hImc : HIMC; lpCompForm : PCOMPOSITIONFORM):Bool //Func Imm32SetCompositionFont( hImc : HIMC; lpLogfont : PLOGFONTA) :Bool Func Imm32GetCompositionString(hImc:HIMC;dWord1:longword;lpBuf:str;dwBufLen:longint):Longint Func Imm32IsIME( hKl : longword) :Bool Func Imm32NotifyIME( hImc : HIMC; dwAction, dwIndex, dwValue:longword):Boolean Proc DragDone( Drop :Bool) //****************************************add from jvjvclutils Func CanvasMaxTextHeight(Canvas: TCanvas): Int; Func ReplaceComponentReference(This,NewReference:TComponent;var VarReference:TComponent):Bool; Proc DrawLine(Canvas: TCanvas; X, Y, X2, Y2: Int); Func IsPositiveResult(Value: TModalResult):Bool; Func IsNegativeResult(Value: TModalResult):Bool; Func IsAbortResult(const Value: TModalResult):Bool; Func StripAllFromResult(const Value: TModalResult): TModalResult; // returns either BrightColor or DarkColor depending on the luminance of AColor // This Func gives the same result (AFAIK) as the Func used in Windows to // calculate the desktop icon text color based on the desktop background color Func SelectColorByLuminance(AColor, DarkColor, BrightColor: TColor): TColor; type TJvHTMLCalcType = (htmlShow, htmlCalcWidth, htmlCalcHeight, htmlHyperLink); Proc HTMLDrawTextEx(Canvas: TCanvas; Rect: TRect; const State: TOwnerDrawState; const Text:Str; var Width: Int; CalcType: TJvHTMLCalcType; MouseX, MouseY: Int; var MouseOnLink:Bool; var LinkName:Str; Scale: Int = 100); overload; Proc HTMLDrawTextEx(Canvas: TCanvas; Rect: TRect; const State: TOwnerDrawState; const Text:Str; var Width, Height: Int; CalcType: TJvHTMLCalcType; MouseX, MouseY: Int; var MouseOnLink:Bool; var LinkName:Str; Scale: Int = 100); overload; Func HTMLDrawText(Canvas: TCanvas; Rect: TRect; const State: TOwnerDrawState; const Text:Str; Scale: Int = 100):Str; Func HTMLDrawTextHL(Canvas: TCanvas; Rect: TRect; const State: TOwnerDrawState; const Text:Str; MouseX,MouseY: Int; Scale: Int = 100):Str; Func HTMLPlainText(const Text:Str):Str; Func HTMLTextExtent(Canvas: TCanvas; Rect: TRect; const State: TOwnerDrawState; const Text:Str; Scale: Int = 100): TSize; Func HTMLTextWidth(Canvas: TCanvas; Rect: TRect; const State: TOwnerDrawState; const Text:Str; Scale: Int = 100): Int; Func HTMLTextHeight(Canvas: TCanvas; const Text:str;Scale:Int = 100):Int; Func HTMLPrepareText(const Text:Str):Str; ****************************************** uPSI_JvAppUtils; Func GetDefaultSection( Component : TComponent) :Str Proc GetDefaultIniData(Control:TControl;var IniFileName,Section:str;UseRegistry:Bool) Proc GetDefaultIniData( Control : TControl; var IniFileName, Section :Str) Func GetDefaultIniName :Str //'OnGetDefaultIniName','TOnGetDefaultIniName); Func GetDefaultIniRegKey :Str Func FindForm( FormClass : TFormClass) : TForm Func FindShowForm( FormClass : TFormClass; const Caption :Str) : TForm Func ShowDialog( FormClass : TFormClass) :Bool //Func InstantiateForm( FormClass : TFormClass; var Reference) : TForm Proc SaveFormPlacement( Form : TForm; const IniFileName :Str; UseRegistry :Bool) Proc RestoreFormPlacement(Form : TForm; const IniFileName :Str; UseRegistry :Bool) Proc SaveMDIChildrenReg( MainForm : TForm; IniFile : TRegIniFile) Proc SaveFormPlacement( Form : TForm; const IniFileName :Str) Proc RestoreFormPlacement( Form : TForm; const IniFileName :Str) Func GetUniqueFileNameInDir( const Path, FileNameMask :Str) :Str Func StrToIniStr( const Str :Str) :Str Func IniStrToStr( const Str :Str) :Str Func IniReadString( IniFile : TObject; const Section, Ident, Default:Str):Str Proc IniWriteString( IniFile : TObject; const Section, Ident, Value:Str) Func IniReadInt(IniFile:TObject;const Section, Ident :Str; Default:Longint): Longint Proc IniWriteInt( IniFile : TObject; const Section, Ident :Str; Value : Longint) Func IniReadBool(IniFile:TObject; const Section,Ident:str; Default:Boolean):Bool Proc IniWriteBool( IniFile : TObject; const Section, Ident :Str; Value :Bool) Proc IniReadSections( IniFile : TObject; Strings : TStrings) Proc IniEraseSection( IniFile : TObject; const Section :Str) Proc IniDeleteKey( IniFile : TObject; const Section, Ident :Str) Proc AppBroadcast( Msg, wParam : Longint; lParam : Longint) Proc AppBroadcast( Msg, wParam : Word; lParam : Longint) Proc AppTaskbarIcons( AppOnly :Bool) Proc InternalSaveGridLayout(Grid : TCustomGrid; IniFile : TObject; const Section:str) Proc InternalRestoreGridLayout(Grid:TCustomGrid;IniFile : TObject; const Section:str) Proc InternalSaveMDIChildren( MainForm : TForm; IniFile : TObject) Proc InternalRestoreMDIChildren( MainForm : TForm; IniFile : TObject) ******************************************* uPSI_JvDBUtils; Func CreateLocate( DataSet : TDataSet) : TJvLocateObject Func IsDataSetEmpty( DataSet : TDataSet) :Bool Proc RefreshQuery( Query : TDataSet) Func DataSetSortedSearch(DataSet:TDataSet;const Value,FieldName:str;CaseInsensitive:Bool):Bool Func DataSetSectionName( DataSet : TDataSet) :Str Proc InternalSaveFields( DataSet : TDataSet; IniFile : TObject; const Section :Str) Proc InternalRestoreFields(DataSet:TDataSet;IniFile:TObject;const Section:str;RestoreVisible:Bool) Func DataSetLocateThrough(DataSet:TDataSet;const KeyFields:str;const KeyValues:Variant;Options:TLocateOptions):Bool Proc SaveFields( DataSet : TDataSet; IniFile : TIniFile) Proc RestoreFields( DataSet : TDataSet; IniFile : TIniFile; RestoreVisible :Bool) Proc AssignRecord( Source, Dest : TDataSet; ByName :Bool) Func ConfirmDelete :Bool Proc ConfirmDataSetCancel( DataSet : TDataSet) Proc CheckRequiredField( Field : TField) Proc CheckRequiredFields( const Fields : array of TField) Func DateToSQL( Value : TDateTime) :Str Func FormatSQLDateRange( Date1, Date2 : TDateTime; const FieldName :Str) :Str Func FormatSQLDateRangeEx( Date1, Date2 : TDateTime; const FieldName :Str) :Str Func FormatSQLNumericRange(const FieldName:str;LowVal,HighVal,LowEmpty,HighEmpty:Double;Inclusive:Bool):str Func StrMaskSQL( const Value :Str) :Str Func FormatSQLCondition(const FieldName,Operator,Val:str;FieldType:TFieldType;Exact:Bool):str Func FormatAnsiSQLCondition(const FieldName,Operator,Val:str;FieldType:TFieldType;Exact:Bool):str Proc _DBError( const Msg :Str) Const('TrueExpr','String '0=0 Const('sdfStandard16','String '''"''mm''/''dd''/''yyyy''"'' Const('sdfStandard32','String '''''''dd/mm/yyyy'''''' Const('sdfOracle','String '"TO_DATE(''"dd/mm/yyyy"'', ''DD/MM/YYYY'')" Const('sdfInterbase','String '"CAST(''"mm"/"dd"/"yyyy"'' AS DATE)" Const('sdfMSSQL','String '"CONVERT(datetime, ''"mm"/"dd"/"yyyy"'', 103)" AddTypeS('Largeint', 'Longint TIFException', '(ErNoError, erCannotImport, erInvalidType, ErInternalError, '+ erInvalidHeader, erInvalidOpcode, erInvalidOpcodeParameter, erNoMainProc, erOutOfGlobalVarsRange, '+ erOutOfProcRange, ErOutOfRange, erOutOfStackRange, ErTypeMismatch, erUnexpectedEof, '+ erVersionError, ErDivideByZero, ErMathError,erCouldNotCallProc, erOutofRecordRange, '+ 'erOutOfMemory,erException,erNullPointerException,erNullVariantErrorerInterfaceNotSupportederError); (*----------------------------------------------------------------------------*) Proc SIRegister_JclIniFiles(CL: TPSPascalCompiler); begin Func JIniReadBool( const FileName, Section, Line :Str) :Bool Func JIniReadInt( const FileName, Section, Line :Str) : Int Func JIniReadString( const FileName, Section, Line :Str) :Str Proc JIniWriteBool( const FileName, Section, Line :Str; Value :Bool) Proc JIniWriteInt( const FileName, Section, Line :Str; Value : Int) Proc JIniWriteString( const FileName, Section, Line, Value :Str) Proc JIniReadStrings(IniFile:TCustomIniFile; const Section :Str; Strings TStrings) Proc JIniWriteStrings(IniFile: TCustomIniFile; const Section:str; Strings:TStrings) end; (* === compile-time registration functions === *) (*----------------------------------------------------------------------------*) Proc SIRegister_JclDateTime(CL: TPSPascalCompiler); begin 'UnixTimeStart','LongInt'( 25569); Func JEncodeDate( const Year : Int; Month, Day : Word) : TDateTime Proc JDecodeDate( Date : TDateTime; var Year, Month, Day : Word); Proc DecodeDate1( Date : TDateTime; var Year : Int; var Month, Day : Word); Proc DecodeDate2( Date : TDateTime; var Year, Month, Day : Int); Func CenturyOfDate( const DateTime : TDateTime) : Int Func CenturyBaseYear( const DateTime : TDateTime) : Int Func DayOfDate( const DateTime : TDateTime) : Int Func MonthOfDate( const DateTime : TDateTime) : Int Func YearOfDate( const DateTime : TDateTime) : Int Func JDayOfTheYear( const DateTime : TDateTime; var Year : Int) : Int; Func DayOfTheYear1( const DateTime : TDateTime) : Int; Func DayOfTheYearToDateTime( const Year, Day : Int) : TDateTime Func HourOfTime( const DateTime : TDateTime) : Int Func MinuteOfTime( const DateTime : TDateTime) : Int Func SecondOfTime( const DateTime : TDateTime) : Int Func GetISOYearNumberOfDays( const Year : Word) : Word Func IsISOLongYear( const Year : Word) :Bool; Func IsISOLongYear1( const DateTime : TDateTime) :Bool; Func ISODayOfWeek( const DateTime : TDateTime) : Word Func JISOWeekNumber(DateTime:TDateTime; var YearOfWeekNumber,WeekDay: Int) : Int; Func ISOWeekNumber1( DateTime : TDateTime; var YearOfWeekNumber : Int) : Int; Func ISOWeekNumber2( DateTime : TDateTime) : Int; Func ISOWeekToDateTime( const Year, Week, Day : Int) : TDateTime Func JIsLeapYear( const Year : Int) :Bool; Func IsLeapYear1( const DateTime : TDateTime) :Bool; Func JDaysInMonth( const DateTime : TDateTime) : Int Func Make4DigitYear( Year, Pivot : Int) : Int Func JMakeYear4Digit( Year, WindowsillYear : Int) : Int Func JEasterSunday( const Year : Int) : TDateTime // TDosDateTime', 'Int Func JFormatDateTime( Form :Str; DateTime : TDateTime) :Str Func FATDatesEqual( const FileTime1, FileTime2 : Int64) :Bool; Func FATDatesEqual1( const FileTime1, FileTime2 : TFileTime) :Bool; Func HoursToMSecs( Hours : Int) : Int Func MinutesToMSecs( Minutes : Int) : Int Func SecondsToMSecs( Seconds : Int) : Int Func TimeOfDateTimeToSeconds( DateTime : TDateTime) : Int Func TimeOfDateTimeToMSecs( DateTime : TDateTime) : Int Func DateTimeToLocalDateTime( DateTime : TDateTime) : TDateTime Func LocalDateTimeToDateTime( DateTime : TDateTime) : TDateTime Func DateTimeToDosDateTime( const DateTime : TDateTime) : TDosDateTime Func JDateTimeToFileTime( DateTime : TDateTime) : TFileTime Func JDateTimeToSystemTime( DateTime : TDateTime) : TSystemTime; Proc DateTimeToSystemTime1( DateTime : TDateTime; var SysTime:TSystemTime); Func LocalDateTimeToFileTime( DateTime : TDateTime) : FileTime Func DosDateTimeToDateTime( const DosTime : TDosDateTime) : TDateTime Func JDosDateTimeToFileTime( DosTime : TDosDateTime) : TFileTime; Proc DosDateTimeToFileTime1( DTH, DTL : Word; FT : TFileTime); Func DosDateTimeToSystemTime( const DosTime : TDosDateTime) : TSystemTime Func DosDateTimeToStr( DateTime : Int) :Str Func JFileTimeToDateTime( const FileTime : TFileTime) : TDateTime Func FileTimeToLocalDateTime( const FileTime : TFileTime) : TDateTime Func JFileTimeToDosDateTime( const FileTime : TFileTime) : TDosDateTime; Proc FileTimeToDosDateTime1( const FileTime : TFileTime; var Date, Time: Word); Func JFileTimeToSystemTime( const FileTime : TFileTime) : TSystemTime; Proc FileTimeToSystemTime1( const FileTime : TFileTime; var ST : TSystemTime); Func FileTimeToStr( const FileTime : TFileTime) :Str Func SystemTimeToDosDateTime( const SystemTime : TSystemTime) : TDosDateTime Func JSystemTimeToFileTime( const SystemTime : TSystemTime) : TFileTime; Proc SystemTimeToFileTime1( const SystemTime : TSystemTime; FTime : TFileTime); Func SystemTimeToStr( const SystemTime : TSystemTime) :Str Func CreationDateTimeOfFile( const Sr : TSearchRec) : TDateTime Func LastAccessDateTimeOfFile( const Sr : TSearchRec) : TDateTime Func LastWriteDateTimeOfFile( const Sr : TSearchRec) : TDateTime TJclUnixTime32', 'Longword Func JDateTimeToUnixTime( DateTime : TDateTime) : TJclUnixTime32 Func JUnixTimeToDateTime( const UnixTime : TJclUnixTime32) : TDateTime Func FileTimeToUnixTime( const AValue : TFileTime) : TJclUnixTime32 Func UnixTimeToFileTime( const AValue : TJclUnixTime32) : TFileTime Func JNullStamp : TTimeStamp Func JCompareTimeStamps( const Stamp1, Stamp2 : TTimeStamp): Int64 Func JEqualTimeStamps( const Stamp1, Stamp2 : TTimeStamp) :Bool Func JIsNullTimeStamp( const Stamp : TTimeStamp) :Bool Func TimeStampDOW( const Stamp : TTimeStamp) : Int Func FirstWeekDay( const Year, Month : Int; var DOW : Int): Int; Func FirstWeekDay1( const Year, Month : Int) : Int; Func LastWeekDay( const Year, Month : Int; var DOW : Int): Int; Func LastWeekDay1( const Year, Month : Int) : Int; Func IndexedWeekDay( const Year, Month : Int; Index : Int): Int Func FirstWeekendDay( const Year, Month : Int; var DOW : Int): Int; Func FirstWeekendDay1( const Year, Month : Int) : Int; Func LastWeekendDay( const Year, Month : Int; var DOW : Int): Int; Func LastWeekendDay1( const Year, Month : Int) : Int; Func IndexedWeekendDay( const Year, Month : Int; Index : Int): Int Func FirstDayOfWeek( const Year, Month, DayOfWeek : Int) : Int Func LastDayOfWeek( const Year, Month, DayOfWeek : Int) : Int Func IndexedDayOfWeek( const Year, Month, DayOfWeek, Index:Int):Int FindClass('TOBJECT'),'EJclDateTimeError end; Proc SIRegister_JclMiscel2(CL: TPSPascalCompiler); begin Func SetDisplayResolution( const XRes, YRes : DWORD) : Longint Func CreateDOSProcessRedirected(const CommandLine, InputFile,OutputFile:str):Bool Func CreateDOSProcessRedirected2(const CommandLine, InputFile,OutputFile:str):Bool Func CreateDOSProcessRedirected3(const CommandLine, InputFile, OutputFile, ErrMsg:Str):Bool; Func WinExec32( const Cmd :Str; const CmdShow : Int) :Bool Func WinExec32AndWait( const Cmd :Str; const CmdShow : Int) :Card Func WinExec32AndRedirectOutput(const Cmd:str;var Output:str;RawOutput:Bool):Card TJclKillLevel', '( klNormal, klNoSignal, klTimeOut ) Func ExitWindows( ExitCode :Card) :Bool Func LogOffOS( KillLevel : TJclKillLevel) :Bool Func PowerOffOS( KillLevel : TJclKillLevel) :Bool Func ShutDownOS( KillLevel : TJclKillLevel) :Bool Func RebootOS( KillLevel : TJclKillLevel) :Bool Func HibernateOS( Force, DisableWakeEvents :Bool) :Bool Func SuspendOS( Force, DisableWakeEvents :Bool) :Bool Func ShutDownDialog(const DialogMessage:str;TimeOut:DWORD;Force,Reboot:Bool):Bool; Func ShutDownDialog1(const MachineName,DialogMessage:str;TimeOut:DWORD;Force,Reboot:Bool):Bool; Func AbortShutDown :Bool; Func AbortShutDown1( const MachineName :Str) :Bool; TJclAllowedPowerOperation', '( apoHibernate, apoShutdown, apoSuspend ) TJclAllowedPowerOperations', 'set of TJclAllowedPowerOperation Func GetAllowedPowerOperations : TJclAllowedPowerOperations FindClass('TOBJECT'),'EJclCreateProcessError Proc CreateProcAsUser( const UserDomain, UserName, PassWord, CommandLine :Str) Proc CreateProcAsUserEx(const UserDomain,UserName,Password,CommandLine:str;const Environment:PChar); // with Add(EJclCreateProcessError) do end; Proc SIRegister_JclAnsistrs(CL: TPSPascalCompiler); begin //'AnsiSigns','Set').SetSet(['-', '+']); 'C1_UPPER','LongWord( $0001); 'C1_LOWER','LongWord( $0002); 'C1_DIGIT','LongWord').SetUInt( $0004); 'C1_SPACE','LongWord').SetUInt( $0008); 'C1_PUNCT','LongWord').SetUInt( $0010); 'C1_CNTRL','LongWord').SetUInt( $0020); 'C1_BLANK','LongWord').SetUInt( $0040); 'C1_XDIGIT','LongWord').SetUInt( $0080); 'C1_ALPHA','LongWord').SetUInt( $0100); AnsiChar', 'Char Func StrIsAlpha( const S : Ansistr) :Bool Func StrIsAlphaNum( const S : Ansistr) :Bool Func StrIsAlphaNumUnderscore( const S : Ansistr) :Bool Func StrContainsChars(const S:Ansistr;Chars:TSysCharSet; CheckAll:Boolean):Bool Func StrConsistsOfNumberChars( const S : Ansistr) :Bool Func StrIsDigit( const S : Ansistr) :Bool Func StrIsSubset( const S : Ansistr; const ValidChars : TSysCharSet): Bool Func StrSame( const S1, S2 : Ansistr) :Bool //Func StrCenter( const S : Ansistr; L : Int; C : AnsiChar) : Ansistr Func StrCharPosLower( const S : Ansistr; CharPos : Int) : Ansistr Func StrCharPosUpper( const S : Ansistr; CharPos : Int) : Ansistr Func StrDoubleQuote( const S : Ansistr) : Ansistr Func StrEnsureNoPrefix( const Prefix, Text : Ansistr) : Ansistr Func StrEnsureNoSuffix( const Suffix, Text : Ansistr) : Ansistr Func StrEnsurePrefix( const Prefix, Text : Ansistr) : Ansistr Func StrEnsureSuffix( const Suffix, Text : Ansistr) : Ansistr Func StrEscapedToString( const S : Ansistr) : Ansistr Func JStrLower( const S : Ansistr) : Ansistr Proc StrLowerInPlace( var S : Ansistr) ///Proc StrLowerBuff( S : PAnsiChar) Proc JStrMove( var Dest:AnsiStr;const Source:AnsiStr;const ToIndex,FromIndex,Count:Int; Func StrPadLeft( const S : Ansistr; Len : Int; C : AnsiChar) : Ansistr Func StrPadRight( const S : Ansistr; Len : Int; C : AnsiChar) : Ansistr Func StrProper( const S : Ansistr) : Ansistr //Proc StrProperBuff( S : PAnsiChar) Func StrQuote( const S : Ansistr; C : AnsiChar) : Ansistr Func StrRemoveChars( const S : Ansistr; const Chars : TSysCharSet) : Ansistr Func StrKeepChars( const S : Ansistr; const Chars : TSysCharSet) : Ansistr Proc JStrReplace(var S:Ansistr;const Search,Replace:Ansistr;Flags: TReplaceFlags) Func StrReplaceChar( const S : Ansistr; const Source, Replace : AnsiChar) : Ansistr Func StrReplaceChars(const S:AnsiStr;const Chars:TSysCharSet;Replace:AnsiChar):Ansistr Func StrReplaceButChars(const S:AnsiStr;const Chars:TSysCharSet;Replace:AnsiChar):AnsiStr; Func StrRepeat( const S : Ansistr; Count : Int) : Ansistr Func StrRepeatLength( const S : Ansistr; const L : Int) : Ansistr Func StrReverse( const S : Ansistr) : Ansistr Proc StrReverseInPlace( var S : Ansistr) Func StrSingleQuote( const S : Ansistr) : Ansistr Func StrSmartCase( const S : Ansistr; Delimiters : TSysCharSet) : Ansistr Func StrStringToEscaped( const S : Ansistr) : Ansistr Func StrStripNonNumberChars( const S : Ansistr) : Ansistr Func StrToHex( const Source : Ansistr) : Ansistr Func StrTrimCharLeft( const S : Ansistr; C : AnsiChar) : Ansistr Func StrTrimCharsLeft( const S : Ansistr; const Chars : TSysCharSet) : Ansistr Func StrTrimCharRight( const S : Ansistr; C : AnsiChar) : Ansistr Func StrTrimCharsRight( const S : Ansistr; const Chars : TSysCharSet) : Ansistr Func StrTrimQuotes( const S : Ansistr) : Ansistr Func JStrUpper( const S : Ansistr) : Ansistr Proc StrUpperInPlace( var S : Ansistr) //Proc StrUpperBuff( S : PAnsiChar) Func StrOemToAnsi( const S : Ansistr) : Ansistr Func StrAnsiToOem( const S : Ansistr) : Ansistr Proc StrAddRef( var S : Ansistr) Func StrAllocSize( const S : Ansistr) : Longint Proc StrDecRef( var S : Ansistr) //Func StrLen( S : PAnsiChar) : Int Func StrLength( const S : Ansistr) : Longint Func StrRefCount( const S : Ansistr) : Longint Proc StrResetLength( var S : Ansistr) Func StrCharCount( const S : Ansistr; C : AnsiChar) : Int Func StrCharsCount( const S : Ansistr; Chars : TSysCharSet) : Int Func StrStrCount( const S, SubS : Ansistr) : Int Func StrCompare( const S1, S2 : Ansistr) : Int Func StrCompareRange( const S1, S2 : Ansistr; const Index, Count:Int) : Int //Func StrFillChar( const C : AnsiChar; Count : Int) : Ansistr; Func StrFillChar1( const C : Char; Count : Int) : Ansistr; Func StrFillChar(const C: Char; Count: Int):Str); Func IntFillChar(const I: Int; Count: Int):Str); Func ByteFillChar(const B: Byte; Count: Int):Str); Func ArrFillChar(const AC: Char; Count: Int): TCharArray;; Func ArrByteFillChar(const AB: Char; Count: Int): TByteArray; Func StrFind( const Substr, S : Ansistr; const Index : Int) : Int //Func StrHasPrefix( const S : Ansistr; const Prefixes : array of Ansistr) :Bool Func StrIndex( const S : Ansistr; const List : array of Ansistr) : Int Func StrILastPos( const SubStr, S : Ansistr) : Int Func StrIPos( const SubStr, S : Ansistr) : Int Func StrIsOneOf( const S : Ansistr; const List : array of Ansistr) :Bool Func StrLastPos( const SubStr, S : Ansistr) : Int Func StrMatch( const Substr, S : Ansistr; const Index : Int) : Int Func StrMatches( const Substr, S : Ansistr; const Index : Int) :Bool Func StrNIPos( const S, SubStr : Ansistr; N : Int) : Int Func StrNPos( const S, SubStr : Ansistr; N : Int) : Int Func StrPrefixIndex( const S : Ansistr; const Prefixes : array of Ansistr) : Int Func StrSearch( const Substr, S : Ansistr; const Index : Int) : Int //Func StrAfter( const SubStr, S : Ansistr) : Ansistr //Func StrBefore( const SubStr, S : Ansistr) : Ansistr Func StrBetween( const S : Ansistr; const Start, Stop : AnsiChar) : Ansistr Func StrChopRight( const S : Ansistr; N : Int) : Ansistr Func StrLeft( const S : Ansistr; Count : Int) : Ansistr Func StrMid( const S : Ansistr; Start, Count : Int) : Ansistr Func StrRestOf( const S : Ansistr; N : Int) : Ansistr Func StrRight( const S : Ansistr; Count : Int) : Ansistr Func CharEqualNoCase( const C1, C2 : AnsiChar) :Bool Func CharIsAlpha( const C : AnsiChar) :Bool Func CharIsAlphaNum( const C : AnsiChar) :Bool Func CharIsBlank( const C : AnsiChar) :Bool Func CharIsControl( const C : AnsiChar) :Bool Func CharIsDelete( const C : AnsiChar) :Bool Func CharIsDigit( const C : AnsiChar) :Bool Func CharIsLower( const C : AnsiChar) :Bool Func CharIsNumberChar( const C : AnsiChar) :Bool Func CharIsPrintable( const C : AnsiChar) :Bool Func CharIsPunctuation( const C : AnsiChar) :Bool Func CharIsReturn( const C : AnsiChar) :Bool Func CharIsSpace( const C : AnsiChar) :Bool Func CharIsUpper( const C : AnsiChar) :Bool Func CharIsWhiteSpace( const C : AnsiChar) :Bool Func CharType( const C : AnsiChar) : Word Func CharHex( const C : AnsiChar) : Byte Func CharLower( const C : AnsiChar) : AnsiChar Func CharUpper( const C : AnsiChar) : AnsiChar Func CharToggleCase( const C : AnsiChar) : AnsiChar Func CharPos( const S : Ansistr; const C : AnsiChar; const Index : Int) : Int Func CharLastPos( const S : Ansistr; const C : AnsiChar; const Index : Int) : Int Func CharIPos( const S : Ansistr; C : AnsiChar; const Index : Int) : Int Func CharReplace( var S : Ansistr; const Search, Replace : AnsiChar) : Int Proc StrIToStrings(S,Sep:Ansistr; const List:TStrings;const AllowEmptyString :Bool) Proc StrToStrings(S,Sep: Ansistr; const List:TStrings;const AllowEmptyString :Bool) Func StringsToStr(const List:TStrings;const Sep:AnsiStr;const AllowEmptyString:Bool):AnsiStr; Proc TrimStrings( const List : TStrings; DeleteIfEmpty :Bool) Proc TrimStringsRight( const List : TStrings; DeleteIfEmpty :Bool) Proc TrimStringsLeft( const List : TStrings; DeleteIfEmpty :Bool) Func AddStringToStrings(const S:Ansistr;Strings:TStrings; const Unique:Boolean):Bool Func BooleanToStr( B :Bool) : Ansistr Func FileToString( const FileName : Ansistr) : Ansistr Proc StringToFile( const FileName, Contents: Ansistr; Append:Bool) //binary save! Proc StringToFile2( const S, FileName :Str); Func StrToken( var S : Ansistr; Separator : AnsiChar) : Ansistr Proc StrTokens( const S : Ansistr; const List : TStrings) Proc StrTokenToStrings( S : Ansistr; Separator : AnsiChar; const List : TStrings) //Func StrWord( var S : PAnsiChar; out Word : Ansistr) :Bool Func StrToFloatSafe( const S : Ansistr) : Float Func StrToIntSafe( const S : Ansistr) : Int Proc StrNormIndex( const StrLen : Int; var Index : Int; var Count : Int); Func ArrayOf( List : TStrings) : TDynStringArray; EJclStringError', 'EJclError Func IsClass(Address: TObject):Bool; Func IsObject(Address: TObject):Bool; // Console Utilities //Func ReadKey: Char; Func IntToStrZeroPad(Value, Count: Int): Ansistr; Func JclGUIDToString(const GUID: TGUID):Str; Func JclStringToGUID(const S:Str): TGUID; end; ********************************************** uPSI_JvDBUtil; Proc ExecuteSQLScript(Base:TDataBase;const Script:str; const Commit:TCommit;OnProgress:TOnProgress; const UserData : Int) Func GetQueryResult( const DatabaseName, SQL :Str) : Variant Func GetStoredProcResult(const ADatabaseName,AStoredProcName:str; AParams: array of Variant;const AResultName:str):Variant //Func StrFieldDesc( Field : FLDDesc) :Str Func Var2Type( V : Variant; const VarType : Int) : Variant Proc CopyRecord( DataSet : TDataSet) //Proc AddReference( Tbl : TTable; RefName:Str; RefField: Word; MasterTable :Str; MasterField: Word; ModOp,DelOp: RINTQual) Proc AddMasterPassword( Table : TTable; pswd :Str) Proc PackTable( Table : TTable) Proc PackEncryptedTable( Table : TTable; pswd :Str) Func EncodeQuotes( const S :Str) :Str Func Cmp( const S1, S2 :Str) :Bool Func SubStr( const S :Str; const Index : Int; const Separator :Str) :Str Func SubStrEnd( const S :Str; const Index : Int; const Separator :Str):Str Func ReplaceString( S :Str; const OldPattern, NewPattern :Str) :Str Proc GetXYByPos( const S :Str; const Pos : Int; var X, Y : Int) **********************************************uPSI_JvJvBDEUtils;*************** //JvBDEUtils Func CreateDbLocate : TJvLocateObject //Func CheckOpen( Status : DBIResult) :Bool Proc FetchAllRecords( DataSet : TBDEDataSet) Func TransActive( Database : TDatabase) :Bool Func AsyncQrySupported( Database : TDatabase) :Bool Func GetQuoteChar( Database : TDatabase) :Str Proc ExecuteQuery( const DbName, QueryText :Str) Proc ExecuteQueryEx( const SessName, DbName, QueryText :Str) Func FieldLogicMap( FldType : TFieldType) : Int Func FieldSubtypeMap( FldType : TFieldType) : Int Value :Str; Buffer : Pointer) Func GetAliasPath( const AliasName :Str) :Str Func IsDirectory( const DatabaseName :Str) :Bool Func GetBdeDirectory :Str Func LoginToDatabase( Database : TDatabase; OnLogin : TDatabaseLoginEvent) :Bool Func DataSetFindValue( ADataSet : TBDEDataSet; const Value, FieldName :Str) :Bool Func DataSetFindLike( ADataSet : TBDEDataSet; const Value, FieldName :Str) :Bool Func DataSetRecNo( DataSet : TDataSet) : Longint Func DataSetRecordCount( DataSet : TDataSet) : Longint Func DataSetPositionStr( DataSet : TDataSet) :Str Proc DataSetShowDeleted( DataSet : TBDEDataSet; Show :Bool) Func CurrentRecordDeleted( DataSet : TBDEDataSet) :Bool Func IsFilterApplicable( DataSet : TDataSet) :Bool Func IsBookmarkStable( DataSet : TBDEDataSet) :Bool Proc SetIndex( Table : TTable; const IndexFieldNames :Str) Proc RestoreIndex( Table : TTable) Proc DeleteRange(Table: TTable; IndexFields:array of const; FieldValues: array of const) Proc PackTable( Table : TTable) Proc ReindexTable( Table : TTable) Proc BdeFlushBuffers Func GetNativeHandle( Database : TDatabase; Buffer : Pointer; BufSize : Int) : Pointer Proc ToggleDebugLayer( Active :Bool; const DebugFile :Str) Proc DbNotSupported Proc ExportDataSet(Source:TBDEDataSet;DestTable:TTable;TableType:TTableType;const AsciiCharSe :str;AsciiDelimited Boolean;MaxRecordCount:Longint) Proc ExportDataSetEx( Source : TBDEDataSet; DestTable : TTable; TableType : TTableType; const AsciiCharSet:str;AsciiDelimited:Boolean;AsciiDelimiter, AsciiSeparator:Char;MaxRecordCount:Longint); Proc ImportDataSet(Source:TBDEDataSet;DestTable:TTable;MaxRecCount:Longint;Mappings:TStrings;Mode:TBatchMode); Proc InitRSRUN(Database:TDatabase;const ConName:str;ConType:Int;const ConServer:str); **********************************************uPSI_JvDateUtil; Func CurrentYear: Word; Func IsLeapYear(AYear: Int):Bool; Func DaysPerMonth(AYear, AMonth: Int): Int; Func FirstDayOfPrevMonth: TDateTime; Func LastDayOfPrevMonth: TDateTime; Func FirstDayOfNextMonth: TDateTime; Func ExtractDay(ADate: TDateTime): Word; Func ExtractMonth(ADate: TDateTime): Word; Func ExtractYear(ADate: TDateTime): Word; Func IncDate(ADate: TDateTime; Days, Months, Years: Int): TDateTime; Func IncDay(ADate: TDateTime; Delta: Int): TDateTime; Func IncMonth(ADate: TDateTime; Delta: Int): TDateTime; Func IncYear(ADate: TDateTime; Delta: Int): TDateTime; Func ValidDate(ADate: TDateTime):Bool; Proc DateDiff(Date1, Date2: TDateTime; var Days, Months, Years: Word); Func MonthsBetween(Date1, Date2: TDateTime): Double; Func DaysInPeriod(Date1, Date2: TDateTime): Longint; { Count days between Date1 and Date2 + 1, so if Date1 = Date2 result = 1 } Func DaysBetween(Date1, Date2: TDateTime): Longint; { The same as previous but if Date2 < Date1 result = 0 } Func IncTime(ATime: TDateTime; Hours, Minutes, Seconds, MSecs: Int): TDateTime; Func IncHour(ATime: TDateTime; Delta: Int): TDateTime; Func IncMinute(ATime: TDateTime; Delta: Int): TDateTime; Func IncSecond(ATime: TDateTime; Delta: Int): TDateTime; Func IncMSec(ATime: TDateTime; Delta: Int): TDateTime; Func CutTime(ADate: TDateTime): TDateTime; { Set time to 00:00:00:00 } { String to date conversions } Func GetDateOrder(const DateFormat:Str): TDateOrder; Func MonthFromName(const S:Str; MaxLen: Byte): Byte; Func StrToDateDef(const S:Str; Default: TDateTime): TDateTime; Func StrToDateFmt(const DateFormat, S:Str): TDateTime; Func StrToDateFmtDef(const DateFormat, S:Str; Default: TDateTime): TDateTime; Func DefDateFormat(FourDigitYear:Bool):Str; Func DefDateMask(BlanksChar: Char; FourDigitYear:Bool):Str; ------------------------------------------------------------------------------ ********************************** JvUtils;******************************* { GetWordOnPos returns Word from string, S, on the cursor position, P} Func GetWordOnPos(const S:Str; const P: Int):Str; {GetWordOnPosEx worklike GetWordOnPosfunction,also returns Wordposition in iBeg,iEnd variables} Func GetWordOnPosEx(const S:Str; const P: Int; var iBeg, iEnd: Int):Str; { SubStr returns substring from string, S, separated with Separator string} Func SubStr(const S:Str; const Index: Int; const Separator:Str):Str; { SubStrEnd same to previous Func but Index numerated from the end of string } Func SubStrEnd(const S:Str; const Index: Int; const Separator:Str):Str; { SubWord returns next Word from string, P, and offsets Pointer to the end of Word, P2 } Func SubWord(P: PChar; var P2: PChar):Str; { NumberByWord returns the text representation of the number, N, in normal russian language. Was typed from Monitor magazine } Func NumberByWord(const N: Longint):Str; // Func CurrencyByWord(Value : Currency) :Str; GetLineByPos returns Line number, there //the symbol Pos is pointed. Lines separated with #13 symbol } Func GetLineByPos(const S:Str; const Pos: Int): Int; { GetXYByPos is same to previous function, but returns X position in line too} Proc GetXYByPos(const S:Str; const Pos: Int; var X, Y: Int); { ReplaceString searches for all substrings,OldPattern,in a string,S, replaces them with NewPattern } Func ReplaceString(S:Str; const OldPattern, NewPattern:Str):Str; { ConcatSep concatenate S and S2 strings with Separator. if S = '', separator don't included } Func ConcatSep(const S, S2, Separator:Str):Str; { ConcatLeftSep is same to previous function, but strings concatenate right to left } Func ConcatLeftSep(const S, S2, Separator:Str):Str; { MinimizeString truncs long string,S,appends '...' symbols,if Length of S is more than MaxLen} Func MinimizeString(const S:Str; const MaxLen: Int):Str; { Next 4 Func for russian chars transliterating. This functions are needed because Oem2Ansi and Ansi2Oem functions sometimes works sucks } Proc Dos2Win(var S:Str); Proc Win2Dos(var S:Str); Func Dos2WinRes(const S:Str):Str; Func Win2DosRes(const S:Str):Str; Func Win2Koi(const S:Str):Str; { Spaces returns string consists on N space chars } Func Spaces(const N: Int):Str; { AddSpaces add spaces to string, S, if it Length is smaller than N } Func AddSpaces(const S:Str; const N: Int):Str; { Func LastDate for russian users only } { returns date relative to current date: '' } Func LastDate(const Dat: TDateTime):Str; { CurrencyToStr format currency, Cur, using ffCurrency float format} Func CurrencyToStr(const Cur: currency):Str; { Cmp compares two strings and returns True if they are equal. Case-insensitive.} Func Cmp(const S1, S2:Str):Bool; { StringCat add S2 string to S1 and returns this string } Func StringCat(var S1:Str; S2:Str):Str; { HasChar returns True, if Char, Ch, contains in string, S } Func HasChar(const Ch: Char; const S:Str):Bool; Func HasAnyChar(const Chars:Str; const S:Str):Bool; Func CharInSet(const Ch: Char; const SetOfChar: TSetOfChar):Bool; Func CountOfChar(const Ch: Char; const S:Str): Int; Func DefStr(const S:Str; Default:Str):Str; {**** files routines} { GetWinDir returns Windows folder name } Func GetWinDir: TFileName; Func GetSysDir:Str; { GetTempDir returns Windows temporary folder name } Func GetTempDir:Str; { GenTempFileName returns temporary file name on drive, there FileName is placed } Func GenTempFileName(FileName:Str):Str; { GenTempFileNameExt sameto previous function,but returning filename has given extension, FileExt } Func GenTempFileNameExt(FileName:Str; const FileExt:Str):Str; { ClearDir clears folder Dir } Func ClearDir(const Dir:Str):Bool; { DeleteDir clears and than delete folder Dir } Func DeleteDir(const Dir:Str):Bool; { FileEquMask returns True if file, FileName, is compatible with given dos file mask, Mask } Func FileEquMask(FileName, Mask: TFileName):Bool; { FileEquMasks returns True if file, FileName, is compatible with given Masks. Masks must be separated with comma (';') } Func FileEquMasks(FileName, Masks: TFileName):Bool; Proc DeleteFiles(const Folder: TFileName; const Masks:Str); { LZFileExpand expand file,FileSource into FileDest.File must be compressed,using MS Compress program } Func LZFileExpand(const FileSource, FileDest:Str):Bool; { FileGetInfo fills SearchRec record for specified file attributes} Func FileGetInfo(FileName: TFileName; var SearchRec: TSearchRec):Bool; { HasSubFolder returns True, if folder APath contains other folders } Func HasSubFolder(APath: TFileName):Bool; { IsEmptyFolder returns True, if there are no files or folders in given folder, APath} Func IsEmptyFolder(APath: TFileName):Bool; { AddSlash add slash Char to Dir parameter, if needed } Proc AddSlash(var Dir: TFileName); { AddSlash returns string with added slash Char to Dir parameter, if needed } Func AddSlash2(const Dir: TFileName):Str; { AddPath returns FileName with Path, if FileName not contain any path } Func AddPath(const FileName, Path: TFileName): TFileName; Func AddPaths(const PathList, Path:Str):Str; Func ParentPath(const Path: TFileName): TFileName; Func FindInPath(const FileName, PathList:Str): TFileName; Func FindInPaths(const fileName,paths:Str):Str; {$IFNDEF BCB1} { BrowseForFolder displays Browse For Folder dialog } Func BrowseForFolder(const Handle: HWND; const Title:Str; var Folder:Str):Boolean; {$ENDIF BCB1} Func BrowseForFolder(const ATitle:Str; AllowCreate :Bool; var ADirectory :str; AHelpContext : THelpContext) :Bool Func BrowseForComputer(const ATitle :Str; AllowCreate :Bool; var ADirectory:str; AHelpContext : THelpContext): Bool Func BrowseDirectory(var AFolderName:str;const DlgText:str;AHelpContext:THelpContext):Bool Func BrowseComputer(var AComputerName:str;const DlgText:str;AHelpContext:THelpContext):Bool { DeleteReadOnlyFile clears R/O file attribute and delete file } Func DeleteReadOnlyFile(const FileName: TFileName):Bool; { HasParam returns True, if program running with specified parameter, Param } Func HasParam(const Param:Str):Bool; Func HasSwitch(const Param:Str):Bool; Func Switch(const Param:Str):Str; { ExePath returns ExtractFilePath(ParamStr(0)) } Func ExePath: TFileName; Func CopyDir(const SourceDir, DestDir: TFileName):Bool; Func FileTimeToDateTime(const FT: TFileTime): TDateTime; Func MakeValidFileName(const FileName: TFileName; const ReplaceBadChar: Char): TFileName; {**** Graphic routines } { TTFontSelected returns True, if True Type font is selected in specified device context } Func TTFontSelected(const DC: HDC):Bool; { TrueInflateRect inflates rect in other method, than InflateRect API Func } Func TrueInflateRect(const R: TRect; const I: Int): TRect; {**** Windows routines } { SetWindowTop put window to top without recreating window } Proc SetWindowTop(const Handle: HWND; const Top:Bool); {**** other routines } { KeyPressed returns True, if Key VK is now pressed } Func KeyPressed(VK: Int):Bool; Proc SwapInt(var Int1, Int2: Int); Func IntPower(Base, Exponent: Int): Int; Func ChangeTopException(E: TObject): TObject; Func StrToBool(const S:Str):Bool; {$IFNDEF COMPILER3_UP} { AnsiStrLIComp compares S1 to S2, without case-sensitivity, up to a maximum Length of MaxLen bytes. The compare operation is controlled by the current Windows locale. The return value is the same as for CompareStr. } Func AnsiStrLIComp(S1, S2: PChar; MaxLen:Card): Int; Func AnsiStrIComp(S1, S2: PChar): Int; {$ENDIF} Func Var2Type(V: Variant; const VarType: Int): Variant; Func VarToInt(V: Variant): Int; Func VarToFloat(V: Variant): Double; {following functions are not documented because they are don't work properly,so don't use them} Func ReplaceSokr1(S:Str; const Word, Frase:Str):Str; { ReplaceSokr1 is full equal to ReplaceString Func - only for compatibility - don't use } { GetSubStr is full equal to SubStr Func - only for compatibility - don't use } Func GetSubStr(const S:Str; const Index: Int; const Separator: Char):Str; Func GetParameter:Str; Func GetLongFileName(FileName:Str):Str; {* from FileCtrl} Func DirectoryExists(const Name:Str):Bool; Proc ForceDirectories(Dir:Str); {# from FileCtrl} Func FileNewExt(const FileName, NewExt: TFileName): TFileName; Func GetComputerID:Str; Func GetComputerName:Str; {**** string routines } { ReplaceAllSokr searches for all substrings, Words,in a string, S, and replaces them with Frases with the same Index.Also see RAUtilsW.ReplaceSokr1 Func } Func ReplaceAllSokr(S:Str; Words, Frases: TStrings):Str; { ReplaceSokr searches the Word in a string, S, on PosBeg position, in the list, Words, and if founds, replaces this Word with string from another list, Frases, with same Index, and then update NewSelStart variable } Func ReplaceSokr(S:str;PosBeg,Len:Int;Words,Frases:TStrings;var NewSelStart:Int):Str; { CountOfLines calculates linescount in a string,each line separated from another with CrLf sequence } Func CountOfLines(const S:Str): Int; { DeleteEmptyLines deletes all empty lines from strings, Ss. Lines contained only spaces also deletes. } Proc DeleteEmptyLines(Ss: TStrings); { SQLAddWhere addes or modifies existing where-statement, where, to the strings, SQL. Note:If strings SQL allready contains where-statement,it must be started on begining of any line} Proc SQLAddWhere(SQL: TStrings; const Where:Str); {**** files routines - } { ResSaveToFile save resource named as Name with Typ type into file FileName. Resource can be compressed using MS Compress program} Func ResSaveToFile(const Typ,Name:str;const Compressed:Bool;const FileName:str):Bool; Func ResSaveToFileEx(Inst:HINST;Typ,Name:PChar;const Compressed:Bool;const FileName:str): Bool Func ResSaveToString(Instance: HINST; const Typ, Name:Str; var S:Str):Bool; { Execute executes other program and waiting for it terminating, then return its Exit Code } Func ExecuteJ(const CommandLine, WorkingDirectory:Str): Int; { IniReadSection read section, Section, from ini-file, IniFileName, into strings, Ss.This Func reads ALL strings from specified section. Note: TIninFile.ReadSection Func reads only strings with '=' symbol.} Func IniReadSection(const IniFileName:TFileName;const Section:str;Ss:TStrings):Bool; { LoadTextFile load text file, FileName, into string } Func LoadTextFile(const FileName: TFileName):Str; Proc SaveTextFile(const FileName: TFileName; const Source:Str); { ReadFolder reads files list from disk folder,Folder,that are equal Mask,into strings,FileList} Func ReadFolder(const Folder, Mask: TFileName; FileList: TStrings): Int; Func ReadFolders(const Folder: TFileName; FolderList: TStrings): Int; {$IFDEF COMPILER3_UP} { TargetFileName - if FileName is ShortCut returns filename ShortCut linked to } Func TargetFileName(const FileName: TFileName): TFileName; { return filename ShortCut linked to } Func ResolveLink(const hWnd: HWND; const LinkFile: TFileName; var FileName: TFileName): HRESULT; {$ENDIF COMPILER3_UP} {**** Graphic routines - } {LoadIcoToImage loads 2 icons from resource named NameRes,into twoimage lists ALarge and ASmall} Proc LoadIcoToImage(ALarge, ASmall: TImageList; const NameRes:Str); { RATextOut same with TCanvas.TextOut procedure,but can clipping drawing with rectangle,RClip.} Proc RATextOut(Canvas: TCanvas; const R, RClip: TRect; const S:Str); {RATextOutEx same with RATextOut funct, but can calculate needed height for correct output } Func RATextOutEx(Canvas:TCanvas;const R,RClip:TRect;const S:str;const CalcHeight:Bool):Int; {RATextCalcHeight calculate needed height to correct output,using RATextOut or RATextOutEx functions} Func RATextCalcHeight(Canvas: TCanvas; const R: TRect; const S:Str): Int; { Cinema draws some visual effect } Proc Cinema(Canvas: TCanvas; rS {Source}, rD {Dest}: TRect); { Roughed fills rect with special 3D pattern } Proc Roughed(ACanvas: TCanvas; const ARect: TRect; const AVert:Bool); { BitmapFromBitmap creates new small bitmap from part of source bitmap, SrcBitmap, with specified width and height,AWidth, AHeight and placed on specified Index,Index in source bitmap} Func BitmapFromBitmap(SrcBitmap: TBitmap; const AWidth, AHeight, Index: Int): TBitmap; { TextWidth calculate text with for writing using standard desktop font } Func TextWidth(AStr:Str): Int; { DefineCursor load cursor from resource, and return available cursor number, assigned to it } Func DefineCursor(Identifer: PChar): TCursor; {**** other routines - } { FindFormByClass returns first form specified class, FormClass,owned by Application global variable } Func FindFormByClass(FormClass: TFormClass): TForm; Func FindFormByClassName(FormClassName:Str): TForm; { FindByTag returns the control with specified class, ComponentClass, from WinContol.Controls property, having Tag property value, equaled to Tag parameter } Func FindByTag(WinControl:TWinControl;ComponentClass:TComponentClass;const Tag:Int):TComponent; { ControlAtPos2 equal to TWinControl.ControlAtPos function, but works better } Func ControlAtPos2(Parent: TWinControl; X, Y: Int): TControl; { RBTag searches WinControl.Controls for checked RadioButton and returns Tag property value } Func RBTag(Parent: TWinControl): Int; { AppMinimized returns True, if Application is minimized } Func AppMinimized:Bool; { MessageBox is Application.MessageBox with string (not PChar) parameters. if Caption parameter = '', it replaced with Application.Title } Func MessageBoxJ(const Msg:Str; Caption:Str;const Flags: Int): Int; Func MsgDlg2(const Msg, ACaption:Str; DlgType: TMsgDlgType; Buttons: TMsgDlgButtons; HelpContext: Int; Control: TWinControl): Int; Func MsgDlgDef(const Msg, ACaption:Str; DlgType: TMsgDlgType; Buttons: TMsgDlgButtons; DefButton:TMsgDlgBtn; HelpContext: Int;Control: TWinControl):Int; { Delay stop program execution to MSec msec } Proc Delay(MSec: Longword); Proc CenterHor(Parent: TControl; MinLeft: Int; Controls: array of TControl); Proc EnableControls(Control: TWinControl; const Enable:Bool); Proc EnableMenuItems(MenuItem: TMenuItem; const Tag: Int; const Enable:Bool); Proc ExpandWidth(Parent: TControl; MinWidth: Int; Controls: array of TControl); Func PanelBorder(Panel: TCustomPanel): Int; Func Pixels(Control: TControl; APixels: Int): Int; Proc SetChildPropOrd(Owner: TComponent; PropName:Str; Value: Longint); Proc Error(const Msg:Str); Proc ItemHtDrawEx(Canvas:TCanvas;Rect:TRect;const State:TOwnerDrawState;const Text:str; const HideSelColor:Bool; var PlainItem:Str; var Width: Int; CalcWidth:Bool); {ex.Text parameter:'Item1bolditalic ITALICredgreenblue'} Func ItemHtDraw(Canvas:TCanvas;Rect:TRect;const State:TOwnerDrawState;const Text:str; const HideSelColor:Bool):Str; Func ItemHtWidth(Canvas:TCanvas;Rect:TRect;const State:TOwnerDrawState;const Text:str; const HideSelColor:Bool): Int; Func ItemHtPlain(const Text:Str):Str; { ClearList - clears list of TObject } Proc ClearList(List: TList); Proc MemStreamToClipBoard(MemStream: TMemoryStream; const Format: Word); Proc ClipBoardToMemStream(MemStream: TMemoryStream; const Format: Word); { RTTI support } Func GetPropType(Obj: TObject; const PropName:Str): TTypeKind; Func GetPropStr(Obj: TObject; const PropName:Str):Str; Func GetPropOrd(Obj: TObject; const PropName:Str): Int; Func GetPropMethod(Obj: TObject; const PropName:Str): TMethod; Proc PrepareIniSection(SS: TStrings); {following functions are not documented because they are don't work properly,so don't use them} {$IFDEF COMPILER2} Func CompareMem(P1, P2: Pointer; Length: Int):Bool; assembler; {$ENDIF} Proc SIRegister_JvBoxProcs(CL: TPSPascalCompiler); begin Proc BoxMoveSelectedItems( SrcList, DstList : TWinControl) Proc BoxMoveAllItems( SrcList, DstList : TWinControl) Proc BoxDragOver(List:TWinControl;Source:TObject;X,Y:Int;State:TDragState;var Accept:Bool;Sorted:Bool; Proc BoxMoveFocusedItem( List : TWinControl; DstIndex : Int) Proc BoxMoveSelected( List : TWinControl; Items : TStrings) Proc BoxSetItem( List : TWinControl; Index : Int) Func BoxGetFirstSelection( List : TWinControl) : Int Func BoxCanDropItem( List:TWinControl; X,Y:Int; var DragIndex : Int):Boolean end; Proc SIRegister_JvCsvParse(CL: TPSPascalCompiler); begin Const('MaxInitStrNum','LongInt'( 9); Func JvAnsiStrSplit( const InString : Ansistr; const SplitChar, QuoteChar:AnsiChar; var OutStrings:array of Ansistr; MaxSplit:Int): Int Func JvStrSplit(const InString:str;const SplitChar,QuoteChar:Char;var OutStrings:array of string;MaxSplit:Int):Int Func JvAnsiStrSplitStrings(const InStr:Ansistr;const SplitChar,QuoteChar:AnsiChar;OutStrs:TStrings):Int; Func JvAnsiStrStrip( S : Ansistr) : Ansistr Func JvStrStrip( S :Str) :Str Func GetString( var Source : Ansistr; const Separator : Ansistr) : Ansistr Func PadString( const S : Ansistr; Len : Int; PadChar : AnsiChar) : Ansistr Func BuildPathName( const PathName, FileName : Ansistr) : Ansistr Func StrEatWhiteSpace( const S :Str) :Str Func HexToAscii( const S : Ansistr) : Ansistr Func AsciiToHex( const S : Ansistr) : Ansistr Func StripQuotes( const S1 : Ansistr) : Ansistr Func ValidNumericLiteral( S1 : PAnsiChar) :Bool Func ValidIntLiteral( S1 : PAnsiChar) :Bool Func ValidHexLiteral( S1 : PAnsiChar) :Bool Func HexPCharToInt( S1 : PAnsiChar) : Int Func ValidStringLiteral( S1 : PAnsiChar) :Bool Func StripPCharQuotes( S1 : PAnsiChar) : Ansistr Func JvValidIdentifierAnsi( S1 : PAnsiChar) :Bool Func JvValidIdentifier( S1 :Str) :Bool Func JvEndChar( X : AnsiChar) :Bool Proc JvGetToken( S1, S2 : PAnsiChar) Func IsExpressionKeyword( S1 : PAnsiChar) :Bool Func IsKeyword( S1 : PAnsiChar) :Bool Func JvValidVarReference( S1 : PAnsiChar) :Bool Func GetParenthesis( S1, S2 : PAnsiChar) :Bool Proc JvGetVarReference( S1, S2, SIdx : PAnsiChar) Proc JvEatWhitespaceChars( S1 : PAnsiChar); Proc JvEatWhitespaceChars1( S1 : PWideChar); Func GetTokenCount : Int Proc ResetTokenCount end; Proc SIRegister_JvDBQueryParamsForm(CL: TPSPascalCompiler); begin SIRegister_TJvQueryParamsDialog(CL); Func EditQueryParams(DataSet:TDataSet;List:TParams;AHelpContext:THelpContext):Bool end; ********************************* JvStrUtil / JvStrUtils;***************************** Func FindNotBlankCharPos(const S:Str): Int; Func AnsiChangeCase(const S:Str):Str; Func GetWordOnPos(const S:Str; const P: Int):Str; Func GetWordOnPosEx(const S:Str; const P: Int; var iBeg, iEnd: Int):Str; Func Cmp(const S1, S2:Str):Bool; { Spaces returns string consists on N space chars } Func Spaces(const N: Int):Str; { HasChar returns True, if char, Ch, contains in string, S } Func HasChar(const Ch: Char; const S:Str):Bool; Func HasAnyChar(const Chars:Str; const S:Str):Bool; { SubStr returns substring from string, S, separated with Separator string} Func SubStr(const S:Str; const Index: Int; const Separator:Str):Str; { SubStrEnd same to previous Func but Index numerated from the end of string } Func SubStrEnd(const S:Str; const Index: Int; const Separator:Str):Str; { ReplaceString searches forall substrings,OldPattern,in a string,S,replaces with NewPattern } Func ReplaceString(S:Str; const OldPattern, NewPattern:Str):Str; Func CharInSet(const Ch: Char; const SetOfChar: TSetOfChar):Bool; { GetXYByPos is same to previous function, but returns X position in line too} Proc GetXYByPos(const S:Str; const Pos: Int; var X, Y: Int); { AddSlash returns string with added slash char to Dir parameter, if needed } Func AddSlash2(const Dir: TFileName):Str; { AddPath returns FileName with Path, if FileName not contain any path } Func AddPath(const FileName, Path: TFileName): TFileName; { ExePath returns ExtractFilePath(ParamStr(0)) } Func ExePath: TFileName; Func LoadTextFile(const FileName: TFileName):Str; Proc SaveTextFile(const FileName: TFileName; const Source:Str); { ConcatSep concatenate S and S2 strings with Separator. if S = '', separator don't included } Func ConcatSep(const S, S2, Separator:Str):Str; { FileEquMask returns True if file, FileName, is compatible with given dos file mask, Mask } Func FileEquMask(FileName, Mask: TFileName):Bool; { FileEquMasks returns True if file, FileName, is compatible with given Masks. Masks must be separated with comma (';') } Func FileEquMasks(FileName, Masks: TFileName):Bool; Func StringEndsWith(const Str, SubStr:Str):Bool; Func ExtractFilePath2(const FileName:Str):Str; Func StrToOem(const AnsiStr:Str):Str; { StrToOem translates a string from the Windows character set into the OEM character set. } Func OemToAnsiStr(const OemStr:Str):Str; { OemToAnsiStr translates a string from the OEM character set into the Windows character set. } Func IsEmptyStr(const S:Str; const EmptyChars: TCharSet):Bool; { EmptyStr returns true if the given string contains only character from the EmptyChars. } Func ReplaceStr(const S, Srch, Replace:Str):Str; { Returns string with every occurrence of Srch string replaced with Replace string. } Func DelSpace(const S:Str):Str; { DelSpace return a string with all white spaces removed. } Func DelChars(const S:Str; Chr: Char):Str; { DelChars return a string with all Chr characters removed. } Func DelBSpace(const S:Str):Str; { DelBSpace trims leading spaces from the given string. } Func DelESpace(const S:Str):Str; { DelESpace trims trailing spaces from the given string. } Func DelRSpace(const S:Str):Str; { DelRSpace trims leading and trailing spaces from the given string. } Func DelSpace1(const S:Str):Str; { DelSpace1 return a string with all non-single white spaces removed. } Func Tab2Space(const S:Str; Numb: Byte):Str; { Tab2Space converts any tabulation chars in given string to the Numb spaces characters. } Func NPos(const C:Str; S:Str; N: Int): Int; { NPos searches for a N-th position of substring C in a given string. } Func MakeStr(C: Char; N: Int):Str; Func MS(C: Char; N: Int):Str; { MakeStr return a string of length N filled with character C. } Func AddChar(C: Char; const S:Str; N: Int):Str; { AddChar return a string left-padded to length N with characters C. } Func AddCharR(C: Char; const S:Str; N: Int):Str; { AddCharR return a string right-padded to length N with characters C. } Func LeftStr(const S:Str; N: Int):Str; { LeftStr return a string right-padded to length N with blanks. } Func RightStr(const S:Str; N: Int):Str; { RightStr return a string left-padded to length N with blanks. } Func CenterStr(const S:Str; Len: Int):Str; { CenterStr centers the characters in the string based upon the Len specified. } Func CompStr(const S1, S2:Str): Int; {CompStr compares S1 to S2,case-sensitivity.return val is -1 if S1S2.} Func CompText(const S1, S2:Str): Int; {CompText compares S1 to S2,without case-sensitivity. return value is the same as for CompStr.} Func Copy2Symb(const S:Str; Symb: Char):Str; { Copy2Symb returns a substring of a string S from begining to first character Symb. } Func Copy2SymbDel(var S:Str; Symb: Char):Str; {Copy2SymbDel returns substr of str S from first character Symb and removes substring from S.} Func Copy2Space(const S:Str):Str; { Copy2Symb returns a substring of a string S from begining to first white space. } Func Copy2SpaceDel(var S:Str):Str; { Copy2SpaceDel returns a substring of a string S from begining to first white space and removes this substring from S. } Func AnsiProperCase(const S:Str; const WordDelims: TCharSet):Str; { Returns string, with the first letter of each word in uppercase, all other letters in lowercase. Words are delimited by WordDelims. } Func WordCount(const S:Str; const WordDelims: TCharSet): Int; { WordCount given a set of word delimiters, returns number of words in S. } Func WordPosition(const N: Int; const S:Str; const WordDelims: TCharSet): Int; { Given a set of word delimiters, returns start position of N'th word in S. } Func ExtractWord(N: Int; const S:Str; const WordDelims: TCharSet):Str; Func ExtractWordPos(N:Int; const S:str; const WordDelims:TCharSet;var Pos: Int):str; Func ExtractDelimited(N: Int; const S:Str; const Delims: TCharSet):Str; { ExtractWord, ExtractWordPos and ExtractDelimited given a set of word delimiters, return the N'th word in S. } Func ExtractSubstr(const S:Str; var Pos: Int; const Delims: TCharSet):Str; { ExtractSubstr given set of word delimiters,returns the substring from S,that started from position Pos.} Func IsWordPresent(const W, S:Str; const WordDelims: TCharSet):Bool; { IsWordPresent given set of word delimiters, returns True if word W is present in string S. } Func QuotedString(const S:Str; Quote: Char):Str; { QuotedString returns given string as a quoted string, using the provided Quote character. } Func ExtractQuotedString(const S:Str; Quote: Char):Str; { ExtractQuotedString removes the Quote characters from beginning and end of a quoted string, and reduces pairs of Quote characters within the quoted string to a single character. } Func FindPart(const HelpWilds, InputStr:Str): Int; {FindPart compares a string with '?' and another,returns position of HelpWilds in InputStr. } Func IsWild(InputStr, Wilds:Str; IgnoreCase:Bool):Bool; { IsWild compares InputString with WildCard string and returns True if corresponds. } Func XorString(const Key, Src: ShortString): ShortString; Func XorEncode(const Key, Source:Str):Str; Func XorDecode(const Key, Source:Str):Str; { ** Command line routines ** } {$IFNDEF COMPILER4_UP} Func FindCmdLineSwitch(const Switch:str;SwitchChars TCharSet;IgnoreCase: Bool):Bool; {$ENDIF} Func GetCmdLineArg(const Switch:Str; SwitchChars: TCharSet):Str; { ** Numeric string handling routines ** } Func Numb2USA(const S:Str):Str; { Numb2USA converts numeric string S to USA-format. } Func Dec2Hex(N: Longint; A: Byte):Str; Func D2H(N: Longint; A: Byte):Str; { Dec2Hex converts the given value to a hexadecimal string representation with the minimum number of digits (A) specified. } Func Hex2Dec(const S:Str): Longint; Func H2D(const S:Str): Longint; { Hex2Dec converts the given hexadecimal string to the corresponding Int value. } Func Dec2Numb(N: Longint; A, B: Byte):Str; { Dec2Numb converts the given value to a string representation with the base equal to B and with the minimum number of digits (A) specified. } Func Numb2Dec(S:Str; B: Byte): Longint; { Numb2Dec converts given B-based numeric string to the corresponding Int value. } Func IntToBin(Value: Longint; Digits, Spaces: Int):Str; {IntToBin converts given value to bin str representation with min number of digits specified.} Func IntToRoman(Value: Longint):Str; { IntToRoman converts the given value to a roman numeric string representation. } Func RomanToInt(const S:Str): Longint; { RomanToInt converts the given string to an Int value. If the string doesn't contain a valid roman numeric value, the 0 value is returned. } Proc I64ToCardinals(I: Int64; var LowPart, HighPart:Card); Proc CardinalsToI64(var I: Int64; const LowPart, HighPart:Card); ********************************** JvFileUtil;********************************** Proc CopyFileJ(const FileName, DestName:Str; ProgressControl: TControl); Proc CopyFileEx(const FileName,DestName:str;OverwriteReadOnly,ShellDialog:Bool;ProgressControl:TControl); Proc MoveFile(const FileName, DestName: TFileName); Proc MoveFileEx(const FileName, DestName: TFileName; ShellDialog:Bool); {$IFDEF COMPILER4_UP} Func GetFileSize(const FileName:Str): Int64; {$ELSE} Func GetFileSize(const FileName:Str): Longint; {$ENDIF} Func FileDateTime(const FileName:Str): TDateTime; Func HasAttr(const FileName:Str; Attr: Int):Bool; Func DeleteFiles(const FileMask:Str):Bool; Func DeleteFilesEx(const FileMasks: array of string):Bool; Func ClearDir(const Path:Str; Delete:Bool):Bool; Func NormalDir(const DirName:Str):Str; Func RemoveBackSlash(const DirName:Str):Str; Func ValidFileName(const FileName:Str):Bool; Func DirExists(Name:Str):Bool; Proc ForceDirectories(Dir:Str); Func FileLock(Handle: Int; Offset, LockSize: Longint): Int; {$IFDEF COMPILER4_UP} overload; {$ENDIF} {$IFDEF COMPILER4_UP} Func FileLock(Handle:Int; Offset, LockSize: Int64): Int; overload; {$ENDIF} Func FileUnlock(Handle:Int; Offset, LockSize: Longint): Int; {$IFDEF COMPILER4_UP} overload; {$ENDIF} {$IFDEF COMPILER4_UP} Func FileUnlock(Handle:Int; Offset, LockSize: Int64): Int; overload; {$ENDIF} Func GetTempDir:Str; Func GetWindowsDir:Str; Func GetSystemDir:Str; Func BrowseDirectory(var AFolderName:str; const DlgText:str; AHelpContext:THelpContext):Boolean; {$IFDEF WIN32} Func BrowseComputer(var ComputerName:str;const DlgText:str;AHelpContext:THelpContext):Bool; Func ShortToLongFileName(const ShortName:Str):Str; Func ShortToLongPath(const ShortName:Str):Str; Func LongToShortFileName(const LongName:Str):Str; Func LongToShortPath(const LongName:Str):Str; Proc CreateFileLink(const FileName, DisplayName:Str; Folder: Int); Proc DeleteFileLink(const DisplayName:Str; Folder: Int); {$ENDIF WIN32} {$IFNDEF COMPILER3_UP} Func IsPathDelimiter(const S:Str; Index: Int):Bool; {$ENDIF} Func CreateCalculatorForm(AOwner:TComponent;AHelpContext:THelpContext):TJvCalculatorForm Func CreatePopupCalculator( AOwner : TComponent; ABiDiMode : TBiDiMode) : TWinControl Func CreatePopupCalculator( AOwner : TComponent) : TWinControl Proc SetupPopupCalculator(PopupCalc:TWinControl;APrecision Byte; ABeepOnError: Bool) //***************************Proc SIRegister_VarHlpr(CL: TPSPascalCompiler); Proc VariantClear( var V : Variant) Proc VariantArrayRedim( var V : Variant; High : Int) Proc VariantCast( const src : Variant; var dst : Variant; vt : Int) Proc VariantCpy(const src:Variant;var dst:Variant) Proc VariantAdd(const src:Variant;var dst:Variant) Proc VariantSub(const src:Variant;var dst:Variant) Proc VariantMul(const src:Variant;var dst:Variant) Proc VariantDiv(const src:Variant;var dst:Variant) Proc VariantMod(const src:Variant;var dst:Variant) Proc VariantAnd(const src:Variant;var dst:Variant) Proc VariantOr( const src:Variant;var dst:Variant) Proc VariantXor(const src:Variant;var dst:Variant) Proc VariantShl(const src:Variant;var dst:Variant) Proc VariantShr(const src:Variant;var dst:Variant) Func VariantAdd2(const V1:Variant; const V2:Variant):Variant Func VariantSub2(const V1:Variant; const V2:Variant):Variant Func VariantMul2(const V1:Variant; const V2:Variant):Variant Func VariantDiv2(const V1:Variant; const V2:Variant):Variant Func VariantMod2(const V1:Variant; const V2:Variant):Variant Func VariantAnd2(const V1:Variant; const V2:Variant):Variant Func VariantOr2( const V1:Variant; const V2:Variant):Variant Func VariantXor2(const V1: Variant; const V2: Variant): Variant Func VariantShl2(const V1 Variant; const V2: Variant): Variant Func VariantShr2(const V1: Variant; const V2: Variant): Variant Func VariantNot(const V1: Variant) : Variant Func VariantNeg(const V1: Variant) : Variant Func VariantGetElement( const V : Variant; i1 : Int) : Variant; Func VariantGetElement1(const V : Variant; i1, i2 : Int) : Variant; Func VariantGetElement2(const V : Variant; i1, i2, i3 : Int) : Variant; Func VariantGetElement3(const V : Variant; i1, i2, i3, i4 : Int) : Variant; Func VariantGetElement4(const V : Variant; i1, i2, i3, i4, i5 : Int) : Variant; Proc VariantPutElement(var V : Variant; const data : Variant; i1 : Int); Proc VariantPutElement1(var V : Variant; const data : Variant; i1, i2 : Int); Proc VariantPutElement2(var V : Variant; const data : Variant; i1, i2, i3 : Int); Proc VariantPutElement3(var V: Variant; const data : Variant; i1, i2, i3, i4 : Int); Proc VariantPutElement4(var V: Variant; const data : Variant; i1, i2, i3, i4, i5 : Int); end; ***************************************unit uPSI_JvgUtils;************************************** Func IsEven(I: Int):Bool; Func InchesToPixels(DC: HDC; Value: Single; IsHorizontal:Bool): Int; Func CentimetersToPixels(DC: HDC; Value: Single; IsHorizontal:Bool): Int; Proc SwapInt(var I1, I2: Int); Func Spaces(Count: Int):Str; Func DupStr(const Str:Str; Count: Int):Str; Func DupChar(C: Char; Count: Int):Str; Proc Msg(const AMsg:Str); Func RectW(R: TRect): Int; Func RectH(R: TRect): Int; Func IncColor(AColor: Longint; AOffset: Byte): Longint; Func DecColor(AColor: Longint; AOffset: Byte): Longint; Func IsItAFilledBitmap(Bmp: TBitmap):Bool; Proc DrawTextInRectWithAlign(DC: HDC; R: TRect; const Text:Str; HAlign: TglHorAlign; VAlign: TglVertAlign; Style: TglTextStyle; Fnt: TFont; Flags: UINT); Proc DrawTextInRect(DC:HDC;R:TRect;const Text:str;Style:TglTextStyle;Fnt:TFont;Flags:UINT); Proc ExtTextOutExt(DC: HDC; X, Y: Int; R: TRect; const Text:Str; Style: TglTextStyle; ADelineated, ASupress3D:Bool; FontColor,DelinColor,HighlightColor,ShadowColor:TColor; Illumination: TJvgIllumination;Gradient:TJvgGradient;Font:TFont); Proc DrawBox(DC:HDC;var R:TRect;Style:TglBoxStyle;BackgrColor:Longint;ATransparent: Bool); Func DrawBoxEx(DC: HDC; ARect: TRect; Borders: TglSides; BevelInner,BevelOuter:TPanelBevel;Bold:Boolean;BackgrColor:Longint;ATransparent:Bool):TRect; Proc GradientBox(DC: HDC; R: TRect; Gradient: TJvgGradient;PenStyle, PenWidth: Int); Proc ChangeBitmapColor(Bitmap: TBitmap; FromColor, ToColor: TColor); Proc DrawBitmapExt(DC: HDC; { DC - background & result} SourceBitmap: TBitmap; R: TRect; X, Y: Int; //...X,Y _in_ rect! BitmapOption: TglWallpaperOption; DrawState: TglDrawState; ATransparent:Bool; TransparentColor: TColor; DisabledMaskColor: TColor); Proc CreateBitmapExt(DC: HDC; { DC - background & result} SourceBitmap: TBitmap; R: TRect; X, Y: Int; //...X,Y _in_ rect! BitmapOption: TglWallpaperOption; DrawState: TglDrawState; ATransparent:Bool; TransparentColor: TColor; DisabledMaskColor: TColor); Proc BringParentWindowToTop(Wnd: TWinControl); Func GetParentForm(Control: TControl): TForm; Proc GetWindowImageFrom(Control:TWinContrl;X,Y:Int;ADrawSelf,ADrawChildWindows:Bool;DC:HDC) Proc GetWindowImage(Control: TWinControl; ADrawSelf, ADrawChildWindows:Bool; DC: HDC); Proc GetParentImageRect(Control: TControl; Rect: TRect; DC: HDC); Func CreateRotatedFont(F: TFont; Escapement: Int): HFONT; Func FindMainWindow(const AWndClass, AWndTitle:Str): THandle; Proc CalcShadowAndHighlightColors(BaseColor: TColor; Colors: TJvgLabelColors); Func CalcMathString(AExpression:Str): Single; Func IIF(AExpression:Bool; IfTrue, IfFalse: Variant): Variant; overload; Func IIF(AExpression:Bool; const IfTrue, IfFalse:Str):Str; overload; Func GetTransparentColor(Bitmap: TBitmap; AutoTrColor: TglAutoTransparentColor): TColor; Proc TypeStringOnKeyboard(const S:Str); Func NextStringGridCell( Grid: TStringGrid ):Bool; Proc DrawTextExtAligned(Canvas:TCanvas;const Text:str;R:TRect;Alignment:TglAlignment;WordWrap:Bool; Proc LoadComponentFromTextFile(Component: TComponent; const FileName:Str); Proc SaveComponentToTextFile(Component: TComponent; const FileName:Str); Func ComponentToString(Component: TComponent):Str; Proc StringToComponent(Component: TComponent; const Value:Str); Func PlayWaveResource(const ResName:Str):Bool; Func UserName:Str; Func ComputerName:Str; Func CreateIniFileName:Str; Func ExpandString(const Str:Str; Len: Int):Str; Func Transliterate(const Str:Str; RusToLat:Bool):Str; Func IsSmallFonts:Bool; Func SystemColorDepth: Int; Func GetFileTypeJ(const FileName:Str): TglFileType; Func GetFileType( hFile : THandle) : DWORD; Func FindControlAtPt(Control: TWinControl; Pt: TPoint; MinClass: TClass):TControl; Func StrPosExt(const Str1, Str2: PChar; Str2Len: DWORD): PChar; { **************************************Utility routines of unit classes} Func LineStart(Buffer, BufPos: PChar): PChar Func ExtractStrings(Separators,WhiteSpace:TSysCharSet;Content:PChar;Strings:TStrings):Int Func TestStreamFormat( Stream : TStream) : TStreamOriginalFormat Proc RegisterClass( AClass : TPersistentClass) Proc RegisterClasses( AClasses : array of TPersistentClass) Proc RegisterClassAlias( AClass : TPersistentClass; const Alias :Str) Proc UnRegisterClass( AClass : TPersistentClass) Proc UnRegisterClasses( AClasses : array of TPersistentClass) Proc UnRegisterModuleClasses( Module : HMODULE) Func FindGlobalComponent( const Name :Str) : TComponent Func IsUniqueGlobalComponentName( const Name :Str) :Bool Func InitInheritedComponent( Instance : TComponent; RootAncestor : TClass) :Bool Func InitComponentRes( const ResName :Str; Instance : TComponent) :Bool Func ReadComponentRes( const ResName :Str; Instance : TComponent) : TComponent Func ReadComponentResEx( HInstance : THandle; const ResName :Str) : TComponent Func ReadComponentResFile( const FileName :Str; Instance : TComponent) : TComponent Proc WriteComponentResFile(const FileName:Str; Instance : TComponent) Proc GlobalFixupReferences Proc GetFixupReferenceNames( Root : TComponent; Names : TStrings) Proc GetFixupInstanceNames(Root:TComponent;const ReferenceRootName string;Names:TStrings) Proc RedirectFixupReferences( Root : TComponent; const OldRootName, NewRootName :Str) Proc RemoveFixupReferences( Root : TComponent; const RootName :Str) Proc RemoveFixups( Instance : TPersistent) Func FindNestedComponent( Root : TComponent; const NamePath :Str) : TComponent Proc BeginGlobalLoading Proc NotifyGlobalLoading Proc EndGlobalLoading Func GetUltimateOwner1( ACollection : TCollection) : TPersistent; Func GetUltimateOwner( APersistent : TPersistent) : TPersistent; // AddTypeS('TWndMethod', 'Proc (var Message : TMessage) //Func MakeObjectInstance( Method : TWndMethod) : Pointer Proc FreeObjectInstance( ObjectInstance : Pointer) // Func AllocateHWnd( Method : TWndMethod) : HWND Proc DeallocateHWnd( Wnd : HWND) Func AncestorIsValid( Ancestor:TPersistent; Root, RootAncestor: TComponent) :Bool *****************************unit uPSI_SqlTimSt and DB;************************************* Proc VarSQLTimeStampCreate4( var aDest : Variant; const ASQLTimeStamp : TSQLTimeStamp); Func VarSQLTimeStampCreate3: Variant; Func VarSQLTimeStampCreate2( const AValue :Str) : Variant; Func VarSQLTimeStampCreate1( const AValue : TDateTime) : Variant; Func VarSQLTimeStampCreate( const ASQLTimeStamp : TSQLTimeStamp) : Variant; Func VarSQLTimeStamp : TVarType Func VarIsSQLTimeStamp( const aValue : Variant) :Bool; Func LocalToUTC( var TZInfo : TTimeZone; var Value : TSQLTimeStamp): TSQLTimeStamp //beta Func UTCToLocal( var TZInfo : TTimeZone; var Value : TSQLTimeStamp): TSQLTimeStamp //beta Func VarToSQLTimeStamp( const aValue : Variant) : TSQLTimeStamp Func SQLTimeStampToStr( const Format :Str; DateTime : TSQLTimeStamp):Str Func SQLDayOfWeek( const DateTime : TSQLTimeStamp) : Int Func DateTimeToSQLTimeStamp( const DateTime : TDateTime) : TSQLTimeStamp Func SQLTimeStampToDateTime( const DateTime : TSQLTimeStamp) : TDateTime Func TryStrToSQLTimeStamp( const S :Str; var TimeStamp : TSQLTimeStamp): Bool Func StrToSQLTimeStamp( const S :Str) : TSQLTimeStamp Proc CheckSqlTimeStamp( const ASQLTimeStamp : TSQLTimeStamp) Func ExtractFieldName( const Fields :Str; var Pos : Int) :Str; Func ExtractFieldName( const Fields : WideString; var Pos : Int) : WideString; //'Proc RegisterFields( const FieldClasses : array of TFieldClass) Proc DatabaseError( const Message : WideString; Component : TComponent) Proc DatabaseErrorFmt(const Message:WIdeString;const Args:array of const;Component:TComponent) Proc DisposeMem( var Buffer, Size : Int) Func BuffersEqual( Buf1, Buf2 : Pointer; Size : Int) :Bool Func GetFieldProperty(DataSet:TDataSet;Control:TComponent;const FieldName:WideStr):TField Func VarTypeToDataType( VarType : Int) : TFieldType *******************************unit JvStrings;***************************************** {template functions} Func ReplaceFirst(const SourceStr, FindStr, ReplaceStr:Str):Str; Func ReplaceLast(const SourceStr, FindStr, ReplaceStr:Str):Str; Func InsertLastBlock(var SourceStr:Str; BlockStr:Str):Bool; Func RemoveMasterBlocks(const SourceStr:Str):Str; Func RemoveFields(const SourceStr:Str):Str; {http functions} Func URLEncode(const Value:Ansistr):Ansistr;// Converts string To A URLEncoded string Func URLDecode(const Value:Ansistr):Ansistr;// Converts string From A URLEncoded string {set functions} Proc SplitSet(AText:Str; AList: TStringList); Func JoinSet(AList: TStringList):Str; Func FirstOfSet(const AText:Str):Str; Func LastOfSet(const AText:Str):Str; Func CountOfSet(const AText:Str): Int; Func SetRotateRight(const AText:Str):Str; Func SetRotateLeft(const AText:Str):Str; Func SetPick(const AText:Str; AIndex: Int):Str; Func SetSort(const AText:Str):Str; Func SetUnion(const Set1, Set2:Str):Str; Func SetIntersect(const Set1, Set2:Str):Str; Func SetExclude(const Set1, Set2:Str):Str; {replace any <,> etc by < >} Func XMLSafe(const AText:Str):Str; {simple hash, Result can be used in Encrypt} Func Hash(const AText:Str): Int; { Base64 encode and decode a string } Func B64Encode(const S: Ansistr): Ansistr; Func B64Decode(const S: Ansistr): Ansistr; {Basic encryption from a Borland Example} Func Encrypt(const InString: Ansistr; StartKey, MultKey, AddKey: Int): Ansistr; Func Decrypt(const InString: Ansistr; StartKey, MultKey, AddKey: Int): Ansistr; {Using Encrypt and Decrypt in combination with B64Encode and B64Decode} Func EncryptB64(const InString:Ansistr; StartKey, MultKey, AddKey: Int): Ansistr; Func DecryptB64(const InString:Ansistr; StartKey, MultKey, AddKey: Int): Ansistr; Proc CSVToTags(Src, Dst: TStringList); // converts a csv list to a tagged string list Proc TagsToCSV(Src, Dst: TStringList); // converts a tagged string list to a csv list // only fieldnames from the first record are scanned ib the other records Proc ListSelect(Src, Dst: TStringList; const AKey, AValue:Str); {selects akey=avalue from Src and returns recordset in Dst} Proc ListFilter(Src: TStringList; const AKey, AValue:Str); {filters Src for akey=avalue} Proc ListOrderBy(Src: TStringList; const AKey:Str; Numeric: Bool); {orders a tagged Src list by akey} Func PosStr(const FindString, SourceString:Str; StartPos: Int = 1): Int; { PosStr searches the first occurrence of a substring FindString in a string given by SourceString with case sensitivity (upper and lower case characters are differed). This Func returns the index value of the first character of a specified substring from which it occurs in a given string starting with StartPos character index. If a specified substring is not found Q_PosStr returns zero. author of algorithm is Peter Morris (UK) (Faststrings from www.torry.ru). } Func PosStrLast(const FindString, SourceString:Str): Int; {finds the last occurance} Func LastPosChar(const FindChar: Char; SourceString:Str): Int; Func PosText(const FindString, SourceString:Str; StartPos: Int = 1): Int; { PosText searches the first occurrence of a substring FindString in a string given by SourceString without case sensitivity (upper and lower case characters are not differed). This Func returns index value of first character of a specified substring from which it occurs in a given string starting with Start Func PosTextLast(const FindString, SourceString:Str): Int; {finds last occurance} Func NameValuesToXML(const AText:Str):Str; {$IFDEF MSWINDOWS} Proc LoadResourceFile(AFile:Str; MemStream: TMemoryStream); {$ENDIF MSWINDOWS} Proc DirFiles(const ADir, AMask:Str; AFileList: TStringList); Proc RecurseDirFiles(const ADir:Str; var AFileList: TStringList); Proc RecurseDirProgs(const ADir:Str; var AFileList: TStringList); Proc SaveString(const AFile, AText:Str); Proc SaveStringasFile( const AFile, AText :Str) Func LoadStringJ(const AFile:Str):Str; Func LoadStringofFile( const AFile :Str) :Str Proc SaveStringtoFile( const AFile, AText :Str) Func LoadStringfromFile( const AFile :Str) :Str Func HexToColor(const AText:Str): TColor; Func UppercaseHTMLTags(const AText:Str):Str; Func LowercaseHTMLTags(const AText:Str):Str; Proc GetHTMLAnchors(const AFile:Str; AList: TStringList); Func RelativePath(const ASrc, ADst:Str):Str; Func GetToken(var Start: Int; const SourceText:Str):Str; Func PosNonSpace(Start: Int; const SourceText:Str): Int; Func PosEscaped(Start: Int; const SourceText, FindText:Str; EscapeChar: Char): Int; Func DeleteEscaped(const SourceText:Str; EscapeChar: Char):Str; Func BeginOfAttribute(Start: Int; const SourceText:Str): Int; // parses the beginning of an attribute: space + alpha character Func ParseAttribute(var Start:Int;const SourceText:str; var AName,AValue:str):Bool; //parses a name="value" attrib from Start;returns 0 when not found or else position behind attribute Proc ParseAttributes(const SourceText:Str; Attributes: TStrings); // parses all name=value attributes to the attributes TStringList Func HasStrValue(const AText, AName:Str; var AValue:Str):Bool; // checks if a name="value" pair exists and returns any value Func GetStrValue(const AText, AName, ADefault:Str):Str; // retrieves string value from a line like: // name="jan verhoeven" email="jan1 dott verhoeven att wxs dott nl" // returns ADefault when not found Func GetHTMLColorValue(const AText, AName:Str; ADefault: TColor):TColor; // same for a color Func GetIntValue(const AText, AName:Str; ADefault: Int): Int; // same for an Int Func GetFloatValue(const AText, AName:Str; ADefault: Extended):Extended; // same for a float Func GetBoolValue(const AText, AName:Str):Bool; // same for Boolean but without default Func GetValue(const AText, AName:Str):Str; //retrieves string value from a line like:name="jan verhoeven" email="jan1 verhoeven att wxs dott nl" Proc SetValue(var AText:Str; const AName, AValue:Str); // sets a string value in a line Proc DeleteValue(var AText:Str; const AName:Str); // deletes a AName="value" pair from AText Proc GetNames(AText:Str; AList: TStringList); // get a list of names from a string with name="value" pairs Func GetHTMLColor(AColor: TColor):Str; // converts a color value to the HTML hex value Func BackPosStr(Start: Int; const FindString, SourceString:Str): Int; // finds a string backward case sensitive Func BackPosText(Start: Int; const FindString, SourceString:Str): Int; // finds a string backward case insensitive Func PosRangeStr(Start: Int; const HeadString, TailString, SourceString:Str; var RangeBegin: Int; var RangeEnd: Int):Bool; // finds a text range, e.g. .... case sensitive Func PosRangeText(Start: Int; const HeadString, TailString, SourceString:Str; var RangeBegin: Int; var RangeEnd: Int):Bool; // finds a text range, e.g. .... case insensitive Func BackPosRangeStr(Start: Int; const HeadString, TailString, SourceString:Str; var RangeBegin: Int; var RangeEnd: Int):Bool; // finds a text range backward, e.g. .... case sensitive Func BackPosRangeText(Start: Int; const HeadString, TailString, SourceString:str; var RangeBegin: Int; var RangeEnd: Int):Bool; // finds a text range backward, e.g. .... case insensitive Func PosTag(Start: Int; SourceString:Str; var RangeBegin: Int; var RangeEnd: Int):Bool; // finds a HTML or XML tag: <....> Func InnerTag(Start: Int; const HeadString, TailString, SourceString:Str; var RangeBegin: Int; var RangeEnd: Int):Bool; // finds the innertext between opening and closing tags Func Easter(NYear: Int): TDateTime; // returns the easter date of a year. Func GetWeekNumber(Today: TDateTime):Str; //gets a datecode. Returns year and weeknumber in format: YYWW Func ParseNumber(const S:Str): Int; // parse number returns the last position, starting from 1 Func ParseDate(const S:Str): Int; // parse a SQL style data string from positions 1, // starts and ends with # **************************unit JvJCLUtils;************************************ PathDelim','String').SetString( '\; DriveDelim','String').SetString( ':; PathSep','String').SetString( ';; AllFilesMask','String').SetString( '*.*; PathDelim','String').SetString( '/; AllFilesMask','String').SetString( '*; NullHandle','LongInt').SetInt( 0); USDecimalSeparator','String').SetString( '.; ClassN(CL.FindClass('TOBJECT'),'EJvConvertError; TypeS('TFileTime', 'Int; // TypeS('TFormatSettings', 'record DecimalSeparator : Char; end; Func SendRectMessage(Handle: THandle; Msg : Int; wParam : longint; var R : TRect): Int; //Func SendStructMessage(Handle:THandle;Msg:Int;wParam:WPARAM;var Data): Int; Func ReadCharsFromStream(Stream: TStream; var Buf:array of PChar;BufSize:Int):Int; Func WriteStringToStream(Stream: TStream; const Buf: Ansistr;BufSize:Int): Int; Func UTF8ToString( const S : UTF8String) :Str; //ConstantN('DefaultDateOrder','').SetString('doDMY; ConstantN('CenturyOffset','Byte').SetUInt( 60); Func VarIsInt(Value: Variant):Bool; // VarIsInt returns VarIsOrdinal-[varBoolean] {PosIdx returns index of first appearance of SubStr in Str.search starts at index "Index".} Func PosIdx(const SubStr, S:Str; Index: Int = 0): Int; Func PosIdxW(const SubStr, S: WideString; Index: Int = 0): Int; Func PosLastCharIdx(Ch: Char; const S:Str; Index: Int = 0): Int; { GetWordOnPos returns Word from string, S, on the cursor position, P} Func GetWordOnPos(const S:Str; const P: Int):Str; Func GetWordOnPosW(const S: WideString; const P: Int): WideString; Func GetWordOnPos2(const S:Str; P: Int; var iBeg, iEnd: Int):Str; Func GetWordOnPos2W(const S: WideString; P: Int; var iBeg, iEnd: Int): WideString; { GetWordOnPosEx working like GetWordOnPos function, but also returns Word position in iBeg, iEnd variables } Func GetWordOnPosEx(const S:Str; const P: Int; var iBeg, iEnd: Int):Str; Func GetWordOnPosExW(const S: WideString; const P: Int; var iBeg, iEnd: Int): WideString; Func GetNextWordPosEx(const Text:Str; StartIndex: Int; var iBeg, iEnd: Int):Str; Func GetNextWordPosExW(const Text:WideString;StartIndex:Int; var iBeg,iEnd:Int):WideString; Proc GetEndPosCaret(const Text:Str; CaretX, CaretY: Int; var X, Y: Int); { GetEndPosCaret returns the caret position of the last char. For the position after the last char of Text you must add 1 to the returned X value. } Proc GetEndPosCaretW(const Text: WideString;CaretX,CaretY:Int;var X,Y:Int); { GetEndPosCaret returns the caret position of the last char. For the position after the last char of Text you must add 1 to the returned X value. } { SubStrBySeparator returns substring from string, S, separated with Separator string} Func SubStrBySeparator(const S:str;const Index:Int;const Separatr:str;StartIndex:Int=1):str; Func SubStrBySeparatorW(const S:WideString;const Index:Int;const Separator:WideString;StartIndex:Int:WideString; { SubStrEnd same to previous Func but Index numerated from the end of string } Func SubStrEnd(const S:Str; const Index: Int; const Separator:Str):Str; { SubWord returns next Word from string, P, and offsets Pointer to the end of Word, P2 } Func SubWord(P: PChar; var P2: PChar):Str; Func CurrencyByWord(Value: Currency):Str; { GetLineByPos returns Line number,there symbol Pos is pointed.Lines separated with #13 symbol} Func GetLineByPos(const S:Str; const Pos: Int): Int; { GetXYByPos is same as GetLineByPos, but returns X position in line as well} Proc GetXYByPos(const S:Str; const Pos: Int; var X, Y: Int); Proc GetXYByPosW(const S: WideString; const Pos: Int; var X, Y: Int); { ReplaceString searches for all substrings, OldPattern, in a string, S, and replaces them with NewPattern } Func ReplaceString(S:Str;const OldPattern,NewPattern:str;StartIndex:Int= 1):str; Func ReplaceStringW(S:WideString;const OldPattern,NewPattern:WideString;StartIndex:Int=1):WideString; { ConcatSep concatenate S1 and S2 strings with Separator. if S ='' then separator not included} Func ConcatSep(const S1, S2, Separator:Str):Str; {$IFDEF SUPPORTS_INLINE} inline; {$ENDIF SUPPORTS_INLINE} { ConcatLeftSep is same to previous function, but strings concatenate right to left } Func ConcatLeftSep(const S1,S2, Separator:str):str;{$IFDEF SUPPORTS_INLINE}inline;{$ENDIF SUPPORTS_INLINE} { Next 4 Func for russian chars transliterating. This functions are needed because Oem2Ansi and Ansi2Oem functions sometimes suck } Proc Dos2Win(var S: Ansistr); Proc Win2Dos(var S: Ansistr); Func Dos2WinRes(const S: Ansistr): Ansistr; inline; {$ENDIF SUPPORTS_INLINE} Func Win2DosRes(const S: Ansistr): Ansistr; inline; {$ENDIF SUPPORTS_INLINE} Func Win2Koi(const S: Ansistr): Ansistr; { FillString fills the string Buffer with Count Chars } Proc FillString(var Buffer:Str; Count: Int; const Value: Char); overload; Proc FillString1(var Buffer:Str; StartIndex,Count:Int; const Value: Char);overload; { MoveString copies Count Chars from Source to Dest } Proc MoveString(const Source:Str; var Dest:Str; Count: Int); {$IFDEF SUPPORTS_INLINE} inline; {$ENDIF SUPPORTS_INLINE} overload; Proc MoveString1(const Source:Str; SrcStartIdx: Int; var Dest:Str; DstStartIdx: Int;Count:Int);{$IFDEF SUPPORTS_INLINE} inline;{$ENDIF SUPPORTS_INLINE}overload; { FillWideChar fills Buffer with Count WideChars (2 Bytes) } Proc FillWideChar(var Buffer; Count: Int; const Value: WideChar); { MoveWideChar copies Count WideChars from Source to Dest } Proc MoveWideChar(const Source;var Dest;Count:Int);{$IFDEF SUPPORTS_INLINE}inline;{$ENDIF SUPPORTS_INLINE} { FillNativeChar fills Buffer with Count NativeChars } Proc FillNativeChar(var Buffer; Count: Int; const Value: Char);// D2009 internal error {$IFDEF SUPPORTS_INLINE} inline; {$ENDIF SUPPORTS_INLINE} { MoveWideChar copies Count WideChars from Source to Dest } Proc MoveNativeChar(const Source; var Dest; Count: Int);// D2009 internal error {$IFDEF SUPPORTS_INLINE} inline; {$ENDIF SUPPORTS_INLINE} { IsSubString() compares the sub string to the string. Indices are 1th based. } Func IsSubString(const S:Str; StartIndex: Int; const SubStr:Str):Bool; { Spaces returns string consists on N space chars } Func Spaces(const N: Int):Str; { AddSpaces adds spaces to string S, if its Length is smaller than N } Func AddSpaces(const S:Str; const N: Int):Str; Func SpacesW(const N: Int): WideString; Func AddSpacesW(const S: WideString; const N: Int): WideString; { Func LastDateRUS for russian users only } { returns date relative to current date: 'äâà äíÿ íàçàä' } Func LastDateRUS(const Dat: TDateTime):Str; { CurrencyToStr format Currency, Cur, using ffCurrency float format} Func CurrencyToStr(const Cur: Currency):Str; { HasChar returns True, if Char, Ch, contains in string, S } Func HasChar(const Ch: Char; const S:Str):Bool; Func HasCharW(const Ch: WideChar; const S: WideString):Bool; inline; {$ENDIF SUPPORTS_INLINE} Func HasAnyChar(const Chars:Str; const S:Str):Bool; {$IFNDEF COMPILER12_UP} Func CharInSet(const Ch: AnsiChar;const SetOfChar:TSysCharSet):Boolean;inline;{$ENDIF SUPPORTS_INLINE} {$ENDIF ~COMPILER12_UP} Func CharInSetW(const Ch: WideChar;const SetOfChar: TSysCharSet):Boolean;inline; {$ENDIF SUPPORTS_INLINE} Func CountOfChar(const Ch: Char; const S:Str): Int; Func DefStr(const S:str; Default:str):str; {$IFDEF SUPPORTS_INLINE} inline;{$ENDIF SUPPORTS_INLINE} { StrLICompW2 is a faster replacement for JclUnicode.StrLICompW } Func StrLICompW2(S1, S2: PWideChar; MaxLen: Int): Int; Func StrPosW(S, SubStr: PWideChar): PWideChar; Func StrLenW(S: PWideChar): Int; Func TrimW(const S: WideString):WideString;{$IFDEF SUPPORTS_INLINE} inline;{$ENDIF SUPPORTS_INLINE} Func TrimLeftW(const S:WideString):WideString;{$IFDEF SUPPORTS_INLINE} inline;{$ENDIF SUPPORTS_INLINE} Func TrimRightW(const S: WideString): WideString; inline; {$ENDIF SUPPORTS_INLINE} TPixelFormat', '( pfDevice, pf1bit, pf4bit, pf8bit, pf24bit ) TMappingMethod', '( mmHistogram, mmQuantize, mmTrunc784, mmTrunc666, mmTripel, mmGrayscale ) Func GetBitmapPixelFormat( Bitmap : TBitmap) : TPixelFormat Func GetPaletteBitmapFormat( Bitmap : TBitmap) : TPixelFormat Proc SetBitmapPixelFormat(Bitmap: TBitmap;PixelFormat:TPixelFormat;Method:TMappingMethod) Func BitmapToMemoryStream(Bitmap:TBitmap;PixelFormat:TPixelFormat;Method:TMappingMethod):TMemoryStream; Proc GrayscaleBitmap( Bitmap : TBitmap) Func BitmapToMemory( Bitmap : TBitmap; Colors : Int) : TStream Proc SaveBitmapToFile( const Filename :Str; Bitmap : TBitmap; Colors : Int) Func ScreenPixelFormat : TPixelFormat Func ScreenColorCount : Int Proc TileImage( Canvas : TCanvas; Rect : TRect; Image : TGraphic) Func ZoomImage( ImageW, ImageH, MaxW, MaxH : Int; Stretch :Bool): TPoint // SIRegister_TJvGradient(CL); {**************************************** files routines} Proc SetDelimitedText(List: TStrings; const Text:Str; Delimiter: Char); const {$IFDEF MSWINDOWS} DefaultCaseSensitivity = False; {$ENDIF MSWINDOWS} {$IFDEF UNIX} DefaultCaseSensitivity = True; {$ENDIF UNIX} { GenTempFileName returns temporary file name on drive, there FileName is placed } Func GenTempFileName(FileName:Str):Str; { GenTempFileNameExt same to previous function, but returning filename has given extension, FileExt } Func GenTempFileNameExt(FileName:Str; const FileExt:Str):Str; { ClearDir clears folder Dir } Func ClearDir(const Dir:Str):Bool; { DeleteDir clears and than delete folder Dir } Func DeleteDir(const Dir:Str):Bool; { FileEquMask returns True if file, FileName, is compatible with given dos file mask, Mask } Func FileEquMask(FileName,Mask:TFileName;CaseSensitive:Boolean=DefaultCaseSensitivity):Bool; { FileEquMasks returns True if file, FileName, is compatible with given Masks. Masks must be separated with SepPath (MSW: ';' / UNIX: ':') } Func FileEquMasks(FileName, Masks: TFileName; CaseSensitive:Bool = DefaultCaseSensitivity):Bool; Func DeleteFiles(const Folder: TFileName; const Masks:Str):Bool; {$IFDEF MSWINDOWS} { LZFileExpand expand file, FileSource, into FileDest. Given file must be compressed, using MS Compress program } Func LZFileExpand(const FileSource, FileDest:Str):Bool; {$ENDIF MSWINDOWS} { FileGetInfo fills SearchRec record for specified file attributes} Func FileGetInfo(FileName: TFileName; var SearchRec: TSearchRec):Bool; { HasSubFolder returns True, if folder APath contains other folders } Func HasSubFolder(APath: TFileName):Bool; { IsEmptyFolder returns True, if there are no files or folders in given folder, APath} Func IsEmptyFolder(APath: TFileName):Bool; { AddSlash returns string with added slash Char to Dir parameter, if needed } Func AddSlash(const Dir: TFileName):Str; {$IFDEF SUPPORTS_INLINE} inline; {$ENDIF SUPPORTS_INLINE} { AddPath returns FileName with Path, if FileName not contain any path } Func AddPath(const FileName, Path: TFileName): TFileName; Func AddPaths(const PathList, Path:Str):Str; Func ParentPath(const Path: TFileName): TFileName; Func FindInPath(const FileName, PathList:Str): TFileName; { DeleteReadOnlyFile clears R/O file attribute and delete file } Func DeleteReadOnlyFile(const FileName: TFileName):Bool; { HasParam returns True, if program running with specified parameter, Param } Func HasParam(const Param:Str):Bool; Func HasSwitch(const Param:Str):Bool; Func Switch(const Param:Str):Str; { ExePath returns ExtractFilePath(ParamStr(0)) } Func ExePath: TFileName; {$IFDEF SUPPORTS_INLINE} inline; {$ENDIF SUPPORTS_INLINE} Func CopyDir(const SourceDir, DestDir: TFileName):Bool; //Func FileTimeToDateTime(const FT: TFileTime): TDateTime; Proc FileTimeToDosDateTimeDWord(const FT: TFileTime; out Dft: DWORD); Func MakeValidFileName(const FileName: TFileName; ReplaceBadChar: Char): TFileName; {**** Graphic routines } { IsTTFontSelected returns True, if True Type font is selected in specified device context } Func IsTTFontSelected(const DC: HDC):Bool; Func KeyPressed(VK: Int):Bool; Func isKeypressed:Bool; //true if key on memo2 (shell output) is pressed { TrueInflateRect inflates rect in other method, than InflateRect API Func } Func TrueInflateRect(const R: TRect; const I: Int): TRect; {**** Color routines } Proc RGBToHSV(R, G, B: Int; var H, S, V: Int); Func RGBToBGR(Value:Card):Card; //Func ColorToPrettyName(Value: TColor):Str; //Func PrettyNameToColor(const Value:Str): TColor; {**** other routines } Proc SwapInt(var Int1, Int2:Int);{$IFDEF SUPPORTS_INLINE} inline;{$ENDIF SUPPORTS_INLINE} Func IntPower(Base, Exponent:Int): Int; Func ChangeTopException(E: TObject):TObject;//Linux version writes error message to ErrOutput Func StrToBool(const S:Str):Bool; Func Var2Type(V: Variant; const DestVarType: Int): Variant; Func VarToInt(V: Variant): Int; Func VarToFloat(V: Variant): Double; {following functions are not documented cause not work properly sometimes,so do not use them} // (rom) ReplaceStrings1, GetSubStr removed Func GetLongFileName(const FileName:Str):Str; Func FileNewExt(const FileName, NewExt: TFileName): TFileName; Func GetParameter:Str; Func GetComputerID:Str; Func GetComputerName:Str; {**** string routines } { ReplaceAllStrings searches for all substrings, Words, in a string, S, and replaces them with Frases with the same Index. } Func ReplaceAllStrings(const S:Str; Words, Frases: TStrings):Str; { ReplaceStrings searches the Word in a string, S, on PosBeg position, in the list, Words, and if founds, replaces this Word with string from another list,Frases, with same Index, and then update NewSelStart variable } Func ReplaceStrings(const S:str;PosBeg,Len:Int;Words,Frases:TStrings;var NewSelStart:Int):str; { CountOfLines calculates the lines count in a string, S, each line must be separated from another with CrLf sequence } Func CountOfLines(const S:Str): Int; { DeleteLines deletes all lines from strings which in the words, words. The word of will be deleted from strings. } Proc DeleteOfLines(Ss: TStrings; const Words: array of string); { DeleteEmptyLines deletes all empty lines from strings, Ss. Lines contained only spaces also deletes. } Proc DeleteEmptyLines(Ss: TStrings); { SQLAddWhere addes or modifies existing where-statement, where, to the strings, SQL. Note: If strings SQL allready contains where-statement, it must be started on the begining of any line } Proc SQLAddWhere(SQL: TStrings; const Where:Str); {**** files routines - } {$IFDEF MSWINDOWS} { ResSaveToFile save resource named as Name with Typ type into file FileName. Resource can be compressed using MS Compress program} Func ResSaveToFile(const Typ,Name:str;const Compressed:Bool;const FileName:str):Bool; Func ResSaveToFileEx(Instance:HINST;Typ,Name:PChar;const Compressed:Boolean;const FileName:str):Bool; Func ResSaveToString(Instance: HINST;const Typ,Name:str; var S:str):Boolean; {$ENDIF MSWINDOWS} { IniReadSection read section, Section, from ini-file, IniFileName, into strings, Ss.This Func reads ALL strings from specified section. Note: TIninFile.ReadSection Func reads only strings with '=' symbol.} Func IniReadSection(const IniFileName:TFileName;const Section:str; Ss: TStrings): Bool; { LoadTextFile load text file, FileName, into string } Func LoadTextFile(const FileName: TFileName):Str; Proc SaveTextFile(const FileName: TFileName; const Source:Str); {ReadFolder reads fileslist from diskfolder,Folder,that are equal to mask,Mask,into strings, FileList} Func ReadFolder(const Folder, Mask: TFileName; FileList: TStrings): Int; Func ReadFolders(const Folder: TFileName; FolderList: TStrings): Int; { RATextOut same with TCanvas.TextOut procedure,but can clipping drawing with rectangle,RClip.} Proc RATextOut(Canvas: TCanvas; const R, RClip: TRect; const S:Str); { RATextOutEx same with RATextOut function, but can calculate needed height for correct output} Func RATextOutEx(Canvas:TCanvas;const R,RClip:TRect;const S:str;const CalcHeight:Bool):Int; { RATextCalcHeight calculate needed height for correct output, using RATextOut or RATextOutEx functions } Func RATextCalcHeight(Canvas: TCanvas; const R: TRect; const S:Str): Int; { Cinema draws some visual effect } Proc Cinema(Canvas: TCanvas; rS {Source}, rD {Dest}: TRect); { Roughed fills rect with special 3D pattern } Proc Roughed(ACanvas: TCanvas; const ARect: TRect; const AVert:Bool); { BitmapFromBitmap creates new small bitmap from part of source bitmap, SrcBitmap, with specified width height,AWidth, AHeight and placed on a specified Index,Index in source bitmap } Func BitmapFromBitmap(SrcBitmap: TBitmap; const AWidth, AHeight, Index: Int): TBitmap; { TextWidth calculate text with for writing using standard desktop font } Func TextWidth(const AStr:Str): Int; { TextHeight calculate text height for writing using standard desktop font } Func TextHeight(const AStr:Str): Int; Proc SetChildPropOrd(Owner: TComponent; const PropName:Str; Value: Longint); Proc Error(const Msg:Str); Proc ItemHtDrawEx(Canvas:TCanvas;Rect:TRect;const State:TOwnerDrawState;const Text:str; const HideSelColor:Bool; var PlainItem:Str; var Width: Int; CalcWidth:Bool); {ex.Text parameter:'Item 1bolditalic ITALIC redgreenblue'} Func ItemHtDraw(Canvas: TCanvas; Rect: TRect; const State: TOwnerDrawState; const Text:Str; const HideSelColor:Bool):Str; Func ItemHtWidth(Canvas: TCanvas; Rect: TRect; const State: TOwnerDrawState; const Text:Str; const HideSelColor:Bool): Int; Func ItemHtPlain(const Text:Str):Str; { ClearList - clears list of TObject } Proc ClearList(List: TList); Proc MemStreamToClipBoard(MemStream: TMemoryStream; const Format: Word); Proc ClipBoardToMemStream(MemStream: TMemoryStream; const Format: Word); { RTTI support } Func GetPropType(Obj: TObject; const PropName:Str): TTypeKind; Func GetPropStr(Obj: TObject; const PropName:Str):Str; Func GetPropOrd(Obj: TObject; const PropName:Str): Int; Func GetPropMethod(Obj: TObject; const PropName:Str): TMethod; Proc PrepareIniSection(Ss: TStrings); {following functions are not documented because they are don't work properly,so don't use them} // (rom) from JvBandWindows to make it obsolete Func PointL(const X, Y: Longint): TPointL; {$IFDEF SUPPORTS_INLINE} inline; {$ENDIF SUPPORTS_INLINE} // (rom) from JvBandUtils to make it obsolete Func iif(const Test:Bool; const ATrue, AFalse: Variant): Variant; Proc CopyIconToClipboard(Icon: TIcon; BackColor: TColor); Func CreateIconFromClipboard: TIcon; { begin JvIconClipboardUtils } { Icon clipboard routines } Func CF_ICON: Word; Proc AssignClipboardIcon(Icon: TIcon); { Real-size icons support routines (32-bit only) } Proc GetIconSize(Icon: HICON; var W, H: Int); Func CreateRealSizeIcon(Icon: TIcon): HICON; Proc DrawRealSizeIcon(Canvas: TCanvas; Icon: TIcon; X, Y: Int); {end JvIconClipboardUtils } Func CreateScreenCompatibleDC: HDC; Func InvalidateRect(hWnd: HWND; const lpRect:TRect; bErase:BOOL):BOOL; overload;{$IFDEF SUPPORTS_INLINE} inline; {$ENDIF} Func InvalidateRect(hWnd: HWND; lpRect: PRect; bErase: BOOL): BOOL; overload; { begin JvRLE } // (rom) changed API for inclusion in JCL Proc RleCompressTo(InStream, OutStream: TStream); Proc RleDecompressTo(InStream, OutStream: TStream); Proc RleCompress(Stream: TStream); Proc RleDecompress(Stream: TStream); { end JvRLE } { begin JvDateUtil } Func CurrentYear: Word; {$IFDEF SUPPORTS_INLINE} inline; {$ENDIF SUPPORTS_INLINE} Func IsLeapYear(AYear: Int):Bool; Func DaysInAMonth(const AYear, AMonth: Word): Word; Func DaysPerMonth(AYear, AMonth: Int): Int; Func FirstDayOfPrevMonth: TDateTime; Func LastDayOfPrevMonth: TDateTime; Func FirstDayOfNextMonth: TDateTime; Func ExtractDay(ADate: TDateTime): Word; Func ExtractMonth(ADate: TDateTime): Word; Func ExtractYear(ADate: TDateTime): Word; Func IncDate(ADate: TDateTime; Days, Months, Years: Int): TDateTime; Func IncDay(ADate: TDateTime;Delta:Int):TDateTime; inline; {$ENDIF SUPPORTS_INLINE} Func IncMonth(ADate: TDateTime; Delta: Int): TDateTime; Func IncYear(ADate: TDateTime; Delta: Int): TDateTime; Func ValidDate(ADate: TDateTime):Bool; Proc DateDiff(Date1, Date2: TDateTime; var Days, Months, Years: Word); Func MonthsBetween(Date1, Date2: TDateTime): Double; Func DaysInPeriod(Date1, Date2: TDateTime): Longint; { Count days between Date1 and Date2 + 1, so if Date1 = Date2 result = 1 } Func DaysBetween(Date1, Date2: TDateTime): Longint; { The same as previous but if Date2 < Date1 result = 0 } Func IncTime(ATime: TDateTime; Hours, Minutes, Seconds, MSecs: Int): TDateTime; Func IncHour(ATime: TDateTime; Delta: Int): TDateTime; Func IncMinute(ATime: TDateTime; Delta: Int): TDateTime; Func IncSecond(ATime: TDateTime; Delta: Int): TDateTime; Func IncMSec(ATime: TDateTime; Delta: Int): TDateTime; Func CutTime(ADate: TDateTime): TDateTime; { Set time to 00:00:00:00 } { String to date conversions } Func GetDateOrder(const DateFormat:Str): TDateOrder; Func MonthFromName(const S:Str; MaxLen: Byte): Byte; Func StrToDateDef(const S:Str; Default: TDateTime): TDateTime; Func StrToDateFmt(const DateFormat, S:Str): TDateTime; Func StrToDateFmtDef(const DateFormat, S:Str; Default: TDateTime): TDateTime; //Func DefDateFormat(AFourDigitYear:Bool):Str; //Func DefDateMask(BlanksChar: Char; AFourDigitYear:Bool):Str; Func FormatLongDate(Value: TDateTime):Str; Func FormatLongDateTime(Value: TDateTime):Str; { end JvDateUtil } Func BufToBinStr(Buf: Pointer; BufSize: Int):Str; Func BinStrToBuf(Value:Str; Buf: Pointer; BufSize: Int): Int; { begin JvStrUtils } { ** Common string handling routines ** } {$IFDEF UNIX} Func iconversion(InP: PAnsiChar; OutP: Pointer; InBytes, OutBytes:Card; const ToCode, FromCode: Ansistr):Bool; Func iconvString(const S, ToCode, FromCode: Ansistr):Str; Func iconvWideString(const S: WideString; const ToCode, FromCode:Ansistr):WideString; Func OemStrToAnsi(const S: Ansistr): Ansistr; Func AnsiStrToOem(const S: Ansistr): Ansistr; {$ENDIF UNIX} Func StrToOem(const AnsiStr: Ansistr): Ansistr; { StrToOem translates a string from the Windows character set into the OEM character set. } Func OemToAnsiStr(const OemStr: Ansistr): Ansistr; { OemToAnsiStr translates a string from the OEM character set into the Windows character set. } Func IsEmptyStr(const S:Str; const EmptyChars: TSysCharSet):Bool; { EmptyStr returns True if the given string contains only character from the EmptyChars. } Func ReplaceStr(const S, Srch, Replace:Str):Str; { Returns string with every occurrence of Srch string replaced with Replace string. } Func DelSpace(const S:Str):Str; { DelSpace return a string with all white spaces removed. } Func DelChars(const S:Str; Chr: Char):Str; { DelChars return a string with all Chr characters removed. } Func DelBSpace(const S:Str):Str; { DelBSpace trims leading spaces from given string. } Func DelESpace(const S:Str):Str; { DelESpace trims trailing spaces from given string. } Func DelRSpace(const S:Str):Str; { DelRSpace trims leading and trailing spaces from the given string. } Func DelSpace1(const S:Str):Str; { DelSpace1 return a string with all non-single white spaces removed. } Func Tab2Space(const S:Str; Numb: Byte):Str; { Tab2Space converts any tabulation character in given string to the Numb spaces characters. } Func NPos(const C:Str; S:Str; N: Int): Int; { NPos searches for a N-th position of substring C in a given string. } Func MakeStr(C: Char; N: Int):Str; overload; {$IFNDEF COMPILER12_UP} Func MakeStr(C: WideChar; N: Int): WideString; overload; {$ENDIF !COMPILER12_UP} Func MS(C: Char; N: Int):Str; {$IFDEF SUPPORTS_INLINE} inline;{$ENDIF SUPPORTS_INLINE} { MakeStr return a string of length N filled with character C. } Func AddChar(C: Char; const S:Str; N: Int):Str; { AddChar return a string left-padded to length N with characters C. } Func AddCharR(C: Char; const S:Str; N: Int):Str; { AddCharR return a string right-padded to length N with characters C. } Func LeftStr(const S:Str; N: Int):Str; { LeftStr return a string right-padded to length N with blanks. } Func RightStr(const S:Str; N: Int):Str; { RightStr return a string left-padded to length N with blanks. } Func CenterStr(const S:Str; Len: Int):Str; { CenterStr centers the characters in the string based upon the Len specified. } Func CompStr(const S1, S2:Str): Int; {$IFDEF SUPPORTS_INLINE} inline; {$ENDIF SUPPORTS_INLINE} { CompStr compares S1 to S2, with case-sensitivity. The return value is -1 if S1 < S2, 0 if S1 = S2, or 1 if S1 > S2. } Func CompText(const S1, S2:Str):Int; {$IFDEF SUPPORTS_INLINE} inline; {$ENDIF SUPPORTS_INLINE} { CompText compares S1 to S2,without case-sensitivity. return value is same as for CompStr. } Func Copy2Symb(const S:Str; Symb: Char):Str; { Copy2Symb returns a substring of a string S from begining to first character Symb. } Func Copy2SymbDel(var S:Str; Symb: Char):Str; { Copy2SymbDel returns a substring of a string S from begining to first character Symb and removes this substring from S. } Func Copy2Space(const S:Str):Str; { Copy2Symb returns a substring of a string S from begining to first white space. } Func Copy2SpaceDel(var S:Str):Str; { Copy2SpaceDel returns a substring of a string S from begining to first white space and removes this substring from S. } Func AnsiProperCase(const S:Str; const WordDelims: TSysCharSet):Str; { Returns string, with the first letter of each word in uppercase, all other letters in lowercase. Words are delimited by WordDelims. } Func WordCount(const S:Str; const WordDelims: TSysCharSet): Int; { WordCount given a set of word delimiters, returns number of words in S. } Func WordPosition(const N: Int; const S:Str; const WordDelims: TSysCharSet):Int; { Given a set of word delimiters, returns start position of N'th word in S. } Func ExtractWord(N: Int; const S:Str; const WordDelims: TSysCharSet):Str; Func ExtractWordPos(N:Int;const S:str;const WordDelims:TSysCharSet;var Pos:Int):str; Func ExtractDelimited(N: Int; const S:Str;const Delims: TSysCharSet):Str; { ExtractWord, ExtractWordPos and ExtractDelimited given a set of word delimiters, return the N'th word in S. } Func ExtractSubstr(const S:Str; var Pos: Int;const Delims: TSysCharSet):Str; { ExtractSubstr given a set of word delimiters, returns the substring from S, that started from position Pos. } Func IsWordPresent(const W, S:Str; const WordDelims: TSysCharSet):Bool; {IsWordPresent given a set of word delimiters, returns True if word W is present in string S.} Func QuotedString(const S:Str; Quote: Char):Str; {QuotedString returns the given string as a quoted string, using provided Quote character. } Func ExtractQuotedString(const S:Str; Quote: Char):Str; { ExtractQuotedString removes the Quote characters from beginning and end of a quoted string,and reduces pairs of Quotecharacters within quoted string to single character.} Func FindPart(const HelpWilds, InputStr:Str): Int; { FindPart compares a string with '?' and another, returns position of HelpWilds in InputStr.} Func IsWild(InputStr, Wilds:Str; IgnoreCase:Bool):Bool; { IsWild compares InputString with WildCard string and returns True if corresponds. } Func XorString(const Key, Src: ShortString): ShortString; Func XorEncode(const Key, Source:Str):Str; Func XorDecode(const Key, Source:Str):Str; { ** Command line routines ** } Func GetCmdLineArg(const Switch:Str; ASwitchChars: TSysCharSet):Str; { ** Numeric string handling routines ** } Func Numb2USA(const S:Str):Str; { Numb2USA converts numeric string S to USA-format. } Func Dec2Hex(N: Longint; A: Byte):Str; {$IFDEF SUPPORTS_INLINE} inline; {$ENDIF SUPPORTS_INLINE} { Dec2Hex converts the given value to a hexadecimal string representation with the minimum number of digits (A) specified. } Func Hex2Dec(const S:Str): Longint; { Hex2Dec converts the given hexadecimal string to the corresponding Int value. } Func Dec2Numb(N: Int64; A, B: Byte):Str; { Dec2Numb converts the given value to a string representation with the base equal to B and with the minimum number of digits (A) specified. } Func Numb2Dec(S:Str; B: Byte): Int64; { Numb2Dec converts the given B-based numeric string to corresponding Int value. } Func IntToBin(Value: Longint; Digits, Spaces: Int):Str; { IntToBin converts the given value to a binary string representation with the minimum number of digits specified. } Func IntToRoman(Value: Longint):Str; { IntToRoman converts the given value to a roman numeric string representation. } Func RomanToInt(const S:Str): Longint; { RomanToInt converts the given string to an Int value. If the string doesn't contain a valid roman numeric value, the 0 value is returned. } Func FindNotBlankCharPos(const S:Str): Int; Func FindNotBlankCharPosW(const S: WideString): Int; Func AnsiChangeCase(const S:Str):Str; Func WideChangeCase(const S:Str):Str; Func StartsText(const SubStr, S:Str):Bool; Func EndsText(const SubStr, S:Str):Bool; Func DequotedStr(const S:Str; QuoteChar: Char = ''''):Str; Func AnsiDequotedStr(const S:Str; AQuote:Char):str;//follow Delphi 2009's "Ansi" prefix {end JvStrUtils} {$IFDEF UNIX} Func GetTempFileName(const Prefix: Ansistr):Ansistr; {$ENDIF UNIX} { begin JvFileUtil } Func FileDateTime(const FileName:Str): TDateTime; Func HasAttr(const FileName:Str; Attr: Int):Bool; Func DeleteFilesEx(const FileMasks: array of string):Bool; Func NormalDir(const DirName:Str):Str; Func RemoveBackSlash(const DirName:Str):Str; //only for Windows/DOS Paths Func ValidFileName(const FileName:Str):Bool; {$IFDEF MSWINDOWS} Func FileLock(Handle: Int; Offset, LockSize: Longint): Int; overload; Func FileLock(Handle: Int; Offset, LockSize: Int64): Int; overload; Func FileUnlock(Handle: Int; Offset, LockSize: Longint): Int; overload; Func FileUnlock(Handle: Int; Offset, LockSize: Int64): Int;overload; {$ENDIF MSWINDOWS} Func GetWindowsDir:Str; Func GetSystemDir:Str; Func ShortToLongFileName(const ShortName:Str):Str; Func LongToShortFileName(const LongName:Str):Str; Func ShortToLongPath(const ShortName:Str):Str; Func LongToShortPath(const LongName:Str):Str; {$IFDEF MSWINDOWS} Proc CreateFileLink(const FileName, DisplayName:Str; Folder: Int); Proc DeleteFileLink(const DisplayName:Str; Folder: Int); {$ENDIF MSWINDOWS} { end JvFileUtil } // Works like PtInRect but includes all edges in comparision Func PtInRectInclusive(R: TRect; Pt: TPoint):Bool; // Works like PtInRect but excludes all edges from comparision Func PtInRectExclusive(R: TRect; Pt: TPoint):Bool; Func FourDigitYear:Bool; {$IFDEF SUPPORTS_DEPRECATED} deprecated; {$ENDIF} Func IsFourDigitYear:Bool; { moved from JvJVCLUTils } //Open an object with the shell (url or something like that) Func OpenObject(const Value:Str):Bool; overload; Func OpenObject(Value: PChar):Bool; overload; {$IFDEF MSWINDOWS} //Raise the last Exception Proc RaiseLastWin32; overload; Proc RaiseLastWin32(const Text:Str); overload; //Raise last Exception with a small comment from your part {GetFileVersion returns most significant 32 bits of a file's binary version number. Typically, this includes major/minor version placed together in one 32-bit Int. Func GetFileVersion(const AFileName:Str):Card; {$EXTERNALSYM GetFileVersion} //Get version of Shell.dll Func GetShellVersion:Card; {$EXTERNALSYM GetShellVersion} // CD functions on HW Proc OpenCdDrive; Proc CloseCdDrive; // returns True if Drive is accessible Func DiskInDrive(Drive: Char):Bool; {$ENDIF MSWINDOWS} //Same as linux Func ;) Proc PError(const Text:Str); // execute a program without waiting Proc Exec(const FileName, Parameters, Directory:Str); // execute a program and wait for it to finish Func ExecuteAndWait(CmdLine:str;const WorkingDirectory:str;Visibility:Int=SW_SHOW):Int; // returns True if this is the first instance of the program that is running Func FirstInstance(const ATitle:Str):Bool; // restores a window based on it's classname and Caption. Either can be left empty // to widen the search Proc RestoreOtherInstance(const MainFormClassName, MainFormCaption:Str); // manipulate the traybar and start button Proc HideTraybar; Proc ShowTraybar; Proc ShowStartButton(Visible:Bool = True); //(rom) SC_MONITORPOWER documented as Win 95 only(rom) do some testingset monitor functions Proc MonitorOn; Proc MonitorOff; Proc LowPower; // send a key to the window named AppName Func SendKey(const AppName:Str; Key: Char):Bool; {$IFDEF MSWINDOWS} // returns list of all win currently visible, Objects property is filled with window handle Proc GetVisibleWindows(List: TStrings); Func GetVisibleWindowsF( List : TStrings):TStrings; // associates an extension to a specific program Proc AssociateExtension(const IconPath, ProgramName, Path, Extension:Str); Proc AddToRecentDocs(const FileName:Str); Func GetRecentDocs: TStringList; {$ENDIF MSWINDOWS} Func CharIsMoney(const Ch: Char):Bool; //Func StrToCurrDef(const Str:Str; Def: Currency): Currency; Func IntToExtended(I: Int): Extended; { GetChangedText works out new text given the current cursor pos & the key pressed is not very useful in other contexts,but in thisunit as itis needed in both MemoEx and TypedEdit} Func GetChangedText(const Text:Str; SelStart, SelLength: Int; Key: Char):Str; Func MakeYear4Digit(Year, Pivot: Int): Int; //Func StrIsInt(const S:Str):Bool; Func StrIsFloatMoney(const Ps:Str):Bool; Func StrIsDateTime(const Ps:Str):Bool; Func PreformatDateString(Ps:Str):Str; Func BooleanToInt(const B:Bool): Int; Func StringToBoolean(const Ps:Str):Bool; Func SafeStrToDateTime(const Ps:Str): TDateTime; Func SafeStrToDate(const Ps:Str): TDateTime; Func SafeStrToTime(const Ps:Str): TDateTime; Func StrDelete(const psSub, psMain:Str):Str; { returns the fractional value of pcValue} Func TimeOnly(pcValue: TDateTime): TTime; { returns the integral value of pcValue } Func DateOnly(pcValue: TDateTime): TDate; type TdtKind = (dtkDateOnly, dtkTimeOnly, dtkDateTime); const { TDateTime value used to signify Null value} NullEquivalentDate: TDateTime = 0.0; Func DateIsNull(const pdtValue: TDateTime; const pdtKind: TdtKind):Bool; // Replacement for Win32Check to avoid platform specific warnings in D6 Func OSCheck(RetVal:Bool):Bool; { Shortens a fully qualified Path name so that it can be drawn with a specified length limit. Same as FileCtrl.MinimizeName in functionality (but not implementation).Included here to not be forced to use FileCtrl unnecessarily } Func MinimizeFileName(const FileName:Str; Canvas: TCanvas; MaxLen: Int):Str; Func MinimizeText(const Text:Str; Canvas: TCanvas; MaxWidth: Int):Str; {MinimizeString trunactes longstring,S,and appends'...'symbols,if Length ofS is morethan MaxLen} Func MinimizeString(const S:Str; const MaxLen: Int):Str; Proc RunDll32Internal(Wnd:THandle;const DLLName,FuncName,CmdLine:str;CmdShow:Int= SW_SHOWDEFAULT); { GetDLLVersion loads DLLName, gets a pointer to DLLVersion Func and calls it, returning major and minor version values from function. Returns False if DLL not loaded or if GetDLLVersion couldn't be found.} Func GetDLLVersion(const DLLName:Str; var pdwMajor, pdwMinor: Int):Boolean; {$ENDIF MSWINDOWS} Proc ResourceNotFound(ResID: PChar); Func EmptyRect: TRect; Func RectWidth(R: TRect): Int; Func RectHeight(R: TRect): Int; Func CompareRect(const R1, R2: TRect):Bool; Proc RectNormalize(var R: TRect); Func RectIsSquare(const R: TRect):Bool; Func RectSquare(var ARect: TRect; AMaxSize: Int = -1):Bool; //If AMaxSize = -1 ,then auto calc Square's max size {$IFDEF MSWINDOWS} Proc FreeUnusedOle; Func GetWindowsVersion:Str; Func LoadDLL(const LibName:Str): THandle; Func RegisterServer(const ModuleName:Str): Bool; Func UnregisterServer(const ModuleName:Str): Bool; {$ENDIF MSWINDOWS} { String routines } Func GetEnvVar(const VarName:Str):Str; Func AnsiUpperFirstChar(const S:str):str;//follow Delphi2009's ex. with "Ansi" prefix Func StringToPChar(var S:Str): PChar; Func StrPAlloc(const S:Str): PChar; Proc SplitCommandLine(const CmdLine:Str; var ExeName, Params:Str); Func DropT(const S:Str):Str; { Memory routines } Func AllocMemo(Size: Longint): Pointer; Func ReallocMemo(fpBlock: Pointer; Size: Longint): Pointer; Proc FreeMemo(var fpBlock: Pointer); Func GetMemoSize(fpBlock: Pointer): Longint; Func CompareMem(fpBlock1, fpBlock2: Pointer; Size:Card):Bool; { Manipulate huge pointers routines } Proc HugeInc(var HugePtr: Pointer; Amount: Longint); Proc HugeDec(var HugePtr: Pointer; Amount: Longint); Func HugeOffset(HugePtr: Pointer; Amount: Longint): Pointer; Proc HugeMove(Base: Pointer; Dst, Src, Size: Longint); Proc HMemCpy(DstPtr, SrcPtr: Pointer; Amount: Longint); Func WindowClassName(Wnd: THandle):Str; Proc SwitchToWindow(Wnd: THandle; Restore:Bool); Proc ActivateWindow(Wnd: THandle); Proc ShowWinNoAnimate(Handle: THandle; CmdShow: Int); Proc KillMessage(Wnd: THandle; Msg:Card); { SetWindowTop put window to top without recreating window } Proc SetWindowTop(const Handle: THandle; const Top:Bool); Proc CenterWindow(Wnd: THandle); Func MakeVariant(const Values: array of Variant): Variant; { Convert dialog units to pixels and backwards } {$IFDEF MSWINDOWS} Func DialogUnitsToPixelsX(DlgUnits:Word):Word; Func DialogUnitsToPixelsY(DlgUnits:Word):Word; Func PixelsToDialogUnitsX(PixUnits:Word):Word; Func PixelsToDialogUnitsY(PixUnits:Word):Word; {$ENDIF MSWINDOWS} Func GetUniqueFileNameInDir(const Path, FileNameMask:Str):Str; {$IFDEF BCB} Func FindPrevInstance(const MainFormClass: ShortString;const ATitle:Str): THandle; Func ActivatePrevInstance(const MainFormClass: ShortString;const ATitle:str):Bool; {$ELSE} Func FindPrevInstance(const MainFormClass, ATitle:Str): THandle; Func ActivatePrevInstance(const MainFormClass, ATitle:Str):Bool; {$ENDIF BCB} {$IFDEF MSWINDOWS} { BrowseForFolderNative displays Browse For Folder dialog } Func BrowseForFolderNative(const Handle:THandle;const Title:str;var Folder:str):Bool; {$ENDIF MSWINDOWS} Proc AntiAlias(Clip: TBitmap); Proc AntiAliasRect(Clip: TBitmap; XOrigin, YOrigin,XFinal, YFinal: Int); Proc CopyRectDIBits(ACanvas: TCanvas; const DestRect: TRect; ABitmap: TBitmap; const SourceRect: TRect); Func IsTrueType(const FontName:Str):Bool; // Removes all non-numeric characters from AValue and returns the resulting string Func TextToValText(const AValue:Str):Str; Func ExecRegExpr( const ARegExpr, AInputStr : RegExprString) :Bool Proc SplitRegExpr( const ARegExpr, AInputStr : RegExprString; APieces : TStrings) Func ReplaceRegExpr(const ARegExpr,AInputStr,AReplaceStr:RegExprString;AUseSubstitution:bool):RegExprString; Func QuoteRegExprMetaChars( const AStr : RegExprString) : RegExprString Func RegExprSubExpressions(const ARegExpr:str;ASubExprs:TStrings;AExtendedSyntax:bool): ***************************************************unit uPSI_JvTFUtils; Func JExtractYear( ADate : TDateTime) : Word Func JExtractMonth( ADate : TDateTime) : Word Func JExtractDay( ADate : TDateTime) : Word Func ExtractHours( ATime : TDateTime) : Word Func ExtractMins( ATime : TDateTime) : Word Func ExtractSecs( ATime : TDateTime) : Word Func ExtractMSecs( ATime : TDateTime) : Word Func FirstOfMonth( ADate : TDateTime) : TDateTime Func GetDayOfNthDOW( Year, Month, DOW, N : Word) : Word Func GetWeeksInMonth( Year, Month : Word; StartOfWeek : Int) : Word Proc IncBorlDOW( var BorlDOW : Int; N : Int) Proc IncDOW( var DOW : TTFDayOfWeek; N : Int) Proc IncDays( var ADate : TDateTime; N : Int) Proc IncWeeks( var ADate : TDateTime; N : Int) Proc IncMonths( var ADate : TDateTime; N : Int) Proc IncYears( var ADate : TDateTime; N : Int) Func EndOfMonth( ADate : TDateTime) : TDateTime Func IsFirstOfMonth( ADate : TDateTime) :Bool Func IsEndOfMonth( ADate : TDateTime) :Bool Proc EnsureMonth( Month : Word) Proc EnsureDOW( DOW : Word) Func EqualDates( D1, D2 : TDateTime) :Bool Func Lesser( N1, N2 : Int) : Int Func Greater( N1, N2 : Int) : Int Func GetDivLength( TotalLength, DivCount, DivNum : Int) : Int Func GetDivNum( TotalLength, DivCount, X : Int) : Int Func GetDivStart( TotalLength, DivCount, DivNum : Int) : Int Func DOWToBorl( ADOW : TTFDayOfWeek) : Int Func BorlToDOW( BorlDOW : Int) : TTFDayOfWeek Func DateToDOW( ADate : TDateTime) : TTFDayOfWeek Proc CalcTextPos(HostRect:TRect;var TextLeft,TextTop:Int;var TextBounds:TRect;AFont:TFont;AAngle:Int;HAlign:TAlignment; VAlign:TJvTFVAlignment;ATxt:str) Proc DrawAngleText(ACanvas:TCanvas;HostRect:TRect;var TextBounds:TRect;AAngle:Int;HAlign: TAlignment;VAlign:TJvTFVAlignment;ATxt:str) Func JRectWidth( ARect : TRect) : Int Func JRectHeight( ARect : TRect): Int Func JEmptyRect : TRect Func IsClassByName( Obj : TObject; ClassName:str):Boolean Proc SIRegister_MSysUtils(CL: TPSPascalCompiler); begin Proc HideTaskBarButton( hWindow : HWND) Func msLoadStr( ID : Int) :Str Func msFormat( fmt :Str; params : array of const) :Str Func msFileExists( const FileName :Str) :Bool Func msIntToStr( Int : Int64) :Str Func msStrPas( const Str : PChar) :Str Func msRenameFile( const OldName, NewName :Str) :Bool Func CutFileName( s :Str) :Str Func GetVersionInfo( var VersionString :Str) : DWORD Func FormatTime( t :Card) :Str Func msCreateDir( const Dir :Str) :Bool Func SetAutoRun( NeedAutoRun :Bool; AppName :Str) :Bool Func SetTreeViewStyle( const hTV : HWND; dwNewStyle : dword) : DWORD Func msStrLen( Str : PChar) : Int Func msDirectoryExists( const Directory :Str) :Bool Func GetFolder( hWnd : hWnd; RootDir : Int; Caption :Str) :Str Func SetBlendWindow( hWnd : HWND; AlphaBlend : Byte) : LongBool Func EditWindowProc( hWnd : HWND; Msg : UINT; wParam : WPARAM; lParam: LPARAM):LRESULT Proc SetEditWndProc( hWnd : HWND; ptr : TObject) Func GetTextFromFile( Filename :Str) :Str Func IsTopMost(hWnd:HWND):Bool //'LWA_ALPHA','LongWord').SetUInt( $00000002); Func msStrToIntDef( const s :Str; const i : Int) : Int Func msStrToInt( s :Str) : Int Func GetItemText( hDlg : THandle; ID : DWORD):str end; Proc SIRegister_ESBMaths2(CL: TPSPascalCompiler); begin //TDynFloatArray', 'array of Extended TDynLWordArray', 'array of LongWord TDynLIntArray', 'array of LongInt TDynFloatMatrix', 'array of TDynFloatArray TDynLWordMatrix', 'array of TDynLWordArray TDynLIntMatrix', 'array of TDynLIntArray Func SquareAll( const X : TDynFloatArray) : TDynFloatArray Func InverseAll( const X : TDynFloatArray) : TDynFloatArray Func LnAll( const X : TDynFloatArray) : TDynFloatArray Func Log10All( const X : TDynFloatArray) : TDynFloatArray Func LinearTransform( const X : TDynFloatArray; Offset, Scale : Extended) : TDynFloatArray Func AddVectors( const X, Y : TDynFloatArray) : TDynFloatArray Func SubVectors( const X, Y : TDynFloatArray) : TDynFloatArray Func MultVectors( const X, Y : TDynFloatArray) : TDynFloatArray Func DotProduct( const X, Y : TDynFloatArray) : Extended Func MNorm( const X : TDynFloatArray) : Extended Func MatrixIsRectangular( const X : TDynFloatMatrix) :Bool Proc MatrixDimensions(const X:TDynFloatMatrix;var Rows,Columns:LongWord;var Rectangular:Bool; Func MatrixIsSquare( const X : TDynFloatMatrix) :Bool Func MatricesSameDimensions( const X, Y : TDynFloatMatrix) :Bool Func AddMatrices( const X, Y : TDynFloatMatrix) : TDynFloatMatrix Proc AddToMatrix( var X : TDynFloatMatrix; const Y : TDynFloatMatrix) Func SubtractMatrices( const X, Y : TDynFloatMatrix) : TDynFloatMatrix Proc SubtractFromMatrix( var X : TDynFloatMatrix; const Y : TDynFloatMatrix) Func MultiplyMatrixByConst( const X: TDynFloatMatrix; const K: Extended):TDynFloatMatrix Proc MultiplyMatrixByConst2( var X: TDynFloatMatrix; const K: Extended); Func MultiplyMatrices( const X, Y : TDynFloatMatrix) : TDynFloatMatrix; Func TransposeMatrix( const X : TDynFloatMatrix) : TDynFloatMatrix; Func GrandMean( const X : TDynFloatMatrix; var N : LongWord) : Extended end; Proc SIRegister_ESBMaths(CL: TPSPascalCompiler); begin 'ESBMinSingle','Single').setExtended( 1.5e-45); 'ESBMaxSingle','Single').setExtended( 3.4e+38); 'ESBMinDouble','Double').setExtended( 5.0e-324); 'ESBMaxDouble','Double').setExtended( 1.7e+308); 'ESBMinExtended','Extended').setExtended( 3.6e-4951); 'ESBMaxExtended','Extended').setExtended( 1.1e+4932); 'ESBMinCurrency','Currency').SetExtended( - 922337203685477.5807); 'ESBMaxCurrency','Currency').SetExtended( 922337203685477.5807); 'ESBSqrt2','Extended').setExtended( 1.4142135623730950488); 'ESBSqrt3','Extended').setExtended( 1.7320508075688772935); 'ESBSqrt5','Extended').setExtended( 2.2360679774997896964); 'ESBSqrt10','Extended').setExtended( 3.1622776601683793320); 'ESBSqrtPi','Extended').setExtended( 1.77245385090551602729); 'ESBCbrt2','Extended').setExtended( 1.2599210498948731648); 'ESBCbrt3','Extended').setExtended( 1.4422495703074083823); 'ESBCbrt10','Extended').setExtended( 2.1544346900318837219); 'ESBCbrt100','Extended').setExtended( 4.6415888336127788924); 'ESBCbrtPi','Extended').setExtended( 1.4645918875615232630); 'ESBInvSqrt2','Extended').setExtended( 0.70710678118654752440); 'ESBInvSqrt3','Extended').setExtended( 0.57735026918962576451); 'ESBInvSqrt5','Extended').setExtended( 0.44721359549995793928); 'ESBInvSqrtPi','Extended').setExtended( 0.56418958354775628695); 'ESBInvCbrtPi','Extended').setExtended( 0.68278406325529568147); 'ESBe','Extended').setExtended( 2.7182818284590452354); 'ESBe2','Extended').setExtended( 7.3890560989306502272); 'ESBePi','Extended').setExtended( 23.140692632779269006); 'ESBePiOn2','Extended').setExtended( 4.8104773809653516555); 'ESBePiOn4','Extended').setExtended( 2.1932800507380154566); 'ESBLn2','Extended').setExtended( 0.69314718055994530942); 'ESBLn10','Extended').setExtended( 2.30258509299404568402); 'ESBLnPi','Extended').setExtended( 1.14472988584940017414); 'ESBLog10Base2','Extended').setExtended( 3.3219280948873623478); 'ESBLog2Base10','Extended').setExtended( 0.30102999566398119521); 'ESBLog3Base10','Extended').setExtended( 0.47712125471966243730); 'ESBLogPiBase10','Extended').setExtended( 0.4971498726941339); 'ESBLogEBase10','Extended').setExtended( 0.43429448190325182765); 'ESBPi','Extended').setExtended( 3.1415926535897932385); 'ESBInvPi','Extended').setExtended( 3.1830988618379067154e-1); 'ESBTwoPi','Extended').setExtended( 6.2831853071795864769); 'ESBThreePi','Extended').setExtended( 9.4247779607693797153); 'ESBPi2','Extended').setExtended( 9.8696044010893586188); 'ESBPiToE','Extended').setExtended( 22.459157718361045473); 'ESBPiOn2','Extended').setExtended( 1.5707963267948966192); 'ESBPiOn3','Extended').setExtended( 1.0471975511965977462); 'ESBPiOn4','Extended').setExtended( 0.7853981633974483096); 'ESBThreePiOn2','Extended').setExtended( 4.7123889803846898577); 'ESBFourPiOn3','Extended').setExtended( 4.1887902047863909846); 'ESBTwoToPower63','Extended').setExtended( 9223372036854775808.0); 'ESBOneRadian','Extended').setExtended( 57.295779513082320877); 'ESBOneDegree','Extended').setExtended( 1.7453292519943295769E-2); 'ESBOneMinute','Extended').setExtended( 2.9088820866572159615E-4); 'ESBOneSecond','Extended').setExtended( 4.8481368110953599359E-6); 'ESBGamma','Extended').setExtended( 0.57721566490153286061); 'ESBLnRt2Pi','Extended').setExtended( 9.189385332046727E-1); //LongWord', 'Cardinal TBitList', 'Word Func UMul( const Num1, Num2 : LongWord) : LongWord Func UMulDiv2p32( const Num1, Num2 : LongWord) : LongWord Func UMulDiv( const Num1, Num2, Divisor : LongWord) : LongWord Func UMulMod( const Num1, Num2, Modulus : LongWord) : LongWord Func SameFloat( const X1, X2 : Extended) :Bool Func FloatIsZero( const X : Extended) :Bool Func FloatIsPositive( const X : Extended) :Bool Func FloatIsNegative( const X : Extended) :Bool Proc IncLim( var B : Byte; const Limit : Byte) Proc IncLimSI( var B : ShortInt; const Limit : ShortInt) Proc IncLimW( var B : Word; const Limit : Word) Proc IncLimI( var B : Int; const Limit : Int) Proc IncLimL( var B : LongInt; const Limit : LongInt) Proc DecLim( var B : Byte; const Limit : Byte) Proc DecLimSI( var B : ShortInt; const Limit : ShortInt) Proc DecLimW( var B : Word; const Limit : Word) Proc DecLimI( var B : Int; const Limit : Int) Proc DecLimL( var B : LongInt; const Limit : LongInt) Func MaxB( const B1, B2 : Byte) : Byte Func MinB( const B1, B2 : Byte) : Byte Func MaxSI(const B1, B2 : ShortInt) : ShortInt Func MinSI(const B1, B2 : ShortInt) : ShortInt Func MaxW(const B1, B2 : Word) : Word Func MinW(const B1, B2 : Word) : Word Func esbMaxI( const B1, B2 : Int) : Int Func esbMinI( const B1, B2 : Int) : Int Func MaxL(const B1, B2 : LongInt) : LongInt Func MinL(const B1, B2 : LongInt) : LongInt Proc SwapB( var B1, B2 : Byte) Proc SwapSI( var B1, B2 : ShortInt) Proc SwapW( var B1, B2 : Word) Proc SwapI( var B1, B2 : SmallInt) Proc SwapL( var B1, B2 : LongInt) Proc SwapI32( var B1, B2 : Int) Proc SwapC( var B1, B2 : LongWord) Proc SwapInt64( var X, Y : Int64) Func esbSign( const B : LongInt) : ShortInt Func Max4Word(const X1, X2, X3, X4 : Word) : Word Func Min4Word(const X1, X2, X3, X4 : Word) : Word Func Max3Word(const X1, X2, X3 : Word) : Word Func Min3Word(const X1, X2, X3 : Word) : Word Func MaxBArray(const B : array of Byte) : Byte Func MaxWArray(const B : array of Word) : Word Func MaxSIArray(const B : array of ShortInt) : ShortInt Func MaxIArray(const B :array of Int) : Int Func MaxLArray(const B :array of LongInt) : LongInt Func MinBArray(const B :array of Byte) : Byte Func MinWArray(const B :array of Word) : Word Func MinSIArray( const B: array of ShortInt) : ShortInt Func MinIArray(const B :array of Int) : Int Func MinLArray(const B :array of LongInt) : LongInt Func SumBArray(const B :array of Byte) : Byte Func SumBArray2( const B :array of Byte) : Word Func SumSIArray( const B :array of ShortInt) : ShortInt Func SumSIArray2( const B: array of ShortInt) : Int Func SumWArray( const B :array of Word) : Word Func SumWArray2(const B :array of Word) : LongInt Func SumIArray(const B : array of Int) : Int Func SumLArray(const B : array of LongInt) : LongInt Func SumLWArray(const B :array of LongWord) : LongWord Func ESBDigits( const X :LongWord) : Byte Func BitsHighest( const X : LongWord) : Int Func ESBBitsNeeded( const X : LongWord) : Int Func esbGCD( const X, Y : LongWord) : LongWord Func esbLCM( const X, Y : LongInt) : Int64 //Func esbLCM( const X, Y : LongInt) : LongInt Func RelativePrime( const X, Y : LongWord) :Bool Func Get87ControlWord : TBitList Proc Set87ControlWord( const CWord : TBitList) Proc SwapExt( var X, Y : Extended) Proc SwapDbl( var X, Y : Double) Proc SwapSing( var X, Y : Single) Func esbSgn( const X : Extended) : ShortInt Func Distance( const X1, Y1, X2, Y2: Extended) : Extended Func ExtMod( const X, Y : Extended): Extended Func ExtRem( const X, Y : Extended): Extended Func CompMOD( const X, Y : Comp) : Comp Proc Polar2XY( const Rho, Theta : Extended; var X, Y: Extended) Proc XY2Polar( const X, Y : Extended; var Rho, Theta: Extended) Func DMS2Extended( const Degs, Mins, Secs : Extended): Extended Proc Extended2DMS( const X : Extended; var Degs, Mins, Secs: Extended) Func MaxExt( const X, Y : Extended) : Extended Func MinExt( const X, Y : Extended) : Extended Func MaxEArray( const B : array of Extended) : Extended Func MinEArray( const B : array of Extended) : Extended Func MaxSArray( const B : array of Single) : Single Func MinSArray( const B : array of Single) : Single Func MaxCArray( const B : array of Comp) : Comp Func MinCArray( const B : array of Comp) : Comp Func SumSArray( const B : array of Single) : Single Func SumEArray( const B : array of Extended) : Extended Func SumSqEArray( const B : array of Extended) : Extended Func SumSqDiffEArray( const B : array of Extended; Diff : Extended):Extended Func SumXYEArray( const X, Y : array of Extended) : Extended Func SumCArray( const B : array of Comp) : Comp Func FactorialX( A : LongWord) : Extended Func PermutationX( N, R : LongWord) : Extended Func esbBinomialCoeff( N, R : LongWord) : Extended Func IsPositiveEArray( const X : array of Extended) :Bool Func esbGeometricMean( const X : array of Extended) : Extended Func esbHarmonicMean( const X : array of Extended) : Extended Func ESBMean( const X : array of Extended) : Extended Func esbSampleVariance( const X : array of Extended) : Extended Func esbPopulationVariance( const X : array of Extended) : Extended Proc esbSampleVarianceAndMean(const X: array of Extended; var Variance, Mean :Extended) Proc esbPopulationVarianceAndMean(const X:array of Extended;var Variance,Mean:Extended) Func GetMedian( const SortedX : array of Extended) : Extended Func GetMode( const SortedX : array of Extended; var Mode : Extended) :Bool Proc GetQuartiles( const SortedX : array of Extended; var Q1, Q3 : Extended) Func ESBMagnitude( const X : Extended) : Int Func ESBTan( Angle : Extended) : Extended Func ESBCot( Angle : Extended) : Extended Func ESBCosec( const Angle : Extended) : Extended Func ESBSec( const Angle : Extended) : Extended Func ESBArcTan( X, Y : Extended) : Extended Proc ESBSinCos( Angle : Extended; var SinX, CosX : Extended) Func ESBArcCos( const X : Extended) : Extended Func ESBArcSin( const X : Extended) : Extended Func ESBArcSec( const X : Extended) : Extended Func ESBArcCosec( const X : Extended) : Extended Func ESBLog10( const X : Extended) : Extended Func ESBLog2( const X : Extended) : Extended Func ESBLogBase( const X, Base : Extended) : Extended Func Pow2( const X : Extended) : Extended Func IntPow( const Base : Extended; const Exponent : LongWord) : Extended Func ESBIntPower( const X : Extended; const N : LongInt) : Extended Func XtoY( const X, Y : Extended) : Extended Func esbTenToY( const Y : Extended) : Extended Func esbTwoToY( const Y : Extended) : Extended Func LogXtoBaseY( const X, Y : Extended) : Extended Func esbISqrt( const I : LongWord) : Longword Func ILog2( const I : LongWord) : LongWord Func IGreatestPowerOf2( const N : LongWord) : LongWord Func ESBArCosh(X:Extended):Extended Func ESBArSinh(X:Extended):Extended Func ESBArTanh(X:Extended):Extended Func ESBCosh(X:Extended):Extended Func ESBSinh(X:Extended):Extended Func ESBTanh(X:Extended):Extended Func InverseGamma(const X: Extended) : Extended Func esbGamma(const X : Extended): Extended Func esbLnGamma(const X: Extended): Extended Func esbBeta(const X, Y: Extended): Extended Func IncompleteBeta(X :Extended; P, Q: Extended): Extended end; *****************************Int Huge Cardinal Utils*************************** Func Add_uint64_WithCarry( x, y : uint64; var Carry :Bool) : uint64 Func Add_uint32_WithCarry( x, y : uint32; var Carry :Bool) : uint32 Func Subtract_uint64_WithBorrow( x, y : uint64; var Borrow :Bool) : uint64 Func Subtract_uint32_WithBorrow( x, y : uint32; var Borrow :Bool) : uint32 Func BitCount_8( Value : byte) : Int Func BitCount_16( Value : uint16) : Int Func BitCount_32( Value : uint32) : Int Func BitCount_64( Value : uint64) : Int Func CountSetBits_64( Value : uint64) : Int TPrimalityTestNoticeProc', Proc ( CountPrimalityTests : Int) Func gcdhuge( a, b : THugeCardinal) : THugeCardinal Func lcmhuge( a, b : THugeCardinal) : THugeCardinal Func isCoPrime( a, b : THugeCardinal) :Bool Func isProbablyPrime(p:THugeCardinal;OnProgress:TProgress;var wasAborted:bool):boolean Func hasSmallFactor( p : THugeCardinal) :Bool Func GeneratePrime(NumBits: Int;OnProgress:TProgress;OnPrimalityTest:TPrimalityTestNoticeProc;PassCount:Int;Pool1:TMemoryStreamPool;var Prime:THugeCardinal; var NumbersTested:Int):bool Func Inverse( Prime, Modulus : THugeCardinal) : THugeCardinal Const('StandardExponent','LongInt'( 65537); Proc Compute_RSA_Fundamentals_2Factors(RequiredBitLengthOfN:Int;Fixed_e:uint64;var N,e,d,Totient:TProgress;OnPrimalityTest:TPrimalityTestNoticeProc; GeneratePrimePassCount:int;Pool1:TMemoryStreamPool;var Numbers Func Validate_RSA_Fundamentals( var N, e, d, Totient : THugeCardinal:Bool') Func AnsiBytesOf(const S:Str): TBytes; Func GetBytes(value:Str): TBytes; Func GetBytesInt(value: Smallint): TBytes; Func HugeToBase10(const AHuge: THugeCardinal):Str; (*----------------------------------------------------------------------------*) Proc SIRegister_uTPLb_StreamUtils(CL: TPSPascalCompiler); begin SIRegister_TDesalinationWriteStream(CL); // CL.AddTypeS('TByteDynArray', 'array of Byte Func CloneMemoryStream( Original : TMemoryStream) : TMemoryStream Proc CopyMemoryStream( Source, Destination : TMemoryStream) Proc BurnMemoryStream( Destructo : TMemoryStream) Proc BurnMemory( var Buff, BuffLen : integer) Proc BurnMemoryString( var Buff:Str; BuffLen : integer) Proc BurnMemoryInteger( var Buff: Integer; BuffLen : integer) Proc BurnMemoryString2( Buff:Str; BuffLen : integer) Proc BurnMemoryInteger2( Buff: Integer; BuffLen : integer) (Proc BurnMemoryByteArray( var array of Byte; BuffLen : integer) Proc BurnMemoryByteArray2( var buff: TByteDynArray; BuffLen : integer) Proc BurnMemoryByteArray3( buff: TByteDynArray; BuffLen : integer) Proc ZeroFillStream( Stream : TMemoryStream) Proc RandomFillStream( Stream : TMemoryStream) Proc XOR_Streams2( Dest, Srce : TMemoryStream) Proc XOR_Streams3( Dest, SrceA, SrceB : TMemoryStream) Func CompareMemoryStreams( S1, S2 : TMemoryStream) :Bool Func Stream_to_Base64( Source : TStream) : Ansistr Func Stream_to_Base642( Source : TStream) : Ansistr Proc Base64_to_stream2( const Base64 : Ansistr; Destin : TStream) Func Stream_to_Ansistr( Source : TStream) : Ansistr Func StreamtoAnsistr( Source : TStream) : Ansistr Func StreamToString( Source : TStream) :Str Func StreamToString2( Source : TStream) :Str Func StreamToString3( Source : TStream) :Str Func StreamToString4( Source : TStream) :Str Ansistr_to_stream( const Value : Ansistr; Destin : TStream) Func CompareFiles(const FN1,FN2:str;Breathe:TNotifyEvent;BreathingSender:TObject):bool; Func FileSize( const FileName :Str) : int64 Func Stream_to_decimalbytes( Source : TStream) :Str Func StreamToDecimalbytes( Source : TStream) :Str Func StreamtoOrd( Source : TStream) :Str Func StreamToByte( Source : TStream) :Str Func DisplayStream( Stream : TStream) :Str Proc Base64_to_streamBytes( const Base64: TBytes; Destin: TStream); Func Stream_to_Base64Bytes(ASource: TStream; const ATransform: TBytes): TBytes; Func Stream_To_Hex(ASource: TStream): Ansistr; // from unit uPSI_uTPLb_PointerArithmetic; Proc ClearMemory( Stream : TMemoryStream; Offset, CountBytes : integer) Func ReadMem(Source:TStream;Destin:TMemoryStream;DestinOffset,CountBytes:integer):int); Func WriteMem(Source:TMemoryStream;SourceOffset:int;Destin:TStream;CountBytes:int):int; end; Proc SIRegister_EwbCoreTools(CL: TPSPascalCompiler); begin //CL.AddDelphiFunction('Func IsWinXPSP2OrLater( ) :Bool Func ColorToHTML2( const Color : TColor) :Str //Func WideStringToLPOLESTR( const Source : Widestring) : POleStr //Func XPath4Node( node : IHTMLElement) :Str //Func TaskAllocWideString( const S :Str) : PWChar Func AnsiIndexStr2( const AText :Str; const AValues : array of string) : Integer Func GetPos( const SubSt, Text :Str; StartPos : Integer) : Integer Func _CharPos( const C : Char; const S :Str) : Integer Func CutString(var Text:str; const Delimiter:str; const Remove:Boolean) :Str Proc FormatPath( Path :Str) Func GetWinText( WinHandle : THandle) :Str Func GetWinClass( Handle : Hwnd) : WideString Func GetParentWinByClass( ChildHandle : HWND; const ClassName :Str) : HWND Func DirectoryExists2( const Directory :Str) :Bool //CL.AddDelphiFunction('Func VarSupports(const V:Variant;const IID:TGUID; out Intf): Bool); Func CharInSet3( C : Char; const CharSet : TSysCharSet) :Bool Func AddBackSlash2( const S :Str) :Str CL.AddConstantN('WM_SETWBFOCUS','LongWord').SetUInt( $0400 + $44); end; Proc SIRegister_EwbUrl(CL: TPSPascalCompiler); begin 'TEMP_SIZE_EWB','LongInt').SetInt( 1024); 'MAX_BUFFER_EWB','LongInt').SetInt( 256); 'WebDelim_EWB','String').SetString( '/'); 'ProtocolDelim_EWB','String').SetString( '://'); 'QueryDelim_EWB','String').SetString( '?'); 'BookmarkDelim_EWB','String').SetString( '#'); 'EqualDelim_EWB','String').SetString( '='); 'DriveDelim_EWB','String').SetString( ':'); CL.AddTypeS('TQueryOption_EWB', 'ULONG'); TOnError_EWB','Proc (Sender:TObject;ErrorCode:integer;ErrMessage:str); SIRegister_TUrl(CL); end; Func IS_INTRESOURCE(lpszType: PChar): BOOL; //as of windows.pas begin Result:= ULONG_PTR(lpszType) shr 16 = 0; end; Func ResourceNameToString(lpszName: PChar):Str; Func ResourceTypeToString(lpszType: PChar):Str; Proc storeRCDATAResourcetofile(aresname, afilename:Str); Func InternalfindNextUrlToDownload(aNode: TPageNotYetDownloadedBinTreeNode; '+ alowDeepLevel: Integer): TPageNotYetDownloadedBinTreeNode;'); //ALWebSpider Proc SIRegister_xrtl_math_Int(CL: TPSPascalCompiler); begin AddTypeS('TXRTLInt', 'array of Int AddClassN(FindClass('TOBJECT'),'EXRTLMathException (FindClass('TOBJECT'),'EXRTLExtendInvalidArgument AddClassN(FindClass('TOBJECT'),'EXRTLDivisionByZero AddClassN(FindClass('TOBJECT'),'EXRTLExpInvalidArgument AddClassN(FindClass('TOBJECT'),'EXRTLInvalidRadix AddClassN(FindClass('TOBJECT'),'EXRTLInvalidRadixDigit AddClassN(FindClass('TOBJECT'),'EXRTLRootInvalidArgument 'BitsPerByte','LongInt'( 8); BitsPerDigit','LongInt'( 32); SignBitMask','LongWord( $80000000); Func XRTLAdjustBits( const ABits : Int) : Int Func XRTLLength( const AInt : TXRTLInt) : Int Func XRTLDataBits( const AInt : TXRTLInt) : Int Proc XRTLBitPosition( const BitIndex : Int; var Index, Mask : Int) Proc XRTLBitSet( var AInt : TXRTLInt; const BitIndex : Int) Proc XRTLBitReset( var AInt : TXRTLInt; const BitIndex : Int) Func XRTLBitGet( const AInt : TXRTLInt; const BitIndex : Int) : Int Func XRTLBitGetBool( const AInt : TXRTLInt; const BitIndex : Int) :Bool Func XRTLExtend(const AInt:TXRTLInt;ADataBits:Int;Sign:Int;var AResult:TXRTLInt):Int; Func XRTLZeroExtend(const AInt:TXRTLInt;ADataBits:Int; var AResult:TXRTLInt):Int; Func XRTLSignExtend(const AInt:TXRTLInt; ADataBits:Int;var AResult:TXRTLInt):Int; Func XRTLSignStrip(const AInt:TXRTLInt;var AResult:TXRTLInt;const AMinDataBits:Int):Int; Proc XRTLNot( const AInt : TXRTLInt; var AResult : TXRTLInt) Proc XRTLOr( const AInt1, AInt2 : TXRTLInt; var AResult : TXRTLInt) Proc XRTLAnd( const AInt1, AInt2 : TXRTLInt; var AResult : TXRTLInt) Proc XRTLXor( const AInt1, AInt2 : TXRTLInt; var AResult : TXRTLInt) Func XRTLSign( const AInt : TXRTLInt) : Int Proc XRTLZero( var AInt : TXRTLInt) Proc XRTLOne( var AInt : TXRTLInt) Proc XRTLMOne( var AInt : TXRTLInt) Proc XRTLTwo( var AInt : TXRTLInt) Func XRTLNeg( const AInt : TXRTLInt; var AResult : TXRTLInt) : Int Func XRTLAbs( const AInt : TXRTLInt; var AResult : TXRTLInt) : Int Proc XRTLFullSum( const A, B, C : Int; var Sum, Carry : Int) Func XRTLAdd( const AInt1, AInt2 : TXRTLInt; var AResult : TXRTLInt) : Int; Func XRTLAdd1(const AInt1:TXRTLInt;const AInt2:Int64;var AResult:TXRTLInt):Int; Func XRTLSub( const AInt1, AInt2 : TXRTLInt; var AResult : TXRTLInt) : Int; Func XRTLSub1(const AInt1:TXRTLInt;const AInt2:Int64;var AResult:TXRTLInt):Int; Func XRTLCompare( const AInt1, AInt2 : TXRTLInt) : Int; Func XRTLCompare1( const AInt1 : TXRTLInt; const AInt2 : Int64) : Int; Func XRTLUMul( const AInt1, AInt2 : TXRTLInt; var AResult : TXRTLInt) : Int Func XRTLMulAdd(const AInt1,AInt2,AInt3:TXRTLInt; var AResult:TXRTLInt):Int Func XRTLMul( const AInt1, AInt2 : TXRTLInt; var AResult : TXRTLInt) : Int Proc XRTLDivMod( const AInt1, AInt2 : TXRTLInt; var QResult, RResult : TXRTLInt) Proc XRTLSqr( const AInt : TXRTLInt; var AResult : TXRTLInt) Proc XRTLSqrt( const AInt : TXRTLInt; var AResult : TXRTLInt) Proc XRTLRoot( const AInt1, AInt2 : TXRTLInt; var AResult : TXRTLInt) Proc XRTLRootApprox(const AInt1,AInt2:TXRTLInt;var ALowApproxResult,AHighApproxResult:TXRTLInt) Proc XRTLURootApprox(const AInt1,AInt2:TXRTLInt;var ALowApproxResult,AHighApproxResult:TXRTLInt); Proc XRTLExp( const AInt1, AInt2 : TXRTLInt; var AResult : TXRTLInt) Proc XRTLExpMod( const AInt1, AInt2, AInt3 : TXRTLInt;var AResult: TXRTLInt) Proc XRTLSLBL(const AInt: TXRTLInt; const BitCount:Int; var AResult: TXRTLInt) Proc XRTLSABL(const AInt: TXRTLInt; const BitCount:Int; var AResult: TXRTLInt) Proc XRTLRCBL(const AInt: TXRTLInt; const BitCount:Int; var AResult: TXRTLInt) Proc XRTLSLDL(const AInt:TXRTLInt;const DigitCount:Int; var AResult:TXRTLInt) Proc XRTLSADL(const AInt: TXRTLInt; const DigitCount:Int;var AResult: TXRTLInt) Proc XRTLRCDL(const AInt:TXRTLInt; const DigitCount:Int; var AResult: TXRTLInt) Proc XRTLSLBR(const AInt: TXRTLInt; const BitCount:Int; var AResult: TXRTLInt) Proc XRTLSABR(const AInt: TXRTLInt; const BitCount:Int; var AResult: TXRTLInt) Proc XRTLRCBR(const AInt: TXRTLInt; const BitCount:Int; var AResult: TXRTLInt) Proc XRTLSLDR(const AInt:TXRTLInt; const DigitCount:Int; var AResult: TXRTLInt) Proc XRTLSADR(const AInt: TXRTLInt; const DigitCount:Int;var AResult: TXRTLInt) Proc XRTLRCDR(const AInt: TXRTLInt;const DigitCount:Int;var AResult: TXRTLInt) Func XRTLToHex( const AInt : TXRTLInt; Digits : Int) :Str Func XRTLToBin( const AInt : TXRTLInt; Digits : Int) :Str Func XRTLToString(const AInt : TXRTLInt; Radix : Int; Digits : Int) :Str Proc XRTLFromHex(const Value :Str; var AResult : TXRTLInt) Proc XRTLFromBin(const Value :Str; var AResult : TXRTLInt) Proc XRTLFromString(const Value :Str; var AResult : TXRTLInt; Radix : Int) Proc XRTLAssign( const AInt : TXRTLInt; var AResult : TXRTLInt); Proc XRTLAssign1(const Value : Int; var AResult : TXRTLInt); Proc XRTLAssign2(const Value : Int64; var AResult : TXRTLInt); Proc XRTLAppend( const ALow, AHigh : TXRTLInt; var AResult : TXRTLInt) Proc XRTLSplit(const AInt: TXRTLInt; var ALow,AHigh: TXRTLInt;LowDigits: Int) Func XRTLGetMSBitIndex( const AInt : TXRTLInt) : Int Proc XRTLMinMax(const AInt1, AInt2:TXRTLInt;var AMinResult,AMaxResult: TXRTLInt) Proc XRTLMin( const AInt1, AInt2 : TXRTLInt; var AResult : TXRTLInt); Proc XRTLMin1(const AInt1: TXRTLInt;const AInt2:Int;var AResult : TXRTLInt); Proc XRTLMax( const AInt1, AInt2 : TXRTLInt; var AResult : TXRTLInt); Proc XRTLMax1(const AInt1:TXRTLInt; const AInt2:Int; var AResult:TXRTLInt); Proc XRTLGCD( const AInt1, AInt2 : TXRTLInt; var AResult : TXRTLInt) Proc XRTLSwap( var AInt1, AInt2 : TXRTLInt) Proc XRTLFactorial( const AInt : TXRTLInt; var AResult : TXRTLInt) Proc XRTLFactorialMod( const AInt1, AInt2 : TXRTLInt; var AResult : TXRTLInt) end; Proc SIRegister_JvXPCoreUtils(CL: TPSPascalCompiler); begin Func JvXPMethodsEqual( const Method1, Method2 : TMethod) :Bool Proc JvXPDrawLine( const ACanvas : TCanvas; const X1, Y1, X2, Y2 : Int) Proc JvXPCreateGradientRect( const AWidth, AHeight : Int; const StartColor, EndColor : TColor;const Colors:TJvXPGradientColors; const Style:TJvXPGradientStyle;const Dithered:Bool;var Bitmap:TBitmap); Proc JvXPAdjustBoundRect(const BorderWidth:Byte;const ShowBoundLines:Boolean; const BoundLines:TJvXPBoundLines; var Rect: TRect) Proc JvXPDrawBoundLines(const ACan:TCanvas;const BoundLns:TJvXPBoundLins;const AColor:TColor;Rect:TRect; Proc JvXPConvertToGray2( Bitmap : TBitmap) Proc JvXPRenderText(const AParent:TControl;const ACanvas:TCanvas;ACaption:TCaption;const AFont:TFont;const AEnabled,AShowAccelChar:Bool; var ARect:TRect;AFlags:Int) Proc JvXPFrame3D(const ACanvas:TCanvas;const Rect:TRect; TopColor,BottomColor:TColor;const Swapped:Bool; Proc JvXPColorizeBitmap( Bitmap : TBitmap; const AColor : TColor) Proc JvXPSetDrawFlags(const AAlignment:TAlignment;const AWordWrap:Bool;var Flags: Int) Proc JvXPPlaceText( const AParent: TControl; const ACanvas : TCanvas; const AText : TCaption; const AFont : TFont; const AEnabled,AShowAccelChar: Boolean;const AAlignment:TAlignment;const AWordWrap:Boolean;var Rect:TRect) end; Proc SIRegister_uwinstr(CL: TPSPascalCompiler); begin Func StrDec(S :Str) :Str Func uIsNumeric( var S :Str; var X : Float) :Bool Func ReadNumFromEdit( Edit : TEdit) : Float Proc WriteNumToFile( var F : Text; X : Float) end; Proc SIRegister_utexplot(CL: TPSPascalCompiler); begin Func TeX_InitGraphics(FileName:str;PgWidth,PgHeight:Int; Header:Boolean):Boolean Proc TeX_SetWindow( X1, X2, Y1, Y2 : Int; GraphBorder :Bool) Proc TeX_LeaveGraphics( Footer :Bool) Proc TeX_SetOxScale( Scale : TScale; OxMin, OxMax, OxStep : Float) Proc TeX_SetOyScale( Scale : TScale; OyMin, OyMax, OyStep : Float) Proc TeX_SetGraphTitle( Title :Str) Proc TeX_SetOxTitle( Title :Str) Proc TeX_SetOyTitle( Title :Str) Proc TeX_PlotOxAxis Proc TeX_PlotOyAxis Proc TeX_PlotGrid( Grid : TGrid) Proc TeX_WriteGraphTitle Func TeX_SetMaxCurv( NCurv : Byte) :Bool Proc TeX_SetPointParam( CurvIndex, Symbol, Size : Int) Proc TeX_SetLineParam( CurvIndex, Style : Int; Width : Float; Smooth :Bool) Proc TeX_SetCurvLegend( CurvIndex : Int; Legend :Str) Proc TeX_SetCurvStep( CurvIndex, Step : Int) Proc TeX_PlotCurve( X, Y : TVector; Lb, Ub, CurvIndex : Int) Proc TeX_PlotCurveWithErrorBars( X, Y, S : TVector; Ns, Lb, Ub, CurvIndex : Int) Proc TeX_PlotFunc( Func : TFunc; X1, X2 : Float; Npt : Int; CurvIndex : Int) Proc TeX_WriteLegend( NCurv : Int; ShowPoints, ShowLines :Bool) Proc TeX_ConRec( Nx, Ny, Nc : Int; X, Y, Z : TVector; F : TMatrix) Func Xcm(X : Float) : Float Func Ycm(Y : Float) : Float end; *----------------------------------------------------------------------------*) Proc SIRegister_VarRecUtils(CL: TPSPascalCompiler); begin TConstArray', 'array of TVarRec Func CopyVarRec( const Item : TVarRec) : TVarRec Func CreateConstArray( const Elements : array of const) : TConstArray Proc FinalizeVarRec( var Item : TVarRec) Proc FinalizeConstArray( var Arr : TConstArray) end; Proc SIRegister_StStrS(CL: TPSPascalCompiler); begin Func HexBS( B : Byte) : ShortString Func HexWS( W : Word) : ShortString Func HexLS( L : LongInt) : ShortString Func HexPtrS( P : Pointer) : ShortString Func BinaryBS( B : Byte) : ShortString Func BinaryWS( W : Word) : ShortString Func BinaryLS( L : LongInt) : ShortString Func OctalBS( B : Byte) : ShortString Func OctalWS( W : Word) : ShortString Func OctalLS( L : LongInt) : ShortString Func Str2Int16S( const S : ShortString; var I : SmallInt) :Bool Func Str2WordS(const S: ShortString; var I : Word) :Bool Func Str2LongS(const S: ShortString; var I : LongInt) :Bool Func Str2RealS(const S: ShortString; var R : Double) :Bool Func Str2RealS(const S: ShortString; var R : Real) :Bool Func Str2ExtS(const S : ShortString; var R : Extended) :Bool Func Long2StrS( L : LongInt) : ShortString Func Real2StrS( R : Double; Width : Byte; Places : ShortInt) : ShortString Func Ext2StrS( R : Extended; Width : Byte; Places : ShortInt) : ShortString Func ValPrepS( const S : ShortString) : ShortString Func CharStrS( C : AnsiChar; Len :Card) : ShortString Func PadChS( const S : ShortString; C : AnsiChar; Len :Card):ShortString Func PadS( const S : ShortString; Len :Card) : ShortString Func LeftPadChS( const S : ShortString; C : AnsiChar; Len :Card):ShortString Func LeftPadS( const S : ShortString; Len :Card) : ShortString Func TrimLeadS( const S : ShortString) : ShortString Func TrimTrailS( const S : ShortString) : ShortString Func TrimS( const S : ShortString) : ShortString Func TrimSpacesS( const S : ShortString) : ShortString Func CenterChS( const S : ShortString; C : AnsiChar; Len :Card): ShortString Func CenterS( const S : ShortString; Len :Card) : ShortString Func EntabS( const S : ShortString; TabSize : Byte) : ShortString Func DetabS( const S : ShortString; TabSize : Byte) : ShortString Func ScrambleS( const S, Key : ShortString) : ShortString Func SubstituteS( const S, FromStr, ToStr : ShortString) : ShortString Func FilterS( const S, Filters : ShortString) : ShortString Func CharExistsS( const S : ShortString; C : AnsiChar) :Bool Func CharCountS( const S : ShortString; C : AnsiChar) : Byte Func WordCountS( const S, WordDelims : ShortString) :Card Func WordPositionS(N:Card;const S, WordDelims:ShortString;var Pos:Card):Bool Func ExtractWordS( N :Card; const S, WordDelims : ShortString) : ShortString Func AsciiCountS( const S, WordDelims : ShortString; Quote : AnsiChar) :Card Func AsciiPositionS(N:Card;const S,WordDelims:ShortStr;Quote:AnsiChar;var Pos:Card):Bool Func ExtractAsciiS(N:Card;const S,WordDelims:ShortString;Quote:AnsiChar): ShortString Proc WordWrapS(const InSt:ShortString;var OutSt,Overlap:ShortString; Margin:Card;PadToMargin:Bool) Func CompStringS( const S1, S2 : ShortString) : Int Func CompUCStringS( const S1, S2 : ShortString) : Int Func SoundexS( const S : ShortString) : ShortString Func MakeLetterSetS( const S : ShortString) : Longint Proc BMMakeTableS( const MatchString : ShortString; var BT : BTable) Func BMSearchS(var Buffer,BufLength:Card;var BT:BTable;const MatchString:ShortString;var Pos:Card):Bool; Func BMSearchUCS(var Buffer,BufLength:Card;var BT:BTable;const MatchStr:ShortStr;var Pos:Card):Bool; Func DefaultExtensionS( const Name, Ext : ShortString) : ShortString Func ForceExtensionS( const Name, Ext : ShortString) : ShortString Func JustFilenameS( const PathName : ShortString) : ShortString Func JustNameS( const PathName : ShortString) : ShortString Func JustExtensionS( const Name : ShortString) : ShortString Func JustPathnameS( const PathName : ShortString) : ShortString Func AddBackSlashS( const DirName : ShortString) : ShortString Func CleanPathNameS( const PathName : ShortString) : ShortString Func HasExtensionS( const Name : ShortString; var DotPos :Card):Bool Func CommaizeS( L : LongInt) : ShortString Func CommaizeChS( L : Longint; Ch : AnsiChar) : ShortString Func FloatFormS(const Mask:ShortStr;R:TstFloat;const LtCurr,RtCurr:SString;Sep,DecPt:Char):ShortStr; Func LongIntFormS(const Mask:ShortString;L:LongInt;const LtCurr,RtCurr:ShortString;Sep:AnsiChar):ShortString; Func StrChPosS( const P : ShortString; C : AnsiChar; var Pos :Card) :Bool Func StrStPosS( const P, S : ShortString; var Pos :Card) :Bool Func StrStCopyS( const S : ShortString; Pos, Count :Card) : ShortString Func StrChInsertS(const S : ShortString; C : AnsiChar; Pos :Card):ShortString Func StrStInsertS(const S1, S2 : ShortString; Pos :Card) : ShortString Func StrChDeleteS(const S: ShortString; Pos :Card) : ShortString Func StrStDeleteS(const S: ShortString; Pos, Count :Card) : ShortString Func ContainsOnlyS(const S, Chars : ShortString; var BadPos :Card) : Bool Func ContainsOtherThanS( const S, Chars : ShortString; var BadPos :Card): Bool Func CopyLeftS( const S : ShortString; Len :Card) : ShortString Func CopyMidS( const S : ShortString; First, Len :Card) : ShortString Func CopyRightS( const S : ShortString; First :Card) : ShortString Func CopyRightAbsS( const S : ShortString; NumChars :Card) : ShortString Func CopyFromNthWordS(const S,WordDelims:str;const AWord:str;N:Card;var SubString:ShortString):Bool; Func DeleteFromNthWordS(const S,WordDelims:str;AWord:ShortString;N:Card;var SubStr:ShortString):Bool; Func CopyFromToWordS(const S,WordDelims,Word1,Word2:ShortString;N1,N2:Card;var SubString:ShortString):Bool; Func DeleteFromToWordS(const S,WordDelims,Wrd1,Wrd2:ShortString;N1,N2:Card;var SubString:ShortString):Bool; Func CopyWithinS( const S, Delimiter : ShortString; Strip :Bool) : ShortString Func DeleteWithinS( const S, Delimiter : ShortString) : ShortString Func ExtractTokensS(const S,Delims:ShortString;QuoteChar:AnsiChar;AllowNulls:Bool;Tokens:TStrings):Card Func IsChAlphaS( C : Char) :Bool Func IsChNumericS( C : Char; const Numbers : ShortString) :Bool Func IsChAlphaNumericS( C : Char; const Numbers : ShortString) :Bool Func IsStrAlphaS( const S : Shortstring) :Bool Func IsStrNumericS( const S, Numbers : ShortString) :Bool Func IsStrAlphaNumericS( const S, Numbers : ShortString) :Bool Func LastWordS(const S,WordDelims, AWord:ShortString; var Position :Card) :Bool Func LastWordAbsS( const S, WordDelims : ShortString; var Position :Card) :Bool Func LastStringS( const S, AString : ShortString; var Position :Card) :Bool Func LeftTrimCharsS( const S, Chars : ShortString) : ShortString Func KeepCharsS( const S, Chars : ShortString) : ShortString Func RepeatStringS(const RepeatString:ShortStr;var Repetitions:Card;MaxLen:Card):ShortStr; Func ReplaceStringS(const S,OldStr,NewStr:ShortString;N:Card;var Replacements:Card):ShortString; Func ReplaceStringAllS(const S,OldString,NewString:ShortString;var Replacements:Card):ShortString; Func ReplaceWordS(const S,WordDelims,OldWord,NewW:SString;N:Card;var Replacements:Card):ShortString Func ReplaceWordAllS(const S,WordDelims,OldWord,NewWord:ShortString;var Replacements:Card):ShortString Func RightTrimCharsS( const S, Chars : ShortString) : ShortString Func StrWithinS(const S,SearchStr: ShortString;Start:Card;var Position:Card):bool Func TrimCharsS( const S, Chars : ShortString) : ShortString Func WordPosS(const S,WordDelims,AWord:ShortString;N:Card;var Position:Card):Bool end; ********unit uPSI_StUtils; from Systools4*************************************** Func SignL( L : LongInt) : Int Func SignF( F : Extended) : Int Func MinWord(A, B : Word) : Word Func MidWord(W1, W2, W3 : Word) : Word Func MaxWord(A, B : Word) : Word Func MinLong(A, B : LongInt) : LongInt Func MidLong(L1, L2, L3 : LongInt) : LongInt Func MaxLong(A, B : LongInt) : LongInt Func MinFloat(F1, F2 : Extended) : Extended Func MidFloat(F1, F2, F3 : Extended) : Extended Func MaxFloat(F1, F2 : Extended) : Extended Func MakeInt16( H, L : Byte) : SmallInt Func MakeWordS( H, L : Byte) : Word Func SwapNibble( B : Byte) : Byte Func SwapWord( L : LongInt) : LongInt Proc SetFlag( var Flags : Word; FlagMask : Word) Proc ClearFlag( var Flags : Word; FlagMask : Word) Func FlagIsSet( Flags, FlagMask : Word) :Bool Proc SetByteFlag( var Flags : Byte; FlagMask : Byte) Proc ClearByteFlag( var Flags : Byte; FlagMask : Byte) Func ByteFlagIsSet( Flags, FlagMask : Byte) :Bool Proc SetLongFlag( var Flags : LongInt; FlagMask : LongInt) Proc ClearLongFlag( var Flags : LongInt; FlagMask : LongInt) Func LongFlagIsSet( Flags, FlagMask : LongInt) :Bool Proc ExchangeBytes( var I, J : Byte) Proc ExchangeWords( var I, J : Word) Proc ExchangeLongInts( var I, J : LongInt) Proc ExchangeStructs( var I, J, Size :Card) Proc FillWord( var Dest, Count :Card; Filler : Word) Proc FillStruct( var Dest, Count :Card; var Filler, FillerSize :Card) Func AddWordToPtr( P : ___Pointer; W : Word) : ___Pointer //******************uPSI_StFIN;************************************************ Func AccruedInterestMaturity(Issue,Maturity:TStDate;Rate,Par:Extended;Basis:TStBasis): Extended Func AccruedInterestPeriodic(Issue,Settlement,Maturity:TStDate;Rate,Par:Extended;Frequency:TStFrequency; Basis : TStBasis): Extended Func BondDuration( Settlement,Maturity:TStDate;Rate,Yield:Ext;Frequency:TStFrequency;Basis:TStBasis):Extended; Func BondPrice(Settlement,Maturity:TStDate;Rate,Yield,Redempt:Ext;Freq:TStFrequency;Basis:TStBasis):Extended Func CumulativeInterest(Rate:Extended;NPeriods:Int;PV:Extended;StartPeriod,EndPeriod:Int;Frequency:TStFrequency; Timing:TStPaymentTime):Extended Func CumulativePrincipal(Rate: Extended;NPeriods:Int;PV:Extended;StartPeriod,EndPeriod:Int;Frequency:TStFrequency;Timing:TStPaymentTime):Extended Func DayCount( Day1, Day2 : TStDate; Basis : TStBasis) : LongInt Func DecliningBalance( Cost, Salvage : Extended; Life, Period, Month : Int) : Extended Func DiscountRate(Settlement,Maturity:TStDate;Price,Redemption:Extended;Basis:TStBasis): Extended; Func DollarToDecimal( FracDollar : Extended; Fraction : Int) : Extended Func DollarToDecimalText( DecDollar : Extended) :Str Func DollarToFraction( DecDollar : Extended; Fraction : Int) : Extended Func DollarToFractionStr( FracDollar : Extended; Fraction : Int) :Str Func EffectiveInterestRate( NominalRate : Extended; Frequency : TStFrequency) : Extended Func FutureValueS(Rate:Extended;NPeriods:Int;Pmt,PV:Extended;Freq:TStFreq;Timing:TStPaymentTime):Extended; Func FutureValueSchedule( Principal : Extended; const Schedule : array of Double) : Extended Func FutureValueSchedule16( Principal : Extended; const Schedule, NRates : Int) : Extended Func InterestRateS(NPeriods:Int;Pmt,PV,FV:Extended;Freq:TStFrequency;Timing:TStPaymentTime;Guess:Extended):Extend; Func InternalRateOfReturn( const Values : array of Double; Guess : Extended) : Extended Func InternalRateOfReturn16( const Values, NValues : Int; Guess : Extended) : Extended Func IsCardValid( const S :Str) :Bool Func ModifiedDuration(Settlement,Maturity:TStDate;Rate,Yield:Extend;Freq:TStFrequency;Basis:TStBasis):Extended; Func ModifiedIRR(const Values:array of Double;FinanceRate,ReinvestRate:Extended): Extended Func ModifiedIRR16(const Values,NValues:Int; FinanceRate,ReinvestRate: Extended): Extended Func NetPresentValueS( Rate : Extended; const Values : array of Double) : Extended Func NetPresentValue16( Rate : Extended; const Values, NValues : Int) : Extended Func NominalInterestRate( EffectRate : Extended; Frequency : TStFrequency) : Extended Func NonperiodicIRR(const Values:array of Double;const Dates:array of TStDate;Guess:Extended):Extended; Func NonperiodicNPV(Rate:Extended;const Values: array of Double;const Dates:array of TStDate):Extended; Func Payment(Rate:Extended;NPeriods:Int;PV FV:Extended;Frequency:TStFrequency;Timing:TStPaymentTime):Extended Func Periods(Rate:Extended;Pmt,PV,FV:Extended;Frequency:TStFrequency;Timing:TStPaymentTime):Int; Func PresentValueS(Rate:Extended;NPeriods:Int;Pmt,FV:Extended;Frequency:TStFrequency;Timing:TStPaymentTime):Extended Func ReceivedAtMaturity(Settlement,Maturity:TStDate;Invest,Discount:Extended;Basis:TStBasis):Extended; Func RoundToDecimal( Value : Extended; Places : Int; Bankers :Bool) : Extended Func TBillEquivYield( Settlement, Maturity : TStDate; Discount : Extended) : Extended Func TBillPrice( Settlement, Maturity : TStDate; Discount : Extended) : Extended Func TBillYield( Settlement, Maturity : TStDate; Price : Extended) : Extended Func VariableDecliningBalance(Cost,Salvage:Extended;Life:Int;StartPeriod,EndPeriod,Factor:Extended;NoSwitch:bool):Extended Func YieldDiscounted(Settlement,Maturity:TStDate;Price,Redemption:Exted;Basis:TStBasis):Extended; Func YieldPeriodic(Settlement,Maturity:TStDate;Rate,Price,Redemption:Extended;Freq:TStFrequency;Basis:TStBasis):Extended Func YieldMaturity(Issue,Settlement,Maturity:TStDate;Rate,Price:Extended;Basis:TStBasis):Extended; //********************************************unit uPSI_StAstroP; Proc PlanetsPos( JD : Double; var PA : TStPlanetsArray) //*****unit unit uPSI_StStat; Statistic Package of SysTools******************** Func AveDev( const Data : array of Double) : Double Func AveDev16( const Data, NData : Int) : Double Func Confidence( Alpha, StandardDev : Double; Size : LongInt) : Double Func Correlation( const Data1, Data2 : array of Double) : Double Func Correlation16( const Data1, Data2, NData : Int) : Double Func Covariance( const Data1, Data2 : array of Double) : Double Func Covariance16( const Data1, Data2, NData : Int) : Double Func DevSq( const Data : array of Double) : Double Func DevSq16( const Data, NData : Int) : Double Proc Frequency(const Data:array of Double;const Bins:array of Double;var Counts:array of LongInt); //Proc Frequency16( const Data, NData : Int; const Bins, NBins : Int; var Counts) Func GeometricMeanS( const Data : array of Double) : Double Func GeometricMean16( const Data, NData : Int) : Double Func HarmonicMeanS( const Data : array of Double) : Double Func HarmonicMean16( const Data, NData : Int) : Double Func Largest( const Data : array of Double; K : Int) : Double Func Largest16( const Data, NData : Int; K : Int) : Double Func MedianS( const Data : array of Double) : Double Func Median16( const Data, NData : Int) : Double Func Mode( const Data : array of Double) : Double Func Mode16( const Data, NData : Int) : Double Func Percentile( const Data : array of Double; K : Double) : Double Func Percentile16( const Data, NData : Int; K : Double) : Double Func PercentRank( const Data : array of Double; X : Double) : Double Func PercentRank16( const Data, NData : Int; X : Double) : Double Func Permutations( Number, NumberChosen : Int) : Extended Func Combinations( Number, NumberChosen : Int) : Extended Func FactorialS( N : Int) : Extended Func Rank( Number : Double; const Data : array of Double; Ascending: Bool) : Int Func Rank16( Number : Double; const Data, NData : Int; Ascending : Bool) : Int Func Smallest( const Data : array of Double; K : Int) : Double Func Smallest16( const Data, NData : Int; K : Int) : Double Func TrimMean( const Data : array of Double; Percent : Double) : Double Func TrimMean16( const Data, NData : Int; Percent : Double) : Double AddTypeS('TStLinEst', 'record B0:Double; B1 : double; seB0 : double; seB' +1 : Double; R2: Double;sigma :Double;SSr:double;SSe: Double; F0:Double;df:Int;end Proc LinEst(const KnownY:array of Double;const KnownX:array of Double;var LF:TStLinEst;ErrorStats:Bool; Proc LogEst(const KnownY:array of Double;const KnownX:array of Double;var LF:TStLinEst;ErrorStats:Bool; Func Forecast(X: Double;const KnownY: array of Double;const KnownX:array of Double):Double Func ForecastExponential(X:Double;const KnownY:array of Double;const KnownX:array of Double):Double Func Intercept( const KnownY : array of Double; const KnownX : array of Double) : Double Func RSquared( const KnownY : array of Double; const KnownX : array of Double) : Double Func Slope( const KnownY : array of Double; const KnownX : array of Double) : Double Func StandardErrorY(const KnownY: array of Double;const KnownX:array of Double):Double Func BetaDist( X, Alpha, Beta, A, B : Single) : Single Func BetaInv( Probability, Alpha, Beta, A, B : Single) : Single Func BinomDist(NumberS,Trials: Int; ProbabilityS : Single;Cumulative:Bool):Single Func CritBinom( Trials : Int; ProbabilityS, Alpha : Single) : Int Func ChiDist( X : Single; DegreesFreedom : Int) : Single Func ChiInv( Probability : Single; DegreesFreedom : Int) : Single Func ExponDist( X, Lambda : Single; Cumulative :Bool) : Single Func FDist( X : Single; DegreesFreedom1, DegreesFreedom2 : Int) : Single Func FInv( Probability : Single; DegreesFreedom1, DegreesFreedom2 : Int) : Single Func LogNormDist( X, Mean, StandardDev : Single) : Single Func LogInv( Probability, Mean, StandardDev : Single) : Single Func NormDist( X, Mean, StandardDev : Single; Cumulative :Bool) : Single Func NormInv( Probability, Mean, StandardDev : Single) : Single Func NormSDist( Z : Single) : Single Func NormSInv( Probability : Single) : Single Func Poisson( X : Int; Mean : Single; Cumulative :Bool) : Single Func TDist( X : Single; DegreesFreedom : Int; TwoTails :Bool) : Single Func TInv( Probability : Single; DegreesFreedom : Int) : Single Func Erfc( X : Single) : Single Func GammaLn( X : Single) : Single Func LargestSort( const Data : array of Double; K : Int) : Double Func SmallestSort( const Data: array of double; K : Int) : Double Proc SIRegister_TStSorter(CL: TPSPascalCompiler); Func OptimumHeapToUse( RecLen :Card; NumRecs : LongInt) : LongInt Func MinimumHeapToUse( RecLen :Card) : LongInt Func MergeInfo( MaxHeap : LongInt; RecLen :Card; NumRecs : LongInt) : TMergeInfo Func DefaultMergeName( MergeNum : Int) :Str Proc ArraySort( var A, RecLen, NumRecs :Card; Compare:TUntypedCompareFunc) Proc SIRegister_StAstro(CL: TPSPascalCompiler); Func AmountOfSunlight( LD : TStDate; Longitude, Latitude : Double) : TStTime Func FixedRiseSet( LD : TStDate; RA, DC, Longitude, Latitude : Double) : TStRiseSetRec Func SunPos( UT : TStDateTimeRec) : TStPosRec Func SunPosPrim( UT : TStDateTimeRec) : TStSunXYZRec Func SunRiseSet( LD : TStDate; Longitude, Latitude : Double) : TStRiseSetRec Func Twilight(LD:TStDate; Longitude,Latitude:Double;TwiType:TStTwilight):TStRiseSetRec Func LunarPhase( UT : TStDateTimeRec) : Double Func MoonPos( UT : TStDateTimeRec) : TStMoonPosRec Func MoonRiseSet( LD : TStDate; Longitude, Latitude : Double) : TStRiseSetRec Func FirstQuarter( D : TStDate) : TStLunarRecord Func FullMoon( D : TStDate) : TStLunarRecord Func LastQuarter( D : TStDate) : TStLunarRecord Func NewMoon( D : TStDate) : TStLunarRecord Func NextFirstQuarter( D : TStDate) : TStDateTimeRec Func NextFullMoon( D : TStDate) : TStDateTimeRec Func NextLastQuarter( D : TStDate) : TStDateTimeRec Func NextNewMoon( D : TStDate) : TStDateTimeRec Func PrevFirstQuarter( D : TStDate) : TStDateTimeRec Func PrevFullMoon( D : TStDate) : TStDateTimeRec Func PrevLastQuarter( D : TStDate) : TStDateTimeRec Func PrevNewMoon( D : TStDate) : TStDateTimeRec Func SiderealTime( UT : TStDateTimeRec) : Double Func Solstice( Y, Epoch : Int; Summer :Bool) : TStDateTimeRec Func Equinox( Y, Epoch : Int; Vernal :Bool) : TStDateTimeRec Func SEaster( Y, Epoch : Int) : TStDate Func DateTimeToAJD( D : TDateTime) : Double Func HoursMin( RA : Double) : ShortString Func DegsMin( DC : Double) : ShortString Func AJDToDateTime( D : Double) : TDateTime Proc SIRegister_StDate(CL: TPSPascalCompiler); Func CurrentDate : TStDate Func StValidDate( Day, Month, Year, Epoch : Int) :Bool Func DMYtoStDate( Day, Month, Year, Epoch : Int) : TStDate Proc StDateToDMY( Julian : TStDate; var Day, Month, Year : Int) Func StIncDate( Julian : TStDate; Days, Months, Years : Int) : TStDate Func IncDateTrunc( Julian : TStDate; Months, Years : Int) : TStDate Proc StDateDiff( Date1, Date2 : TStDate; var Days, Months, Years : Int) Func BondDateDiff( Date1, Date2 : TStDate; DayBasis : TStBondDateType) : TStDate Func WeekOfYear( Julian : TStDate) : Byte Func AstJulianDate( Julian : TStDate) : Double Func AstJulianDatetoStDate( AstJulian : Double; Truncate :Bool) : TStDate Func AstJulianDatePrim( Year, Month, Date : Int; UT : TStTime) : Double Func StDayOfWeek( Julian : TStDate) : TStDayType Func DayOfWeekDMY( Day, Month, Year, Epoch : Int) : TStDayType Func StIsLeapYear( Year : Int) :Bool Func StDaysInMonth( Month : Int; Year, Epoch : Int) : Int Func ResolveEpoch( Year, Epoch : Int) : Int Func ValidTime( Hours, Minutes, Seconds : Int) :Bool Proc StTimeToHMS( T : TStTime; var Hours, Minutes, Seconds : Byte) Func HMStoStTime( Hours, Minutes, Seconds : Byte) : TStTime Func CurrentTime : TStTime Proc TimeDiff( Time1, Time2 : TStTime; var Hours, Minutes, Seconds : Byte) Func StIncTime( T : TStTime; Hours, Minutes, Seconds : Byte) : TStTime Func DecTime( T : TStTime; Hours, Minutes, Seconds : Byte) : TStTime Func RoundToNearestHour( T : TStTime; Truncate :Bool) : TStTime Func RoundToNearestMinute( const T : TStTime; Truncate :Bool) : TStTime Proc DateTimeDiff(const DT1:TStDateTimeRec;var DT2:TStDateTimeRec;var Days:LongInt;var Secs:LongInt Proc IncDateTime(const DT1:TStDateTimeRec;var DT2:TStDateTimeRec;Days:Int;Secs:LongInt) Func DateTimeToStDate(DT : TDateTime) : TStDate Func DateTimeToStTime(DT : TDateTime) : TStTime Func StDateToDateTime(D : TStDate) : TDateTime Func StTimeToDateTime(T : TStTime) : TDateTime Func Convert2ByteDate(TwoByteDate : Word) : TStDate Func Convert4ByteDate(FourByteDate : TStDate) : Word Proc SIRegister_StDateSt(CL: TPSPascalCompiler); Func DateStringHMStoAstJD( const Picture, DS :Str; H, M, S, Epoch : Int) : Double Func MonthToString( const Month : Int) :Str Func DateStringToStDate( const Picture, S :Str; Epoch : Int) : TStDate Func DateStringToDMY(const Picture,S:str; Epoch:Int; var D, M, Y : Int):Boolean Func StDateToDateString( const Picture:str;const Julian:TStDate;Pack:Bool):str Func DayOfWeekToString( const WeekDay : TStDayType) :Str Func DMYtoDateString(const Picture:str;Day,Month,Year,Epoch:Int;Pack:Boolean):str); Func CurrentDateString( const Picture :Str; Pack :Bool) :Str Func CurrentTimeString( const Picture :Str; Pack :Bool) :Str Func TimeStringToHMS( const Picture, St :Str; var H, M, S : Int) :Bool Func TimeStringToStTime( const Picture, S :Str) : TStTime Func StTimeToAmPmString(const Picture:str; const T:TStTime; Pack:Bool) :Str Func StTimeToTimeString(const Picture:Str; const T:TStTime;Pack :Bool) :Str Func DateStringIsBlank( const Picture, S :Str) :Bool Func InternationalDate( ForceCentury :Bool) :Str Func InternationalLongDate( ShortNames :Bool; ExcludeDOW :Bool) :Str Func InternationalTime( ShowSeconds :Bool) :Str Proc ResetInternationalInfo Proc SIRegister_StBase(CL: TPSPascalCompiler); Func DestroyNode( Container : TStContainer; Node : TStNode; OtherData : Pointer) :Bool Func AnsiUpperCaseShort32( const S :Str) :Str Func AnsiCompareTextShort32( const S1, S2 :Str) : Int Func AnsiCompareStrShort32( const S1, S2 :Str) : Int Func HugeCompressRLE( const InBuffer, InLen : Longint; var OutBuffer) : Longint Func HugeDecompressRLE(const InBuffer,InLen:Longint;var OutBuffer,OutLen:LongInt):Longint Proc HugeFillChar( var Dest, Count : Longint; Value : Byte) Proc HugeFillStruc( var Dest, Count : Longint; const Value, ValSize :Card) Func Upcase( C : AnsiChar) : AnsiChar Func LoCase( C : AnsiChar) : AnsiChar Func CompareLetterSets( Set1, Set2 : LongInt) :Card Func CompStruct( const S1, S2, Size :Card) : Int Func Search(const Buffer,BufLength:Card;const Match,MatLength:Card;var Pos:Cardi):Bool; Func StSearch(const Buff,BufLength:Card;const Match,MatLength:Card;var Pos:Cardi):Bool Func SearchUC(const Buff,BufLength:Card;const Match,MatLength:Card;var Pos:Cardi):Bool Func IsOrInheritsFrom( Root, Candidate : TClass) :Bool Proc RaiseContainerError( Code : longint) Proc RaiseContainerErrorFmt( Code : Longint; Data : array of const) Func ProductOverflow( A, B : LongInt) :Bool Func StNewStr( S :Str) : PShortString Proc StDisposeStr( PS : PShortString) Proc ValLongInt( S : ShortString; var LI : Longint; var ErrorCode : Int) Proc ValSmallint( const S : ShortString; var SI : smallint; var ErrorCode : Int) Proc ValWord( const S : ShortString; var Wd : word; var ErrorCode : Int) Proc RaiseStError( ExceptionClass : EStExceptionClass; Code : LongInt) Proc RaiseStWin32Error( ExceptionClass : EStExceptionClass; Code : LongInt) Proc RaiseStWin32ErrorEx( ExceptionClass : EStExceptionClass; Code : LongInt; Info :Str) Proc SIRegister_usvd(CL: TPSPascalCompiler); begin Proc SV_Decomp( A : TMatrix; Lb, Ub1, Ub2 : Int; S : TVector; V : TMatrix) Proc SV_SetZero( S : TVector; Lb, Ub : Int; Tol : Float) Proc SV_Solve(U:TMatrix; S:TVector;V:TMatrix;B:TVector;Lb,Ub1,Ub2:Int;X:TVector); Proc SV_Approx( U : TMatrix; S : TVector; V : TMatrix; Lb, Ub1, Ub2 : Int; A : TMatrix) Proc RKF45(F:TDiffEqs;Neqn:Int;Y,Yp:TVector;var T:Float;Tout,RelErr,AbsErr:Float;var Flag:Int; end; //**********unit unit ; StMath Package of SysTools***************************** Func IntPowerS( Base : Extended; Exponent : Int) : Extended Func PowerS( Base, Exponent : Extended) : Extended Func StInvCos( X : Double) : Double Func StInvSin( Y : Double) : Double Func StInvTan2( X, Y : Double) : Double Func StTan( A : Double) : Double Proc DumpException; //unit StExpEng; Func HexifyBlock( var Buffer, BufferSize : Int):Str //**********unit unit ; StCRC Package of SysTools****************************** Func Adler32Prim( var Data, DataSize :Card; CurCrc : LongInt) : LongInt Func Adler32OfStream( Stream : TStream; CurCrc : LongInt) : LongInt Func Adler32OfFile( FileName : Ansistr) : LongInt Func Crc16Prim( var Data, DataSize, CurCrc :Card) :Card Func Crc16OfStream( Stream : TStream; CurCrc :Card) :Card Func Crc16OfFile( FileName : Ansistr) :Card Func Crc32Prim( var Data, DataSize :Card; CurCrc : LongInt) : LongInt Func Crc32OfStream( Stream : TStream; CurCrc : LongInt) : LongInt Func Crc32OfFile( FileName : Ansistr) : LongInt Func InternetSumPrim( var Data, DataSize, CurCrc :Card) :Card Func InternetSumOfStream( Stream : TStream; CurCrc :Card) :Card Func InternetSumOfFile( FileName : Ansistr) :Card Func Kermit16Prim( var Data, DataSize, CurCrc :Card) :Card Func Kermit16OfStream( Stream : TStream; CurCrc :Card) :Card Func Kermit16OfFile( FileName : Ansistr) :Card //**********unit unit ; StBCD Package of SysTools****************************************** Func AddBcd( const B1, B2 : TbcdS) : TbcdS Func SubBcd( const B1, B2 : TbcdS) : TbcdS Func MulBcd( const B1, B2 : TbcdS) : TbcdS Func DivBcd( const B1, B2 : TbcdS) : TbcdS Func ModBcd( const B1, B2 : TbcdS) : TbcdS Func NegBcd( const B : TbcdS) : TbcdS Func AbsBcd( const B : TbcdS) : TbcdS Func FracBcd( const B : TbcdS) : TbcdS Func IntBcd( const B : TbcdS) : TbcdS Func RoundDigitsBcd( const B : TbcdS; Digits :Card): TbcdS Func RoundPlacesBcd( const B : TbcdS; Places :Card : TbcdS Func ValBcd( const S :Str) : TbcdS Func LongBcd( L : LongInt) : TbcdS Func ExtBcd( E : Extended) : TbcdS Func ExpBcd( const B : TbcdS) : TbcdS Func LnBcd( const B : TbcdS) : TbcdS Func IntPowBcd( const B : TbcdS; E : LongInt) : TbcdS Func PowBcd( const B, E : TbcdS) : TbcdS Func SqrtBcd( const B : TbcdS) : TbcdS Func CmpBcd( const B1, B2 : TbcdS) : Int Func EqDigitsBcd( const B1, B2 : TbcdS; Digits :Card) :Bool Func EqPlacesBcd( const B1, B2 : TbcdS; Digits :Card) :Bool Func IsIntBcd( const B : TbcdS) :Bool Func TruncBcd( const B : TbcdS) : LongInt Func BcdExt( const B : TbcdS) : Extended Func RoundBcd( const B : TbcdS) : LongInt Func StrBcd( const B : TbcdS; Width, Places :Card) :Str Func StrExpBcd( const B : TbcdS; Width :Card) :Str Func FormatBcd( const Format :Str; const B : TbcdS) :Str Func StrGeneralBcd( const B : TbcdS) :Str Func FloatFormBcd(const Mask:str;B:TbcdS;const LtCurr,RtCurr:str;Sep,DecPt:AnsiChar):str Proc ConvertBcd( const SrcB, SrcSize: Byte; var DestB, DestSize : Byte) ////*******unit unit ; StTxtDat; TStTextDataRecordSet Package of SysTools*********************** Proc StParseLine( const Data : Ansistr; Schema : TStTextDataSchema; Result : TStrings) Func StFieldTypeToStr( FieldType : TStSchemaFieldType) : Ansistr Func StStrToFieldType( const S : Ansistr) : TStSchemaFieldType Func StDeEscape( const EscStr : Ansistr) : Char Func StDoEscape( Delim : Char) : Ansistr Func StTrimTrailingChars( const S : Ansistr; Trailer : Char) : Ansistr Func AnsiHashText( const S :Str; Size : Int) : Int Func AnsiHashStr( const S :Str; Size : Int) : Int Func AnsiELFHashText( const S :Str; Size : Int) : Int Func AnsiELFHashStr( const S :Str; Size : Int) : Int //**********unit unit ; StNetCon Package of SysTools****************************************** with AddClassN(FindClass('TStComponent'),'TStNetConnection') do begin Constructor Create( AOwner : TComponent) Func Connect : DWord Func Disconnect : DWord RegisterProperty('Password', 'String', iptrw); Property(UserName', 'String', iptrw); Property(ConnectOptions', 'TStNetConnectOptionsSet', iptrw); Property(DisconnectOptions', 'TStNetDisconnectOptionsSet', iptrw); Property(LocalDevice', 'String', iptrw); Property(ServerName', 'String', iptrw); Property(ShareName', 'String', iptrw); Property(OnConnect', 'TNotifyEvent', iptrw); Property(OnConnectFail', 'TOnConnectFailEvent', iptrw); Property(OnConnectCancel', 'TOnConnectCancelEvent', iptrw); Property(OnDisconnect', 'TNotifyEvent', iptrw); Property(OnDisconnectFail', 'TOnDisconnectFailEvent', iptrw); Property(OnDisconnectCancel', 'TOnDisconnectCancelEvent', iptrw); end; //***********Thread Functions Context of Win API --- more objects in SyncObjs.pas / /153 unit uPSI_SyncObjs, unit uPSIParallelJobs; Proc InitializeCriticalSection( var lpCriticalSection : TRTLCriticalSection) Proc EnterCriticalSection( var lpCriticalSection : TRTLCriticalSection) Proc LeaveCriticalSection( var lpCriticalSection : TRTLCriticalSection) Func InitializeCriticalSectionAndSpinCount(var lpCriticalSection:TRTLCriticalSection;dwSpinCount:DWORD):BOOL; Func SetCriticalSectionSpinCount(var lpCriticalSection:TRTLCriticalSection;dwSpinCount:DWORD):DWORD; Func TryEnterCriticalSection( var lpCriticalSection : TRTLCriticalSection) : BOOL Proc DeleteCriticalSection( var lpCriticalSection : TRTLCriticalSection) Func GetThreadContext( hThread : THandle; var lpContext : TContext) : BOOL Func SetThreadContext( hThread : THandle; const lpContext : TContext) : BOOL Func SuspendThread( hThread : THandle) : DWORD Func ResumeThread( hThread : THandle) : DWORD Func CreateThread2(ThreadFunc: TThreadFunction2; thrid: DWord) : THandle Func GetCurrentThread : THandle Proc ExitThread( dwExitCode : DWORD) Func TerminateThread( hThread : THandle; dwExitCode : DWORD) : BOOL Func GetExitCodeThread( hThread : THandle; var lpExitCode : DWORD) : BOOL Proc EndThread(ExitCode: Int); Func WaitForSingleObject( hHandle : THandle; dwMilliseconds : DWORD) : DWORD Func MakeProcInstance( Proc : FARPROC; Instance : THandle) : FARPROC Proc FreeProcInstance( Proc : FARPROC) Proc FreeLibraryAndExitThread( hLibModule : HMODULE; dwExitCode : DWORD) Func DisableThreadLibraryCalls( hLibModule : HMODULE) : BOOL Proc ParallelJob(ASelf:TObject;ATarget:Pointer;AParam:Pointer; ASafeSection:Bool); Proc ParallelJob1( ATarget : Pointer; AParam : Pointer; ASafeSection :Bool); Proc ParallelJob2(AJobGroup:TJobsGroup;ASelf:TObject;ATarget:Ptr;AParam:Pointer;ASafeSection:bool; Proc ParallelJob3( AJobGroup:TJobsGroup;ATarget:Pointer;AParam:Pointer;ASafeSection: bool; Func CreateParallelJob(ASelf:TObject;ATarget:Pointer;AParam:Ptr;ASafeSection:bool:TParallelJob; Func CreateParallelJob1(ATarget:Pointer; AParam:Pointer; ASafeSection :Bool) : TParallelJob; Func CurrentParallelJobInfo : TParallelJobInfo Func ObtainParallelJobInfo : TParallelJobInfo Proc GetSystemInfo( var lpSystemInfo : TSystemInfo); Func IsProcessorFeaturePresent( ProcessorFeature : DWORD) : BOOL; Func SetStdHandle( nStdHandle : DWORD; hHandle : THandle) : BOOL; Func DeviceIoControl(hDevice:THandle;dwIoControlCode:DWORD;lpInBuffer:TObject;nInBufferSize:DWORD;lpOutBuffer: TObject; nOutBufferSize: DWORD; var lpBytesReturned: DWORD; lpOverlapped:TOverlapped):BOOL; Func SetFileTime(hFile:THandle;lpCreationTime,lpLastAccessTime,lpLastWriteTime:TFileTime): BOOL; Func DuplicateHandle(hSourceProcessHandle,hSourceHandle,hTargetProcessHandle:THandle; lpTargetHandle:THandle; dwDesiredAccess: DWORD; bInheritHandle:BOOL;dwOptions:DWORD):BOOL; Func GetHandleInformation( hObject : THandle; var lpdwFlags : DWORD) : BOOL; Func SetHandleInformation( hObject : THandle; dwMask : DWORD; dwFlags : DWORD) : BOOL; ****************************************************unit uPSI_JclMime; Func MimeEncodeString( const S : Ansistr) : Ansistr Func MimeDecodeString( const S : Ansistr) : Ansistr Proc MimeEncodeStream(const InputStream:TStream; const OutputStream : TStream) Proc MimeDecodeStream(const InputStream:TStream; const OutputStream : TStream) Func MimeEncodedSize( const I :Card) :Card Func MimeDecodedSize( const I :Card) :Card Proc MimeEncode(var InputBuffer:Str;const InputByteCount:Card;var OutputBuffer) Func MimeDecode(var InputBuffer:str;const InputBytesCount:Card;var OutputBuffer):Cardi; Func MimeDecodePartial(var InputBuffer:str;const InputBytesCount:Card;var OutputBuffer:str;var ByteBuffer:Card;var ByteBufferSpace:Card):Card Func MimeDecodePartialEnd(var OutputBuf:str;const ByteBuf:Card;const ByteBufferSpace:Card):Cardi; **************************************************unit uPSI_JclPrint; Proc DirectPrint( const Printer, Data :Str) Proc SetPrinterPixelsPerInch Func GetPrinterResolution : TPoint Func CharFitsWithinDots( const Text :Str; const Dots : Int) : Int Proc PrintMemo( const Memo : TMemo; const Rect : TRect) //*******************************unit uPSI_ShLwApi;*************************************** Func StrChr( lpStart : PChar; wMatch : WORD) : PChar Func StrChrI( lpStart : PChar; wMatch : WORD) : PChar Func StrCmpN( lpStr1, lpStr2 : PChar; nChar : Int) : Int Func StrCmpNI( lpStr1, lpStr2 : PChar; nChar : Int) : Int Func StrCSpn( lpStr_, lpSet : PChar) : Int Func StrCSpnI( lpStr1, lpSet : PChar) : Int Func StrDup( lpSrch : PChar) : PChar Func StrFormatByteSize( dw : DWORD; szBuf : PChar; uiBufSize : UINT) : PChar Func StrFormatKBSize( qdw : Dword; szBuf : PChar; uiBufSize : UINT) : PChar Func StrFromTimeInterval(pszOut:PChar cchMax:UINT;dwTimeMS:DWORD;digits:Int):Int Func StrIsIntlEqual(fCaseSens: BOOL;lpString1,lpString2:PChar; nChar:Int): BOOL Func StrNCat( psz1 : PChar; psz2 : PChar; cchMax : Int) : PChar Func StrPBrk( psz, pszSet : PChar) : PChar Func StrRChr( lpStart, lpEnd : PChar; wMatch : WORD) : PChar Func StrRChrI( lpStart, lpEnd : PChar; wMatch : WORD) : PChar Func StrRStrI( lpSource, lpLast, lpSrch : PChar) : PChar Func StrSpn( psz, pszSet : PChar) : Int Func StrStr( lpFirst, lpSrch : PChar) : PChar Func StrStrI( lpFirst, lpSrch : PChar) : PChar Func StrToInt( lpSrch : PChar) : Int Func StrToIntEx( pszString : PChar; dwFlags : DWORD; var piRet : Int) : BOOL Func StrTrim( psz : PChar; pszTrimChars : PChar) : BOOL Func ChrCmpI( w1, w2 : WORD) : BOOL Func ChrCmpIA( w1, w2 : WORD) : BOOL Func ChrCmpIW( w1, w2 : WORD) : BOOL Func StrIntlEqN( s1, s2 : PChar; nChar : Int) : BOOL Func StrIntlEqNI( s1, s2 : PChar; nChar : Int) : BOOL Func StrCatBuff( pszDest, pszSrc : PChar; cchDestBuffSize : Int) : PChar Func StrCpyNX( psz1 : PChar; psz2 : PChar; cchMax : Int) : PChar Func IntlStrEqWorker(fCaseSens:BOOL;lpString1,lpString2:PChar;nChar:Int):BOOL Func IntlStrEqN( s1, s2 : PChar; nChar : Int) : BOOL SZ_CONTENTTYPE_HTMLA','String 'text/html SZ_CONTENTTYPE_HTMLW','String 'text/html SZ_CONTENTTYPE_HTML','string SZ_CONTENTTYPE_HTMLA); SZ_CONTENTTYPE_CDFA','String 'application/x-cdf SZ_CONTENTTYPE_CDFW','String 'application/x-cdf SZ_CONTENTTYPE_CDF','string SZ_CONTENTTYPE_CDFA); Func PathIsHTMLFile( pszPath : PChar) : BOOL STIF_DEFAULT','LongWord( $00000000); STIF_SUPPORT_HEX','LongWord( $00000001); Func StrNCmpI( lpStr1, lpStr2 : PChar; nChar : Int) : Int Func StrNCpy( psz1, psz2 : PChar; cchMax : Int) : PChar Func StrCatN( psz1 : PChar; psz2 : PChar; cchMax : Int) : PChar Func PathAddBackslash( pszPath : PChar) : PChar Func PathAddExtension( pszPath : PChar; pszExt : PChar) : BOOL Func PathAppend( pszPath : PChar; pMore : PChar) : BOOL Func PathBuildRoot( szRoot : PChar; iDrive : Int) : PChar Func PathCanonicalize( pszBuf : PChar; pszPath : PChar) : BOOL Func PathCombine( szDest : PChar; lpszDir, lpszFile : PChar) : PChar Func PathCompactPath( hDC : HDC; pszPath : PChar; dx : UINT) : BOOL Func PathCompactPathEx(pszOut:PChar;pszSrc:PChar;cchMax:UINT;dwFlags:DWORD):BOOL Func PathCommonPrefix( pszFile1, pszFile2 : PChar; achPath : PChar) : Int Func PathFileExists( pszPath : PChar) : BOOL Func PathFindExtension( pszPath : PChar) : PChar Func PathFindFileName( pszPath : PChar) : PChar Func PathFindNextComponent( pszPath : PChar) : PChar Func PathFindOnPath( pszPath : PChar; var ppszOtherDirs : PChar) : BOOL Func PathGetArgs( pszPath : PChar) : PChar Func PathFindSuffixArray(pszPath:PChar;const apszSuffix:PChar;iArraySize:Int): PChar Func PathIsLFNFileSpec( lpName : PChar) : BOOL Func PathGetCharType( ch : Char) : UINT GCT_INVALID','LongWord( $0000); GCT_LFNCHAR','LongWord( $0001); GCT_SHORTCHAR','LongWord( $0002); GCT_WILD','LongWord( $0004); GCT_SEPARATOR','LongWord( $0008); Func PathGetDriveNumber( pszPath : PChar) : Int Func PathIsDirectory( pszPath : PChar) : BOOL Func PathIsDirectoryEmpty( pszPath : PChar) : BOOL Func PathIsFileSpec( pszPath : PChar) : BOOL Func PathIsPrefix( pszPrefix, pszPath : PChar) : BOOL Func PathIsRelative( pszPath : PChar) : BOOL Func PathIsRoot( pszPath : PChar) : BOOL Func PathIsSameRoot( pszPath1, pszPath2 : PChar) : BOOL Func PathIsUNC( pszPath : PChar) : BOOL Func PathIsNetworkPath( pszPath : PChar) : BOOL Func PathIsUNCServer( pszPath : PChar) : BOOL Func PathIsUNCServerShare( pszPath : PChar) : BOOL Func PathIsContentType( pszPath, pszContentType : PChar) : BOOL Func PathIsURL( pszPath : PChar) : BOOL Func PathMakePretty( pszPath : PChar) : BOOL Func PathMatchSpec( pszFile, pszSpec : PChar) : BOOL Func PathParseIconLocation( pszIconFile : PChar) : Int Proc PathQuoteSpaces( lpsz : PChar) Func PathRelativePathTo(pszPath:PChar;pszFrom:PChar;dwAttrFrom:DWORD;pszTo:PChar;dwAttrTo:DWORD):BOOL; Proc PathRemoveArgs( pszPath : PChar) Func PathRemoveBackslash( pszPath : PChar) : PChar Proc PathRemoveBlanks( pszPath : PChar) Proc PathRemoveExtension( pszPath : PChar) Func PathRemoveFileSpec( pszPath : PChar) : BOOL Func PathRenameExtension( pszPath : PChar; pszExt : PChar) : BOOL Func PathSearchAndQualify( pszPath : PChar; pszBuf : PChar; cchBuf : UINT) : BOOL Proc PathSetDlgItemPath( hDlg : HWND; id : Int; pszPath : PChar) Func PathSkipRoot( pszPath : PChar) : PChar Proc PathStripPath( pszPath : PChar) Func PathStripToRoot( pszPath : PChar) : BOOL Proc PathUnquoteSpaces( lpsz : PChar) Func PathMakeSystemFolder( pszPath : PChar) : BOOL Func PathUnmakeSystemFolder( pszPath : PChar) : BOOL Func PathIsSystemFolder( pszPath : PChar; dwAttrb : DWORD) : BOOL Proc PathUndecorate( pszPath : PChar) Func PathUnExpandEnvStrings( pszPath : PChar; pszBuf : PChar; cchBuf : UINT) : BOOL URL_SCHEME_INVALID','LongInt'( - 1); URL_SCHEME_UNKNOWN','LongInt'( 0); URL_SCHEME_FTP','LongInt'( 1); URL_SCHEME_HTTP','LongInt'( 2); URL_SCHEME_GOPHER','LongInt'( 3); URL_SCHEME_MAILTO','LongInt'( 4); URL_SCHEME_NEWS','LongInt'( 5); URL_SCHEME_NNTP','LongInt'( 6); URL_SCHEME_TELNET','LongInt'( 7); URL_SCHEME_WAIS','LongInt'( 8); URL_SCHEME_FILE','LongInt'( 9); URL_SCHEME_MK','LongInt'( 10); URL_SCHEME_HTTPS','LongInt'( 11); URL_SCHEME_SHELL','LongInt'( 12); URL_SCHEME_SNEWS','LongInt'( 13); URL_SCHEME_LOCAL','LongInt'( 14); URL_SCHEME_JAVASCRIPT','LongInt'( 15); URL_SCHEME_VBSCRIPT','LongInt'( 16); URL_SCHEME_ABOUT','LongInt'( 17); URL_SCHEME_RES','LongInt'( 18); URL_SCHEME_MAXVALUE','LongInt'( 19); URL_SCHEME', 'Int URL_PART_NONE','LongInt'( 0); URL_PART_SCHEME','LongInt'( 1); URL_PART_HOSTNAME','LongInt'( 2); URL_PART_USERNAME','LongInt'( 3); URL_PART_PASSWORD','LongInt'( 4); URL_PART_PORT','LongInt'( 5); URL_PART_QUERY','LongInt'( 6); URL_PART', 'DWORD URLIS_URL','LongInt'( 0); URLIS_OPAQUE','LongInt'( 1); URLIS_NOHISTORY','LongInt'( 2); URLIS_FILEURL','LongInt'( 3); URLIS_APPLIABLE','LongInt'( 4); URLIS_DIRECTORY','LongInt'( 5); URLIS_HASQUERY','LongInt'( 6); TUrlIs', 'DWORD URL_UNESCAPE','LongWord( $10000000); URL_ESCAPE_UNSAFE','LongWord( $20000000); URL_PLUGGABLE_PROTOCOL','LongWord( $40000000); URL_WININET_COMPATIBILITY','LongWord( DWORD ( $80000000 )); URL_DONT_ESCAPE_EXTRA_INFO','LongWord( $02000000); URL_ESCAPE_SPACES_ONLY','LongWord( $04000000); URL_DONT_SIMPLIFY','LongWord( $08000000); URL_NO_META','longword( URL_DONT_SIMPLIFY); URL_UNESCAPE_INPLACE','LongWord( $00100000); URL_CONVERT_IF_DOSPATH','LongWord( $00200000); URL_UNESCAPE_HIGH_ANSI_ONLY','LongWord( $00400000); URL_INTERNAL_PATH','LongWord( $00800000); URL_FILE_USE_PATHURL','LongWord( $00010000); URL_ESCAPE_PERCENT','LongWord( $00001000); URL_ESCAPE_SEGMENT_ONLY','LongWord( $00002000); URL_PARTFLAG_KEEPSCHEME','LongWord( $00000001); URL_APPLY_DEFAULT','LongWord( $00000001); URL_APPLY_GUESSSCHEME','LongWord( $00000002); URL_APPLY_GUESSFILE','LongWord( $00000004); URL_APPLY_FORCEAPPLY','LongWord( $00000008); Func UrlCompare( psz1, psz2 : PChar; fIgnoreSlash : BOOL) : Int Func UrlCombine(pszBase,pszRelative:PChar;pszCombin:PChar;out pcchCombin:DWORD;dwFlags:DWORD):HRESULT; Func UrlCanonicalize(pszUrl:PChar;pszCanonicalized:PChar;pcchCanonic:DWORD;dwFlags:DWORD):HRESULT; Func UrlIsOpaque( pszURL : PChar) : BOOL Func UrlIsNoHistory( pszURL : PChar) : BOOL Func UrlIsFileUrl( pszURL : PChar) : BOOL Func UrlIs( pszUrl : PChar; UrlIs : TUrlIs) : BOOL Func UrlGetLocation( psz1 : PChar) : PChar Func UrlUnescape(pszUrl,pszUnescaped:PChar;pcchUnescaped:DWORD; dwFlags: DWORD): HRESULT Func UrlEscape(pszUrl:PChar; pszEscaped:PChar; pcchEscaped:DWORD;dwFlags:DWORD): HRESULT Func UrlCreateFromPath(pszPath:PChar;pszUrl:PChar;pcchUrl: DWORD;dwFlags:DWORD): HRESULT Func PathCreateFromUrl(pszUrl:PChar; pszPath:PChar;pcchPath:DWORD; dwFlags:DWORD):HRESULT Func UrlHash( pszUrl : PChar; pbHash : BYTE; cbHash : DWORD) : HRESULT Func UrlGetPart(pszIn:PChar; pszOut:PChar;pcchOut:DWORD; dwPart,dwFlags: DWORD): HRESULT Func UrlApplyScheme(pszIn:PChar; pszOut:PChar; pcchOut : DWORD; dwFlags: DWORD): HRESULT Func HashData(pbData:BYTE;cbData:DWORD; pbHash:BYTE; cbHash: DWORD) : HRESULT Func UrlEscapeSpaces(pszUrl:PChar;pszEscaped:PChar;pcchEscaped: WORD): HRESULT Func UrlUnescapeInPlace( pszUrl : PChar; dwFlags : DWORD) : HRESULT Func SHDeleteEmptyKey( hKey : HKEY; pszSubKey : PChar) : DWORD Func SHDeleteKey( hKey : HKEY; pszSubKey : PChar) : DWORD Func SHDeleteValue( hKey : HKEY; pszSubKey, pszValue : PChar) : DWORD Func SHEnumKeyEx(hKey:HKEY; dwIndex : DWORD; pszName:PChar;var pcchName:DWORD) : Longint Func SHEnumValue(hKey:HKEY;dwIndex:DWORD;pszValueName:PChar;var pcchValueName:DWORD;pdwType:DWORD;pvData: ___Pointer; pcbData:DWORD):Longint Func SHQueryInfoKey(hKey:HKEY;pcSubKeys,pcchMaxSubKeyLen,pcVal,pcchMaxValueNameLen:DWORD):Longint; Func SHCopyKey(hkeySrc:HKEY;szSrcSubKey:PChar; hkeyDest:HKEY; fReserved:DWORD) : DWORD Func SHRegGetPath(hKey:HKEY;pcszSubKey,pcszValue:PChar;pszPath:PChar;dwFlags:DWORD):DWORD Func SHRegSetPath(hKey:HKEY;pcszSubKey,pcszValue,pcszPath:PChar;dwFlags:DWORD): DWORD SHREGDEL_DEFAULT','LongWord( $00000000); SHREGDEL_HKCU','LongWord( $00000001); SHREGDEL_HKLM','LongWord( $00000010); SHREGDEL_BOTH','LongWord( $00000011); SHREGENUM_DEFAULT','LongWord( $00000000); SHREGENUM_HKCU','LongWord( $00000001); SHREGENUM_HKLM','LongWord( $00000010); SHREGENUM_BOTH','LongWord( $00000011); SHREGSET_HKCU','LongWord( $00000001); SHREGSET_FORCE_HKCU','LongWord( $00000002); SHREGSET_HKLM','LongWord( $00000004); SHREGSET_FORCE_HKLM','LongWord( $00000008); TSHRegDelFlags', 'DWORD TSHRegEnumFlags', 'DWORD HUSKEY', 'THandle ASSOCF_INIT_NOREMAPCLSID','LongWord( $00000001); ASSOCF_INIT_BYEXENAME','LongWord( $00000002); ASSOCF_OPEN_BYEXENAME','LongWord( $00000002); ASSOCF_INIT_DEFAULTTOSTAR','LongWord( $00000004); ASSOCF_INIT_DEFAULTTOFOLDER','LongWord( $00000008); ASSOCF_NOUSERSETTINGS','LongWord( $00000010); ASSOCF_NOTRUNCATE','LongWord( $00000020); ASSOCF_VERIFY','LongWord( $00000040); ASSOCF_REMAPRUNDLL','LongWord( $00000080); ASSOCF_NOFIXUPS','LongWord( $00000100); ASSOCF_IGNOREBASECLASS','LongWord( $00000200); ASSOCF', 'DWORD ASSOCSTR_COMMAND','LongInt'( 1); ASSOCSTR_EXECUTABLE','LongInt'( 2); ASSOCSTR_FRIENDLYDOCNAME','LongInt'( 3); ASSOCSTR_FRIENDLYAPPNAME','LongInt'( 4); ASSOCSTR_NOOPEN','LongInt'( 5); ASSOCSTR_SHELLNEWVALUE','LongInt'( 6); ASSOCSTR_DDECOMMAND','LongInt'( 7); ASSOCSTR_DDEIFEXEC','LongInt'( 8); ASSOCSTR_DDEAPPLICATION','LongInt'( 9); ASSOCSTR_DDETOPIC','LongInt'( 10); ASSOCSTR_INFOTIP','LongInt'( 11); ASSOCSTR_MAX','LongInt'( 12); ASSOCSTR', 'DWORD ASSOCKEY_SHELLEXECCLASS','LongInt'( 1); ASSOCKEY_APP','LongInt'( 2); ASSOCKEY_CLASS','LongInt'( 3); ASSOCKEY_BASECLASS','LongInt'( 4); ASSOCKEY_MAX','LongInt'( 5); ASSOCKEY', 'DWORD ASSOCDATA_MSIDESCRIPTOR','LongInt'( 1); ASSOCDATA_NOACTIVATEHANDLER','LongInt'( 2); ASSOCDATA_QUERYCLASSSTORE','LongInt'( 3); ASSOCDATA_HASPERUSERASSOC','LongInt'( 4); ASSOCDATA_MAX','LongInt'( 5); ASSOCDATA', 'DWORD ASSOCENUM_NONE','LongInt'( 0); ASSOCENUM', 'DWORD SID_IQueryAssociations','String '{c46ca590-3c3f-11d2-bee6-0000f805ca57} SHACF_DEFAULT $00000000); SHACF_FILESYSTEM','LongWord( $00000001); SHACF_URLHISTORY','LongWord( $00000002); SHACF_URLMRU','LongWord( $00000004); SHACF_USETAB','LongWord( $00000008); SHACF_FILESYS_ONLY','LongWord( $00000010); SHACF_AUTOSUGGEST_FORCE_ON','LongWord( $10000000); SHACF_AUTOSUGGEST_FORCE_OFF','LongWord( $20000000); SHACF_AUTOAPPEND_FORCE_ON','LongWord( $40000000); SHACF_AUTOAPPEND_FORCE_OFF','LongWord( DWORD ( $80000000 )); Func SHAutoComplete( hwndEdit : HWND; dwFlags : DWORD) : HRESULT Proc SHSetThreadRef( punk : IUnknown) Proc SHGetThreadRef( out ppunk : IUnknown) CTF_INSIST','LongWord( $00000001); CTF_THREAD_REF','LongWord( $00000002); CTF_PROCESS_REF','LongWord( $00000004); CTF_COINIT','LongWord( $00000008); Func SHCreateShellPalette( hdc : HDC) : HPALETTE Proc ColorRGBToHLS( clrRGB : TColorRef; out pwHue, pwLuminance, pwSaturation : WORD) Func ColorHLSToRGB( wHue, wLuminance, wSaturation : WORD) : TColorRef Func ColorAdjustLuma( clrRGB : TColorRef; n : Int; fScale :Bool) : TColorRef Func GetSysColorBrush( nIndex : Int) : HBRUSH Func DrawFocusRect( hDC : HDC; const lprc : TRect) : BOOL Func FillRect( hDC : HDC; const lprc : TRect; hbr : HBRUSH) : Int Func FrameRect( hDC : HDC; const lprc : TRect; hbr : HBRUSH) : Int Func InvertRect( hDC : HDC; const lprc : TRect) : BOOL Func SetRect( var lprc : TRect; xLeft, yTop, xRight, yBottom : Int) : BOOL Func SetRectEmpty( var lprc : TRect) : BOOL Func CopyRect( var lprcDst : TRect; const lprcSrc : TRect) : BOOL Func InflateRect( var lprc : TRect; dx, dy : Int) : BOOL Func IntersectRect2(var lprcDst: TRect; const lprcSrc1, lprcSrc2 : TRect):BOOL Func SubtractRect( var lprcDst : TRect; const lprcSrc1, lprcSrc2 : TRect):BOOL Func InitializeFlatSB( hWnd : HWND) : Bool Proc UninitializeFlatSB( hWnd : HWND) Func FlatSB_GetScrollProp( p1 : HWND; propIndex : Int; p3 : PInt) : Bool Func FlatSB_SetScrollProp(p1: HWND; index: Int; newValue: Int; p4 : Bool):Bool Func GET_APPCOMMAND_LPARAM( lParam : Int) : Word //of JvWin32 Func GET_DEVICE_LPARAM( lParam : Int) : Word Func GET_MOUSEORKEY_LPARAM( lParam : Int) : Int Func GET_FLAGS_LPARAM( lParam : Int) : Word Func GET_KEYSTATE_LPARAM( lParam : Int) : Word // ******************************************** 204 unit uPSI_ShellAPI; Func DragQueryFile(Drop:HDROP;FileIndex:UINT; FileName: PChar; cb UINT): UINT Func DragQueryPoint( Drop : HDROP; var Point : TPoint): BOOL Proc DragFinish( Drop : HDROP) Proc DragAcceptFiles( Wnd : HWND; Accept : BOOL) Func ShellExecute(hWnd:HWND;Operation,FileName,Parameters,Directory:PChar;ShowCmd:Int):HINST Func FindExecutable( FileName, Directory : PChar; Result : PChar) : HINST Func ShellAbout( Wnd : HWND; szApp, szOtherStuff : PChar; Icon : HICON) : Int Func DuplicateIcon( hInst : HINST; Icon : HICON) : HICON Func ExtractAssociatedIcon(hInst:HINST;lpIconPath:PChar;var lpiIcon:Word):HICON Func ExtractIcon(hInst:HINST; lpszExeFileName:PChar; nIconIndex:UINT): HICON Func SHAppBarMessage( dwMessage : DWORD; var pData : TAppBarData) : UINT Func DoEnvironmentSubst( szString : PChar; cbString : UINT) : DWORD Func ExtractIconEx(lpszFile:PChar;nIconIndex:Int;var phiconLarge,phiconSmall:HICON;nIcons:UINT):UINT; Proc SHFreeNameMappings( hNameMappings : THandle) DLLVER_PLATFORM_WINDOWS','LongWord( $00000001); DLLVER_PLATFORM_NT','LongWord( $00000002); DLLVER_MAJOR_MASK','LongWord( Int64 ( $FFFF000000000000 )); DLLVER_MINOR_MASK','LongWord( Int64 ( $0000FFFF00000000 )); DLLVER_BUILD_MASK','LongWord( Int64 ( $00000000FFFF0000 )); DLLVER_QFE_MASK','LongWord( Int64 ( $000000000000FFFF )); Func MAKEDLLVERULL( Major, Minor, Build, Qfe : Word) : Int64 Func SimpleXMLEncode( const S :Str) :Str Proc SimpleXMLDecode( var S :Str; TrimBlanks :Bool) Func XMLEncode( const S :Str) :Str Func XMLDecode( const S :Str) :Str Func EntityEncode( const S :Str) :Str Func EntityDecode( const S :Str) :Str Proc RIRegister_CPort_Routines(S: TPSExec); Proc EnumComPorts( Ports : TStrings) Proc ListComPorts( Ports : TStrings) Proc ComPorts( Ports : TStrings) //Alias to Arduino Func GetComPorts: TStringlist; Func StrToBaudRate( Str :Str) : TBaudRate Func StrToStopBits( Str :Str) : TStopBits Func StrToDataBits( Str :Str) : TDataBits Func StrToParity( Str :Str) : TParityBits Func StrToFlowControl( Str :Str) : TFlowControl Func BaudRateToStr( BaudRate : TBaudRate) :Str Func StopBitsToStr( StopBits : TStopBits) :Str Func DataBitsToStr( DataBits : TDataBits) :Str Func ParityToStr( Parity : TParityBits) :Str Func FlowControlToStr( FlowControl : TFlowControl) :Str Func ComErrorsToStr( Errors : TComErrors) :Str Func GetMessage( var lpMsg : TMsg; hWnd : HWND; wMsgFilterMin, wMsgFilterMax: UINT): BOOL Func DispatchMessage( const lpMsg : TMsg) : Longint Func TranslateMessage( const lpMsg : TMsg) : BOOL Func SetMessageQueue( cMessagesMax : Int) : BOOL Func PeekMessage(var lpMsg:TMsg; hWnd:HWND;wMsgFilterMin,wMsgFilterMax,wRemoveMsg:UINT):BOOL Func GetMessagePos : DWORD Func GetMessageTime : Longint Func GetMessageExtraInfo : Longint Func GetSpecialFolderPath( const FolderName :Str; CanCreate :Bool) :Str Proc JAddToRecentDocs( const Filename :Str) Proc ClearRecentDocs Func ExtractIconFromFile( FileName :Str; Index : Int) : HICON Func CreateShellLink( const AppName, Desc :Str; Dest :Str) :Str Proc GetShellLinkInfo( const LinkFile : WideString; var SLI : TShellLinkInfo) Proc SetShellLinkInfo( const LinkFile : WideString; const SLI : TShellLinkInfo) Func RecycleFile( FileToRecycle :Str) :Bool Func JCopyFile( FromFile, ToDir :Str) :Bool Func ShellObjectTypeEnumToConst( ShellObjectType : TShellObjectType) : UINT Func ShellObjectTypeConstToEnum( ShellObjectType : UINT) : TShellObjectType Func QueryServiceConfig2A( hService : SC_HANDLE; dwInfoLevel: DWORD; lpBuffer: LPBYTE; cbBufSize DWORD; var pcbBytesNeeded : DWORD) : BOOL Func QueryServiceConfig2W( hService : SC_HANDLE; dwInfoLevel: DWORD; lpBuffer: LPBYTE; cbBufSize: DWORD; var pcbBytesNeeded : DWORD) : BOOL Func QueryServiceConfig2( hService : SC_HANDLE; dwInfoLevel:DWORD; lpBuffer: LPBYTE; cbBufSize: DWORD; var pcbBytesNeeded : DWORD) : BOOL Func EnumServicesStatusExA(hSCManager:SC_HANDLE;InfoLevel: SC_ENUM_TYPE; dwServiceType: DWORD; dwServiceState: DWORD;lpServices:LPBYTE;cbBufSize:DWORD; var pcbBytesNeeded,lpServicesReturned,lpResumeHandle:DWORD;pszGroupName: LP Func EnumServicesStatusExW( hSCManager : SC_HANDLE; InfoLevel : SC_ENUM_TYPE; dwServiceType:DWORD; dwServiceState:DWORD;lpServices:LPBYTE;cbBufSize:DWORD; var pcbBytesNeeded,lpServicesReturned,lpResumeHandle:DWORD; pszGroupNam Func EnumServicesStatusEx( hSCManager : SC_HANDLE; InfoLevel : SC_ENUM_TYPE; dwServiceType DWORD; dwServiceState:DWORD;lpServices:LPBYTE;cbBufSize:DWORD; var pcbBytesNeeded,lpServicesReturned,lpResumeHandle:DWORD; pszGroupName Func ConvertSidToStringSid( sid : PSID; var stringSid : LPWSTR) : BOOL ******************************************* unit uPSI_JclPeImage; Func IsValidPeFile( const FileName : TFileName) :Bool // Func PeGetNtHeaders( const FileName : TFileName; var NtHeaders : TImageNtHeaders): Bool Func PeCreateNameHintTable( const FileName : TFileName) :Bool Func PeRebaseImage(const ImageName:TFileName; NewBase:DWORD; TimeStamp : DWORD; MaxNewSize:DWORD): TJclRebaseImageInfo Func PeVerifyCheckSum( const FileName : TFileName) :Bool Func PeClearCheckSum( const FileName : TFileName) :Bool Func PeUpdateCheckSum( const FileName : TFileName) :Bool Func PeDoesExportFunction(const FileName:TFileName;const FuncName:str;Options:TJclSmartCompOptions):Bool; Func PeIsExportFunctionForwardedEx( const FileName : TFileName; const FunctionName:str; var ForwardedName:str;Options:TJclSmartCompOptions):Boolean Func PeIsExportFunctionForwarded(const FileName:TFileName;const FunctionName:str;Options:TJclSmartCompOptions):Bool Func PeDoesImportFunction(const FileName:TFileName;const FunctionName:str;const LibraryName:str;Options: TJclSmartCompOptions):Bool Func PeDoesImportLibrary(const FileName:TFileName;const LibraryName:str;Recursive:Boolean):Boolean); Func PeImportedLibraries( const FileName : TFileName; const LibrariesList : TStrings; Recursive :Bool; FullPathName :Bool) :Bool Func PeImportedFunctions(const FileName:TFileName;const FunctionsList:TStrings;const LibraryName:str; IncludeLibNames :Bool):Bool Func PeExportedFunctions(const FileName:TFileName;const FunctionsList:TStrings):Boolean Func PeExportedNames(const FileName:TFileName;const FunctionsList:TStrings):Bool Func PeExportedVariables(const FileName:TFileName;const FunctionsList:TStrings):Boolean Func PeResourceKindNames(const FileN:TFileName;ResourceType:TJclPeResourceKind;const NamesList:TStrings):Bool Func PeBorFormNames(const FileName:TFileName;const NamesList:TStrings :Boolean Func PeBorDependedPackages(const FileName:TFileName;PackagesList:TStrings;FullPathName,Descript:Bool):Bool; Func PeFindMissingImports(const FileName:TFileName;MissingImportsList:TStrings):Bool; Func PeFindMissingImports1(RequiredImportsList,MissingImportsList:TStrings):Bool; Func PeCreateRequiredImportList(const FileName:TFileName;RequiredImportsList:TStrings): Bool; //Func PeMapImgNtHeaders( const BaseAddress : Pointer) : PImageNtHeaders //Func PeMapImgLibraryName( const BaseAddress : Pointer) :Str //Func PeMapImgSections( const NtHeaders : PImageNtHeaders) : PImageSectionHeader //Func PeMapImgFindSection( const NtHeaders : PImageNtHeaders; const SectionName :Str) : PImageSectionHeader //Func PeMapImgExportedVariables(const Module:HMODULE;const VariablesList:TStrings):Bool //Func PeMapImgResolvePackageThunk( Address : Pointer) : Pointer Func PeMapFindResource(const Module:HMODULE;const ResourceType:PChar;const ResourceName:str): ___Pointer; SIRegister_TJclPeSectionStream(CL); SIRegister_TJclPeMapImgHookItem(CL); SIRegister_TJclPeMapImgHooks(CL); //Func PeDbgImgNtHeaders(ProcessHandle:THandle;BaseAddress:Pointer;var NtHeaders:TImageNtHeaders):Boolean //Func PeDbgImgLibraryName(ProcessHandle:THandle;BaseAddress:Pointer;var Name:str):Bool Type TJclBorUmSymbolKind','(skData,skFunction,skConstructor,skDestructor,skRTTI,skVTable) TJclBorUmSymbolModifier', '( smQualified, smLinkProc ) TJclBorUmSymbolModifiers', 'set of TJclBorUmSymbolModifier TJclBorUmDescription', 'record Kind : TJclBorUmSymbolKind; Modifiers : TJclBorUmSymbolModifiers; end TJclBorUmResult', '( urOk, urNotMangled, urMicrosoft, urError ) TJclPeUmResult', '( umNotMangled, umBorland, umMicrosoft ) Func PeBorUnmangleName(const Name:Str;var Unmangled:Str;var Description:TJclBorUmDescription;var BasePos:Int): TJclBorUmResult; Func PeBorUnmangleName1(const Name:str;var Unmangled:str;var Descript:TJclBorUmDescription):TJclBorUmResult; Func PeBorUnmangleName2( const Name :Str; var Unmangled :Str) : TJclBorUmResult; Func PeBorUnmangleName3( const Name :Str) :Str; Func PeIsNameMangled( const Name :Str) : TJclPeUmResult Func PeUnmangleName( const Name :Str; var Unmangled :Str) : TJclPeUmResult //****************** SysTools uPSI_StSystem; **************************************** Func StCopyFile( const SrcPath, DestPath : Ansistr) :Card Func CreateTempFile( const aFolder : Ansistr; const aPrefix : Ansistr): Ansistr Func DeleteVolumeLabel( Drive : Char) :Card //Proc EnumerateDirectories(const StartDir:AnsiStr;FL:TStrings;SubDirs:Bool;IncludeItem:TIncludeItemFunc); //Proc EnumerateFiles(const StartDir:Ansistr;FL:TStrings;SubDirs:Bool IncludeItem:TIncludeItemFunc); Func FileHandlesLeft( MaxHandles :Card) :Card Func FileMatchesMask( const FileName, FileMask : Ansistr) :Bool Func FileTimeToStDateTime( FileTime : LongInt) : TStDateTimeRec Func FindNthSlash( const Path : Ansistr; n : Int) : Int Func FlushOsBuffers( Handle : Int) :Bool Func GetCurrentUser : Ansistr Func GetDiskClass( Drive : Char) : DiskClass Func GetDiskInfo(Drive:Char;var ClustersAvail,TotalClusters,BytesPerSector,SectorsPerCluster:Card):Bool; Func GetDiskSpace(Drive:Char;var UserSpaceAvail:Double;var TotalSpaceAvail:Double;var DiskSize:Double):Bool; Func GetDiskSpace(Drive:Char;var UserSpaceAvail:Comp;var TotalSpaceAvail:Comp;var DiskSize:Comp):Bool; { index 0 - FreeBytesAvailable, 1 - TotalNumberOfBytes, 2 - TotalNumberOfFreeBytes } Func getDiskSpace2(const path:Str; index: Int): int64; Func GetFileCreateDate( const FileName : Ansistr) : TDateTime Func StGetFileLastAccess( const FileName : Ansistr) : TDateTime Func GetFileLastModify( const FileName : Ansistr) : TDateTime Func GetHomeFolder( aForceSlash :Bool) : Ansistr Func GetLongPath( const APath : Ansistr) : Ansistr Func GetMachineName : Ansistr Func GetMediaID( Drive : Char; var MediaIDRec : MediaIDType) :Card Func GetParentFolder( const APath : Ansistr; aForceSlash :Bool): Ansistr Func GetShortPath( const APath : Ansistr) : Ansistr Func GetSystemFolder( aForceSlash :Bool) : Ansistr Func GetTempFolder( aForceSlash :Bool) : Ansistr Func StGetWindowsFolder( aForceSlash :Bool) : Ansistr Func GetWorkingFolder( aForceSlash :Bool) : Ansistr Func GlobalDateTimeToLocal( const UTC : TStDateTimeRec; MinOffset: Int): TStDateTimeRec Func StIsDirectory( const DirName : Ansistr) :Bool Func IsDirectoryEmpty( const S : Ansistr) : Int Func IsDriveReady( Drive : Char) :Bool Func IsFile( const FileName : Ansistr) :Bool Func IsFileArchive( const S : Ansistr) : Int Func IsFileHidden( const S : Ansistr) : Int Func IsFileReadOnly( const S : Ansistr) : Int Func IsFileSystem( const S : Ansistr) : Int Func LocalDateTimeToGlobal( const DT1 : TStDateTimeRec; MinOffset : Int) : TStDateTimeRec Func ReadVolumeLabel( var VolName : Ansistr; Drive : Char) :Card Func SameFile( const FilePath1, FilePath2 : Ansistr; var ErrorCode : Int) :Bool Func SetMediaID( Drive : Char; var MediaIDRec : MediaIDType) :Card Proc SplitPath( const APath : Ansistr; Parts : TStrings) Func StDateTimeToFileTime( const FileTime : TStDateTimeRec) : LongInt Func StDateTimeToUnixTime( const DT1 : TStDateTimeRec) : Longint Func UnixTimeToStDateTime( UnixTime : Longint) : TStDateTimeRec Func ValidDrive( Drive : Char) :Bool Func WriteVolumeLabel( const VolName : Ansistr; Drive : Char) :Card //*****************************unit uPSI_JclLANMan;******************************************* Func CreateAccount( const Server,Username,Fullname,Password,Description,Homedir,Script :str; const PasswordNeverExpires : Bool) : Bool Func CreateLocalAccount( const Username,Fullname,Password,Description, Homedir, Script :Str;const PasswordNeverExpires :Bool) :Bool Func DeleteAccount( const Servername, Username :Str) :Bool Func DeleteLocalAccount( Username :Str) :Bool Func CreateLocalGroup( const Server, Groupname, Description :Str) :Bool Func CreateGlobalGroup( const Server, Groupname, Description :Str) :Bool Func DeleteLocalGroup( const Server, Groupname :Str) :Bool Func GetLocalGroups( const Server :Str; const Groups : TStrings) :Bool Func GetGlobalGroups( const Server :Str; const Groups : TStrings) :Bool Func LocalGroupExists( const Group :Str) :Bool Func GlobalGroupExists( const Server, Group :Str) :Bool Func AddAccountToLocalGroup( const Accountname, Groupname :Str) :Bool Func LookupGroupName( const Server :Str; const RID : TNetWellKnownRID) :Str Proc ParseAccountName( const QualifiedName :Str; var Domain, UserName :Str) Func IsLocalAccount( const AccountName :Str) :Bool Func TimeStampInterval( StartStamp, EndStamp : TDateTime) : Int Func GetRandomString( NumChar :Card) :Str //*****************************unit uPSI_cUtils;******************************************* TypeS(TUnitType', ( utSrc, utHead, utRes, utPrj, utOther ) Func cIsWinNT :Bool Proc cFilesFromWildcard(Directory,Mask:Str;var Files:TStringList;Subdirs,ShowDirs,Multitasking:Boolean; Func cExecuteFile( const FileName, Params, DefaultDir :Str; ShowCmd : Int) : THandle Func cRunAndGetOutput(Cmd,WorkDir:str; ErrFunc:TErrFunc;LineOutputFunc:TLineOutputFunc; CheckAbortFunc:TCheckAbortFunc;ShowReturnValue:Bool):str Func cGetShortName( FileName :Str) :Str Proc cShowError( Msg :Str) Func cCommaStrToStr( s :Str; formatstr :Str) :Str Func cIncludeQuoteIfSpaces( s :Str) :Str Func cIncludeQuoteIfNeeded( s :Str) :Str Proc cLoadFilefromResource( const FileName :Str; ms : TMemoryStream) Func cValidateFile(const FileName:str;const WorkPath:str;const CheckDirs:bool):str; Func cBuildFilter( var value :Str; const FLTStyle : TFILTERSET) :Bool; Func cBuildFilter1( var value :Str; const _filters : array of string) :Bool; Func cCodeInstoStr( s :Str) :Str Func cStrtoCodeIns( s :Str) :Str Proc cStrtoAttr( var Attr : TSynHighlighterAttributes; Value :Str) Func cAttrtoStr( const Attr : TSynHighlighterAttributes) :Str Proc cStrtoPoint( var pt : TPoint; value :Str) Func cPointtoStr( const pt : TPoint) :Str Func cListtoStr( const List : TStrings) :Str Func ListtoStr( const List : TStrings) :Str Proc StrtoList( s :Str; const List : TStrings; const delimiter : char) Proc cStrtoList( s :Str; const List : TStrings; const delimiter : char) Func cGetFileTyp( const FileName :Str) : TUnitType Func cGetExTyp( const FileName :Str) : TExUnitType Proc cSetPath( Add :Str; const UseOriginal :Bool) Func cExpandFileto( const FileName :Str; const BasePath :Str) :Str Func cFileSamePath( const FileName :Str; const TestPath :Str) :Bool Proc cCloneMenu( const FromMenu : TMenuItem; ToMenu : TMenuItem) Func cGetLastPos( const SubStr :Str; const S :Str) : Int Func cGenMakePath( FileName :Str) :Str; Func cGenMakePath2( FileName :Str) :Str Func cGenMakePath1(FileName:Str; EscapeSpaces,EncloseInQuotes:Bool):str; Func cGetRealPath( BrokenFileName :Str; Directory :Str) :Str Func cCalcMod( Count : Int) : Int Func cGetVersionString( FileName :Str) :Str Func cCheckChangeDir( var Dir :Str) :Bool Func cGetAssociatedProgram(const Extension:str;var Filename,Description:str):bool Func cIsNumeric( s :Str) :Bool Proc StrtoAttr( var Attr : TSynHighlighterAttributes; Value :Str) Func AttrtoStr( const Attr : TSynHighlighterAttributes) :Str Func GetFileTyp( const FileName :Str) : TUnitType Func Atoi(const aStr:Str): Int Func Itoa(const aint: Int):Str Func Atof(const aStr:Str): double; Func Atol(const aStr:Str): longint; Proc SIRegister_cHTTPUtils(CL: TPSPascalCompiler); begin FindClass('TOBJECT'),'EHTTP FindClass('TOBJECT'),'EHTTPParser //AnsiCharSet', 'set of AnsiChar AnsistrArray', 'array of Ansistr THTTPProtocolEnum', '( hpNone, hpCustom, hpHTTP, hpHTTPS ) THTTPVersionEnum', '( hvNone, hvCustom, hvHTTP10, hvHTTP11 ) THTTPVersion', 'record Version : THTTPVersionEnum; Protocol : TH' +'TTPProtocolEnum; CustomProtocol : Ansistr; CustomMajVersion : Int; ' +'CustomMinVersion : Int; end THTTPHeaderNameEnum','( hntCustom, hntHost, hntContentType, hnt' +'ContentLength, hntContentTransferEncoding, hntContentLocation, hntContentL' +'anguage, hntContentEncoding, hntTransferEncoding, hntDate, hntServer, hntU' +'serAgent, hntLocation, hntConnection, hntExpires, hntCacheControl, hntSetC' +'ookie, hntCookie, hntAuthorization, hntVia, hntWarning, hntContentRange, h' +'ntXForwardedFor, hntPragma, hntXPoweredBy, hntWWWAuthenticate, hntLastModi' +'fied, hntETag, hntProxyAuthorization, hntReferer, hntAge, hntAcceptRanges,' +' hntAcceptEncoding, hntAcceptLanguage, hntAcceptCharset, hntIfModifiedSinc' +'e, hntIfUnmodifiedSince, hntRetryAfter, hntUpgrade, hntStatus, hntProxyCon' +'nection, hntOrigin, hntKeepAlive ) THTTPHeaderName', 'record Value : THTTPHeaderNameEnum; Custom: Ansistr; end THTTPCustomHeader', 'record FieldName : Ansistr; FieldValue :' Ansistr; end //PHTTPCustomHeader', '^THTTPCustomHeader // will not work THTTPContentLengthEnum', '( hcltNone, hcltByteCount ) THTTPContentLength', 'record Value : THTTPContentLengthEnum; ByteCount:Int64; end //PHTTPContentLength', '^THTTPContentLength // will not work THTTPContentTypeMajor','( hctmCustom, hctmText, hctmImage ) THTTPContentTypeEnum', '( hctNone, hctCustomParts, hctCustomStri' +'ng, hctTextHtml, hctTextAscii, hctTextCss, hctTextPlain, hctTextXml, hctTe' +'xtCustom, hctImageJpeg, hctImagePng, hctImageGif, hctImageCustom, hctAppli' +'cationJSON, hctApplicationOctetStream, hctApplicationJavaScript, hctApplic' +'ationCustom, hctAudioCustom, hctVideoCustom ) THTTPContentType', 'record Value : THTTPContentTypeEnum; CustomM' +ajor:Ansistr;CustomMinor:Ansistr;Parameters:AnsistrArray;CustomStr:Ansistr;end THTTPDateFieldEnum', '( hdNone, hdCustom, hdParts, hdDateTime ) THTTPDateField', 'record Value : THTTPDateFieldEnum; DayOfWeek :' +' Int; Day : Int; Month : Int; Year : Int; Hour : Int; ' +'Min : Int; Sec : Int; TimeZoneGMT :Bool; CustomTimeZone : Ansi' +'String; DateTime : TDateTime; Custom : Ansistr; end THTTPTransferEncodingEnum', '( hteNone, hteCustom, hteChunked ) THTTPTransferEncoding', 'record Value : THTTPTransferEncodingEnum;Custom:Ansistr;end THTTPConnectionFieldEnum', '( hcfNone, hcfCustom, hcfClose, hcfKeepAlive ) THTTPConnectionField', 'record Value : THTTPConnectionFieldEnum;Custom:Ansistr; end THTTPAgeFieldEnum', '( hafNone, hafCustom, hafAge ) THTTPAgeField', 'record Value: THTTPAgeFieldEnum; Age : Int64;Custom:Ansistr; end THTTPCacheControlFieldEnum', '( hccfNone, hccfDecoded, hccfCustom ) THTTPCacheControlRequestSubField', '( hccsfNoCache, hccsfNoStore' +', hccsfMaxAge, hccsfMaxStale, hccsfMinFresh, hccsfNoTransform, hccsfOnlyIfCached ) THTTPCacheControlResponseSubField', '( hccrfPublic, hccrfPrivate' +', hccrfNoCache, hccrfNoStore, hccrfNoTransform, hccrfMustRevalidate, hccrf' +'ProxyRevalidate, hccrfMaxAge, hccrfSMaxAge ) THTTPCacheControlField', 'record Value : THTTPCacheControlFieldEnum; end THTTPContentEncodingEnum', '( hceNone, hceCustom, hceIdentity, h' +'ceCompress, hceDeflate, hceExi, hceGzip, hcePack200Gzip ) THTTPContentEncoding','record Value:THTTPContentEncodingEnum;Custom:Ansistr;end; THTTPContentEncodingFieldEnum', '( hcefNone, hcefList ) THTTPContentEncodingField', 'record Value : THTTPContentEncoding' +'FieldEnum; List : array of THTTPContentEncoding; end THTTPRetryAfterFieldEnum', '( hrafNone, hrafCustom, harfDate, harfSeconds ) THTTPRetryAfterField', 'record Value : THTTPRetryAfterFieldEnum;' +' Custom : Ansistr; Date : TDateTime; Seconds : Int64; end THTTPContentRangeFieldEnum', '( hcrfNone, hcrfCustom, hcrfByteRange ) THTTPContentRangeField', 'record Value : THTTPContentRangeFieldE' +num; ByteFirst : Int64; ByteLast : Int64; ByteSize : Int64; Custom: Ansistr; end THTTPSetCookieFieldEnum', '( hscoNone, hscoDecoded, hscoCustom ) THTTPSetCookieCustomField', 'record Name : Ansistr; Value : Ansistr; end THTTPSetCookieCustomFieldArray', 'array of THTTPSetCookieCustomField THTTPSetCookieField', 'record Value : THTTPSetCookieFieldEnum; D' +'omain : Ansistr; Path : Ansistr; Expires : THTTPDateField; MaxAge : ' +'Int64; HttpOnly :Bool; Secure :Bool; CustomFields : THTTPSetCookie' +'CustomFieldArray; Custom : Ansistr; end //PHTTPSetCookieField', '^THTTPSetCookieField // will not work THTTPSetCookieFieldArray', 'array of THTTPSetCookieField THTTPCookieFieldEnum', '( hcoNone, hcoDecoded, hcoCustom ) THTTPCookieFieldEntry', 'record Name : Ansistr; Value : Ansistr; end //PHTTPCookieFieldEntry', '^THTTPCookieFieldEntry // will not work THTTPCookieFieldEntryArray', 'array of THTTPCookieFieldEntry THTTPCookieField', 'record Value : THTTPCookieFieldEnum; Entries' +' : THTTPCookieFieldEntryArray; Custom : Ansistr; end THTTPCommonHeaders', 'record TransferEncoding : THTTPTransferEnc' +'oding; ContentType : THTTPContentType; ContentLength : THTTPContentLength;' +' Connection : THTTPConnectionField; ProxyConnection : THTTPConnectionField' +'; Date : THTTPDateField; ContentEncoding : THTTPContentEncodingField; end THTTPCustomHeaders', 'array of THTTPCustomHeader //THTTPFixedHeaders','array[THTTPHeaderNameEnum] of Ansistr THTTPFixedHeaders','array[0..42] of Ansistr THTTPMethodEnum', '( hmNone, hmCustom, hmGET, hmPUT, hmPOST, hmC' +'ONNECT, hmHEAD, hmDELETE, hmOPTIONS, hmTRACE ) THTTPMethod', 'record Value : THTTPMethodEnum; Custom : Ansistr; end THTTPRequestStartLine','record Method:THTTPMethod;URI:Ansistr;Version:THTTPVersion;end THTTPRequestHeader', 'record CommonHeaders : THTTPCommonHeaders;' +' FixedHeaders : THTTPFixedHeaders; CustomHeaders : THTTPCustomHeaders; Coo' +'kie:THTTPCookieField; IfModifiedSince:THTTPDateField;IfUnmodifiedSince:THTTPDateField;end //PHTTPRequestHeader', '^THTTPRequestHeader // will not work THTTPRequest', 'record StartLine : THTTPRequestStartLine; Header' +' : THTTPRequestHeader; HeaderComplete :Bool; HasContent :Bool; end THTTPResponseStartLineMessage', '( hslmNone, hslmCustom, hslmOK) THTTPResponseStartLine', 'record Version : THTTPVersion; Code : ' +'Int; Msg : THTTPResponseStartLineMessage; CustomMsg : Ansistr; end THTTPResponseHeader', 'record CommonHeaders : THTTPCommonHeaders' +'; FixedHeaders : THTTPFixedHeaders; CustomHeaders : THTTPCustomHeaders; Co' +'okies : THTTPSetCookieFieldArray; Expires : THTTPDateField; LastModified :' +' THTTPDateField; Age : THTTPAgeField; end //PHTTPResponseHeader', '^THTTPResponseHeader // will not work THTTPResponse', 'record StartLine : THTTPResponseStartLine; Head' +er : THTTPResponseHeader; HeaderComplete :Bool; HasContent :Bool; end Func HTTPMessageHasContent( const H : THTTPCommonHeaders) :Bool Proc InitHTTPRequest( var A : THTTPRequest) Proc InitHTTPResponse( var A : THTTPResponse) Proc ClearHTTPVersion( var A : THTTPVersion) Proc ClearHTTPContentLength( var A : THTTPContentLength) Proc ClearHTTPContentType( var A : THTTPContentType) Proc ClearHTTPDateField( var A : THTTPDateField) Proc ClearHTTPTransferEncoding( var A : THTTPTransferEncoding) Proc ClearHTTPConnectionField( var A : THTTPConnectionField) Proc ClearHTTPAgeField( var A : THTTPAgeField) Proc ClearHTTPContentEncoding( var A : THTTPContentEncoding) Proc ClearHTTPContentEncodingField( var A : THTTPContentEncodingField) Proc ClearHTTPContentRangeField( var A : THTTPContentRangeField) Proc ClearHTTPSetCookieField( var A : THTTPSetCookieField) Proc ClearHTTPCommonHeaders( var A : THTTPCommonHeaders) //Proc ClearHTTPFixedHeaders( var A : THTTPFixedHeaders) Proc ClearHTTPCustomHeaders( var A : THTTPCustomHeaders) Proc ClearHTTPCookieField( var A : THTTPCookieField) Proc ClearHTTPMethod( var A : THTTPMethod) Proc ClearHTTPRequestStartLine( var A : THTTPRequestStartLine) Proc ClearHTTPRequestHeader( var A : THTTPRequestHeader) Proc ClearHTTPRequest( var A : THTTPRequest) Proc ClearHTTPResponseStartLine( var A : THTTPResponseStartLine) Proc ClearHTTPResponseHeader( var A : THTTPResponseHeader) Proc ClearHTTPResponse( var A : THTTPResponse) THTTPStringOption', '( hsoNone ) THTTPStringOptions', 'set of THTTPStringOption FindClass('TOBJECT'),'TAnsistrBuilder Proc BuildStrHTTPVersion(const A:THTTPVersion;const B:TAnsistrBuilder; PTHTTPStringOptions; Proc BuildStrHTTPContentLengthValue(const A:THTTPContentLength;B:TAnsistrBuilder;P:THTTPStringOptions) Proc BuildStrHTTPContentLength(const A : THTTPContentLength; B:TAnsistrBuilder;PTHTTPStringOptions) Proc BuildStrHTTPContentTypeValue(const A:THTTPContentType;B:TAnsistrBuilder;const P:THTTPStringOptions) Proc BuildStrHTTPContentType(const A:THTTPContType;const B:TAnsistrBuilder; const P:THTTPStringOptions) Proc BuildStrRFCDateTime(const DOW,Da,Mo,Ye,Ho,Mi,Se:Int;const TZ:Ansistr;const B:TAnsistrBuilder;const P:THTTPStringOptions) Proc BuildStrHTTPDateFieldValue(const A: THTTPDateField;const B: TAnsistrBuilder; const P:THTTPStringOptions) Proc BuildStrHTTPDateField(const A:THTTPDateField;const B:TAnsistrBuilder;const PTHTTPStringOptions); Proc BuildStrHTTPTransferEncodingValue(const A : THTTPTransferEncoding; const B : TAnsistrBuilder; const P : THTTPStringOptions) Proc BuildStrHTTPTransferEncoding(const A:THTTPTransferEncoding;const B:TAnsistrBuilder;const P: THTTPStringOptions) Proc BuildStrHTTPContentRangeField(const A:THTTPContentRangeField;const B:TAnsistrBuilder;const P: THTTPStringOptions) Proc BuildStrHTTPConnectionFieldValue(const A:THTTPConnectionField;const B:TAnsistrBuilder;const P: THTTPStringOptions) Proc BuildStrHTTPConnectionField(const A:THTTPConnectionField;const B:TAnsistrBuilder;const P:THTTPStringOptions) Proc BuildStrHTTPAgeField(const A:THTTPAgeField;const B:TAnsistrBuilder;const P:THTTPStringOptions); Proc BuildStrHTTPContentEncoding(const A: THTTPContentEncoding; const B: TAnsistrBuilder; const P : THTTPStringOptions) Proc BuildStrHTTPContentEncodingField(const A:THTTPContentEncodingField;const B:TAnsistrBuilder;const P:THTTPStringOptions) Proc BuildStrHTTPProxyConnectionField(const A:THTTPConnectionField;const B: TAnsistrBuilder;const P: THTTPStringOptions) Proc BuildStrHTTPCommonHeaders( const A: THTTPCommonHeaders; const B : TAnsistrBuilder; const P : THTTPStringOptions) Proc BuildStrHTTPFixedHeaders(const A:THTTPFixedHeaders;const B:TAnsiStrBuilder;const P:THTTPStringOptions) Proc BuildStrHTTPCustomHeaders( const A : THTTPCustomHeaders; const B : TAnsistrBuilder; const P : THTTPStringOptions) Proc BuildStrHTTPSetCookieFieldValue(const A:THTTPSetCookieField;const B:TAnsistrBuilder;const P: THTTPStringOptions) Proc BuildStrHTTPCookieFieldValue(const A:THTTPCookieField;const B:TAnsistrBuilder;const P: THTTPStringOptions) Proc BuildStrHTTPCookieField(const A:THTTPCookieField;const B:TAnsiStrBuilder;const P:THTTPStringOptions); Proc BuildStrHTTPMethod(const A:THTTPMethod;const B:TAnsistrBuilder;const P: THTTPStringOptions) Proc BuildStrHTTPRequestStartLine( const A : THTTPRequestStartLine; const B : TAnsistrBuilder; const P : THTTPStringOptions) Proc BuildStrHTTPRequestHeader(const A:THTTPRequestHeader;const B:TAnsistrBuilder;const P:THTTPStrOptions); Proc BuildStrHTTPRequest(const A : THTTPRequest; const B: TAnsistrBuilder; const P : THTTPStringOptions) Proc BuildStrHTTPResponseCookieFieldArray( const A : THTTPSetCookieFieldArray; const B : TAnsistrBuilder; const P : THTTPStringOptions) Proc BuildStrHTTPResponseStartLine(const A:THTTPResponsStartLine;const B:TAnsiStrBldr;const P THTTPStrOptions); Proc BuildStrHTTPResponseHeader(const A:THTTPRespHeader;const B:TAnsiStrBuilder;const P:THTTPStringOptions); Proc BuildStrHTTPResponse(const A:THTTPResponse; const B:TAnsistrBuilder; const P:THTTPStringOptions); Func HTTPContentTypeValueToStr( const A : THTTPContentType) : Ansistr Func HTTPSetCookieFieldValueToStr( const A : THTTPSetCookieField) : Ansistr Func HTTPCookieFieldValueToStr( const A : THTTPCookieField) : Ansistr Func HTTPMethodToStr( const A : THTTPMethod) : Ansistr Func HTTPRequestToStr( const A : THTTPRequest) : Ansistr Func HTTPResponseToStr( const A : THTTPResponse) : Ansistr Proc PrepareCookie(var A:THTTPCookieField;const B:THTTPSetCookieFieldArray;const Domain:Ansistr;const Secure:Bool; THTTPParserHeaderParseFunc','Func (const HeaderName : THTT' +PHeaderNameEnum; const HeaderPtr : ___Pointer) :Bool SIRegister_THTTPParser(CL); FindClass('TOBJECT'),'THTTPContentDecoder THTTPContentDecoderProc', 'Proc ( const Sender : THTTPContentDecoder) THTTPContentDecoderContentType', '( crctFixedSize, crctChunked, crctUnsized ) THTTPContentDecoderChunkState', '( crcsChunkHeader, crcsContent,' +' crcsContentCRLF, crcsTrailer, crcsFinished ) THTTPContentDecoderLogEvent,Procedure(const Sender:THTTPContentDecoder;const LogMsg:str) SIRegister_THTTPContentDecoder(CL); THTTPContentReaderMechanism', '( hcrmEvent, hcrmString, hcrmStream, hcrmFile ) FindClass('TOBJECT'),'THTTPContentReader THTTPContentReaderProc','Proc ( const Sender : THTTPContentReader) THTTPContentReaderLogEvent','Procedure(const Sender:THTTPContentReader;const LogMsg:str;const LogLevel:Int; SIRegister_THTTPContentReader(CL); THTTPContentWriterMechanism','(hctmEvent, hctmString, hctmStream, hctmFile ) FindClass('TOBJECT'),'THTTPContentWriter THTTPContentWriterLogEvent,Procedure(const Sender:THTTPContentWriter;const LogMsg:Ansistr); SIRegister_THTTPContentWriter(CL); Proc SelfTestcHTTPUtils end; (*----------------------------------------------------------------------------*) Proc SIRegister_cTLSUtils(CL: TPSPascalCompiler); begin 'TLSLibraryVersion','String '1.00 'TLSError_None','LongInt'( 0); 'TLSError_InvalidBuffer','LongInt'( 1); 'TLSError_InvalidParameter','LongInt'( 2); 'TLSError_InvalidCertificate','LongInt'( 3); 'TLSError_InvalidState','LongInt'( 4); 'TLSError_DecodeError','LongInt'( 5); 'TLSError_BadProtocol','LongInt'( 6); Func TLSErrorMessage( const TLSError : Int) :Str SIRegister_ETLSError(CL); TTLSProtocolVersion', 'record major : Byte; minor : Byte; end PTLSProtocolVersion', '^TTLSProtocolVersion // will not work Proc InitSSLProtocolVersion30( var A : TTLSProtocolVersion) Proc InitTLSProtocolVersion10( var A : TTLSProtocolVersion) Proc InitTLSProtocolVersion11( var A : TTLSProtocolVersion) Proc InitTLSProtocolVersion12( var A : TTLSProtocolVersion) Func IsTLSProtocolVersion( const A, B : TTLSProtocolVersion):Bool Func IsSSL2( const A : TTLSProtocolVersion) :Boolean Func IsSSL3( const A : TTLSProtocolVersion) :Boolean Func IsTLS10( const A : TTLSProtocolVersion):Boolean Func IsTLS11( const A : TTLSProtocolVersion):Boolean Func IsTLS12( const A : TTLSProtocolVersion):Boolean Func IsTLS10OrLater( const A : TTLSProtocolVersion) :Bool Func IsTLS11OrLater( const A : TTLSProtocolVersion) :Bool Func IsTLS12OrLater( const A : TTLSProtocolVersion) :Bool Func IsFutureTLSVersion( const A : TTLSProtocolVersion) :Bool Func IsKnownTLSVersion( const A : TTLSProtocolVersion) :Bool Func TLSProtocolVersionToStr( const A : TTLSProtocolVersion):Str Func TLSProtocolVersionName( const A : TTLSProtocolVersion) :Str PTLSRandom', '^TTLSRandom // will not work Proc InitTLSRandom( var Random : TTLSRandom) Func TLSRandomToStr( const Random : TTLSRandom) : Ansistr 'TLSSessionIDMaxLen','LongInt'( 32); Proc InitTLSSessionID( var SessionID : TTLSSessionID; const A : Ansistr) Func EncodeTLSSessionID(var Buff:str;const Size:Int;const SessionID:TTLSSessionID):Int; Func DecodeTLSSessionID(const Buff:str;const Size:Int;var SessionID:TTLSSessionID):Int; TTLSSignatureAndHashAlgorithm', 'record Hash : TTLSHashAlgorithm' +'; Signature : TTLSSignatureAlgorithm; end // PTLSSignatureAndHashAlgorithm', '^TTLSSignatureAndHashAlgorithm +'// will not work TTLSSignatureAndHashAlgorithmArray', 'array of TTLSSignatureAndHashAlgorithm TTLSKeyExchangeAlgorithm', '( tlskeaNone, tlskeaNULL, tlskeaDHE_' +DSS, tlskeaDHE_RSA, tlskeaDH_Anon, tlskeaRSA, tlskeaDH_DSS, tlskeaDH_RSA ) TTLSMACAlgorithm', '( tlsmaNone, tlsmaNULL, tlsmaHMAC_MD5, tlsma' +HMAC_SHA1, tlsmaHMAC_SHA256, tlsmaHMAC_SHA384, tlsmaHMAC_SHA512 ) TTLSMacAlgorithmInfo', 'record Name:Ansistr;DigestSize:Integer; Supported:Bool; end PTLSMacAlgorithmInfo', '^TTLSMacAlgorithmInfo // will not work 'TLS_MAC_MAXDIGESTSIZE','LongInt'( 64); TTLSPRFAlgorithm', '( tlspaSHA256 ) Func tlsP_MD5( const Secret, Seed : Ansistr; const Size : Int) : Ansistr Func tlsP_SHA1( const Secret, Seed : Ansistr; const Size : Int) : Ansistr Func tlsP_SHA256( const Secret, Seed : Ansistr; const Size : Int) : Ansistr Func tlsP_SHA512( const Secret, Seed : Ansistr; const Size : Int) : Ansistr Func tls10PRF( const Secret, ALabel, Seed : Ansistr; const Size : Int) : Ansistr Func tls12PRF_SHA256(const Secret,ALabel,Seed:Ansistr; const Size : Int): Ansistr Func tls12PRF_SHA512(const Secret,ALabel,Seed :Ansistr; const Size: Int): Ansistr Func TLSPRF(const ProtoVersion:TTLSProtocolVersion;const Secret,ALabel,Seed:AString;const Size:Int):AString; Func tls10KeyBlock(const MasterSecret,ServerRandom,ClientRandom:Ansistr;const Size:Int):AnsiStr Func tls12SHA256KeyBlock(const MasterSecret,ServerRandom,ClientRandom: Ansistr;const Size:Int):Ansistr; Func tls12SHA512KeyBlock(const MasterSecret,ServerRandom,ClientRandom: Ansistr;const Size:Int):Ansistr; Func TLSKeyBlock(const ProtocolVersion:TTLSProtocolVersion;const MasterSecret,ServerRandom,ClientRandom: Ansistr;const Size:Int):Ansistr Func tls10MasterSecret(const PreMasterSecret,ClientRandom, ServerRandom:Ansistr) :Ansistr; Func tls12SHA256MasterSecret(const PreMasterSecret,ClientRandom,ServerRandom:AnsiStr):AnsiStr; Func tls12SHA512MasterSecret(const PreMasterSecret,ClientRandom,ServerRandom:AnsiStr): AnsiStr; Func TLSMasterSecret(const ProtocolVersion:TTLSProtocolVersion;const PreMasterSecret,ClientRandom,ServerRandom:Ansistr):Ansistr TTLSKeys', 'record KeyBlock : Ansistr; ClientMACKey : AnsiStr' +'ing; ServerMACKey : Ansistr; ClientEncKey : Ansistr; ServerEncKey : ' +'Ansistr; ClientIV : Ansistr; ServerIV : Ansistr; end Proc GenerateTLSKeys(const ProtocolVersion:TTLSProtocolVersion;const MACKeyBits,CipherKeyBits,IVBits:Int;const MasterSecret,ServerRandom, ClientRandom:Ansistr;var TLSKeys: TTLSKeys) Proc GenerateFinalTLSKeys(const ProtocolVersion:TTLSProtocolVersion;const IsExportable:Bool;const ExpandedKeyBits:Int;const ServerRandom, ClientRandom:Ansistr;var TLSKeys:TTLSKeys) 'TLS_PLAINTEXT_FRAGMENT_MAXSIZE','LongInt'( 16384 - 1); 'TLS_COMPRESSED_FRAGMENT_MAXSIZE','LongInt'( 16384 + 1024); Proc SelfTestcTLSUtils end; (*----------------------------------------------------------------------------*) Proc SIRegister_Reversi(CL: TPSPascalCompiler); begin sPosData','record corner:boolean;square2x2:boolean;edge:bool;stable:Int;internal:Int;disks:Int;mx:Int;my:Int;end // pBoard', '^tBoard // will not work Func rCalculateData( cc : byte; cx, cy : Int) : sPosData Func rCheckMove( color : byte; cx, cy : Int) : Int //Func rDoStep( data : pBoard) : word Func winExecAndWait( const sAppPath :Str; wVisible : word) :Bool end; Proc SIRegister_IWDBCommon(CL: TPSPascalCompiler); begin Func InEditMode( ADataset : TDataset) :Bool Func CheckDataSource( ADataSource : TDataSource) :Bool; Func CheckDataSource1(ADataSource:TDataSource;const AFieldName:str;var VField:TField):bool; Func GetFieldText( AField:TField) :Str end; Proc SIRegister_SortGrid(CL: TPSPascalCompiler); begin TPrintMode', '( pmPrint, pmPreview, pmPageCount ) TMyPrintRange', '( prAll, prSelected ) TSortStyle', '(ssAutomatic,ssNormal,ssNumeric,ssNumericExtended,ssDateTime,ssTime,ssCustom ) TSortDirection', '( sdAscending, sdDescending ) TSetChecked', 'Proc ( Sender : TObject; ACol, ARow : Int; State :Bool) TGetCombobox', 'Proc ( Sender : TObject; ACol, ARow : integ' +er; var Strs : TStringList; var Width, Height : Int; var Sorted :Bool) TSetCombobox', 'Proc ( Sender : TObject; ACol, ARow : Int; Str :Str) TSetEllipsis', 'Proc ( Sender : TObject; ACol, ARow : Int) SIRegister_TSortOptions(CL); SIRegister_TPrintOptions(CL); TSortedListEntry', 'record Str :Str; RowNum : Int; SortOption : TSortOptions; end SIRegister_TSortedList(CL); TCellBevelStyle', '( cbNone, cbRaised, cbLowered ) TCellBevel', 'record Style: TCellBevelStyle;UpperLeftColor:TColor;LowerRightColor:TColor;end TVertAlignment', '( taTopJustify, taBottomJustify, taMiddle ) TFormatOptions', 'record Brush : TBrush; Font : TFont; Alignment' +Horz : TAlignment;AlignmentVert:TVertAlignment;Bevel:TCellBevel;HideText:Boolean; end SIRegister_TFontSetting(CL); SIRegister_TFontList(CL); AddTypeS(TFormatDrawCellEvent', 'Proc ( Sender : TObject; Col, Row :' +Int;State:TGridDrawState;var FormatOptions:TFormatOptions;var CheckBox,Combobox,Ellipsis:Bool); TSetFilterEvent', 'Proc ( ARows : TStrings; var Accept :Bool) TSearchEvent', 'Proc ( ARows : TStrings; var Accept :Bool) TUpdateGridEvent', 'Proc ( Sender : TObject; ARow : Int) TSizeChangedEvent', 'Proc ( Sender : TObject; OldColCount, OldRowCount : Int) TBeginSortEvent', 'Proc ( Sender : TObject; var Col : Int) TEndSortEvent', 'Proc ( Sender : TObject; Col : Int) TGetSortStyleEvent', 'Proc ( Sender : TObject; Col : integer; var SortStyle : TSortStyle) TCellValidateEvent', 'Proc ( Sender : TObject; ACol, ARow :' + Int; const OldValue :Str; var NewValue :Str; var Valid :Bool) SIRegister_TSortGrid(CL); Func ExtendedCompare( const Str1, Str2 :Str) : Int Func NormalCompare( const Str1, Str2 :Str) : Int Func DateTimeCompare( const Str1, Str2 :Str) : Int Func NumericCompare( const Str1, Str2 :Str) : Int Func TimeCompare( const Str1, Str2 :Str) : Int //Func Compare( Item1, Item2 : Pointer) : Int end; ************************************ Proc Register_IB(CL: TPSPascalCompiler); Proc IBAlloc( var P, OldSize, NewSize : Int) Proc IBError( ErrMess : TIBClientError; const Args : array of const) Proc IBDataBaseError Func StatusVector : PISC_STATUS Func StatusVectorArray : PStatusVector Func CheckStatusVector( ErrorCodes : array of ISC_STATUS) :Bool Func StatusVectorAsText :Str Proc SetIBDataBaseErrorMessages( Value : TIBDataBaseErrorMessages) Func GetIBDataBaseErrorMessages : TIBDataBaseErrorMessages //***********************unit uPSI_BoldUtils;*********************************** Func CharCount( c : char; const s :Str) : Int Func BoldNamesEqual( const name1, name2 :Str) :Bool Proc BoldAppendToStrings(strings:TStrings; const aString:str;const ForceNewLine:Bool) Func BoldSeparateStringList(strings:TStringList;const Separatr,PreString,PostString:Str)Str Func BoldSeparatedAppend( const S1, S2 :Str; const Separator :Str) :Str Func BoldTrim( const S :Str) :Str Func BoldIsPrefix( const S, Prefix :Str) :Bool Func BoldStrEqual( P1, P2 : PChar; Len : Int) :Bool Func BoldStrAnsiEqual( P1, P2 : PChar; Len : Int) :Bool Func BoldAnsiEqual( const S1, S2 :Str) :Bool Func BoldStrStringEqual( const S1 :Str; P2 : PChar; Len : Int) :Bool Func BoldCaseIndependentPos( const Substr, S :Str) : Int //Proc EnumToStrings( aTypeInfo : pTypeInfo; Strings : TStrings) Func CapitalisedToSpaced( Capitalised :Str) :Str Func SpacedToCapitalised( Spaced :Str) :Str Func BooleanToString( BoolValue :Bool) :Str Func StringToBoolean( StrValue :Str) :Bool Func GetUpperLimitForMultiplicity( const Multiplicity :Str) : Int Func GetLowerLimitForMultiplicity( const Multiplicity :Str) : Int Func StringListToVarArray( List : TStringList) : variant Func IsLocalMachine( const Machinename : WideString) :Bool Func GetComputerNameStr :Str Func TimeStampComp( const Time1, Time2 : TTimeStamp) : Int Func BoldStrToDateFmt(const S:str;const DateFormat:str;const DateSeparatorChar:char):TDateTime Func BoldDateToStrFmt(const aDate:TDateTime;DateFormat:str;const DateSeparatorChar:char):Str; Func BoldParseFormattedDateList(const value:str;const formats:TStrings;var Date:TDateTime):Boolean; Func BoldParseFormattedDate(const value:str;const formats:array of string; var Date:TDateTime):Boolean; Proc EnsureTrailing( var Str :Str; ch : char) Func BoldDirectoryExists( const Name :Str) :Bool Func BoldForceDirectories( Dir :Str) :Bool Func BoldRootRegistryKey :Str Func GetModuleFileNameAsString( IncludePath :Bool) :Str Func BoldVariantToStrings( V : OleVariant; Strings : TStrings) : Int Func LogicalAnd( A, B : Int) :Bool record TByHandleFileInformation dwFileAttributes: DWORD; ' +ftCreationTime : TFileTime; ftLastAccessTime : TFileTime; ftLastWriteTime ' +: TFileTime; dwVolumeSerialNumber : DWORD; nFileSizeHigh : DWORD; nFileSiz' +eLow : DWORD; nNumberOfLinks : DWORD; nFileIndexHigh : DWORD; nFileIndexLow:DWORD; end Func GetFileInformationByHandle(hFile:THandle;var lpFileInformation:TByHandleFileInformation):BOOL; Func IsFirstInstance :Bool Proc ActivateFirst( AString : PChar) Proc ActivateFirstCommandLine Func MakeAckPkt(const BlockNumber: Word):Str; Proc SendError(UDPBase:TIdUDPBase;APeerIP:str;const APort:Int;const ErrNumb:Word;ErrStr:str; Proc SendError(UDPClient:TIdUDPClient;const ErrNumber:Word; ErrorString:str);overload; Proc SendError(UDPBase:TIdUDPBase;APeerIP:str;const APort:Int; E:Exception);overload; Proc SendError(UDPClient: TIdUDPClient; E: Exception); overload; Func IdStrToWord(const Value:Str): Word; Func IdWordToStr(const Value: Word): WordStr; Func HasInstructionSet( const InstructionSet : TCPUInstructionSet) :Bool Func CPUFeatures : TCPUFeatures Proc SIRegister_xrtl_util_CPUUtils(CL: TPSPascalCompiler); begin AddTypeS('TXRTLBitIndex', 'Int Func XRTLSwapBits( Data :Card; Bit1Index, Bit2Index : TXRTLBitIndex) :Card Func XRTLBitTest( Data :Card; BitIndex : TXRTLBitIndex) :Bool Func XRTLBitSet( Data :Card; BitIndex : TXRTLBitIndex) :Card Func XRTLBitReset( Data :Card; BitIndex : TXRTLBitIndex) :Card Func XRTLBitComplement( Data :Card; BitIndex : TXRTLBitIndex) :Card Func XRTLSwapHiLo16( X : Word) : Word Func XRTLSwapHiLo32( X :Card) :Card Func XRTLSwapHiLo64( X : Int64) : Int64 Func XRTLROL32( A, S :Card) :Card Func XRTLROR32( A, S :Card) :Card Func XRTLROL16( A : Word; S :Card) : Word Func XRTLROR16( A : Word; S :Card) : Word Func XRTLROL8( A : Byte; S :Card) : Byte Func XRTLROR8( A : Byte; S :Card) : Byte //Proc XRTLXorBlock( I1, I2, O1 : PByteArray; Len : Int) //Proc XRTLIncBlock( P : PByteArray; Len : Int) Proc XRTLUMul64( const A, B : Int; var MulL, MulH : Int) Func XRTLPopulation( A :Card):Card end; Func XRTLURLDecode( const ASrc : WideString) : WideString Func XRTLURLEncode( const ASrc : WideString) : WideString Func XRTLURINormalize( const AURI : WideString) : WideString Proc XRTLURIParse(const AURI:WideString;var VProtocol,VHost,VPath,VDocument,VPort,VBookmark,VUserName,VPassword:WideString) Func XRTLExtractLongPathName(APath:Str):Str; Proc SIRegister_cFundamentUtils(CL: TPSPascalCompiler); begin Int8', 'ShortInt AddTypeS('Int16', 'SmallInt Int32', 'LongInt UInt8', 'Byte UInt16', 'Word UInt32', 'LongWord UInt64', 'Int64 Word8', 'UInt8 Word16', 'UInt16 Word32', 'UInt32 Word64', 'UInt64 LargeInt', 'Int64 NativeInt', 'Int AddTypeS('NativeUInt', 'Cardinal Const('BitsPerByte','LongInt'( 8); Const('BitsPerWord','LongInt'( 16); Const('BitsPerLongWord','LongInt'( 32); //Const('BitsPerCardinal','LongInt'( BytesPerCardinal * 8); //Const('BitsPerNativeWord','LongInt'( BytesPerNativeWord * 8); Func MinI( const A,B Int) : Int Func MaxI( const A,B:Int) : Int Func MinC( const A,B:Card) :Card Func MaxC( const A,B:Card) :Card Func SumClipI( const A, I : Int) : Int Func SumClipC( const A :Card; const I : Int) :Card Func InByteRange( const A : Int64) :Bool Func InWordRange( const A : Int64) :Bool Func InLongWordRange( const A : Int64): Bool Func InShortIntRange( const A : Int64): Bool Func InSmallIntRange( const A : Int64 : Bool Func InLongIntRange( const A : Int64) : Bool AddTypeS('Bool8', 'ByteBool AddTypeS('Bool16', 'WordBool AddTypeS('Bool32', 'LongBool AddTypeS('TCompareResult', '( crLess, crEqual, crGreater, crUndefined ) AddTypeS('TCompareResultSet', 'set of TCompareResult Func ReverseCompareResult( const C : TCompareResult) : TCompareResult Const('MinSingle','Single').setExtended( 1.5E-45); Const('MaxSingle','Single').setExtended( 3.4E+38); Const('MinDouble','Double').setExtended( 5.0E-324); Const('MaxDouble','Double').setExtended( 1.7E+308); Const('MinExtended','Extended').setExtended(3.4E-4932); Const('MaxExtended','Extended').setExtended(1.1E+4932); Const('MinCurrency','Currency').SetExtended( - 922337203685477.5807); Const('MaxCurrency','Currency').SetExtended( 922337203685477.5807); Func MinF( const A, B : Float) : Float Func MaxF( const A, B : Float) : Float Func ClipF( const Value : Float; const Low, High : Float) : Float Func InSingleRange( const A : Float) :Bool Func InDoubleRange( const A : Float) :Bool Func InCurrencyRange( const A : Float) :Bool; Func InCurrencyRange1( const A : Int64) :Bool; Func FloatExponentBase2( const A : Extended; var Exponent : Int) :Bool Func FloatExponentBase10( const A : Extended; var Exponent : Int):Bool Func FloatIsInfinity( const A : Extended) :Bool Func FloatIsNaN( const A : Extended) :Bool Const('SingleCompareDelta','Extended').setExtended( 1.0E-34); Const('DoubleCompareDelta','Extended').setExtended( 1.0E-280); Const('ExtendedCompareDelta','Extended').setExtended( 1.0E-4400); Const('DefaultCompareDelta','Extended').SetExtended( 1.0E-34); Func FloatZero( const A : Float; const CompareDelta : Float) :Bool Func FloatOne( const A : Float; const CompareDelta : Float) :Bool Func FloatsEqual( const A, B : Float; const CompareDelta : Float) :Bool Func FloatsCompare( const A, B : Float; const CompareDelta : Float) : TCompareResult Const('SingleCompareEpsilon','Extended').setExtended( 1.0E-5); Const('DoubleCompareEpsilon','Extended').setExtended( 1.0E-13); Const('ExtendedCompareEpsilon','Extended').setExtended( 1.0E-17); Const('DefaultCompareEpsilon','Extended').setExtended( 1.0E-10); Func ApproxEqual( const A, B : Extended; const CompareEpsilon : Double) :Bool Func ApproxCompare( const A, B : Extended; const CompareEpsilon : Double): TCompareResult Func cClearBit( const Value, BitIndex : LongWord) : LongWord Func cSetBit( const Value, BitIndex : LongWord) : LongWord Func cIsBitSet( const Value, BitIndex : LongWord) :Bool Func cToggleBit( const Value, BitIndex : LongWord) : LongWord Func cIsHighBitSet( const Value : LongWord) :Bool Func SetBitScanForward( const Value : LongWord) : Int; Func SetBitScanForward1( const Value, BitIndex : LongWord) : Int; Func SetBitScanReverse( const Value : LongWord) : Int; Func SetBitScanReverse1( const Value, BitIndex : LongWord) : Int; Func ClearBitScanForward( const Value : LongWord) : Int; Func ClearBitScanForward1( const Value, BitIndex : LongWord) : Int; Func ClearBitScanReverse( const Value : LongWord) : Int; Func ClearBitScanReverse1( const Value, BitIndex : LongWord) : Int; Func cReverseBits( const Value : LongWord) : LongWord; Func cReverseBits1( const Value : LongWord; const BitCount : Int) : LongWord; Func cSwapEndian( const Value : LongWord) : LongWord Func cTwosComplement( const Value : LongWord) : LongWord Func RotateLeftBits16( const Value : Word; const Bits : Byte) : Word Func RotateLeftBits32( const Value : LongWord; const Bits : Byte) : LongWord Func RotateRightBits16( const Value : Word; const Bits : Byte) : Word Func RotateRightBits32( const Value : LongWord; const Bits : Byte) : LongWord Func cBitCount( const Value : LongWord) : LongWord Func cIsPowerOfTwo( const Value : LongWord) :Bool Func LowBitMask( const HighBitIndex : LongWord) : LongWord Func HighBitMask( const LowBitIndex : LongWord) : LongWord Func RangeBitMask( const LowBitIndex, HighBitIndex : LongWord) : LongWord Func SetBitRange(const Value:LongWord;const LowBitIndex,HighBitIndex: LongWord): LongWord Func ClearBitRange(const Value:LongWord;const LowBitIndex,HighBitIndex:LongWord): LongWord Func ToggleBitRange(const Value:LongWord;const LowBitIndex,HighBitIndex:LongWord):LongWord Func IsBitRangeSet(const Value:LongWord;const LowBitIndex,HighBitIndex:LongWord):Bool Func IsBitRangeClear(const Value:LongWord;const LowBitIndex,HighBitIndex:LongWord):Boolean // AddTypeS('CharSet', 'set of AnsiChar AddTypeS('CharSet', 'set of Char //!!! AddTypeS('AnsiCharSet', 'TCharSet AddTypeS('ByteSet', 'set of Byte AddTypeS('AnsiChar', 'Char // Func AsCharSet( const C : array of AnsiChar) : CharSet Func AsByteSet( const C : array of Byte) : ByteSet Proc ComplementChar( var C : CharSet; const Ch : Char) Proc ClearCharSet( var C : CharSet) Proc FillCharSet( var C : CharSet) Proc FillCharSearchRec; // with 0 Proc ComplementCharSet( var C : CharSet) Proc AssignCharSet( var DestSet : CharSet; const SourceSet : CharSet) Proc Union( var DestSet : CharSet; const SourceSet : CharSet) Proc Difference( var DestSet : CharSet; const SourceSet : CharSet) Proc Intersection( var DestSet : CharSet; const SourceSet : CharSet) Proc XORCharSet( var DestSet : CharSet; const SourceSet : CharSet) Func IsSubSet( const A, B : CharSet) :Bool //Func IsEqual( const A, B : CharSet) :Bool Func IsEqualCharset( const A, B : CharSet) :Bool Func IsEqual( const D1, D2 : TDateTime) :Bool; Func IsEmpty( const C : CharSet) :Bool Func IsEmptyCharset( const C : CharSet) :Bool Func IsComplete( const C : CharSet) :Bool Func cCharCount( const C : CharSet) : Int Proc ConvertCaseInsensitive( var C : CharSet) Func CaseInsensitiveCharSet( const C : CharSet) : CharSet Func IntRangeLength( const Low, High : Int) : Int64 Func IntRangeAdjacent( const Low1, High1, Low2, High2 : Int) :Bool Func IntRangeOverlap( const Low1, High1, Low2, High2 : Int) :Bool Func IntRangeHasElement( const Low, High, Element : Int) :Bool Func IntRangeIncludeElement( var Low, High : Int; const Element : Int) :Bool Func IntRangeIncludeElementRange(var Low,High:Int;const LowElement,HighElement:Int):Boolean Func CardRangeLength( const Low, High :Card) : Int64 Func CardRangeAdjacent( const Low1, High1, Low2, High2 :Card) :Bool Func CardRangeOverlap( const Low1, High1, Low2, High2 :Card) :Bool Func CardRangeHasElement( const Low, High, Element :Card) :Bool Func CardRangeIncludeElement( var Low, High :Card; const Element :Card) :Bool Func CardRangeIncludeElementRange(var Low,High:Card;const LowElement,HighElemnt:Card):Bool; AddTypeS('UnicodeChar', 'WideChar Func Compare( const I1, I2 :Bool) : TCompareResult; Func Compare1( const I1, I2 : Int) : TCompareResult; Func Compare2( const I1, I2 : Int64) : TCompareResult; Func Compare3( const I1, I2 : Extended) :TCompareResult; Func CompareA( const I1, I2 : Ansistr): TCompareResult Func CompareW( const I1, I2 : WideString): TCompareResult Func cSgn( const A : LongInt) : Int; Func cSgn1( const A : Int64) : Int; Func cSgn2( const A : Extended) : Int; AddTypeS('TConvertResult', '( convertOK, convertFormatError, convertOverflow ) Func AnsiCharToInt( const A : AnsiChar) : Int Func WideCharToInt( const A : WideChar) : Int Func CharToInt( const A : Char) : Int Func IntToAnsiChar( const A : Int) : AnsiChar Func IntToWideChar( const A : Int) : WideChar Func IntToChar( const A : Int) : Char Func IsHexAnsiChar( const Ch : AnsiChar) :Bool Func IsHexWideChar( const Ch : WideChar) :Bool Func IsHexChar( const Ch : Char) :Bool Func HexAnsiCharToInt( const A : AnsiChar) : Int Func HexWideCharToInt( const A : WideChar) : Int Func HexCharToInt( const A : Char) : Int Func IntToUpperHexAnsiChar( const A : Int) : AnsiChar Func IntToUpperHexWideChar( const A : Int) : WideChar Func IntToUpperHexChar( const A : Int) : Char Func IntToLowerHexAnsiChar( const A : Int) : AnsiChar Func IntToLowerHexWideChar( const A : Int) : WideChar Func IntToLowerHexChar( const A : Int) : Char Func IntToStringA( const A : Int64) : Ansistr Func IntToStringW( const A : Int64) : WideString Func IntToString( const A : Int64) :Str Func UIntToStringA( const A : NativeUInt) : Ansistr Func UIntToStringW( const A : NativeUInt) : WideString Func UIntToString( const A : NativeUInt) :Str Func LongWordToStrA( const A : LongWord; const Digits : Int) : Ansistr Func LongWordToStrW( const A : LongWord; const Digits : Int) : WideString Func LongWordToStrU( const A : LongWord; const Digits : Int) : UnicodeString Func LongWordToStr( const A : LongWord; const Digits : Int) :Str Func LongWordToHexA(const A:LongWord;const Digits:Int;const UpperCase:Bool):Ansistr; Func LongWordToHexW(const A:LongWord;const Digits:Int;const UpperCase:Bool):WideString; Func LongWordToHex( const A : LongWord; const Digits : Int;const UpperCase:Boolean):str Func LongWordToOctA( const A : LongWord; const Digits : Int) : Ansistr Func LongWordToOctW( const A : LongWord; const Digits : Int) : WideString Func LongWordToOct( const A : LongWord; const Digits : Int) :Str Func LongWordToBinA( const A : LongWord; const Digits : Int) : Ansistr Func LongWordToBinW( const A : LongWord; const Digits : Int) : WideString Func LongWordToBin( const A : LongWord; const Digits : Int) :Str Func TryStringToInt64A( const S : Ansistr; out A : Int64) :Bool Func TryStringToInt64W( const S : WideString; out A : Int64) :Bool Func TryStringToInt64( const S :Str; out A : Int64) :Bool Func StringToInt64DefA( const S : Ansistr; const Default : Int64): Int64 Func StringToInt64DefW( const S : WideString; const Default : Int64): Int64 Func StringToInt64Def( const S :Str; const Default : Int64) : Int64 Func StringToInt64A( const S : Ansistr) : Int64 Func StringToInt64W( const S : WideString) : Int64 Func StringToInt64( const S :Str) : Int64 Func TryStringToIntA( const S : Ansistr; out A : Int) :Bool Func TryStringToIntW( const S : WideString; out A : Int) :Bool Func TryStringToInt( const S :Str; out A : Int) :Bool Func StringToIntDefA( const S : Ansistr; const Default : Int) : Int Func StringToIntDefW( const S : WideString; const Default : Int) : Int Func StringToIntDef( const S :Str; const Default : Int) : Int Func StringToIntA( const S : Ansistr) : Int Func StringToIntW( const S : WideString) : Int Func StringToInt( const S :Str) : Int Func TryStringToLongWordA( const S : Ansistr; out A : LongWord) :Bool Func TryStringToLongWordW( const S : WideString; out A : LongWord) :Bool Func TryStringToLongWord( const S :Str; out A : LongWord) :Bool Func StringToLongWordA( const S : Ansistr) : LongWord Func StringToLongWordW( const S : WideString) : LongWord Func StringToLongWord( const S :Str) : LongWord Func HexToUIntA( const S : Ansistr) : NativeUInt Func HexToUIntW( const S : WideString) : NativeUInt Func HexToUInt( const S :Str) : NativeUInt Func TryHexToLongWordA( const S : Ansistr; out A : LongWord) :Bool Func TryHexToLongWordW( const S : WideString; out A : LongWord) :Bool Func TryHexToLongWord( const S :Str; out A : LongWord) :Bool Func HexToLongWordA( const S : Ansistr) : LongWord Func HexToLongWordW( const S : WideString) : LongWord Func HexToLongWord( const S :Str) : LongWord Func TryOctToLongWordA( const S : Ansistr; out A : LongWord) :Bool Func TryOctToLongWordW( const S : WideString; out A : LongWord) :Bool Func TryOctToLongWord( const S :Str; out A : LongWord) :Bool Func OctToLongWordA( const S : Ansistr) : LongWord Func OctToLongWordW( const S : WideString) : LongWord Func OctToLongWord( const S :Str) : LongWord Func TryBinToLongWordA( const S : Ansistr; out A : LongWord) :Bool Func TryBinToLongWordW( const S : WideString; out A : LongWord) :Bool Func TryBinToLongWord( const S :Str; out A : LongWord) :Bool Func BinToLongWordA( const S : Ansistr) : LongWord Func BinToLongWordW( const S : WideString) : LongWord Func BinToLongWord( const S :Str) : LongWord Func FloatToStringA( const A : Extended) : Ansistr Func FloatToStringW( const A : Extended) : WideString Func FloatToString( const A : Extended) :Str Func FloatToStringA( const A : Extended) :Str Func TryStringToFloatA( const A : Ansistr; out B : Extended) :Bool Func TryStringToFloatW( const A : WideString; out B : Extended) :Bool Func TryStringToFloat( const A :Str; out B : Extended) :Bool Func StringToFloatA( const A : Ansistr) : Extended Func StringToFloatW( const A : WideString) : Extended Func StringToFloat( const A :Str) : Extended Func StringToFloatDefA( const A : Ansistr; const Default : Extended) : Extended Func StringToFloatDefW( const A : WideString; const Default : Extended) : Extended Func StringToFloatDef( const A :Str; const Default : Extended) : Extended Func EncodeBase64(const S,Alphabet:Ansistr;const Pad:Bool;const PadMultiple:Int;const PadChar:AnsiChar):Ansistr Func DecodeBase64( const S, Alphabet:Ansistr;const PadSet:CharSet):Ansistr unit uPSI_cFundamentUtils; Const('b64_MIMEBase64',Str).String('ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ Const('b64_UUEncode','String').String('!"#$%&''()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_'; Const('b64_XXEncode','String').String('+-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'; Const('CCHARSET','Stringb64_XXEncode); Const('CHEXSET','String'0123456789ABCDEF Const('HEXDIGITS','String'0123456789ABCDEF StHexDigits : array[0..$F] of Char = '0123456789ABCDEF'; Const('DIGISET','String'0123456789 Const('LETTERSET','String'ABCDEFGHIJKLMNOPQRSTUVWXYZ' Const('DIGISET2','TCharset').SetSet('0123456789' Const('LETTERSET2','TCharset').SetSet('ABCDEFGHIJKLMNOPQRSTUVWXYZ' Const('HEXSET2','TCharset').SetSET('0123456789ABCDEF; Const('NUMBERSET','TCharset').SetSet('0123456789; Const('NUMBERS','String'0123456789; Const('LETTERS','String'ABCDEFGHIJKLMNOPQRSTUVWXYZ; Const('NUMBLETTS','String').SetString('0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ; Const('NUMBLETTSET','TCharset').SetSet('0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ; Const('ALPHANUMSET','TCharset').SetSet('0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz); tantN('ALPHANUMSET','TCharset').SetSet('0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'); Const('ALPHANUMSTR','String').SetString('0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'); Func CharSetToStr( const C : CharSet) : Ansistr Func StrToCharSet( const S : Ansistr) : CharSet Func MIMEBase64Decode( const S : Ansistr) : Ansistr Func MIMEBase64Encode( const S : Ansistr) : Ansistr Func UUDecode( const S: Ansistr) : Ansistr Func XXDecode( const S Ansistr) : Ansistr Func BytesToHex( const P : array of Byte; const UpperCase :Bool) : Ansistr Func InterfaceToStrA( const I : IInterface) : Ansistr Func InterfaceToStrW( const I : IInterface) : WideString Func InterfaceToStr( const I : IInterface) :Str Func ObjectClassName( const O : TObject) :Str Func ClassClassName( const C : TClass) :Str Func ObjectToStr( const O : TObject) :Str Func ObjectToString( const O : TObject) :Str Func CharSetToStr( const C : CharSet) : Ansistr Func StrToCharSet( const S : Ansistr) : CharSet Func HashStrA(const S:Ansistr;const Index:Int;const Count:Int;const AsciiCaseSensitive:Bool;const Slots:LongWord) :LongWord Func HashStrW(const S:WideString;const Index:Int;const Count:Int;const AsciiCaseSensitive:Bool;const Slots:LongWord):LongWord Func HashStr(const S:str;const Index:Int;const Count:Int;const AsciiCaseSensitive:Bool;const Slots: LongWord):LongWord Func HashInt( const I : Int; const Slots : LongWord) : LongWord Func HashLongWord( const I : LongWord; const Slots : LongWord) : LongWord Const('Bytes1KB','LongInt'( 1024); SIRegister_IInterface(CL); Proc SelfTestCFundamentUtils Func CreateSchedule : IJclSchedule Func NullStamp : TTimeStamp Func CompareTimeStamps(const Stamp1, Stamp2 : TTimeStamp) : Int64 Func EqualTimeStamps(const Stamp1, Stamp2 : TTimeStamp) :Bool Func IsNullTimeStamp(const Stamp : TTimeStamp) :Bool Proc SIRegister_uwinplot(CL: TPSPascalCompiler); begin AddTypeS(TFunc', 'function(X : Float) : Float; Func InitGraphics( Width, Height : Int) :Bool Proc SetWindow( Canvas : TCanvas; X1, X2, Y1, Y2 : Int; GraphBorder :Bool) Proc SetOxScale( Scale : TScale; OxMin, OxMax, OxStep : Float) Proc SetOyScale( Scale : TScale; OyMin, OyMax, OyStep : Float) Proc GetOxScale( var Scale : TScale; var OxMin, OxMax, OxStep : Float) Proc GetOyScale( var Scale : TScale; var OyMin, OyMax, OyStep : Float) Proc SetGraphTitle( Title :Str) Proc SetOxTitle( Title :Str) Proc SetOyTitle( Title :Str) Func GetGraphTitle :Str Func GetOxTitle :Str Func GetOyTitle :Str Proc PlotOxAxis( Canvas : TCanvas) Proc PlotOyAxis( Canvas : TCanvas) Proc PlotGrid( Canvas : TCanvas; Grid : TGrid) Proc WriteGraphTitle( Canvas : TCanvas) Func SetMaxCurv( NCurv : Byte) :Bool Proc SetPointParam( CurvIndex, Symbol, Size : Int; Color : TColor) Proc SetLineParam(CurvIndex: Int; Style : TPenStyle; Width : Int; Color : TColor) Proc SetCurvLegend( CurvIndex : Int; Legend :Str) Proc SetCurvStep( CurvIndex, Step : Int) Func GetMaxCurv : Byte Proc GetPointParam( CurvIndex : Int; var Symbol, Size : Int; var Color : TColor) Proc GetLineParam(CurvIndex:Int;var Style:TPenStyle;var Width:Int;var Color:TColor); Func GetCurvLegend( CurvIndex : Int) :Str Func GetCurvStep( CurvIndex : Int) : Int Proc PlotPoint( Canvas : TCanvas; X, Y : Float; CurvIndex : Int) Proc PlotCurve( Canvas : TCanvas; X, Y : TVector; Lb, Ub, CurvIndex : Int) Proc PlotCurveWithErrorBars(Canvas : TCanvas; X,Y,S: TVector; Ns,Lb,Ub,CurvIndex:Int) Proc PlotFunc(Canvas: TCanvas; Func: TFunc; Xmin,Xmax: Float; Npt,CurvIndex: Int) Proc WriteLegend( Canvas : TCanvas; NCurv : Int; ShowPoints, ShowLines :Bool) Proc ConRec( Canvas : TCanvas; Nx, Ny, Nc : Int; X, Y, Z : TVector; F : TMatrix) Func Xpixel(X:Float) : Int Func Ypixel(Y:Float) : Int Func Xuser( X:Int) : Float Func Yuser( Y:Int) : Float end; Proc FFT( NumSamples : Int; InArray, OutArray : TCompVector) Proc IFFT( NumSamples : Int; InArray, OutArray : TCompVector) Proc FFT_Int( NumSamples : Int; RealIn, ImagIn : TIntVector; OutArray : TCompVector) Proc FFT_Int_Cleanup Proc CalcFrequency(NumSamples,FrequencyIndex: Int;InArray: TCompVector;var FT : Complex) //unit uPSI_JclStreams; Func StreamSeek(Stream: TStream; const Offset: Int64; const Origin : TSeekOrigin) : Int64 Func StreamCopy( Source : TStream; Dest : TStream; BufferSize : Int) : Int64 Func CompareStreams( A, B : TStream; BufferSize : Int) :Bool Func JCompareFiles( const FileA, FileB : TFileName; BufferSize : Int) :Bool Proc SIRegister_FmxUtils(CL: TPSPascalCompiler); begin FindClass('TOBJECT'),'EInvalidDest FindClass('TOBJECT'),'EFCantMove Proc fmxCopyFile( const FileName, DestName :Str) Proc fmxMoveFile( const FileName, DestName :Str) Func fmxGetFileSize( const FileName :Str) : LongInt Func fmxFileDateTime( const FileName :Str) : TDateTime Func fmxHasAttr( const FileName :Str; Attr : Word) :Bool Func fmxExecuteFile( const FileName, Params, DefaultDir:Str; ShowCmd : Int):THandle; end; Proc SIRegister_FindFileIter(CL: TPSPascalCompiler); begin SIRegister_IFindFileIterator(CL); Func CreateFindFile(const Path:str; IncludeAttr:Int;out iffi:IFindFileIterator):Bool; end; Proc SIRegister_PCharUtils(CL: TPSPascalCompiler); begin Func SkipWhite( cp : PChar) : PChar Func ReadStringDoubleQuotedMaybe( cp : PChar; var AStr :Str) : PChar Func ReadStringSingleQuotedMaybe( cp : PChar; var AStr :Str) : PChar Func ReadIdent( cp : PChar; var ident :Str) : PChar end; Proc SIRegister_JclStrHashMap(CL: TPSPascalCompiler); begin SIRegister_TStringHashMapTraits(CL); Func CaseSensitiveTraits : TStringHashMapTraits Func CaseInsensitiveTraits : TStringHashMapTraits THashNode','record Str:str;Ptr:Pointer; Left:PHashNode;Right:PHashNode;end //PHashArray', '^THashArray // will not work SIRegister_TStringHashMap(CL); THashValue', 'Cardinal Func StrHash( const s :Str) : THashValue Func TextHash( const s :Str) : THashValue Func DataHash( var AValue, ASize :Card) : THashValue Func Iterate_FreeObjects(AUserData:Pointer;const AStr:str; var AData:Pointer):Boolean Func Iterate_Dispose(AUserData: Pointer;const AStr:str; var AData: Pointer):Bool Func Iterate_FreeMem(AUserData: Pointer;const AStr:str; var AData Pointer):Bool SIRegister_TCaseSensitiveTraits(CL); SIRegister_TCaseInsensitiveTraits(CL); //**********************************************************unit uPSI_umath; Func uExpo( X : Float) : Float Func uExp2( X : Float) : Float Func uExp10( X : Float) : Float Func uLog( X : Float) : Float Func uLog2( X : Float) : Float Func uLog10( X : Float) : Float Func uLogA( X, A : Float) : Float Func uIntPower( X : Float; N : Int): Float Func uPower( X, Y : Float) : Float Func SgnGamma( X : Float) : Int Func Stirling( X : Float) : Float Func StirLog( X : Float) : Float Func Gamma( X : Float) : Float Func LnGamma( X : Float) : Float Func DiGamma( X : Float) : Float Func TriGamma( X : Float) : Float Func IGamma( X : Float) : Float Func JGamma( X : Float) : Float Func InvGamma( X : Float) : Float Func Erf( X : Float) : Float Func Erfc( X : Float) : Float Func Correl(X, Y : TVector; Lb, Ub : Int) : Float; { Correlation coefficient between samples X and Y } Func DBeta(A, B, X : Float) : Float; { Density of Beta distribution with parameters A and B } Func LambertW( X : Float; UBranch, Offset :Bool) : Float Func Beta(X, Y : Float) : Float Func Binomial( N, K : Int) : Float Func PBinom( N : Int; P : Float; K : Int) : Float Proc Cholesky( A, L : TMatrix; Lb, Ub : Int) Proc LU_Decomp( A : TMatrix; Lb, Ub : Int) Proc LU_Solve( A : TMatrix; B : TVector; Lb, Ub : Int; X : TVector) Func DNorm( X : Float) : Float Func DGamma(A, B, X : Float) : Float; { Density of Gamma distribution with parameters A and B } Func DKhi2(Nu : Int; X : Float) : Float; { Density of Khi-2 distribution with Nu d.o.f. } Func DStudent(Nu : Int; X : Float) : Float; { Density of Student distribution with Nu d.o.f. } Func DSnedecor(Nu1, Nu2 : Int; X : Float) : Float; { Density of Fisher-Snedecor distribution with Nu1 and Nu2 d.o.f. } Func IBeta(A, B, X : Float) : Float; { Incomplete Beta function} Func Correl(X, Y : TVector; Lb, Ub : Int) : Float; Proc SIRegister_unlfit(CL: TPSPascalCompiler); begin Proc SetOptAlgo( Algo : TOptAlgo) Proc SetOptAlgo(Algo : TOptAlgo); { ------------------------------------------------------------------ Sets the optimization algorithm according to Algo, which must be NL_MARQ, NL_SIMP, NL_BFGS, NL_SA, NL_GA. Default is NL_MARQ } Func GetOptAlgo : TOptAlgo Proc SetMaxParam( N : Byte) Func GetMaxParam : Byte Proc SetParamBounds( I : Byte; ParamMin, ParamMax : Float) Proc GetParamBounds( I : Byte; var ParamMin, ParamMax : Float) Func NullParam( B : TVector; Lb, Ub : Int) :Bool Proc NLFit(RegFunc:TRegFunc;DerivProc:TDerivProc;X,Y:TVector;Lb Ub:Int;MaxIter:Int;Tol:Float;B:TVector;FirstPar,LastPar:Int;V:TMatrix) Proc WNLFit(RegFunc:TRegFunc;DerivProc:TDerivProc;X,Y,S:TVector;Lb,Ub:Int;MaxIter:Int;Tol :Float;B:TVector;FirstPar,LastPar:Int;V:TMatrix) Proc SetMCFile( FileName :Str) Proc SimFit(RegFunc:TRegFunc;X,Y:TVector;Lb,Ub:Int;B:TVector;FirstPar,LastPar:Int;V:TMatrix; Proc WSimFit(RegFunc:TRegFunc;X,Y,S:TVector;Lb,Ub:Int;B:TVector;FirstPar,LastPar:Int;V:TMatrix); end; (*----------------------------------------------------------------------------*) Proc SIRegister_usimplex(CL: TPSPascalCompiler); begin Proc SaveSimplex( FileName :Str) Proc Simplex(Func:TFuncNVar;X:TVector;Lb,Ub:Int; MaxIter:Int;Tol:Float;var F_min:Float); end; (*----------------------------------------------------------------------------*) Proc SIRegister_uregtest(CL: TPSPascalCompiler); begin Proc RegTest(Y,Ycalc:TVector;LbY,UbY:Int;V:TMatrix;LbV,UbV:Int;var Test:TRegTest) Proc WRegTest(Y,Ycalc,S:TVector;LbY,UbY:Int;V:TMatrix;LbV,UbV:Int;var Test:TRegTest); end; Proc SIRegister_ustrings(CL: TPSPascalCompiler); begin Func LTrim( S:Str) :Str Func RTrim( S:Str) :Str Func uTrim( S:Str) :Str Func StrChar(N : Byte; C : Char) :Str Func RFill( S:Str; L : Byte) :Str Func LFill( S:Str; L : Byte) :Str Func CFill( S:Str; L : Byte) :Str Func Replace(S :Str; C1, C2 : Char) :Str Func Extract(S :Str; var Index : Byte; Delim : Char) :Str Proc Parse( S :Str; Delim : Char; Field : TStrVector; var N : Byte) Proc SetFormat( NumLength, MaxDec : Int; FloatPoint, NSZero :Bool) Func FloatStr( X : Float) :Str Func IntStr( N : LongInt) :Str Func uCompStr( Z : Complex) :Str end; Proc SIRegister_uhyper(CL: TPSPascalCompiler); begin Func uSinh( X : Float) : Float Func uCosh( X : Float) : Float Func uTanh( X : Float) : Float Func uArcSinh( X : Float) : Float Func uArcCosh( X : Float) : Float Func ArcTanh( X : Float) : Float Proc SinhCosh( X : Float; var SinhX, CoshX : Float) end; Proc SIRegister_urandom(CL: TPSPascalCompiler); begin type RNG_Type = (RNG_MWC, { Multiply-With-Carry } RNG_MT, { Mersenne Twister } RNG_UVAG); { Universal Virtual Array Generator } Proc SetRNG( RNG : RNG_Type) Proc InitGen( Seed : RNG_IntType) Proc SRand( Seed : RNG_IntType) Func IRanGen : RNG_IntType Func IRanGen31 : RNG_IntType Func RanGen1 : Float Func RanGen2 : Float Func RanGen3 : Float Func RanGen53 : Float end; // Optimization by Simulated Annealing Proc SIRegister_usimann(CL: TPSPascalCompiler); begin Proc InitSAParams( NT, NS, NCycles : Int; RT : Float) Proc SA_CreateLogFile( FileName :Str) Proc SimAnn(Func: TFuncNVar; X,Xmin,Xmax: TVector; Lb, Ub : Int; var F_min : Float); end; Proc SIRegister_uranuvag(CL: TPSPascalCompiler); begin Proc InitUVAGbyString( KeyPhrase :Str) Proc InitUVAG( Seed : RNG_IntType) Func IRanUVAG : RNG_IntType end; Proc SIRegister_ugenalg(CL: TPSPascalCompiler); begin Proc InitGAParams( NP, NG : Int; SR, MR, HR : Float) Proc GA_CreateLogFile( LogFileName :Str) Proc GenAlg(Func: TFuncNVar; X,Xmin,Xmax : TVector; Lb, Ub : Int; var F_min : Float); end; TVector', 'array of Float Proc SIRegister_uqsort(CL: TPSPascalCompiler); begin Proc QSort( X : TVector; Lb, Ub : Int) Proc DQSort( X : TVector; Lb, Ub : Int) end; Proc SIRegister_uinterv(CL: TPSPascalCompiler); begin Proc Interval( X1, X2 : Float; MinDiv, MaxDiv : Int; var Min, Max, Step : Float) Proc AutoScale(X: TVector; Lb, Ub : Int; Scale : TScale; var XMin, XMax, XStep:Float) end; Proc SIRegister_D2XXUnit(CL: TPSPascalCompiler); begin FT_Result', 'Int //TDWordptr', '^DWord // will not work TFT_Program_Data', 'record Signature1 : DWord; Signature2 : DWor' d; Version : DWord; VendorID : Word; ProductID : Word; Manufacturer : PCha' r; ManufacturerID : PChar; Description : PChar; SerialNumber : PChar; MaxP' ower : Word; PnP : Word; SelfPowered : Word; RemoteWakeup : Word; Rev4 : B' yte; IsoIn : Byte; IsoOut : Byte; PullDownEnable : Byte; SerNumEnable : By' te; USBVersionEnable : Byte; USBVersion : Word; Rev5 : Byte; IsoInA : Byte' ; IsoInB : Byte; IsoOutA : Byte; IsoOutB : Byte; PullDownEnable5 : Byte; S' erNumEnable5 : Byte; USBVersionEnable5 : Byte; USBVersion5 : Word; AIsHigh' Current : Byte; BIsHighCurrent : Byte; IFAIsFifo : Byte; IFAIsFifoTar : By' te; IFAIsFastSer : Byte; AIsVCP : Byte; IFBIsFifo : Byte; IFBIsFifoTar : B' yte; IFBIsFastSer : Byte; BIsVCP : Byte; UseExtOsc : Byte; HighDriveIOs : ' Byte; EndpointSize : Byte; PullDownEnableR : Byte; SerNumEnableR : Byte; I' nvertTXD : Byte; InvertRXD : Byte; InvertRTS : Byte; InvertCTS : Byte; Inv' ertDTR : Byte; InvertDSR : Byte; InvertDCD : Byte; InvertRI : Byte; Cbus0 ' : Byte; Cbus1 : Byte; Cbus2 : Byte; Cbus3 : Byte; Cbus4 : Byte; RIsVCP : B' yte; end end; //*************************************** PaintFX**************************** Proc SIRegister_TJvPaintFX(CL: TPSPascalCompiler); begin //with RegClassS(CL,'TComponent', 'TJvPaintFX') do with AddClassN(FindClass('TComponent'),'TJvPaintFX') do begin Proc Solarize( const Src : TBitmap; var Dst : TBitmap; Amount : Int) Proc Posterize( const Src : TBitmap; var Dst : TBitmap; Amount : Int) Proc Blend( const Src1, Src2 : TBitmap; var Dst : TBitmap; Amount : Single) Proc Blend2( const Src1, Src2 : TBitmap; var Dst : TBitmap; Amount: Single) Proc ExtractColor( const Dst : TBitmap; AColor : TColor) Proc ExcludeColor( const Dst : TBitmap; AColor : TColor) Proc Turn( Src, Dst : TBitmap) Proc TurnRight( Src, Dst : TBitmap) Proc HeightMap( const Dst : TBitmap; Amount : Int) Proc TexturizeTile( const Dst : TBitmap; Amount : Int) Proc TexturizeOverlap( const Dst : TBitmap; Amount : Int) Proc RippleRandom( const Dst : TBitmap; Amount : Int) Proc RippleTooth( const Dst : TBitmap; Amount : Int) Proc RippleTriangle( const Dst : TBitmap; Amount : Int) Proc Triangles( const Dst : TBitmap; Amount : Int) Proc DrawMandelJulia(const Dst:TBitmap;x0,y0,x1,y1:Single;Niter:Int;Mandel:Bool) Proc FilterXBlue( const Dst : TBitmap; Min, Max : Int) Proc FilterXGreen( const Dst : TBitmap; Min, Max : Int) Proc FilterXRed( const Dst : TBitmap; Min, Max : Int) Proc FilterBlue( const Dst : TBitmap; Min, Max : Int) Proc FilterGreen( const Dst : TBitmap; Min, Max : Int) Proc FilterRed( const Dst : TBitmap; Min, Max : Int) Proc Emboss( var Bmp : TBitmap) Proc Plasma( Src1, Src2, Dst : TBitmap; Scale, Turbulence : Single) Proc Shake( Src, Dst : TBitmap; Factor : Single) Proc ShakeDown( Src, Dst : TBitmap; Factor : Single) Proc KeepBlue( const Dst : TBitmap; Factor : Single) Proc KeepGreen( const Dst : TBitmap; Factor : Single) Proc KeepRed( const Dst : TBitmap; Factor : Single) Proc Mandelbrot( const Dst : TBitmap; Factor : Int) Proc MaskMandelbrot( const Dst : TBitmap; Factor : Int) Proc FoldRight( Src1, Src2, Dst : TBitmap; Amount : Single) Proc QuartoOpaque( Src, Dst : TBitmap) Proc SemiOpaque( Src, Dst : TBitmap) Proc ShadowDownLeft( const Dst : TBitmap) Proc ShadowDownRight( const Dst : TBitmap) Proc ShadowUpLeft( const Dst : TBitmap) Proc ShadowUpRight( const Dst : TBitmap) Proc Darkness( const Dst : TBitmap; Amount : Int) Proc Trace( const Dst : TBitmap; Intensity : Int) Proc FlipRight( const Dst : TBitmap) Proc FlipDown( const Dst : TBitmap) Proc SpotLight( const Dst : TBitmap; Amount : Int; Spot : TRect) Proc SplitLight( const Dst : TBitmap; Amount : Int) Proc MakeSeamlessClip( var Dst : TBitmap; Seam : Int) Proc Wave( const Dst : TBitmap; Amount, Inference, Style : Int) Proc Mosaic( const Bm : TBitmap; Size : Int) Proc SmoothRotate( var Src, Dst : TBitmap; CX, CY : Int; Angle : Single) Proc SmoothResize( var Src, Dst : TBitmap) Proc Twist( var Bmp, Dst : TBitmap; Amount : Int) Proc SplitBlur( const Dst : TBitmap; Amount : Int) Proc GaussianBlur( const Dst : TBitmap; Amount : Int) Proc Smooth( const Dst : TBitmap; Weight : Int) Proc GrayScale( const Dst : TBitmap) Proc AddColorNoise( const Dst : TBitmap; Amount : Int) Proc AddMonoNoise( const Dst : TBitmap; Amount : Int) Proc Contrast( const Dst : TBitmap; Amount : Int) Proc Lightness( const Dst : TBitmap; Amount : Int) Proc Saturation( const Dst : TBitmap; Amount : Int) Proc Spray( const Dst : TBitmap; Amount : Int) Proc AntiAlias( const Dst : TBitmap) Proc AntiAliasRect( const Dst : TBitmap; XOrigin, YOrigin, XFinal, YFinal : Int) Proc SmoothPoint( const Dst : TBitmap; XK, YK : Int) Proc FishEye( var Bmp, Dst : TBitmap; Amount : Single) Proc Marble(const Src:TBitmap; var Dst:TBitmap;Scale:Single;Turbulence:Int) Proc Marble2(const Src:TBitmap;var Dst:TBitmap;Scale:Single;Turbulence:Int) Proc Marble3(const Src:TBitmap;var Dst:TBitmap;Scale:Single;Turbulence:Int) Proc Marble4(const Src:TBitmap;var Dst:TBitmap;Scale:Single;Turbulence:Int) Proc Marble5(const Src:TBitmap;var Dst:TBitmap;Scale:Single;Turbulence:Int) Proc Marble6(const Src:TBitmap;var Dst:TBitmap;Scale:Single;Turbulence:Int) Proc Marble7(const Src:TBitmap;var Dst:TBitmap;Scale:Single;Turbulence:Int) Proc Marble8(const Src:TBitmap;var Dst:TBitmap;Scale:Single;Turbulence:Int) Proc SqueezeHor( Src, Dst : TBitmap; Amount : Int; Style : TLightBrush) Proc SplitRound( Src, Dst : TBitmap; Amount : Int; Style : TLightBrush) Proc Tile( Src, Dst : TBitmap; Amount : Int) Proc Stretch( Src, Dst : TBitmap; Filter : TFilterProc; AWidth : Single) Proc Grow( Src1, Src2, Dst : TBitmap; Amount : Single; X, Y : Int) Proc Invert( Src : TBitmap) Proc MirrorRight( Src : TBitmap) Proc MirrorDown( Src : TBitmap) end; end; (*----------------------------------------------------------------------------*) Proc SIRegister_JvPaintFX(CL: TPSPascalCompiler); begin AddTypeS('TLightBrush','( lbBrightness, lbContrast, lbSaturation, lbFishe' +'ye, lbrotate, lbtwist, lbrimple, mbHor, mbTop, mbBottom, mbDiamond, mbWast' +'e, mbRound, mbRound2, mbSplitRound, mbSplitWaste ) SIRegister_TJvPaintFX(CL); Func SplineFilter( Value : Single) : Single Func BellFilter( Value : Single) : Single Func TriangleFilter( Value : Single) : Single Func BoxFilter( Value : Single) : Single Func HermiteFilter( Value : Single) : Single Func Lanczos3Filter( Value : Single) : Single Func MitchellFilter( Value : Single) : Single end; (*----------------------------------------------------------------------------*) Proc SIRegister_Chart(CL: TPSPascalCompiler); begin 'TeeMsg_DefaultFunctionName','String 'TeeFunction TeeMsg_DefaultSeriesName','String 'Series TeeMsg_DefaultToolName','String 'ChartTool ChartComponentPalette','String 'TeeChart TeeMaxLegendColumns',LongInt'( 2); TeeDefaultLegendSymbolWidth','LongInt'( 20); TeeTitleFootDistance,LongInt( 5); SIRegister_TCustomChartWall(CL); SIRegister_TChartWall(CL); SIRegister_TChartLegendGradient(CL); TLegendStyle', '( lsAuto, lsSeries, lsValues, lsLastValues, lsSeriesGroups ) TLegendAlignment', '( laLeft, laRight, laTop, laBottom ) FindClass('TOBJECT'),'LegendException TOnGetLegendText', 'Proc ( Sender : TCustomAxisPanel; Legen' +'dStyle : TLegendStyle; Index : Int; var LegendText :Str) FindClass('TOBJECT'),'TCustomChartLegend TLegendSymbolSize', '( lcsPercent, lcsPixels ) TLegendSymbolPosition', '( spLeft, spRight ) TSymbolDrawEvent','Procedure(Sender:TObject;Series:TChartSeries;ValueIndex:Int;R:TRect); TSymbolCalcHeight', 'Func : Int SIRegister_TLegendSymbol(CL); SIRegister_TTeeCustomShapePosition(CL); TCheckBoxesStyle', '( cbsCheck, cbsRadio ) SIRegister_TLegendTitle(CL); SIRegister_TLegendItem(CL); SIRegister_TLegendItems(CL); TLegendCalcSize', 'Proc ( Sender : TCustomChartLegend; var ASize : Int) FindClass('TOBJECT'),'TCustomChart SIRegister_TCustomChartLegend(CL); SIRegister_TChartLegend(CL); SIRegister_TChartTitle(CL); SIRegister_TChartFootTitle(CL); TChartClick', 'Procedure(ender:TCustomChart;Button:TMouseButton;Shift:TShiftState;X,Y:Int) TChartClickAxis', 'Proc ( Sender : TCustomChart; Axis : TCh' +'artAxis; Button : TMouseButton; Shift : TShiftState; X, Y : Int) TChartClickSeries', 'Proc ( Sender : TCustomChart; Series :' +TChartSeries; ValueIndex : Int; Button: TMouseButton; Shift:TShiftState;X,Y:Int) TChartClickTitle', 'Proc ( Sender : TCustomChart; ATitle : ' +'TChartTitle; Button : TMouseButton; Shift : TShiftState; X, Y : Int) TOnGetLegendPos', 'Proc (Sender: TCustomChart; Index: Int; var X,Y,XColor:Int) TOnGetLegendRect', 'Proc ( Sender : TCustomChart; var Rect : TRect) TAxisSavedScales', 'record Auto:Boolean;AutoMin:Bool;AutoMax:Bool;Min:Double;Max:Double;end TAllAxisSavedScales', 'array of TAxisSavedScales SIRegister_TChartBackWall(CL); SIRegister_TChartRightWall(CL); SIRegister_TChartBottomWall(CL); SIRegister_TChartLeftWall(CL); SIRegister_TChartWalls(CL); TChartAllowScrollEvent,Procedure(Sender:TChartAxis;var AMin,AMax:Double;var AllowScroll:Bool); SIRegister_TCustomChart(CL); SIRegister_TChart(CL); SIRegister_TTeeSeriesTypes(CL); SIRegister_TTeeToolTypes(CL); SIRegister_TTeeDragObject(CL); SIRegister_TColorPalettes(CL); Proc RegisterTeeSeries(ASeriesClass:TChartSeriesClass;ADescription,AGalleryPage:PString;ANumGallerySeries:Int; Proc RegisterTeeSeries1( ASeriesClass : TChartSeriesClass; ADescription : PString); Proc RegisterTeeFunction(AFunctClass:TTeeFunctionClass;ADescription,AGalleryPage:PString;ANumGallerySeries:Int; Proc RegisterTeeBasicFunction(AFunctionClass: TTeeFunctionClass; ADescription : PString) Proc RegisterTeeSeriesFunction(ASeriesClass: TChartSeriesClass;AFunctionClass:TTeeFunctionClass;ADescription, AGalleryPage:PString;ANumGallerySeries:Int;ASubIndex: Int) Proc UnRegisterTeeSeries( const ASeriesList : array of TChartSeriesClass) Proc UnRegisterTeeFunctions( const AFunctionList : array of TTeeFunctionClass) Proc AssignSeries( var OldSeries, NewSeries : TChartSeries) Func CreateNewTeeFunction(ASeries:TChartSeries;AClass:TTeeFunctionClass): TTeeFunction Func CreateNewSeries(AOwner:TComponent;AChar:TCustomAxisPanel;AClass:TChartSeriesClass;AFunctionClass : TTeeFunctionClass):TChartSeries Func CloneChartSeries( ASeries : TChartSeries) : TChartSeries; Func CloneChartSeries1(ASeries: TChartSeries; AChart: TCustomAxisPanel): TChartSeries; Func CloneChartSeries2(ASeries:TChartSeries;AOwner:TComponent;AChart:TCustomAxisPanel):TChartSeries;; Func CloneChartTool( ATool : TTeeCustomTool; AOwner : TComponent) : TTeeCustomTool Func ChangeSeriesType(var ASeries:TChartSeries;NewType:TChartSeriesClass) : TChartSeries Proc ChangeAllSeriesType( AChart : TCustomChart; AClass : TChartSeriesClass) Func GetNewSeriesName( AOwner : TComponent) : TComponentName Proc RegisterTeeTools( const ATools : array of TTeeCustomToolClass) Proc UnRegisterTeeTools( const ATools : array of TTeeCustomToolClass) Func GetGallerySeriesName( ASeries : TChartSeries) :Str Proc PaintSeriesLegend(ASeries:TChartSeries;ACanvas:TCanvas;const R:TRect;ReferenceChart:TCustomChart); SIRegister_TChartTheme(CL); //TChartThemeClass', 'class of TChartTheme //TCanvasClass', 'class of TCanvas3D Func SeriesNameOrIndex( ASeries : TCustomChartSeries) :Str Func SeriesTitleOrName( ASeries : TCustomChartSeries) :Str Proc FillSeriesItems( AItems : TStrings; AList : TCustomSeriesList; UseTitles :Bool) Proc ShowMessageUser( const S :Str) Func HasNoMandatoryValues( ASeries : TChartSeries) :Bool Func HasLabels( ASeries : TChartSeries):Bool Func HasColors( ASeries : TChartSeries):Bool Func SeriesGuessContents( ASeries : TChartSeries) : TeeFormatFlag Proc TeeDrawBitmapEditor(Canvas: TCanvas;Element: TCustomChartElement;Left,Top:Int) end; Proc SIRegister_TeeProcs(CL: TPSPascalCompiler); begin //'TeeFormBorderStyle',' bsNone); SIRegister_TMetafile(CL); 'TeeDefVerticalMargin','LongInt'( 4); 'TeeDefHorizMargin','LongInt'( 3); 'crTeeHand','LongInt'( TCursor ( 2020 )); 'TeeMsg_TeeHand','String 'crTeeHand 'TeeNormalPrintDetail','LongInt'( 0); 'TeeHighPrintDetail','LongInt'( - 100); 'TeeDefault_PrintMargin','LongInt'( 15); 'MaxDefaultColors','LongInt'( 19); 'TeeTabDelimiter',Char #9); TDateTimeStep', '( dtOneMicroSecond, dtOneMillisecond, dtOneSeco' +'nd, dtFiveSeconds, dtTenSeconds, dtFifteenSeconds, dtThirtySeconds, dtOneM' +'inute, dtFiveMinutes, dtTenMinutes, dtFifteenMinutes, dtThirtyMinutes, dtO' +'neHour, dtTwoHours, dtSixHours, dtTwelveHours, dtOneDay, dtTwoDays, dtThre' +'eDays, dtOneWeek, dtHalfMonth, dtOneMonth, dtTwoMonths, dtThreeMonths, dtF' +'ourMonths, dtSixMonths, dtOneYear, dtNone ) SIRegister_TCustomPanelNoCaption(CL); FindClass('TOBJECT'),'TCustomTeePanel SIRegister_TZoomPanning(CL); SIRegister_TTeeEvent(CL); //SIRegister_TTeeEventListeners(CL); TTeeMouseEventKind', '( meDown, meUp, meMove ) SIRegister_TTeeMouseEvent(CL); SIRegister_TCustomTeePanel(CL); //TChartGradient', 'TTeeGradient //TChartGradientClass', 'class of TChartGradient TPanningMode', '( pmNone, pmHorizontal, pmVertical, pmBoth ) SIRegister_TTeeZoomPen(CL); SIRegister_TTeeZoomBrush(CL); TTeeZoomDirection', '( tzdHorizontal, tzdVertical, tzdBoth ) SIRegister_TTeeZoom(CL); FindClass('TOBJECT'),'TCustomTeePanelExtended TTeeBackImageMode', '( pbmStretch, pbmTile, pbmCenter, pbmCustom ) SIRegister_TBackImage(CL); SIRegister_TCustomTeePanelExtended(CL); //TChartBrushClass', 'class of TChartBrush SIRegister_TTeeCustomShapeBrushPen(CL); TChartObjectShapeStyle', '( fosRectangle, fosRoundRectangle, fosEllipse ) TTextFormat', '( ttfNormal, ttfHtml ) SIRegister_TTeeCustomShape(CL); SIRegister_TTeeShape(CL); SIRegister_TTeeExportData(CL); Func TeeStr( const Num : Int) :Str Func DateTimeDefaultFormat( const AStep : Double) :Str Func TEEDaysInMonth( Year, Month : Word) : Word Func FindDateTimeStep( const StepValue : Double) : TDateTimeStep Func NextDateTimeStep( const AStep : Double) : Double Func PointInLine( const P : TPoint; const px, py, qx, qy : Int):Bool; Func PointInLine1( const P, FromPoint, ToPoint : TPoint) :Bool; Func PointInLine2(const P,FromPoint,ToPoint:TPoint;const TolerancePixels:Int):Boo; Func PointInLine3( const P : TPoint; const px, py, qx, qy, TolerancePixels:Int):Bool; Func PointInLineTolerance(const P:TPoint;const px,py,qx,qy,TolerancePixels:Int):Bool; Func PointInPolygon( const P : TPoint; const Poly : array of TPoint) :Bool Func PointInTriangle( const P, P0, P1, P2 : TPoint) :Bool; Func PointInTriangle1( const P : TPoint; X0, X1, Y0, Y1 : Int) :Bool; Func PointInHorizTriangle( const P : TPoint; Y0, Y1, X0, X1 : Int) :Bool Func PointInEllipse( const P : TPoint; const Rect : TRect) :Bool; Func PointInEllipse1( const P: TPoint;Left,Top,Right, Bottom : Int) :Bool; Func DelphiToLocalFormat( const Format :Str) :Str Func LocalToDelphiFormat( const Format :Str) :Str Proc TEEEnableControls(Enable:Bool; const ControlArray : array of TControl) Func TeeRoundDate(const ADate : TDateTime; AStep : TDateTimeStep) : TDateTime Proc TeeDateTimeIncrement(IsDateTime:Bool;Increment:Bool;var Value:Double;const AnIncrement:Double; tmpWhichDateTime:TDateTimeStep) TTeeSortCompare', 'Func ( a, b : Int) : Int TTeeSortSwap', 'Proc ( a, b : Int) Proc TeeSort(StartIndex,EndIndex:Int;CompareFunc:TTeeSortCompare;SwapFunc:TTeeSortSwap); Func TeeGetUniqueName( AOwner : TComponent; const AStartName :Str) :Str Func TeeExtractField( St :Str; Index : Int) :Str; Func TeeExtractField1( St :Str; Index : Int; const Separator :Str) :Str; Func TeeNumFields( St :Str) : Int; Func TeeNumFields1( const St, Separator :Str) : Int; Proc TeeGetBitmapEditor( AObject : TObject; var Bitmap : TBitmap) Proc TeeLoadBitmap( Bitmap : TBitmap; const Name1, Name2 :Str) // TColorArray', 'array of TColor Func GetDefaultColor( const Index : Int) : TColor Proc SetDefaultColorPalette; Proc SetDefaultColorPalette1( const Palette : array of TColor); 'TeeCheckBoxSize','LongInt'( 11); Proc TeeDrawCheckBox(x,y:Int;Canvas:TCanvas;Checked:Bool;ABackColor:TColor;CheckBox:Bool); Func TEEStrToFloatDef( const S :Str; const Default : Extended) : Extended Func TryStrToFloat( const S :Str; var Value : Double) :Bool Func CrossingLines(const X1,Y1,X2,Y2,X3,Y3,X4,Y4: Double; out x, y : Double) :Bool Proc TeeTranslateControl( AControl : TControl); Proc TeeTranslateControl1(AControl: TControl;const ExcludeChilds: array of TControl); Func ReplaceChar(const AString:str;const Search: Char; const Replace : Char) :Str //Proc RectToFourPoints( const ARect : TRect; const Angle : Double; var P : TFourPoints) Func TeeAntiAlias( Panel : TCustomTeePanel; ChartRect :Bool) : TBitmap //Proc DrawBevel(Canvas:TTeeCanvas;Bevel:TPanelBevel;var R:TRect;Width:Int;Round:Int); //Func ScreenRatio( ACanvas : TCanvas3D) : Double Func TeeReadBoolOption( const AKey :Str; DefaultValue :Bool) :Bool Proc TeeSaveBoolOption( const AKey :Str; Value :Bool) Func TeeReadIntOption( const AKey :Str; DefaultValue : Int) : Int Proc TeeSaveIntOption( const AKey :Str; Value : Int) Func TeeReadStringOption( const AKey, DefaultValue :Str) :Str Proc TeeSaveStringOption( const AKey, Value :Str) Func TeeDefaultXMLEncoding :Str Proc ConvertTextToXML(Stream: TStream; XMLHeader :Bool) TeeWindowHandle', 'Int Proc TeeGotoURL( Handle : TeeWindowHandle; const URL :Str) Proc HtmlTextOut( ACanvas : TCanvas; x, y : Int; Text :Str) Func HtmlTextExtent( ACanvas : TCanvas; const Text :Str) : TSize end; fix and add teEngine: 4.7.6.20 TChartAxisTitle=class {$IFDEF CLR}sealed{$ENDIF} (TTeeCustomShape) TChartSeriesList=class {$IFDEF CLR}sealed{$ENDIF} (TCustomSeriesList) TSeriesGroup=class {$IFDEF CLR}sealed{$ENDIF} (TCollectionItem) Destructor Destroy; override; TSeriesGroups=class {$IFDEF CLR}sealed{$ENDIF} (TOwnedCollection) TChartCustomAxes=class {$IFDEF CLR}sealed{$ENDIF} (TOwnedCollection) TChartChangePage=class {$IFDEF CLR}sealed{$ENDIF} (TTeeEvent); TSeriesMarksPositions=class {$IFDEF CLR}sealed{$ENDIF} (TList) TMarksItem=class {$IFDEF CLR}sealed{$ENDIF} (TTeeCustomShape) property Bevel; property BevelWidth; property Color default ChartMarkColor; property Font; property Gradient; property Picture; property Shadow; property ShapeStyle; property Text:TStrings read GetText write SetText; property Transparency; property Transparent; TMarksItems=class {$IFDEF CLR}sealed{$ENDIF} (TList) TSeriesMarksGradient=class {$IFDEF CLR}sealed{$ENDIF} (TChartGradient) property Direction default gdRightLeft; property EndColor default clWhite; property StartColor default clSilver; TSeriesMarksSymbol=class {$IFDEF CLR}sealed{$ENDIF} (TTeeCustomShape) TChartValueLists=class {$IFDEF CLR}sealed{$ENDIF} (TList) Procedure Clear; override; TEEProcs TTeeMouseEvent=class {$IFDEF CLR}sealed{$ENDIF} (TTeeEvent) with CL.AddClassN(CL.FindClass('TOBJECT'),'TTeeMouseEvent') do begin CNN CreateAscentImages - unit neuraldatasetsv; using mXBDEUtils ******************************************************************************* Proc SetAlias( aAlias, aDirectory :str) Proc CheckRegistryEntry(Reg:TRegistry;const Path,Value:Str;const Default,Desired:Variant;Size:Byte); Func GetFileVersionNumber( const FileName :Str) : TVersionNo Proc SetBDE( aPath, aNode, aValue :Str) Func RestartDialog(Wnd: HWnd; Reason: PChar; Flags: Int): Int; stdcall; Func GetSystemDirectory( lpBuffer :Str; uSize : UINT) : UINT Func GetSystemDirectoryW( lpBuffer : pchar; uSize : UINT) : UINT Func GetTempPath( nBufferLength : DWORD; lpBuffer :Str) : DWORD Func GetWindowsDirectoryW( nBufferLength : DWORD; lpBuffer :Str) : DWORD Func GetTempFileName(lpPathName,lpPrefixString:str;uUnique:UINT;lpTempFileName:str):UINT; Proc SIRegister_cDateTime(CL: TPSPascalCompiler); begin AddClassN(FindClass('TOBJECT'),'EDateTime Func DatePart( const D : TDateTime) : Int Func TimePart( const D : TDateTime) : Double Func Century( const D : TDateTime) : Word Func Year( const D : TDateTime) : Word Func Month( const D : TDateTime) : Word Func Day( const D : TDateTime) : Word Func Hour( const D : TDateTime) : Word Func Minute( const D : TDateTime) : Word Func Second( const D : TDateTime) : Word Func Millisecond( const D : TDateTime) : Word ('OneDay','Extended').setExtended( 1.0); ('OneHour','Extended').SetExtended( OneDay / 24); ('OneMinute','Extended').SetExtended( OneHour / 60); ('OneSecond','Extended').SetExtended( OneMinute / 60); ('OneMillisecond','Extended').SetExtended( OneSecond/ 1000); ('OneWeek','Extended').SetExtended( OneDay * 7); ('HoursPerDay','Extended').SetExtended( 24); ('MinutesPerHour','Extended').SetExtended( 60); ('SecondsPerMinute','Extended').SetExtended( 60); Proc SetYear( var D : TDateTime; const Year : Word) Proc SetMonth( var D : TDateTime; const Month : Word) Proc SetDay( var D : TDateTime; const Day : Word) Proc SetHour( var D : TDateTime; const Hour : Word) Proc SetMinute( var D : TDateTime; const Minute : Word) Proc SetSecond( var D : TDateTime; const Second : Word) Proc SetMillisecond( var D : TDateTime; const Milliseconds : Word) Func IsEqual( const D1, D2 : TDateTime) :Bool; Func IsEqual1( const D1 : TDateTime; const Ye, Mo, Da : Word):Boolean; Func IsEqual2( const D1 : TDateTime; const Ho, Mi, Se, ms : Word):Boolean; Func IsAM( const D : TDateTime) :Bool Func IsPM( const D : TDateTime) :Bool Func IsMidnight( const D : TDateTime) :Bool Func IsNoon( const D : TDateTime) :Bool Func IsSunday( const D : TDateTime) :Bool Func IsMonday( const D : TDateTime) :Bool Func IsTuesday( const D : TDateTime) :Bool Func IsWedneday( const D : TDateTime) :Bool Func IsThursday( const D : TDateTime) :Bool Func IsFriday( const D : TDateTime) :Bool Func IsSaturday( const D : TDateTime) :Bool Func IsWeekend( const D : TDateTime) :Bool Func Noon( const D : TDateTime) : TDateTime Func Midnight( const D : TDateTime) : TDateTime Func FirstDayOfMonth( const D : TDateTime) : TDateTime Func LastDayOfMonth( const D : TDateTime) : TDateTime Func NextWorkday( const D : TDateTime) : TDateTime Func PreviousWorkday( const D : TDateTime) : TDateTime Func FirstDayOfYear( const D : TDateTime) : TDateTime Func LastDayOfYear( const D : TDateTime) : TDateTime Func EasterSunday( const Year : Word) : TDateTime Func GoodFriday( const Year : Word) : TDateTime Func AddMilliseconds( const D : TDateTime; const N : Int64) : TDateTime Func AddSeconds( const D : TDateTime; const N : Int64) : TDateTime Func AddMinutes( const D : TDateTime; const N : Int) : TDateTime Func AddHours( const D : TDateTime; const N : Int) : TDateTime Func AddDays( const D : TDateTime; const N : Int) : TDateTime Func AddWeeks( const D : TDateTime; const N : Int) : TDateTime Func AddMonths( const D : TDateTime; const N : Int) : TDateTime Func AddYears( const D : TDateTime; const N : Int) : TDateTime Func DayOfYear( const Ye, Mo, Da : Word) : Int Func DayOfYear( const D : TDateTime) : Int Func DaysInMonth( const Ye, Mo : Word) : Int Func DaysInMonth( const D : TDateTime) : Int Func DaysInYear( const Ye : Word) : Int Func DaysInYearDate( const D : TDateTime) : Int Func WeekNumber( const D : TDateTime) : Int Func ISOFirstWeekOfYear( const Ye : Word) : TDateTime Proc ISOWeekNumber( const D : TDateTime; var WeekNumber, WeekYear : Word) Func DiffMilliseconds( const D1, D2 : TDateTime) : Int64 Func DiffSeconds( const D1, D2 : TDateTime) : Int Func DiffMinutes( const D1, D2 : TDateTime) : Int Func DiffHours( const D1, D2 : TDateTime) : Int Func DiffDays( const D1, D2 : TDateTime) : Int Func DiffWeeks( const D1, D2 : TDateTime) : Int Func DiffMonths( const D1, D2 : TDateTime) : Int Func DiffYears( const D1, D2 : TDateTime) : Int Func GMTBias : Int Func GMTTimeToLocalTime( const D : TDateTime) : TDateTime Func LocalTimeToGMTTime( const D : TDateTime) : TDateTime Func NowAsGMTTime : TDateTime Func DateTimeToISO8601String( const D : TDateTime) : Ansistr Func ISO8601StringToTime( const D : Ansistr) : TDateTime Func ISO8601StringAsDateTime( const D : Ansistr) : TDateTime Func DateTimeToANSI( const D : TDateTime) : Int Func ANSIToDateTime( const Julian : Int) : TDateTime Func DateTimeToISOInt( const D : TDateTime) : Int Func DateTimeToISOString( const D : TDateTime) : Ansistr Func ISOIntToDateTime( const ISOInt : Int) : TDateTime Func TwoDigitRadix2000YearToYear( const Y : Int) : Int Func DateTimeAsElapsedTime(const D:TDateTime; const IncludeMilliseconds:Boolean):Ansistr Func UnixTimeToDateTime( const UnixTime : LongWord) : TDateTime Func DateTimeToUnixTime( const D : TDateTime) : LongWord Func EnglishShortDayOfWeekStrA( const DayOfWeek : Int) : Ansistr Func EnglishShortDayOfWeekStrU( const DayOfWeek : Int) : UnicodeString Func EnglishLongDayOfWeekStrA( const DayOfWeek : Int) : Ansistr Func EnglishLongDayOfWeekStrU( const DayOfWeek : Int) : UnicodeString Func EnglishShortMonthStrA( const Month : Int) : Ansistr Func EnglishShortMonthStrU( const Month : Int) : UnicodeString Func EnglishLongMonthStrA( const Month : Int) : Ansistr Func EnglishLongMonthStrU( const Month : Int) : UnicodeString Func EnglishShortDayOfWeekA( const S : Ansistr) : Int Func EnglishShortDayOfWeekU( const S : UnicodeString) : Int Func EnglishLongDayOfWeekA( const S : Ansistr) : Int Func EnglishLongDayOfWeekU( const S : UnicodeString) : Int Func EnglishShortMonthA( const S : Ansistr) : Int Func EnglishShortMonthU( const S : UnicodeString) : Int Func EnglishLongMonthA( const S : Ansistr) : Int Func EnglishLongMonthU( const S : UnicodeString) : Int Func RFC850DayOfWeekA( const S : Ansistr) : Int Func RFC850DayOfWeekU( const S : UnicodeString) : Int Func RFC1123DayOfWeekA( const S : Ansistr) : Int Func RFC1123DayOfWeekU( const S : UnicodeString) : Int Func RFCMonthA( const S : Ansistr) : Word Func RFCMonthU( const S : UnicodeString) : Word Func GMTTimeToRFC1123TimeA( const D : TDateTime;const IncludeSeconds:Boolean) : Ansistr Func GMTTimeToRFC1123TimeU( const D : TDateTime;const IncludeSeconds:Boolean):UnicodeString Func GMTDateTimeToRFC1123DateTimeA(const D:TDateTime;const IncludeDayOfWeek:Bool):AnsiStr; Func GMTDateTimeToRFC1123DateTimeU(const D:TDateTime;const IncludeDayOfWeek:Bool):UnicodStr; Func DateTimeToRFCDateTimeA( const D : TDateTime) : Ansistr Func DateTimeToRFCDateTimeU( const D : TDateTime) : UnicodeString Func NowAsRFCDateTimeA : Ansistr Func NowAsRFCDateTimeU : UnicodeString Func RFCDateTimeToGMTDateTime( const S : Ansistr) : TDateTime Func RFCDateTimeToDateTime( const S : Ansistr) : TDateTime Func RFCTimeZoneToGMTBias( const Zone : Ansistr) : Int Func TimePeriodStr( const D : TDateTime) : Ansistr Proc SelfTestCDate end; //*******************************************CFileUtils Func PathHasDriveLetterA( const Path : Ansistr) :Bool Func PathHasDriveLetter( const Path :Str) :Bool Func PathIsDriveLetterA( const Path : Ansistr) :Bool Func PathIsDriveLetter( const Path :Str) :Bool Func PathIsDriveRootA( const Path : Ansistr) :Bool Func PathIsDriveRoot( const Path :Str) :Bool Func PathIsRootA( const Path : Ansistr) :Bool Func PathIsRoot( const Path :Str) :Bool Func PathIsUNCPathA( const Path : Ansistr) :Bool Func PathIsUNCPath( const Path :Str) :Bool Func PathIsAbsoluteA( const Path : Ansistr) :Bool Func PathIsAbsolute( const Path :Str) :Bool Func PathIsDirectoryA( const Path : Ansistr) :Bool Func PathIsDirectory( const Path :Str) :Bool Func PathInclSuffixA( const Path : Ansistr; const PathSep : Char) : Ansistr Func PathInclSuffix( const Path :Str; const PathSep : Char) :Str Func PathExclSuffixA( const Path : Ansistr; const PathSep : Char) : Ansistr Func PathExclSuffix( const Path :Str; const PathSep : Char) :Str Proc PathEnsureSuffixA( var Path : Ansistr; const PathSep : Char) Proc PathEnsureSuffix( var Path :Str; const PathSep : Char) Proc PathEnsureNoSuffixA( var Path : Ansistr; const PathSep : Char) Proc PathEnsureNoSuffix( var Path :Str; const PathSep : Char) //Func PathCanonicalA( const Path : Ansistr; const PathSep : Char) : Ansistr Func PathCanonical( const Path :Str; const PathSep : Char) :Str Func PathExpandA(const Path:Ansistr;const BasePath:AnsiStr;const PathSep:Char):AnsiStr Func PathExpand(const Path:str; const BasePath :Str; const PathSep : Char) :Str Func PathLeftElementA( const Path : Ansistr; const PathSep : Char) : Ansistr Func PathLeftElement( const Path :Str; const PathSep : Char) :Str Proc PathSplitLeftElementA(const Path:AString;var LeftElement,RightPath:AString;const PathSep:Char); Proc PathSplitLeftElement(const Path:str; var LeftElement,RightPath:Str;const PathSep:Char); Proc DecodeFilePathA(const FilePath:AnsiStr;var Path,FileName:AnsiStr;const PathSep:Char; Proc DecodeFilePath(const FilePath:str; var Path,FileName:str;const PathSep: Char) Func FileNameValidA( const FileName : Ansistr) : Ansistr Func FileNameValid( const FileName :Str) :Str Func FilePathA(const FileName,Path:Ansistr;const BasePath:AnsiStr;const PathSep:Char):Ansistr; Func FilePath(const FileName,Path:str;const BasePath:Str;const PathSep:Char):Str Func DirectoryExpandA(const Path:Ansistr;const BasePath:Ansistr;const PathSep:Char):Ansistr Func DirectoryExpand(const Path:str;const BasePath:str;const PathSep:Char):str Func UnixPathToWinPath( const Path : Ansistr) : Ansistr Func WinPathToUnixPath( const Path : Ansistr) : Ansistr Proc CCopyFile( const FileName, DestName :Str) Proc CMoveFile( const FileName, DestName :Str) Func CDeleteFiles( const FileMask :Str) :Bool Func FileSeekEx(const FHandle:TFileHandle;const FileOffset:Int64;const FilePos:TFileSeekPos):Int64; Proc FileCloseEx( const FileHandle : TFileHandle) Func FileExistsA( const FileName : Ansistr) :Bool Func CFileExists( const FileName :Str) :Bool Func CFileGetSize( const FileName :Str) : Int64 Func FileGetDateTime( const FileName :Str) : TDateTime Func FileGetDateTime2( const FileName :Str) : TDateTime Func FileIsReadOnly( const FileName :Str) :Bool Proc FileDeleteEx( const FileName :Str) Proc FileRenameEx( const OldFileName, NewFileName :Str) Func ReadFileStrA( const FileName:Ansistr;const FileSharing:TFileSharing;const FileCreationMode:TFileCreationMode;const FileOpenWait:PFileOpenWait):Ansistr Func DirectoryEntryExists( const Name :Str) :Bool Func DirectoryEntrySize( const Name :Str) : Int64 Func CDirectoryExists( const DirectoryName :Str) :Bool Func DirectoryGetDateTime( const DirectoryName :Str) : TDateTime Proc CDirectoryCreate( const DirectoryName :Str) Func GetFirstFileNameMatching( const FileMask :Str) :Str Func DirEntryGetAttr( const FileName : Ansistr) : Int Func DirEntryIsDirectory( const FileName : Ansistr) :Bool Func FileHasAttr( const FileName :Str; const Attr : Word) :Bool AddTypeS('TLogicalDriveType', '( DriveRemovable, DriveFixed, DriveRemote, ' +'DriveCDRom, DriveRamDisk, DriveTypeUnknown ) Func DriveIsValid( const Drive : Char) :Bool Func DriveGetType( const Path : Ansistr) : TLogicalDriveType Func DriveFreeSpace( const Path : Ansistr) : Int64 Proc SIRegister_cTimers(CL: TPSPascalCompiler); begin AddClassN(FindClass('TOBJECT'),'ETimers Const('TickFrequency','LongInt'( 1000);Func GetTick : LongWord Func TickDelta( const D1, D2 : LongWord) : Int Func TickDeltaW( const D1, D2 : LongWord) : LongWord AddTypeS('THPTimer', 'Int64 Proc StartTimer( var Timer : THPTimer) Proc StopTimer( var Timer : THPTimer) Proc ResumeTimer( var StoppedTimer : THPTimer) Proc InitStoppedTimer( var Timer : THPTimer) Proc InitElapsedTimer( var Timer : THPTimer; const Milliseconds : Int) Func MillisecondsElapsed( const Timer: THPTimer; const TimerRunning :Bool) : Int Func MicrosecondsElapsed( const Timer: THPTimer; const TimerRunning :Bool) : Int64 Proc WaitMicroseconds( const MicroSeconds : Int) Func GetHighPrecisionFrequency : Int64 Func GetHighPrecisionTimerOverhead : Int64 Proc AdjustTimerForOverhead(var StoppedTimer:THPTimer; const Overhead:Int64) Proc SelfTestCTimer end; Proc SIRegister_cRandom(CL: TPSPascalCompiler); begin Func RandomSeed : LongWord Proc AddEntropy( const Value : LongWord) Func RandomUniform : LongWord; Func RandomUniform1( const N : Int) : Int; Func RandomBoolean :Bool Func RandomByte : Byte Func RandomByteNonZero : Byte Func RandomWord : Word Func RandomInt64 : Int64; Func RandomInt641( const N : Int64) : Int64; Func RandomHex( const Digits : Int) :Str Func RandomFloat : Extended Func RandomAlphaStr( const Length : Int) : Ansistr Func RandomPseudoWord( const Length : Int) : Ansistr Func RandomPassword(const MinL,MaxLength:Int;const CaseSens,UseSymbols,UseNumbers:Bool):AnsiStr; Func mwcRandomLongWord : LongWord Func urnRandomLongWord : LongWord Func moaRandomFloat : Extended Func mwcRandomFloat : Extended Func RandomNormalF : Extended Proc SelfTestCRandom end; Proc SIRegister_SynEditMiscProcs(CL: TPSPascalCompiler); begin // PIntArray', '^TIntArray // will not work Addtypes('TConvertTabsProc','function(const Line:Ansistr; TabWidth: Int):Ansistr TConvertTabsProcEx,function(const Line:Ansistr;TabWidth:Int;var HasTabs:boolean):Ansistr Func synMax( x, y : Int) : Int Func synMin( x, y : Int) : Int Func synMinMax( x, mi, ma : Int) : Int Proc synSwapInt( var l, r : Int) Func synMaxPoint( const P1, P2 : TPoint) : TPoint Func synMinPoint( const P1, P2 : TPoint) : TPoint //Func synGetIntArray( Count :Card; InitialValue : Int) : PIntArray Proc synInternalFillRect( dc : HDC; const rcPaint : TRect) Func synGetBestConvertTabsProc( TabWidth : Int) : TConvertTabsProc Func synConvertTabs( const Line : Ansistr; TabWidth : Int) : Ansistr Func synGetBestConvertTabsProcEx( TabWidth : Int) : TConvertTabsProcEx Func synConvertTabsEx(const Line:Ansistr;TabWidth:Int;var HasTabs:bool):Ansistr; Func synGetExpandedLength( const aStr :Str; aTabWidth : Int) : Int Func synCharIndex2CaretPos( Index, TabWidth : Int; const Line :Str) : Int Func synCaretPos2CharIndex(Positin,TabWidth:int;const Line:str;var InsideTabChar:bool):int; Func synStrScanForCharInSet(const Line:str;Start:Int;AChars:TSynIdentChars):int; Func synStrRScanForCharInSet(const Line:str;Start:Int;AChars:TSynIdentChars):Int; TStringType', '(stNone, stHalfNumAlpha, stHalfSymbol, stHalfKat' +'akana,stWideNumAlpha,stWideSymbol,stWideKatakana,stHiragana,stIdeograph,stControl,stKashida) ('C3_NONSPACING','LongInt'( 1); 'C3_DIACRITIC','LongInt'( 2); 'C3_VOWELMARK','LongInt'( 4); ('C3_SYMBOL','LongInt'( 8); ('C3_KATAKANA',LongWord( $0010); ('C3_HIRAGANA',LongWord( $0020); ('C3_HALFWIDTH',LongWord( $0040); ('C3_FULLWIDTH',LongWord( $0080); ('C3_IDEOGRAPH',LongWord( $0100); ('C3_KASHIDA',LongWord( $0200); ('C3_LEXICAL',LongWord( $0400); ('C3_ALPHA',LongWord( $8000); ('C3_NOTAPPLICABLE','LongInt'( 0); Func synStrScanForMultiByteChar( const Line :Str; Start : Int) : Int Func synStrRScanForMultiByteChar( const Line :Str; Start : Int) : Int Func synIsStringType( Value : Word) : TStringType Func synGetEOL( Line : PChar) : PChar Func synEncodeString( s :Str) :Str Func synDecodeString( s :Str) :Str Proc synFreeAndNil( var Obj: TObject) Proc synAssert( Expr :Bool) Func synLastDelimiter( const Delimiters, S :Str) : Int TReplaceFlag', '( rfReplaceAll, rfIgnoreCase ) TReplaceFlags', 'set of TReplaceFlag ) Func synStringReplace(const S, OldPattern,NewPattern:str;Flags:TReplaceFlags):str Func synGetRValue( RGBValue : TColor) : byte Func synGetGValue( RGBValue : TColor) : byte Func synGetBValue( RGBValue : TColor) : byte Func synRGB( r, g, b : Byte) :Card //THighlighterAttriProc', 'Func ( Highlighter : TSynCustomHigh' //+'lighter;Attri:TSynHighlighterAttributes;UniqueAttriName:str;Params array of Pointr):Bool; //Func synEnumHighlighterAttris( Highlighter:TSynCustomHighlighter;SkipDuplicates:Bool;HighlighterAttriProc:THighlighterAttriProc;Params array of Pointer):Bool Func synCalcFCS( const ABuf, ABufSize :Card) : Word Proc synSynDrawGradient(const ACanvas:TCanvas;const AStartColor,AEndColor:TColor;ASteps:Int;const ARect:TRect; const AHorizontal:Bool) end; Func GET_APPCOMMAND_LPARAM( lParam : LPARAM) : WORD Func GET_DEVICE_LPARAM( lParam : LPARAM) : WORD Func GET_KEYSTATE_LPARAM( lParam : LPARAM) : WORD Proc SIRegister_synautil(CL: TPSPascalCompiler); begin Func STimeZoneBias : Int Func TimeZone :Str Func Rfc822DateTime( t : TDateTime) :Str Func CDateTime( t : TDateTime) :Str Func SimpleDateTime( t : TDateTime) :Str Func AnsiCDateTime( t : TDateTime) :Str Func GetMonthNumber( Value :Str) : Int Func GetTimeFromStr( Value :Str) : TDateTime Func GetDateMDYFromStr( Value :Str) : TDateTime Func DecodeRfcDateTime( Value :Str) : TDateTime Func GetUTTime : TDateTime Func SetUTTime( Newdt : TDateTime) :Bool Func SGetTick : LongWord Func STickDelta( TickOld, TickNew : LongWord) : LongWord Func CodeInt( Value : Word) : Ansistr Func DecodeInt( const Value : Ansistr; Index : Int) : Word Func CodeLongInt( Value : LongInt) : Ansistr Func DecodeLongInt( const Value : Ansistr; Index : Int): LongInt Func DumpStr( const Buffer : Ansistr) :Str Func DumpExStr( const Buffer : Ansistr) :Str Proc Dump( const Buffer : Ansistr; DumpFile :Str) Proc DumpEx( const Buffer : Ansistr; DumpFile :Str) Func TrimSPLeft( const S :Str) :Str Func TrimSPRight( const S :Str) :Str Func TrimSP( const S :Str) :Str Func SeparateLeft( const Value, Delimiter :Str) :Str Func SeparateRight( const Value, Delimiter :Str) :Str Func SGetParameter( const Value, Parameter :Str) :Str Proc ParseParametersEx(Value,Delimiter:str;const Parameters : TStrings) Proc ParseParameters( Value :Str; const Parameters : TStrings) Func IndexByBegin( Value :Str; const List : TStrings) : Int Func GetEmailAddr( const Value :Str) :Str Func GetEmailDesc( Value :Str) :Str Func CStrToHex( const Value : Ansistr) :Str Func CIntToBin( Value : Int; Digits : Byte) :Str Func CBinToInt( const Value :Str) : Int Func ParseURL(URL:str;var Prot,User,Pass,Host,Port,Path,Para:str):str Func CReplaceString( Value, Search, Replace : Ansistr) : Ansistr Func CRPosEx( const Sub, Value :Str; From : Int) : Int Func CRPos( const Sub, Value :Str) : Int Func FetchBin( var Value :Str; const Delimiter :Str) :Str Func CFetch( var Value :Str; const Delimiter :Str) :Str Func FetchEx(var Value:Str;const Delimiter,Quotation:str):Str Func IsBinaryString( const Value : Ansistr) :Bool Func PosCRLF( const Value : Ansistr; var Terminator : Ansistr) : Int Proc StringsTrim( const value : TStrings) Func PosFrom( const SubStr, Value :Str; From : Int) : Int Func IncPoint( const p : ___pointer; Value : Int) : ___pointer Func GetBetween( const PairBegin, PairEnd, Value :Str) :Str Func CCountOfChar( const Value :Str; aChr : char) : Int Func UnquoteStr( const Value :Str; Quote : Char) :Str Func QuoteStr( const Value :Str; Quote : Char) :Str Proc HeadersToList( const Value : TStrings) Proc ListToHeaders( const Value : TStrings) Func SwapBytes( Value : Int) : Int Func ReadStrFromStream( const Stream : TStream; len : Int) : Ansistr Proc WriteStrToStream( const Stream : TStream; Value : Ansistr) Func GetTempFile( const Dir, prefix : Ansistr) : Ansistr Func CPadString( const Value:Ansistr;len:Int;Pad:AnsiChar): Ansistr Func CXorString( Indata1, Indata2 : Ansistr) : Ansistr Func NormalizeHeader( Value : TStrings; var Index : Int) :Str end; Proc SIRegister_StCRC(CL: TPSPascalCompiler); begin ('CrcBufSize','LongInt'( 2048); Func Adler32Prim( var Data, DataSize :Card; CurCrc : LongInt): LongInt Func Adler32OfStream( Stream : TStream; CurCrc : LongInt) : LongInt Func Adler32OfFile( FileName : Ansistr) : LongInt Func Crc16Prim( var Data, DataSize, CurCrc :Card) :Card Func Crc16OfStream( Stream : TStream; CurCrc :Card) :Card Func Crc16OfFile( FileName : Ansistr) :Card Func Crc32Prim( var Data, DataSize :Card; CurCrc : LongInt) : LongInt Func Crc32OfStream( Stream : TStream; CurCrc : LongInt) : LongInt Func Crc32OfFile( FileName : Ansistr) : LongInt Func InternetSumPrim( var Data, DataSize, CurCrc :Card) :Card Func InternetSumOfStream( Stream : TStream; CurCrc :Card) :Card Func InternetSumOfFile( FileName : Ansistr) :Card Func Kermit16Prim( var Data, DataSize, CurCrc :Card) :Card Func Kermit16OfStream( Stream : TStream; CurCrc :Card) :Card Func Kermit16OfFile( FileName : Ansistr) :Card end; Proc SIRegister_ComObj(cl: TPSPascalCompiler); begin Func CreateOleObject(const ClassName:Str): IDispatch; Func GetActiveOleObject(const ClassName:Str): IDispatch; Func ProgIDToClassID(const ProgID:Str): TGUID; Func ClassIDToProgID(const ClassID: TGUID):Str; Func CreateClassID:Str; Func CreateGUIDString:Str; Func CreateGUIDID:Str; Proc OleError(ErrorCode: longint) Proc OleCheck(Result: HResult); end; Func xCreateOleObject( const ClassName :Str) : Variant //or IDispatch Func xGetActiveOleObject( const ClassName :Str) : Variant //Func DllGetClassObject(const CLSID:TCLSID;const IID TIID;var Obj):HResult Func DllCanUnloadNow : HResult Func DllRegisterServer : HResult Func DllUnregisterServer : HResult Func VarFromInterface( Unknown : IUnknown) : Variant Func VarToInterface( const V : Variant) : IDispatch Func VarToAutoObject( const V : Variant) : TAutoObject //Proc DispInvoke(Dispatch:IDispatch;CallDesc:PCallDesc;DispIDs:PDispIDList;Params:Pointer;Res:PVariant); //Proc DispInvokeError( Status : HResult; const ExcepInfo : TExcepInfo) Proc OleError( ErrorCode : HResult) Proc OleCheck( Result : HResult) Func StringToClassID( const S :Str) : TCLSID Func ClassIDToString( const ClassID : TCLSID) :Str Func xProgIDToClassID( const ProgID :Str) : TCLSID Func xClassIDToProgID( const ClassID : TCLSID) :Str Func xWideCompareStr( const S1, S2 : WideString) : Int Func xWideSameStr( const S1, S2 : WideString) :Bool Func xGUIDToString( const ClassID : TGUID) :Str Func xStringToGUID( const S :Str) : TGUID Func xGetModuleName( Module : HMODULE) :Str Func xAcquireExceptionObject : TObject Func xIfThen(AValue :Bool; const ATrue: Int; const AFalse: Int): Int Func xUtf8Encode( const WS : WideString) : UTF8String Func xUtf8Decode( const S : UTF8String) : WideString Func xExcludeTrailingPathDelimiter( const S :Str) :Str Func xIncludeTrailingPathDelimiter( const S :Str) :Str Func XRTLHandleCOMException : HResult Proc XRTLCheckArgument( Flag :Bool) //Proc XRTLCheckOutArgument( out Arg) Proc XRTLInterfaceConnect(const Source:IUnknown;const IID:TIID;const Sink:IUnknown;var Connection:Longint); Proc XRTLInterfaceDisconnect(const Source:IUnknown;const IID:TIID;var Connection:Longint) Func XRTLRegisterActiveObject(const Unk:IUnknown;ClassID:TCLSID;Flags:DWORD;var RegisterCookie:Int):HResult Func XRTLUnRegisterActiveObject( var RegisterCookie : Int) : HResult //Func XRTLGetActiveObject( ClassID : TCLSID; RIID : TIID; out Obj) : HResult Proc XRTLEnumActiveObjects( Strings : TStrings) Func XRTLDefaultCategoryManager: IUnknown; Func XRTLIsCategoryEmpty(CatID:TGUID;const CategoryManager:IUnknown=nil):Bool; // ICatRegister helper functions Func XRTLCreateComponentCategory(CatID: TGUID; CatDescription: WideString; LocaleID: TLCID = LOCALE_USER_DEFAULT; const CategoryManager: IUnknown = nil): HResult; Func XRTLRemoveComponentCategory(CatID: TGUID; CatDescription: WideString; LocaleID: TLCID = LOCALE_USER_DEFAULT; const CategoryManager: IUnknown = nil): HResult; Func XRTLRegisterCLSIDInCategory(ClassID: TGUID; CatID: TGUID; const CategoryManager: IUnknown = nil): HResult; Func XRTLUnRegisterCLSIDInCategory(ClassID: TGUID; CatID: TGUID; const CategoryManager: IUnknown = nil): HResult; // ICatInformation helper functions Func XRTLGetCategoryDescription(CatID: TGUID; var CatDescription: WideString; LocaleID: TLCID = LOCALE_USER_DEFAULT; const CategoryManager: IUnknown = nil): HResult; Func XRTLGetCategoryList(Strings: TStrings; LocaleID: TLCID = LOCALE_USER_DEFAULT; const CategoryManager: IUnknown = nil): HResult; Func XRTLGetCategoryCLSIDList(CatID: TGUID; Strings: TStrings; const CategoryManager: IUnknown = nil): HResult; Func XRTLGetCategoryProgIDList(CatID: TGUID; Strings: TStrings; const CategoryManager: IUnknown = nil): HResult; Func XRTLFetch(var AInput: WideString; const ADelim: WideString = ' '; const ADelete:Bool = True): WideString; Func XRTLRPos(const ASub, AIn: WideString; AStart: Int = -1): Int; Func XRTLGetVariantAsString( const Value : Variant) :Str Func XRTLDateTimeToTimeZoneTime(DT:TDateTime;TimeZone:TXRTLTimeZone):TDateTime Func XRTLGetTimeZones : TXRTLTimeZones Func XFileTimeToDateTime( FileTime : TFileTime) : TDateTime Func DateTimeToFileTime( DateTime : TDateTime) : TFileTime Func GMTNow : TDateTime Func GMTToLocalTime( GMT : TDateTime) : TDateTime Func LocalTimeToGMT( LocalTime : TDateTime) : TDateTime Proc XRTLNotImplemented Proc XRTLRaiseError( E : Exception) Proc XRTLRaise( E : Exception); Proc XRaise( E : Exception); Proc XRTLInvalidOperation(ClassName:str;OperationName:str;Description:Str) Proc SIRegister_xrtl_util_Value(CL: TPSPascalCompiler); begin SIRegister_IXRTLValue(CL); SIRegister_TXRTLValue(CL); //AddTypeS('PXRTLValueArray', '^TXRTLValueArray // will not work AddTypeS('TXRTLValueArray', 'array of IXRTLValue Func XRTLValue( const AValue :Card) : IXRTLValue; Func XRTLSetValue(const IValue:IXRTLValue; const AValue:Card) :Card; Func XRTLGetAsCardinal( const IValue : IXRTLValue) :Card Func XRTLGetAsCardinalDef(const IValue:IXRTLValue;const DefValue:Card): Card Func XRTLValue1( const AValue : Int) : IXRTLValue; Func XRTLSetValue1( const IValue : IXRTLValue; const AValue : Int) : Int; Func XRTLGetAsInt( const IValue : IXRTLValue) : Int Func XRTLGetAsIntDef( const IValue : IXRTLValue; const DefValue : Int) : Int Func XRTLValue2( const AValue : Int64) : IXRTLValue; Func XRTLSetValue2( const IValue : IXRTLValue; const AValue : Int64) : Int64; Func XRTLGetAsInt64( const IValue : IXRTLValue) : Int64 Func XRTLGetAsInt64Def(const IValue:IXRTLValue;const DefValue:Int64) : Int64 Func XRTLValue3( const AValue : Single) : IXRTLValue; Func XRTLSetValue3( const IValue : IXRTLValue; const AValue:Single) : Single; Func XRTLGetAsSingle( const IValue : IXRTLValue) : Single Func XRTLGetAsSingleDef(const IValue: RTLValue;const DefValue: Single):Single Func XRTLValue4( const AValue : Double) : IXRTLValue; Func XRTLSetValue4( const IValue : IXRTLValue; const AValue : Double) : Double; Func XRTLGetAsDouble( const IValue : IXRTLValue) : Double Func XRTLGetAsDoubleDef(const IValue:IXRTLValue;const DefValue:Double):Double Func XRTLValue5( const AValue : Extended) : IXRTLValue; Func XRTLSetValue5(const IValue:IXRTLValue;const AValue:Extended): Extended; Func XRTLGetAsExtended( const IValue : IXRTLValue) : Extended Func XRTLGetAsExtendedDef(const IValue:IXRTLValue;const DefValue:Extended): Extended Func XRTLValue6( const AValue : IInterface) : IXRTLValue; Func XRTLSetValue6(const IValue:IXRTLValue;const AValue:IInterface):IInterface; Func XRTLGetAsInterface( const IValue : IXRTLValue) : IInterface; //Func XRTLGetAsInterface1( const IValue : IXRTLValue; out Obj) : IInterface; Func XRTLGetAsInterfaceDef(const IValue:IXRTLValue;const DefValue:IInterface):IInterface; Func XRTLValue7( const AValue : WideString) : IXRTLValue; Func XRTLSetValue7(const IValue:IXRTLValue;const AValue:WideString):WideString; Func XRTLGetAsWideString( const IValue : IXRTLValue) : WideString Func XRTLGetAsWideStringDef(const IValue:IXRTLValue;const DefValue:WideString): WideString Func XRTLValue8(const AValue:TObject; const AOwnValue:Boolean): IXRTLValue; Func XRTLSetValue8(const IValue:IXRTLValue;const AValue:TObject) : TObject; Func XRTLGetAsObject(const IValue:IXRTLValue;const ADetachOwnership:Bool): TObject; Func XRTLGetAsObjectDef(const IValue:IXRTLValue;const DefValue:TObject;const ADetachOwnership:Boolean):TObject; //Func XRTLValue9( const AValue : __Pointer) : IXRTLValue; //Func XRTLSetValue9( const IValue : IXRTLValue; const AValue : __Pointer) : __Pointer; //Func XRTLGetAsPointer( const IValue : IXRTLValue) : __Pointer //Func XRTLGetAsPointerDef( const IValue : IXRTLValue; const DefValue : __Pointer) : __Pointer Func XRTLValueV( const AValue : Variant) : IXRTLValue; Func XRTLSetValueV(const IValue:IXRTLValue; const AValue : Variant): Variant; Func XRTLGetAsVariant( const IValue : IXRTLValue) : Variant Func XRTLGetAsVariantDef(const IValue:IXRTLValue;const DefValue:Variant): Variant Func XRTLValue10( const AValue : Currency) : IXRTLValue; Func XRTLSetValue10(const IValue:IXRTLValue; const AValue:Currency):Currency; Func XRTLGetAsCurrency( const IValue : IXRTLValue) : Currency Func XRTLGetAsCurrencyDef(const IValue:IXRTLValue;const DefValue:Currency): Currency Func XRTLValue11( const AValue : Comp) : IXRTLValue; Func XRTLSetValue11( const IValue : IXRTLValue; const AValue : Comp) : Comp; Func XRTLGetAsComp( const IValue : IXRTLValue) : Comp Func XRTLGetAsCompDef( const IValue : IXRTLValue; const DefValue : Comp) : Comp Func XRTLValue12( const AValue : TClass) : IXRTLValue; Func XRTLSetValue12( const IValue:IXRTLValue; const AValue : TClass) : TClass; Func XRTLGetAsClass( const IValue : IXRTLValue) : TClass Func XRTLGetAsClassDef(const IValue: IXRTLValue;const DefValue:TClass):TClass Func XRTLValue13( const AValue : TGUID) : IXRTLValue; Func XRTLSetValue13( const IValue : IXRTLValue; const AValue : TGUID) : TGUID; Func XRTLGetAsGUID( const IValue : IXRTLValue) : TGUID Func XRTLGetAsGUIDDef(const IValue:IXRTLValue; const DefValue : TGUID) : TGUID Func XRTLValue14( const AValue :Bool) : IXRTLValue; Func XRTLSetValue14( const IValue:IXRTLValue;const AValue:Boolean):Boolean; Func XRTLGetAsBoolean( const IValue : IXRTLValue) :Bool Func XRTLGetAsBooleanDef(const IValue:IXRTLValue;const DefValue:Bool):Bool end; //*****************************unit uPSI_GR32;******************************** Func Color32( WinColor : TColor) : TColor32; Func Color321( R, G, B : Byte; A : Byte) : TColor32; Func Color322( Index : Byte; var Palette : TPalette32) : TColor32; Func Gray32( Intensity : Byte; Alpha : Byte) : TColor32 Func WinColor( Color32 : TColor32) : TColor Func ArrayOfColor32( Colors : array of TColor32) : TArrayOfColor32 Proc Color32ToRGB( Color32 : TColor32; var R, G, B : Byte) Proc Color32ToRGBA( Color32 : TColor32; var R, G, B, A : Byte) Func Color32Components( R, G, B, A :Bool) : TColor32Components Func RedComponent( Color32 : TColor32) : Int Func GreenComponent( Color32 : TColor32) : Int Func BlueComponent( Color32 : TColor32) : Int Func AlphaComponent( Color32 : TColor32) : Int Func Intensity( Color32 : TColor32) : Int Func SetAlpha( Color32 : TColor32; NewAlpha : Int) : TColor32 Func HSLtoRGB( H, S, L : Single) : TColor32; Proc RGBtoHSL( RGB : TColor32; out H, S, L : Single); Func HSLtoRGB1( H, S, L : Int) : TColor32; Proc RGBtoHSL1( RGB : TColor32; out H, S, L : Byte); Func WinPalette( const P : TPalette32) : HPALETTE Func FloatPoint( X, Y : Single) : TFloatPoint; Func FloatPoint1( const P : TPoint) : TFloatPoint; Func FloatPoint2( const FXP : TFixedPoint) : TFloatPoint; Func FixedPoint( X, Y : Int) : TFixedPoint; Func FixedPoint1( X, Y : Single) : TFixedPoint; Func FixedPoint2( const P : TPoint) : TFixedPoint; Func FixedPoint3( const FP : TFloatPoint) : TFixedPoint; AddTypeS('TRectRounding', '( rrClosest, rrOutside, rrInside ) Func MakeRect( const L, T, R, B : Int) : TRect; Func MakeRect1( const FR : TFloatRect; Rounding : TRectRounding) : TRect; Func MakeRect2( const FXR : TRect; Rounding : TRectRounding) : TRect; Func GFixedRect( const L, T, R, B : TFixed) : TRect; Func FixedRect1( const ARect : TRect) : TRect; Func FixedRect2( const FR : TFloatRect) : TRect; Func GFloatRect( const L, T, R, B : TFloat) : TFloatRect; Func FloatRect1( const ARect : TRect) : TFloatRect; Func FloatRect2( const FXR : TRect) : TFloatRect; Func GIntersectRect( out Dst : TRect; const R1, R2 : TRect) :Bool; Func IntersectRect1(out Dst:TFloatRect;const FR1,FR2:TFloatRect):Boolean; Func GUnionRect( out Rect : TRect; const R1, R2 : TRect) :Bool; Func UnionRect1( out Rect : TFloatRect; const R1, R2 : TFloatRect):Boolean; Func GEqualRect( const R1, R2 : TRect) :Bool; Func EqualRect1( const R1, R2 : TFloatRect) :Bool; Proc GInflateRect( var R : TRect; Dx, Dy : Int); Proc InflateRect1( var FR : TFloatRect; Dx, Dy : TFloat); Proc GOffsetRect( var R : TRect; Dx, Dy : Int); Proc OffsetRect1( var FR : TFloatRect; Dx, Dy : TFloat); Func IsRectEmpty( const R : TRect) :Bool; Func IsRectEmpty1( const FR : TFloatRect) :Bool; Func GPtInRect( const R : TRect; const P : TPoint) :Bool; Func PtInRect1( const R : TFloatRect; const P : TPoint) :Bool; Func PtInRect2( const R : TRect; const P : TFloatPoint) :Bool; Func PtInRect3( const R : TFloatRect; const P : TFloatPoint) :Bool; Func EqualRectSize( const R1, R2 : TRect) :Bool; Func EqualRectSize1( const R1, R2 : TFloatRect) :Bool; Func MessageBeep( uType : UINT) : BOOL Func ShowCursor( bShow : BOOL) : Int Func SetCursorPos( X, Y : Int) : BOOL Func SetCursor( hCursor : HICON) : HCURSOR Func GetCursorPos( var lpPoint : TPoint) : BOOL //Func ClipCursor( lpRect : PRect) : BOOL Func GetClipCursor( var lpRect : TRect) : BOOL Func GetCursor : HCURSOR Func CreateCaret(hWnd: HWND;hBitmap:HBITMAP;nWidth, nHeight:Int):BOOL Func GetCaretBlinkTime : UINT Func SetCaretBlinkTime( uMSeconds : UINT) : BOOL Func DestroyCaret : BOOL Func HideCaret( hWnd : HWND) : BOOL Func ShowCaret( hWnd : HWND) : BOOL Func SetCaretPos( X, Y : Int) : BOOL Func GetCaretPos( var lpPoint : TPoint) : BOOL Func ClientToScreen( hWnd : HWND; var lpPoint : TPoint) : BOOL Func ScreenToClient( hWnd : HWND; var lpPoint : TPoint) : BOOL Func MapWindowPoints(hWndFrom,hWndTo:HWND; var lpPoints, cPoints: UINT):Int Func WindowFromPoint( Point : TPoint) : HWND Func ChildWindowFromPoint( hWndParent : HWND; Point : TPoint) : HWND Proc SIRegister_GR32_Math(CL: TPSPascalCompiler); begin Func FixedFloor( A : TFixed) : Int Func FixedCeil( A : TFixed) : Int Func FixedMul( A, B : TFixed) : TFixed Func FixedDiv( A, B : TFixed) : TFixed Func OneOver( Value : TFixed) : TFixed Func FixedRound( A : TFixed) : Int Func FixedSqr( Value : TFixed) : TFixed Func FixedSqrtLP( Value : TFixed) : TFixed Func FixedSqrtHP( Value : TFixed) : TFixed Func FixedCombine( W, X, Y : TFixed) : TFixed Proc GRSinCos( const Theta : TFloat; out Sin, Cos : TFloat); Proc GRSinCos1( const Theta, Radius : Single; out Sin, Cos : Single); Func GRHypot( const X, Y : TFloat) : TFloat; Func Hypot1( const X, Y : Int) : Int; Func FastSqrt( const Value : TFloat) : TFloat Func FastSqrtBab1( const Value : TFloat) : TFloat Func FastSqrtBab2( const Value : TFloat) : TFloat Func FastInvSqrt( const Value : Single) : Single; Func MulDiv( Multiplicand, Multiplier, Divisor : Int) : Int Func GRIsPowerOf2( Value : Int) :Bool Func PrevPowerOf2( Value : Int) : Int Func NextPowerOf2( Value : Int) : Int Func Average( A, B : Int) : Int Func GRSign( Value : Int) : Int Func FloatMod( x, y : Double) : Double end; Proc SIRegister_GR32_LowLevel(CL: TPSPascalCompiler); begin Func Clamp( const Value : Int) : Int; Proc GRFillWord( var X, Count :Card; Value : Longword) Func StackAlloc( Size : Int) : Pointer Proc StackFree( P : Pointer) Proc Swap( var A, B : Pointer); Proc Swap1( var A, B : Int); Proc Swap2( var A, B : TFixed); Proc Swap3( var A, B : TColor32); Proc TestSwap( var A, B : Int); Proc TestSwap1( var A, B : TFixed); Func TestClip( var A, B : Int; const Size : Int) :Bool; Func TestClip1( var A, B : Int; const Start, Stop : Int) :Bool; Func GRConstrain( const Value, Lo, Hi : Int) : Int; Func Constrain1( const Value, Lo, Hi : Single) : Single; Func SwapConstrain( const Value:Int; Constrain1,Constrain2:Int) : Int Func GRMin( const A, B, C : Int) : Int; Func GRMax( const A, B, C : Int) : Int; Func Clamp( Value, Max : Int) : Int; Func Clamp1( Value, Min, Max : Int) : Int; Func Wrap( Value, Max : Int) : Int; Func Wrap1( Value, Min, Max : Int) : Int; Func Wrap3( Value, Max : Single) : Single;; Func WrapPow2( Value, Max : Int) : Int; Func WrapPow21( Value, Min, Max : Int) : Int; Func Mirror( Value, Max : Int) : Int; Func Mirror1( Value, Min, Max : Int) : Int; Func MirrorPow2( Value, Max : Int) : Int; Func MirrorPow21( Value, Min, Max : Int) : Int; Func GetOptimalWrap( Max : Int) : TWrapProc; Func GetOptimalWrap1( Min, Max : Int) : TWrapProcEx; Func GetOptimalMirror( Max : Int) : TWrapProc; Func GetOptimalMirror1( Min, Max : Int) : TWrapProcEx; Func GetWrapProc( WrapMode : TWrapMode) : TWrapProc; Func GetWrapProc1( WrapMode : TWrapMode; Max : Int) : TWrapProc; Func GetWrapProcEx( WrapMode : TWrapMode) : TWrapProcEx; Func GetWrapProcEx1( WrapMode : TWrapMode; Min, Max : Int):TWrapProcEx; Func Div255( Value :Card) :Card Func SAR_4( Value : Int) : Int Func SAR_8( Value : Int) : Int Func SAR_9( Value : Int) : Int Func SAR_11( Value : Int) : Int Func SAR_12( Value : Int) : Int Func SAR_13( Value : Int) : Int Func SAR_14( Value : Int) : Int Func SAR_15( Value : Int) : Int Func SAR_16( Value : Int) : Int Func ColorSwap( WinColor : TColor) : TColor32 end; Proc SIRegister_GR32_Filters(CL: TPSPascalCompiler); begin AddTypeS('TLogicalOperator', '( loXOR, loAND, loOR ) Proc CopyComponents(Dst,Src:TCustomBitmap32;Components:TColor32Components); Proc CopyComponents1(Dst:TCustBmap32;DstX,DstY:Int;Src:TCustomBmap32;SrcRect:TRect;Components:TColor32Comp; Proc AlphaToGrayscale( Dst, Src : TCustomBitmap32) Proc ColorToGrayscale( Dst, Src : TCustomBitmap32; PreserveAlpha :Bool) Proc IntensityToAlpha( Dst, Src : TCustomBitmap32) Proc Invert( Dst, Src : TCustomBitmap32; Components : TColor32Components) Proc InvertRGB( Dst, Src : TCustomBitmap32) Proc ApplyLUT(Dst,Src:TCustomBitmap32;const LUT:TLUT8;PreserveAlpha:Boolean) Proc ChromaKey( ABitmap : TCustomBitmap32; TrColor : TColor32) Func CreateBitmask( Components : TColor32Components) : TColor32 Proc ApplyBitmask(Dst:TCustomBitmap32;DstX,DstY:Int;Src:TCustomBitmap32;SrcRect:TRect; Bitmask:TColor32;LogicalOperator:TLogicalOperator); Proc ApplyBitmask1(ABitmap:TCustomBitmap32;ARect:TRect;Bitmask:TColor32;LogicalOperator:TLogicalOperator); Proc CheckParams( Dst, Src : TCustomBitmap32; ResizeDst :Bool) end; Proc SIRegister_JclNTFS(CL: TPSPascalCompiler); begin AddClassN(FindClass('TOBJECT'),'EJclNtfsError AddTypeS('TFileCompressionState','(fcNoCompression,fcDefaultCompression,fcLZNT1Compression ) Func NtfsGetCompression const FileName:str; var State : Short):Bool; Func NtfsGetCompression1( const FileName :Str) : TFileCompressionState; Func NtfsSetCompression const FileName:str; const State:Short) :Bool Proc NtfsSetFileCompression(const FileName:Str; const State: TFileCompressionState) Proc NtfsSetDirectoryTreeCompression(const Directory:Str; const State : TFileCompressionState) Proc NtfsSetDefaultFileCompression(const Directory:Str; const State:TFileCompressionState) Proc NtfsSetPathCompression(const Path:str;const State:TFileCompressionState;Recursive:Bool; //AddTypeS('TNtfsAllocRanges', 'record Entries : Int; Data : PFileAlloca' //+'tedRangeBuffer; MoreData :Bool; end Func NtfsSetSparse( const FileName :Str) :Bool Func NtfsZeroDataByHandle(const Handle:THandle;const First,Last:Int64): Bool Func NtfsZeroDataByName(const FileName:str;const First,Last:Int64): Bool //Func NtfsQueryAllocRanges(const FileName:str;Offset,Count:Int64;var Ranges:TNtfsAllocRanges):Boolean; //Func NtfsGetAllocRangeEntry( const Ranges : TNtfsAllocRanges; Index:Int):TFileAllocatedRangeBuffer Func NtfsSparseStreamsSupported( const Volume :Str) :Bool Func NtfsGetSparse( const FileName :Str) :Bool Func NtfsDeleteReparsePoint(const FileName:str; ReparseTag:DWORD):Boolean Func NtfsSetReparsePoint(const FileName:str;var ReparseData,Size:Longword): Bool //Func NtfsGetReparsePoint(const FileName:str;var ReparseData:TReparseGuidDataBuffer):Bool Func NtfsGetReparseTag( const Path :Str; var Tag : DWORD) :Bool Func NtfsReparsePointsSupported( const Volume :Str) :Bool Func NtfsFileHasReparsePoint( const Path :Str) :Bool Func NtfsIsFolderMountPoint( const Path :Str) :Bool Func NtfsMountDeviceAsDrive( const Device :Str; Drive : Char):Boolean Func NtfsMountVolume(const Volume:Char; const MountPoint:str):Bool AddTypeS('TOpLock', '( olExclusive, olReadOnly, olBatch, olFilter ) Func NtfsOpLockAckClosePending(Handle:THandle;Overlapped:TOverlapped):boolean Func NtfsOpLockBreakAckNo2(Handle:THandle;Overlapped:TOverlapped):Bool Func NtfsOpLockBreakAcknowledge(Handl:THandle;Overlapped:TOverlapped):Boolean Func NtfsOpLockBreakNotify(Handle:THandle;Overlapped:TOverlapped) :Bool Func NtfsRequestOpLock(Handle:THandle;Kind:TOpLock;Overlapped:TOverlapped): Bool Func NtfsCreateJunctionPoint( const Source, Destination :Str) :Bool Func NtfsDeleteJunctionPoint( const Source :Str) :Bool Func NtfsGetJunctionPointDestination(const Source:Str;var Destination:str):Bool AddTypeS('TStreamId','( siInvalid, siStandard, siExtendedAttribute, siSec' +'urity, siAlternate,siHardLink,siProperty,siObjectIdentifier,siReparsePoints,siSparseFile ) AddTypeS('TStreamIds', 'set of TStreamId AddTypeS('TInternalFindStreamData', 'record FileHandle : THandle; Context ' +': ___Pointer; StreamIds : TStreamIds; end AddTypeS('TFindStreamData', 'record internal : TInternalFindStreamData; At' +'tributes : DWORD; StreamID : TStreamId; Name : WideString; Size : Int64; end Func NtfsFindFirstStream(const FileName:str;StreamIds:TStreamIds;var Data:TFindStreamData):Boolean; Func NtfsFindNextStream( var Data : TFindStreamData) :Bool Func NtfsFindStreamClose( var Data : TFindStreamData) :Bool Func NtfsCreateHardLink(const LinkFileName,ExistingFileName:str):Boolean AddTypeS('TNtfsHardLinkInfo','record LinkCount:Card;FileIndex:Int64; end Func NtfsGetHardLinkInfo( const FileName :Str; var Info : TNtfsHardLinkInfo) :Bool Func NtfsFindHardLinks(const Path:str;const FileIndexHigh,FileIndexLow:Card;const List:TStrings):Bool; Func NtfsDeleteHardLinks( const FileName :Str) :Bool Func JclAppInstances : TJclAppInstances; Func JclAppInstances1( const UniqueAppIdGuidStr :Str) : TJclAppInstances; Func ReadMessageCheck( var Message:TMessage;const IgnoredOriginatorWnd:HWND): TJclAppInstDataKind Proc ReadMessageData(const Message:TMessage;var Data:___Pointer;var Size:Int) Proc ReadMessageString( const Message : TMessage; var S :Str) Proc ReadMessageStrings( const Message : TMessage; const Strings : TStrings) (*----------------------------------------------------------------------------*) Proc SIRegister_JclGraphics(CL: TPSPascalCompiler); begin FindClass('TOBJECT'),'EJclGraphicsError TDynDynIntArrayArray', 'array of TDynIntArray TDynPointArray', 'array of TPoint TDynDynPointArrayArray', 'array of TDynPointArray TPointF', 'record X : Single; Y : Single; end TDynPointArrayF', 'array of TPointF TDrawMode2', '( dmOpaque, dmBlend ) TStretchFilter2', '( sfNearest, sfLinear, sfSpline ) TConversionKind', '(ckRed,ckGreen,ckBlue,ckAlpha ckUniformRGB, ckWeightedRGB ) TResamplingFilter','(rfBox,rfTriangle,rfHermite,rfBell,rfSpline,rfLanczos3,rfMitchell ) TMatrix3d', 'record array[0..2,0..2] of extended end TDynDynPointArrayArrayF', 'array of TDynPointArrayF TScanLine', 'array of Int TScanLines', 'array of TScanLine TColorChannel', '( ccRed, ccGreen, ccBlue, ccAlpha ) TGradientDirection', '( gdVertical, gdHorizontal ) TPolyFillMode', '( fmAlternate, fmWinding ) TJclRegionCombineOperator', '( coAnd, coDiff, coOr, coXor ) TJclRegionBitmapMode', '( rmInclude, rmExclude ) TJclRegionKind', '( rkNull, rkSimple, rkComplex, rkError ) SIRegister_TJclDesktopCanvas(CL); FindClass('TOBJECT'),'TJclRegion SIRegister_TJclRegionInfo(CL); SIRegister_TJclRegion(CL); SIRegister_TJclThreadPersistent(CL); SIRegister_TJclCustomMap(CL); SIRegister_TJclBitmap32(CL); SIRegister_TJclByteMap(CL); SIRegister_TJclTransformation(CL); SIRegister_TJclLinearTransformation(CL); Proc Stretch(NewWidth,NewHeight:Card;Filter:TResamplingFilter;Radius:Single;Source:TGraphic;Target:TBitmap); Proc Stretch1(NewWidth,NewHeight:Card;Filter:TResamplingFilter;Radius:Single;Bitmap:TBitmap); Proc DrawBitmap( DC : HDC; Bitmap : HBitMap; X, Y, Width, Height : Int) Func GetAntialiasedBitmap( const Bitmap : TBitmap) : TBitmap Proc BitmapToJPeg( const FileName :Str) Proc JPegToBitmap( const FileName :Str) Func ExtractIconCount( const FileName :Str) : Int Func BitmapToIconJ( Bitmap : HBITMAP; cx, cy : Int) : HICON Func IconToBitmapJ( Icon : HICON) : HBITMAP Proc BlockTransfer(Dst:TJclBitmap32;DstX:Int;DstY:Int;Src:TJclBitmap32;SrcRect:TRect;CombineOp:TDrawMode) Proc StretchTransfer(Dst:TJclBitmap32;DstRect:TRect;Src:TJclBitmap32;SrcRect:TRect;StretchFilter:TStretchFilter; CombineOp:TDrawMode) Proc Transform( Dst, Src : TJclBitmap32; SrcRect : TRect; Transformation : TJclTransformation) Proc SetBorderTransparent( ABitmap : TJclBitmap32; ARect : TRect) Func FillGradient(DC:HDC;ARect:TRect;ColorCnt:Int;StartColor,EndColor:TColor;ADirection:TGradientDirection):Bool; Func CreateRegionFromBitmap(Bitmap:TBitmap;RegionColor:TColor;RegionBitmapMode:TJclRegionBitmapMode): HRGN Proc ScreenShot(bm:TBitmap; Left, Top, Width, Height : Int; Window : HWND); Proc ScreenShot1( bm : TBitmap); Proc PolyLineTS(Bitmap TJclBitmap32;const Points:TDynPointArray;Color: TColor32) Proc PolyLineAS( Bitmap : TJclBitmap32; const Points : TDynPointArray; Color : TColor32) Proc PolyLineFS( Bitmap : TJclBitmap32; const Points : TDynPointArrayF; Color : TColor32) Proc PolygonTS( Bitmap : TJclBitmap32; const Points : TDynPointArray; Color : TColor32) Proc PolygonAS( Bitmap : TJclBitmap32; const Points : TDynPointArray; Color : TColor32) Proc PolygonFS(Bitmap:TJclBitmap32;const Points:TDynPointArrayF;Color: TColor32) Proc PolyPolygonTS(Bitm:TJclBitmap32;const Points:TDynDynPointArrayArray;Color:TColor32); Proc PolyPolygonAS(Bitm:TJclBitmap32;const Points:TDynDynPointArrayArray;Color:TColor32); Proc PolyPolygonFS(Bitmap:TJclBitmap32;const Points:TDynDynPointArrayArrayF;Colr:TColr32); Proc AlphaToGrayscale( Dst, Src : TJclBitmap32) Proc IntensityToAlpha( Dst, Src : TJclBitmap32) Proc Invert( Dst, Src : TJclBitmap32) Proc InvertRGB( Dst, Src : TJclBitmap32) Proc ColorToGrayscale( Dst, Src : TJclBitmap32) Proc ApplyLUT( Dst, Src : TJclBitmap32; const LUT : TLUT8) Proc SetGamma( Gamma : Single) end; (*----------------------------------------------------------------------------*) Proc SIRegister_JclSynch(CL: TPSPascalCompiler); begin Func LockedAdd( var Target : Int; Value : Int) : Int Func LockedCompareExchange( var Target : Int; Exch, Comp : Int) : Int; Func LockedCompareExchange1(var Target: ___Pointer;Exch,Comp:___Pointer): Pointer; Func LockedDec( var Target : Int) : Int Func LockedExchange( var Target : Int; Value : Int) : Int Func LockedExchangeAdd( var Target : Int; Value : Int) : Int Func LockedExchangeDec( var Target : Int) : Int Func LockedExchangeInc( var Target : Int) : Int Func LockedExchangeSub( var Target : Int; Value : Int) : Int Func LockedInc( var Target : Int) : Int Func LockedSub( var Target : Int; Value : Int) : Int TJclWaitResult', '( wrAbandoned, wrError, wrIoCompletion, wrSignaled, wrTimeout ) SIRegister_TJclDispatcherObject(CL); Func WaitForMultipleObjects(const Objects:array of TJclDispatcherObject;WaitAll:Bool;TimeOut:Cardin):Card; Func WaitAlertableForMultipleObjects(const Objects:array of TJclDispatcherObject;WaitAll:Bool;TimeOut:Card):Card SIRegister_TJclCriticalSection(CL); SIRegister_TJclCriticalSectionEx(CL); SIRegister_TJclEvent(CL); SIRegister_TJclWaitableTimer(CL); SIRegister_TJclSemaphore(CL); SIRegister_TJclMutex(CL); POptexSharedInfo', '^TOptexSharedInfo // will not work TOptexSharedInfo,record SpinCount:Int;LockCount:Int;ThreadId:Longword;RecursionCount:Int;end SIRegister_TJclOptex(CL); TMrewPreferred', '( mpReaders, mpWriters, mpEqual ) TMrewThreadInfo','record ThreadId:Longword;RecursionCount:Int;Reader:Bool; end TMrewThreadInfoArray', 'array of TMrewThreadInfo SIRegister_TJclMultiReadExclusiveWrite(CL); PMetSectSharedInfo', '^TMetSectSharedInfo // will not work TMetSectSharedInfo', 'record Initialized : LongBool; SpinLock : ' +'Longint; ThreadsWaiting : Longint; AvailableCount : Longint; MaximumCount : Longint; end PMeteredSection', '^TMeteredSection // will not work TMeteredSection', 'record Event:THandle; FileMap:THandle; SharedInfo:PMetSectSharedInfo; end SIRegister_TJclMeteredSection(CL); TEventInfo', 'record EventType : Longint; Signaled : LongBool; end TMutexInfo', 'record SignalState:Longint; Owned:Boolean; Abandoned:Bool; end TSemaphoreCounts', 'record CurrentCount: Longint; MaximumCount: Longint; end TTimerInfo', 'record Remaining : TLargeInt; Signaled : LongBool; end Func QueryCriticalSection(CS TJclCriticalSection;var Info:TRTLCriticalSection):Boolean Func QueryEvent( Handle : THandle; var Info : TEventInfo) :Bool Func QueryMutex( Handle : THandle; var Info : TMutexInfo) :Bool Func QuerySemaphore( Handle : THandle; var Info : TSemaphoreCounts) :Bool Func QueryTimer( Handle : THandle; var Info : TTimerInfo) :Bool FindClass('TOBJECT'),'EJclWin32HandleObjectError FindClass('TOBJECT'),'EJclDispatcherObjectError FindClass('TOBJECT'),'EJclCriticalSectionError FindClass('TOBJECT'),'EJclEventError FindClass('TOBJECT'),'EJclWaitableTimerError FindClass('TOBJECT'),'EJclSemaphoreError FindClass('TOBJECT'),'EJclMutexError FindClass('TOBJECT'),'EJclMeteredSectionError end; //***************************unit uPSI_mORMotReport; Proc SetCurrentPrinterAsDefault Func CurrentPrinterName :Str Func mCurrentPrinterPaperSize :Str Proc UseDefaultPrinter Proc SIRegisterTSTREAM(Cl: TPSPascalCompiler); begin with FindClass('TOBJECT'), 'TStream') do begin IsAbstract := True; //RegisterMethod('Func Read( var Buffer, Count : Longint) : Longint // RegisterMethod('Func Write( const Buffer, Count : Longint) : Longint Func Read(Buffer:str;Count:LongInt):LongInt Func Write(Buffer:str;Count:LongInt):LongInt Func ReadString(Buffer:str;Count:LongInt):LongInt //FileStream Func WriteString(Buffer:str;Count:LongInt):LongInt Func ReadInt(Buffer:Int;Count:LongInt):LongInt Func WriteInt(Buffer:Int;Count:LongInt):LongInt Func ReadByteArray(Buffer:TByteArray;Count:LongInt):LongInt; Func WriteByteArray(Buffer:TByteArray;Count:LongInt):LongInt; Proc ReadAB(Buffer: TByteArray;Count:LongInt) Proc WriteAB(Buffer: TByteArray;Count:LongInt) Proc ReadABD(Buffer: TByteDynArray;Count:LongInt) Proc WriteABD(Buffer: TByteDynArray;Count:LongInt) Proc ReadAC(Buffer: TCharArray;Count:LongInt) Proc WriteAC(Buffer: TCharArray;Count:LongInt) Proc ReadACD(Buffer: TCharDynArray;Count:LongInt) Proc WriteACD(Buffer: TCharDynArray;Count:LongInt) Func Seek(Offset:LongInt;Origin:Word):LongInt Proc ReadBuffer(Buffer:str;Count:LongInt) Proc WriteBuffer(Buffer:str;Count:LongInt) Proc ReadBufferInt(Buffer:Int;Count:LongInt); Proc WriteBufferInt(Buffer:Int;Count:LongInt); Proc ReadBufferFloat(Buffer:Double;Count:LongInt); Proc WriteBufferFloat(Buffer:Double;Count:LongInt); Proc ReadBufferAB(Buffer: TByteArray;Count:LongInt) Proc WriteBufferAB(Buffer: TByteArray;Count:LongInt) Proc ReadBufferABD(Buffer: TByteDynArray;Count:LongInt) Proc WriteBufferABD(Buffer: TByteDynArray;Count:LongInt) Proc ReadBufferAW(Buffer: TWordArray;Count:LongInt) Proc WriteBufferAW(Buffer: TWordArray;Count:LongInt) Proc ReadBufferAWD(Buffer: TWordDynArray;Count:LongInt) Proc WriteBufferAWD(Buffer: TWordDynArray;Count:LongInt) Proc ReadBufferAW(Buffer: TWordArray;Count:LongInt) Proc WriteBufferAW(Buffer: TWordArray;Count:LongInt) Proc ReadBufferAC(Buffer: TCharArray;Count:LongInt) Proc WriteBufferAC(Buffer: TCharArray;Count:LongInt) Proc ReadBufferACD(Buffer: TCharDynArray;Count:LongInt) Proc WriteBufferACD(Buffer: TCharDynArray;Count:LongInt) Proc ReadBufferP(Buffer: PChar;Count:LongInt) Proc WriteBufferP(Buffer: PChar;Count:LongInt) Proc ReadBufferO(Buffer: TObject;Count:LongInt); Proc WriteBufferO(Buffer: TObject;Count:LongInt); //READBUFFERAC Func InstanceSize: Longint Proc FixupResourceHeader( FixupInfo : Int) Proc ReadResHeader {$IFDEF DELPHI4UP} Func CopyFrom(Source:TStream;Count:Int64):LongInt {$ELSE} Func CopyFrom(Source:TStream;Count:Int):LongInt {$ENDIF} RegisterProperty('Position', 'LongInt', iptrw); RegisterProperty('Size', 'LongInt', iptrw); end; end; { ****************************************************************** Unit DMATH - Interface for DMATH.DLL ****************************************************************** } // see more docs/dmath_manual.pdf Func InitEval : Int Proc SetVariable( VarName : Char; Value : Float) Proc SetFunction( FuncName :Str; Wrapper : TWrapper) Func Eval( ExpressionString :Str) : Float unit dmath; //types are in built, others are external in DLL interface {$IFDEF DELPHI} uses StdCtrls, Graphics; {$ENDIF} { ------------------------------------------------------------------ Types and constants ------------------------------------------------------------------ } {$i types.inc} { ------------------------------------------------------------------ Error handling ------------------------------------------------------------------ } Proc SetErrCode(ErrCode : Int); external 'dmath'; { Sets the error code } Func DefaultVal(ErrCode : Int; DefVal : Float) : Float; external 'dmath'; { Sets error code and default Func value } Func MathErr : Int; external 'dmath'; { Returns the error code } { ------------------------------------------------------------------ Dynamic arrays ------------------------------------------------------------------ } Proc SetAutoInit(AutoInit :Bool); external 'dmath'; { Sets the auto-initialization of arrays } Proc DimVector(var V : TVector; Ub : Int); external 'dmath'; { Creates floating point vector V[0..Ub] } Proc DimIntVector(var V : TIntVector; Ub : Int); external 'dmath'; { Creates Int vector V[0..Ub] } Proc DimCompVector(var V : TCompVector; Ub : Int);external 'dmath'; { Creates complex vector V[0..Ub] } Proc DimBoolVector(var V : TBoolVector; Ub : Int);external 'dmath'; { Creates boolean vector V[0..Ub] } Proc DimStrVector(var V : TStrVector; Ub : Int); external 'dmath'; { Creates string vector V[0..Ub] } Proc DimMatrix(var A : TMatrix; Ub1, Ub2 : Int); external 'dmath'; { Creates floating point matrix A[0..Ub1, 0..Ub2] } Proc DimIntMatrix(var A : TIntMatrix; Ub1, Ub2 : Int); external 'dmath'; { Creates Int matrix A[0..Ub1, 0..Ub2] } Proc DimCompMatrix(var A : TCompMatrix; Ub1, Ub2 : Int);external 'dmath'; { Creates complex matrix A[0..Ub1, 0..Ub2] } Proc DimBoolMatrix(var A : TBoolMatrix; Ub1, Ub2 : Int);external 'dmath'; { Creates boolean matrix A[0..Ub1, 0..Ub2] } Proc DimStrMatrix(var A : TStrMatrix; Ub1, Ub2 : Int); external 'dmath'; { Creates string matrix A[0..Ub1, 0..Ub2] } { ------------------------------------------------------------------ Minimum, maximum, sign and exchange ------------------------------------------------------------------ } Func FMin(X, Y : Float) : Float; external 'dmath'; { Minimum of 2 reals } Func FMax(X, Y : Float) : Float; external 'dmath'; { Maximum of 2 reals } Func IMin(X, Y : Int) : Int; external 'dmath'; { Minimum of 2 Ints } Func IMax(X, Y : Int) : Int; external 'dmath'; { Maximum of 2 Ints } Func Sgn(X : Float) : Int; external 'dmath'; { Sign (returns 1 if X = 0) } Func Sgn0(X : Float) : Int; external 'dmath'; { Sign (returns 0 if X = 0) } Func DSgn(A, B : Float) : Float; external 'dmath'; { Sgn(B) * |A| } Proc FSwap(var X, Y : Float); external 'dmath'; { Exchange 2 reals } Proc ISwap(var X, Y : Int); external 'dmath'; { Exchange 2 Ints } { ------------------------------------------------------------------ Rounding functions ------------------------------------------------------------------ } Func RoundN(X : Float; N : Int) : Float; external 'dmath'; { Rounds X to N decimal places } Func Ceil(X : Float) : Int; external 'dmath'; { Ceiling Func } Func Floor(X : Float) : Int; external 'dmath'; { Floor Func } { ------------------------------------------------------------------ Logarithms, exponentials and power ------------------------------------------------------------------ } Func Expo(X : Float) : Float; external 'dmath'; { Exponential } Func Exp2(X : Float) : Float; external 'dmath'; { 2^X } Func Exp10(X : Float) : Float; external 'dmath'; { 10^X } Func Log(X : Float) : Float; external 'dmath'; { Natural log } Func Log2(X : Float) : Float; external 'dmath'; { Log, base 2 } Func Log10(X : Float) : Float; external 'dmath'; { Decimal log } Func LogA(X, A : Float) : Float; external 'dmath'; { Log, base A } Func IntPower(X : Float; N : Int) : Float; external 'dmath'; { X^N } Func Power(X, Y : Float) : Float; external 'dmath'; { X^Y, X >= 0 } { ------------------------------------------------------------------ Trigonometric functions ------------------------------------------------------------------ } Func Pythag(X, Y : Float) : Float; external 'dmath'; { Sqrt(X^2 + Y^2) } Func FixAngle(Theta : Float) : Float; external 'dmath'; { Set Theta in -Pi..Pi } Func Tan(X : Float) : Float; external 'dmath'; { Tangent } Func ArcSin(X : Float) : Float; external 'dmath'; { Arc sinus } Func ArcCos(X : Float) : Float; external 'dmath'; { Arc cosinus } Func ArcTan2(Y, X : Float) : Float; external 'dmath'; { Angle (Ox, OM) with M(X,Y) } { ------------------------------------------------------------------ Hyperbolic functions ------------------------------------------------------------------ } Func Sinh(X : Float) : Float; external 'dmath'; { Hyperbolic sine } Func Cosh(X : Float) : Float; external 'dmath'; { Hyperbolic cosine } Func Tanh(X : Float) : Float; external 'dmath'; { Hyperbolic tangent } Func ArcSinh(X : Float) : Float; external 'dmath'; { Inverse hyperbolic sine } Func ArcCosh(X : Float) : Float; external 'dmath'; { Inverse hyperbolic cosine } Func ArcTanh(X : Float) : Float; external 'dmath'; { Inverse hyperbolic tangent } Proc SinhCosh(X : Float; var SinhX, CoshX : Float); external 'dmath'; { Sinh & Cosh } { ------------------------------------------------------------------ Gamma Func and related functions ------------------------------------------------------------------ } Func Fact(N : Int) : Float; external 'dmath'; { Factorial } Func SgnGamma(X : Float) : Int; external 'dmath'; { Sign of Gamma Func } Func Gamma(X : Float) : Float; external 'dmath'; { Gamma Func } Func LnGamma(X : Float) : Float; external 'dmath'; { Logarithm of Gamma Func } Func Stirling(X : Float) : Float; external 'dmath'; { Stirling's formula for the Gamma Func } Func StirLog(X : Float) : Float; external 'dmath'; { Approximate Ln(Gamma) by Stirling's formula, for X >= 13 } Func DiGamma(X : Float ) : Float; external 'dmath'; { Digamma Func } Func TriGamma(X : Float ) : Float; external 'dmath'; { Trigamma Func } Func IGamma(A, X : Float) : Float; external 'dmath'; { Incomplete Gamma function} Func JGamma(A, X : Float) : Float; external 'dmath'; { Complement of incomplete Gamma Func } Func InvGamma(A, P : Float) : Float; external 'dmath'; { Inverse of incomplete Gamma Func } Func Erf(X : Float) : Float; external 'dmath'; { Error Func } Func Erfc(X : Float) : Float; external 'dmath'; { Complement of error Func } { ------------------------------------------------------------------ Beta Func and related functions ------------------------------------------------------------------ } Func Beta(X, Y : Float) : Float; external 'dmath'; { Beta Func } Func IBeta(A, B, X : Float) : Float; external 'dmath'; { Incomplete Beta Func } Func InvBeta(A, B, Y : Float) : Float; external 'dmath'; { Inverse of incomplete Beta Func } { ------------------------------------------------------------------ Lambert's function ------------------------------------------------------------------ } Func LambertW(X : Float; UBranch, Offset :Bool) : Float; external 'dmath'; ------------------------------------------------------------------ Binomial distribution ------------------------------------------------------------------ } Func Binomial(N, K : Int) : Float; external 'dmath'; { Binomial coefficient C(N,K) } Func PBinom(N : Int; P : Float; K : Int) : Float; external 'dmath'; { Probability of binomial distribution } Func FBinom(N : Int; P : Float; K : Int) : Float; external 'dmath'; { Cumulative probability for binomial distrib. } { ------------------------------------------------------------------ Poisson distribution ------------------------------------------------------------------ } Func PPoisson(Mu : Float; K : Int) : Float; external 'dmath'; { Probability of Poisson distribution } Func FPoisson(Mu : Float; K : Int) : Float; external 'dmath'; { Cumulative probability for Poisson distrib. } { ------------------------------------------------------------------ Exponential distribution ------------------------------------------------------------------ } Func DExpo(A, X : Float) : Float; external 'dmath'; { Density of exponential distribution with parameter A } Func FExpo(A, X : Float) : Float; external 'dmath'; { Cumulative probability Func for exponential dist. with parameter A } { ------------------------------------------------------------------ Standard normal distribution ------------------------------------------------------------------ } Func DNorm(X : Float) : Float; external 'dmath'; { Density of standard normal distribution } Func FNorm(X : Float) : Float; external 'dmath'; { Cumulative probability for standard normal distrib. } Func PNorm(X : Float) : Float; external 'dmath'; { Prob(|U| > X) for standard normal distrib. } Func InvNorm(P : Float) : Float; external 'dmath'; { Inverse of standard normal distribution } { ------------------------------------------------------------------ Student's distribution ------------------------------------------------------------------ } Func DStudent(Nu : Int; X : Float) : Float; external 'dmath'; { Density of Student distribution with Nu d.o.f. } Func FStudent(Nu : Int; X : Float) : Float; external 'dmath'; { Cumulative probability for Student distrib. with Nu d.o.f. } Func PStudent(Nu : Int; X : Float) : Float; external 'dmath'; { Prob(|t| > X) for Student distrib. with Nu d.o.f. } Func InvStudent(Nu : Int; P : Float) : Float; external 'dmath'; { Inverse of Student's t-distribution Func } { ------------------------------------------------------------------ Khi-2 distribution ------------------------------------------------------------------ } Func DKhi2(Nu : Int; X : Float) : Float; external 'dmath'; { Density of Khi-2 distribution with Nu d.o.f. } Func FKhi2(Nu : Int; X : Float) : Float; external 'dmath'; { Cumulative prob. for Khi-2 distrib. with Nu d.o.f. } Func PKhi2(Nu : Int; X : Float) : Float; external 'dmath'; { Prob(Khi2 > X) for Khi-2 distrib. with Nu d.o.f. } Func InvKhi2(Nu : Int; P : Float) : Float; external 'dmath'; { Inverse of Khi-2 distribution Func } { ------------------------------------------------------------------ Fisher-Snedecor distribution ------------------------------------------------------------------ } Func DSnedecor(Nu1, Nu2 : Int; X : Float) : Float; external 'dmath'; { Density of Fisher-Snedecor distribution with Nu1 and Nu2 d.o.f. } Func FSnedecor(Nu1, Nu2 : Int; X : Float) : Float; external 'dmath'; { Cumulative prob. for Fisher-Snedecor distrib. with Nu1 and Nu2 d.o.f. } Func PSnedecor(Nu1, Nu2 : Int; X : Float) : Float; external 'dmath'; { Prob(F > X) for Fisher-Snedecor distrib. with Nu1 and Nu2 d.o.f. } Func InvSnedecor(Nu1, Nu2 : Int; P : Float) : Float; external 'dmath'; { Inverse of Snedecor's F-distribution Func } { ------------------------------------------------------------------ Beta distribution ------------------------------------------------------------------ } Func DBeta(A, B, X : Float) : Float; external 'dmath'; { Density of Beta distribution with parameters A and B } Func FBeta(A, B, X : Float) : Float; external 'dmath'; { Cumulative probability for Beta distrib. with param. A and B } { ------------------------------------------------------------------ Gamma distribution ------------------------------------------------------------------ } Func DGamma(A, B, X : Float) : Float; external 'dmath'; { Density of Gamma distribution with parameters A and B } Func FGamma(A, B, X : Float) : Float; external 'dmath'; { Cumulative probability for Gamma distrib. with param. A and B } { ------------------------------------------------------------------ Expression evaluation ------------------------------------------------------------------ } Func InitEval : Int; external 'dmath'; { Initializes built-in functions and returns their number } Func Eval(ExpressionString :Str) : Float; external 'dmath'; { Evaluates an expression at run-time } Proc SetVariable(VarName : Char; Value : Float); external 'dmath'; { Assigns a value to a variable } Proc SetFunction(FuncName :Str; Wrapper : TWrapper); external 'dmath'; { Adds a Func to the parser } { ------------------------------------------------------------------ Matrices and linear equations ------------------------------------------------------------------ } Proc GaussJordan(A : TMatrix; Lb, Ub1, Ub2 : Int; var Det : Float); external 'dmath'; { Transforms a matrix according to the Gauss-Jordan method } Proc LinEq(A : TMatrix; B : TVector; Lb, Ub : Int; var Det : Float); external 'dmath'; { Solves a linear system according to the Gauss-Jordan method } Proc Cholesky(A, L : TMatrix; Lb, Ub : Int); external 'dmath'; { Cholesky factorization of a positive definite symmetric matrix } Proc LU_Decomp(A : TMatrix; Lb, Ub : Int); external 'dmath'; { LU decomposition } Proc LU_Solve(A : TMatrix; B : TVector; Lb, Ub : Int; X : TVector); external 'dmath'; { Solution of linear system from LU decomposition } Proc QR_Decomp(A : TMatrix; Lb, Ub1, Ub2 : Int; R : TMatrix); external 'dmath'; { QR decomposition } Proc QR_Solve(Q, R : TMatrix; B : TVector; Lb, Ub1, Ub2 : Int; X : TVector); external 'dmath'; { Solution of linear system from QR decomposition } Proc SV_Decomp(A : TMatrix; Lb, Ub1, Ub2 : Int; S : TVector; V : TMatrix); external 'dmath'; { Singular value decomposition } Proc SV_SetZero(S : TVector; Lb, Ub : Int; Tol : Float); external 'dmath'; { Set lowest singular values to zero } Proc SV_Solve(U : TMatrix; S : TVector; V : TMatrix; B : TVector; Lb, Ub1, Ub2 : Int; X : TVector); external 'dmath'; { Solution of linear system from SVD } Proc SV_Approx(U : TMatrix; S : TVector; V : TMatrix; Lb, Ub1, Ub2 : Int; A : TMatrix); external 'dmath'; { Matrix approximation from SVD } Proc EigenVals(A : TMatrix; Lb, Ub : Int; Lambda : TCompVector); external 'dmath'; { Eigenvalues of a general square matrix } Proc EigenVect(A : TMatrix; Lb, Ub : Int; Lambda : TCompVector; V : TMatrix); external 'dmath'; { Eigenvalues and eigenvectors of a general square matrix } Proc EigenSym(A : TMatrix; Lb, Ub : Int; Lambda : TVector; V : TMatrix); external 'dmath'; { Eigenvalues and eigenvectors of a symmetric matrix (SVD method) } Proc Jacobi(A : TMatrix; Lb, Ub, MaxIter : Int; Tol : Float; Lambda : TVector; V : TMatrix); external 'dmath'; { Eigenvalues and eigenvectors of a symmetric matrix (Jacobi method) } { ------------------------------------------------------------------ Optimization ------------------------------------------------------------------ } Proc MinBrack(Func : TFunc; var A, B, C, Fa, Fb, Fc : Float); external 'dmath'; { Brackets a minimum of a Func } Proc GoldSearch(Func : TFunc; A, B : Float; MaxIter : Int; Tol : Float; var Xmin, Ymin : Float); external 'dmath'; { Minimization of a Func of one variable (golden search) } Proc LinMin(Func : TFuncNVar; X, DeltaX : TVector; Lb, Ub : Int; var R : Float; MaxIter : Int; Tol : Float; var F_min : Float); external 'dmath'; { Minimization of a Func of several variables along a line } Proc Newton(Func : TFuncNVar; HessGrad : THessGrad; X : TVector; Lb, Ub : Int; MaxIter : Int; Tol : Float; var F_min : Float; G : TVector; H_inv : TMatrix; var Det : Float); external 'dmath'; { Minimization of a Func of several variables (Newton's method) } Proc SaveNewton(FileName :Str); external 'dmath'; { Save Newton iterations in a file } Proc Marquardt(Func : TFuncNVar; HessGrad : THessGrad; X : TVector; Lb, Ub : Int; MaxIter : Int; Tol : Float; var F_min : Float; G : TVector; H_inv : TMatrix; var Det : Float); external 'dmath'; { Minimization of a Func of several variables (Marquardt's method) } Proc SaveMarquardt(FileName :Str); external 'dmath'; { Save Marquardt iterations in a file } Proc BFGS(Func : TFuncNVar; Gradient : TGradient; X : TVector; Lb, Ub : Int; MaxIter : Int; Tol : Float; var F_min : Float; G : TVector; H_inv : TMatrix); external 'dmath'; { Minimization of a Func of several variables (BFGS method) } Proc SaveBFGS(FileName :Str); external 'dmath'; { Save BFGS iterations in a file } Proc Simplex(Func : TFuncNVar; X : TVector; Lb, Ub : Int; MaxIter : Int; Tol : Float; var F_min : Float); external 'dmath'; { Minimization of a Func of several variables (Simplex) } Proc SaveSimplex(FileName :Str); external 'dmath'; { Save Simplex iterations in a file } { ------------------------------------------------------------------ Nonlinear equations ------------------------------------------------------------------ } Proc RootBrack(Func : TFunc; var X, Y, FX, FY : Float); external 'dmath'; { Brackets a root of Func Func between X and Y } Proc Bisect(Func : TFunc; var X, Y : Float; MaxIter : Int; Tol : Float; var F : Float); external 'dmath'; { Bisection method } Proc Secant(Func : TFunc; var X, Y : Float; MaxIter : Int; Tol : Float; var F : Float); external 'dmath'; { Secant method } Proc NewtEq(Func, Deriv : TFunc; var X : Float; MaxIter : Int; Tol : Float; var F : Float); external 'dmath'; { Newton-Raphson method for a single nonlinear equation } Proc NewtEqs(Equations : TEquations; Jacobian : TJacobian; X, F : TVector; Lb, Ub : Int; MaxIter : Int; Tol : Float); external 'dmath'; { Newton-Raphson method for a system of nonlinear equations } Proc Broyden(Equations : TEquations; X, F : TVector; Lb, Ub : Int; MaxIter : Int; Tol : Float); external 'dmath'; { Broyden's method for a system of nonlinear equations } { ------------------------------------------------------------------ Polynomials and rational fractions ------------------------------------------------------------------ } Func Poly(X : Float; Coef : TVector; Deg : Int) : Float; external 'dmath'; { Evaluates a polynomial } Func RFrac(X : Float; Coef : TVector; Deg1, Deg2 : Int) : Float; external 'dmath'; { Evaluates a rational fraction } Func RootPol1(A, B : Float; var X : Float) : Int; external 'dmath'; { Solves the linear equation A + B * X = 0 } Func RootPol2(Coef : TVector; Z : TCompVector) : Int; external 'dmath'; { Solves a quadratic equation } Func RootPol3(Coef : TVector; Z : TCompVector) : Int; external 'dmath'; { Solves a cubic equation } Func RootPol4(Coef : TVector; Z : TCompVector) : Int; external 'dmath'; { Solves a quartic equation } Func RootPol(Coef : TVector; Deg : Int; Z : TCompVector) : Int; external 'dmath'; { Solves a polynomial equation } Func SetRealRoots(Deg : Int; Z : TCompVector; Tol : Float) : Int; external 'dmath'; { Set the imaginary part of a root to zero } Proc SortRoots(Deg : Int; Z : TCompVector); external 'dmath'; { Sorts the roots of a polynomial } { ------------------------------------------------------------------ Numerical integration and differential equations ------------------------------------------------------------------ } Func TrapInt(X, Y : TVector; N : Int) : Float; external 'dmath'; { Integration by trapezoidal rule } Func GausLeg(Func : TFunc; A, B : Float) : Float; external 'dmath'; { Integral from A to B } Func GausLeg0(Func : TFunc; B : Float) : Float; external 'dmath'; { Integral from 0 to B } Func Convol(Func1, Func2 : TFunc; T : Float) : Float; external 'dmath'; { Convolution product at time T } Proc ConvTrap(Func1,Func2:TFunc; T,Y:TVector; N:Int);external 'dmath'; { Convolution by trapezoidal rule } Proc RKF45(F : TDiffEqs; Neqn : Int; Y, Yp : TVector; var T : Float; Tout, RelErr, AbsErr : Float; var Flag : Int); external 'dmath'; { Integration of a system of differential equations } { ------------------------------------------------------------------ Fast Fourier Transform ------------------------------------------------------------------ } Proc FFT(NumSamples : Int; InArray, OutArray : TCompVector); external 'dmath'; { Fast Fourier Transform } Proc IFFT(NumSamples : Int; InArray, OutArray : TCompVector); external 'dmath'; { Inverse Fast Fourier Transform } Proc FFT_Int(NumSamples : Int; RealIn, ImagIn : TIntVector; OutArray : TCompVector); external 'dmath'; { Fast Fourier Transform for Int data } Proc FFT_Int_Cleanup; external 'dmath'; { Clear memory after a call to FFT_Int } Proc CalcFrequency(NumSamples, FrequencyIndex : Int; InArray : TCompVector; var FFT : Complex); external 'dmath'; { Direct computation of Fourier transform } { ------------------------------------------------------------------ Random numbers ------------------------------------------------------------------ } Proc SetRNG(RNG : RNG_Type); external 'dmath'; { Select generator } Proc InitGen(Seed : RNG_IntType); external 'dmath'; { Initialize generator } Func IRanGen : RNG_IntType; external 'dmath'; { 32-bit random Int in [-2^31 .. 2^31 - 1] } Func IRanGen31 : RNG_IntType; external 'dmath'; { 31-bit random Int in [0 .. 2^31 - 1] } Func RanGen1 : Float; external 'dmath'; { 32-bit random real in [0,1] } Func RanGen2 : Float; external 'dmath'; { 32-bit random real in [0,1) } Func RanGen3 : Float; external 'dmath'; { 32-bit random real in (0,1) } Func RanGen53 : Float; external 'dmath'; { 53-bit random real in [0,1) } Proc InitMWC(Seed : RNG_IntType); external 'dmath'; { Initializes the 'Multiply with carry' random number generator } Func IRanMWC : RNG_IntType; external 'dmath'; { Returns a 32 bit random number in [-2^31 ; 2^31-1] } Proc InitMT(Seed : RNG_IntType); external 'dmath'; { Initializes Mersenne Twister generator with a seed } Proc InitMTbyArray(InitKey : array of RNG_LongType; KeyLength : Word); external 'dmath'; { Initialize MT generator with an array InitKey[0..(KeyLength - 1)] } Func IRanMT : RNG_IntType; external 'dmath'; { Random Int from MT generator } Proc InitUVAGbyString(KeyPhrase :Str); external 'dmath'; { Initializes the UVAG generator with a string } Proc InitUVAG(Seed : RNG_IntType); external 'dmath'; { Initializes the UVAG generator with an Int } Func IRanUVAG : RNG_IntType; external 'dmath'; { Random Int from UVAG generator } Func RanGaussStd : Float; external 'dmath'; { Random number from standard normal distribution } Func RanGauss(Mu, Sigma : Float) : Float; external 'dmath'; { Random number from normal distrib. with mean Mu and S. D. Sigma } Proc RanMult(M : TVector; L : TMatrix; Lb, Ub : Int; X : TVector); external 'dmath'; { Random vector from multinormal distribution (correlated) } Proc RanMultIndep(M, S : TVector; Lb, Ub : Int; X : TVector); external 'dmath'; { Random vector from multinormal distribution (uncorrelated) } Proc InitMHParams(NCycles, MaxSim, SavedSim : Int); external 'dmath'; { Initializes Metropolis-Hastings parameters } Proc GetMHParams(var NCycles, MaxSim,SavedSim:Int); external 'dmath'; { Returns Metropolis-Hastings parameters } Proc Hastings(Func : TFuncNVar; T : Float; X : TVector; V : TMatrix; Lb, Ub : Int; Xmat : TMatrix; X_min : TVector; var F_min : Float); external 'dmath'; { Simulation of a probability density Func by Metropolis-Hastings } Proc InitSAParams(NT, NS, NCycles : Int; RT : Float); external 'dmath'; { Initializes Simulated Annealing parameters } Proc SA_CreateLogFile(FileName :Str); external 'dmath'; { Initializes log file } Proc SimAnn(Func : TFuncNVar; X, Xmin, Xmax : TVector; Lb, Ub : Int; var F_min : Float); external 'dmath'; { Minimization of a Func of several var. by simulated annealing } Proc InitGAParams(NP, NG : Int; SR, MR, HR : Float); external 'dmath'; { Initializes Genetic Algorithm parameters } Proc GA_CreateLogFile(FileName :Str); external 'dmath'; { Initializes log file } Proc GenAlg(Func : TFuncNVar; X, Xmin, Xmax : TVector; Lb, Ub : Int; var F_min : Float); external 'dmath'; { Minimization of a Func of several var. by genetic algorithm } { ------------------------------------------------------------------ Statistics ------------------------------------------------------------------ } Func Mean(X : TVector; Lb, Ub : Int) : Float; external 'dmath'; { Mean of sample X } Func Min(X : TVector; Lb, Ub : Int) : Float; external 'dmath'; { Minimum of sample X } Func Max(X : TVector; Lb, Ub : Int) : Float; external 'dmath'; { Maximum of sample X } Func Median(X : TVector; Lb, Ub : Int; Sorted :Bool) : Float; external 'dmath'; { Median of sample X } Func StDev(X : TVector; Lb, Ub : Int; M : Float) : Float; external 'dmath'; { Standard deviation estimated from sample X } Func StDevP(X : TVector; Lb, Ub : Int; M : Float) : Float; external 'dmath'; { Standard deviation of population } Func Correl(X, Y : TVector; Lb, Ub : Int) : Float; external 'dmath'; { Correlation coefficient } Func Skewness(X : TVector; Lb, Ub : Int; M,Sigma: Float): Float; external 'dmath'; { Skewness of sample X } Func Kurtosis(X : TVector; Lb, Ub : Int; M,Sigma: Float): Float; external 'dmath'; { Kurtosis of sample X } Proc QSort(X : TVector; Lb, Ub : Int); external 'dmath'; { Quick sort (ascending order) } Proc DQSort(X : TVector; Lb, Ub : Int); external 'dmath'; { Quick sort (descending order) } Proc Interval(X1, X2 : Float; MinDiv, MaxDiv : Int; var Min, Max, Step : Float); external 'dmath'; { Determines an interval for a set of values } Proc AutoScale(X : TVector; Lb, Ub : Int; Scale : TScale; var XMin, XMax, XStep : Float); external 'dmath'; { Finds an appropriate scale for plotting the data in X[Lb..Ub] } Proc StudIndep(N1, N2 : Int; M1, M2, S1, S2 : Float; var T : Float; var DoF : Int); external 'dmath'; { Student t-test for independent samples } Proc StudPaired(X, Y : TVector; Lb, Ub : Int; var T : Float; var DoF : Int); external 'dmath'; { Student t-test for paired samples } Proc AnOVa1(Ns : Int; N : TIntVector; M, S : TVector; var V_f, V_r, F : Float; var DoF_f, DoF_r : Int); external 'dmath'; { One-way analysis of variance } Proc AnOVa2(NA, NB, Nobs : Int; M, S : TMatrix; V, F : TVector; DoF : TIntVector); external 'dmath'; { Two-way analysis of variance } Proc Snedecor(N1, N2 : Int; S1, S2 : Float; var F : Float; var DoF1, DoF2 : Int); external 'dmath'; { Snedecor's F-test (comparison of two variances) } Proc Bartlett(Ns : Int; N : TIntVector; S : TVector; var Khi2 : Float; var DoF : Int); external 'dmath'; { Bartlett's test (comparison of several variances) } Proc Mann_Whitney(N1, N2 : Int; X1, X2 : TVector; var U, Eps : Float); external 'dmath'; { Mann-Whitney test} Proc Wilcoxon(X, Y : TVector; Lb, Ub : Int; var Ndiff : Int; var T, Eps : Float); external 'dmath'; { Wilcoxon test } Proc Kruskal_Wallis(Ns : Int; N : TIntVector; X : TMatrix; var H : Float; var DoF : Int); external 'dmath'; { Kruskal-Wallis test } Proc Khi2_Conform(N_cls : Int; N_estim : Int; Obs : TIntVector; Calc : TVector; var Khi2 : Float; var DoF : Int); external 'dmath'; { Khi-2 test for conformity } Proc Khi2_Indep(N_lin : Int; N_col : Int; Obs : TIntMatrix; var Khi2 : Float; var DoF : Int); external 'dmath'; { Khi-2 test for independence } Proc Woolf_Conform(N_cls : Int; N_estim : Int; Obs : TIntVector; Calc : TVector; var G : Float; var DoF : Int); external 'dmath'; { Woolf's test for conformity } Proc Woolf_Indep(N_lin : Int; N_col : Int; Obs : TIntMatrix; var G : Float; var DoF : Int); external 'dmath'; { Woolf's test for independence } Proc DimStatClassVector(var C : TStatClassVector; Ub : Int); external 'dmath'; { Allocates an array of statistical classes: C[0..Ub] } Proc Distrib(X : TVector; Lb, Ub : Int; A, B, H : Float; C : TStatClassVector); external 'dmath'; { Distributes an array X[Lb..Ub] into statistical classes } { ------------------------------------------------------------------ Linear / polynomial regression ------------------------------------------------------------------ } Proc LinFit(X, Y : TVector; Lb, Ub : Int; B : TVector; V : TMatrix); external 'dmath'; { Linear regression : Y = B(0) + B(1) * X } Proc WLinFit(X, Y, S : TVector; Lb, Ub : Int; B : TVector; V : TMatrix); external 'dmath'; { Weighted linear regression : Y = B(0) + B(1) * X } Proc SVDLinFit(X, Y : TVector; Lb, Ub : Int; SVDTol : Float; B : TVector; V : TMatrix); external 'dmath'; { Unweighted linear regression by singular value decomposition } Proc WSVDLinFit(X, Y, S : TVector; Lb, Ub : Int; SVDTol : Float; B : TVector; V : TMatrix); external 'dmath'; { Weighted linear regression by singular value decomposition } Proc MulFit(X : TMatrix; Y : TVector; Lb, Ub, Nvar : Int; ConsTerm :Bool; B : TVector; V : TMatrix); external 'dmath'; { Multiple linear regression by Gauss-Jordan method } Proc WMulFit(X : TMatrix; Y, S : TVector; Lb, Ub, Nvar : Int; ConsTerm :Bool; B : TVector; V : TMatrix); external 'dmath'; { Weighted multiple linear regression by Gauss-Jordan method } Proc SVDFit(X : TMatrix; Y : TVector; Lb, Ub, Nvar : Int; ConsTerm :Bool; SVDTol : Float; B : TVector; V : TMatrix); external 'dmath'; { Multiple linear regression by singular value decomposition } Proc WSVDFit(X : TMatrix; Y, S : TVector; Lb, Ub, Nvar : Int; ConsTerm :Bool; SVDTol : Float; B : TVector; V : TMatrix); external 'dmath'; { Weighted multiple linear regression by singular value decomposition } Proc PolFit(X, Y : TVector; Lb, Ub, Deg : Int; B : TVector; V : TMatrix); external 'dmath'; { Polynomial regression by Gauss-Jordan method } Proc WPolFit(X, Y, S : TVector; Lb, Ub, Deg : Int; B : TVector; V : TMatrix); external 'dmath'; { Weighted polynomial regression by Gauss-Jordan method } Proc SVDPolFit(X, Y : TVector; Lb, Ub, Deg : Int; SVDTol : Float; B : TVector; V : TMatrix); external 'dmath'; { Unweighted polynomial regression by singular value decomposition } Proc WSVDPolFit(X, Y, S : TVector; Lb, Ub, Deg : Int; SVDTol : Float; B : TVector; V : TMatrix); external 'dmath'; { Weighted polynomial regression by singular value decomposition } Proc RegTest(Y, Ycalc : TVector; LbY, UbY : Int; V : TMatrix; LbV, UbV : Int; var Test : TRegTest); external 'dmath'; { Test of unweighted regression } Proc WRegTest(Y, Ycalc, S : TVector; LbY, UbY : Int; V : TMatrix; LbV, UbV : Int; var Test : TRegTest); external 'dmath'; { Test of weighted regression } { ------------------------------------------------------------------ Nonlinear regression ------------------------------------------------------------------ } Proc SetOptAlgo(Algo : TOptAlgo); external 'dmath'; { Sets the optimization algorithm for nonlinear regression } Func GetOptAlgo : TOptAlgo; external 'dmath'; { Returns the optimization algorithm } Proc SetMaxParam(N : Byte); external 'dmath'; { Sets the maximum number of regression parameters for nonlinear regression } Func GetMaxParam : Byte; external 'dmath'; { Returns the maximum number of regression parameters for nonlinear regression } Proc SetParamBounds(I : Byte; ParamMin, ParamMax : Float); external 'dmath'; { Sets the bounds on the I-th regression parameter } Proc GetParamBounds(I : Byte; var ParamMin,ParamMax:Float); external 'dmath'; { Returns the bounds on the I-th regression parameter } Proc NLFit(RegFunc : TRegFunc; DerivProc : TDerivProc; X, Y : TVector; Lb, Ub : Int; MaxIter : Int; Tol : Float; B : TVector; FirstPar, LastPar : Int; V : TMatrix); external 'dmath'; { Unweighted nonlinear regression } Proc WNLFit(RegFunc : TRegFunc; DerivProc : TDerivProc; X, Y, S : TVector; Lb, Ub : Int; MaxIter : Int; Tol : Float; B : TVector; FirstPar, LastPar : Int; V : TMatrix); external 'dmath'; { Weighted nonlinear regression } Proc SetMCFile(FileName :Str); external 'dmath'; { Set file for saving MCMC simulations } Proc SimFit(RegFunc : TRegFunc; X, Y : TVector; Lb, Ub : Int; B : TVector; FirstPar, LastPar : Int; V : TMatrix); external 'dmath'; { Simulation of unweighted nonlinear regression by MCMC } Proc WSimFit(RegFunc : TRegFunc; X, Y, S : TVector; Lb, Ub : Int; B : TVector; FirstPar, LastPar : Int; V : TMatrix); external 'dmath'; { Simulation of weighted nonlinear regression by MCMC } { ------------------------------------------------------------------ Nonlinear regression models ------------------------------------------------------------------ } Proc FracFit(X, Y : TVector; Lb, Ub : Int; Deg1, Deg2 : Int; ConsTerm :Bool; MaxIter : Int; Tol : Float; B : TVector; V : TMatrix); external 'dmath'; { Unweighted fit of rational fraction } Proc WFracFit(X, Y, S : TVector; Lb, Ub : Int; Deg1, Deg2 : Int; ConsTerm :Bool; MaxIter : Int; Tol : Float; B : TVector; V : TMatrix); external 'dmath'; { Weighted fit of rational fraction } Func FracFit_Func(X : Float; B : TVector) : Float; external 'dmath'; { Returns the value of the rational fraction at point X } Proc ExpFit(X, Y : TVector; Lb, Ub, Nexp : Int; ConsTerm :Bool; MaxIter : Int; Tol : Float; B : TVector; V : TMatrix); external 'dmath'; { Unweighted fit of sum of exponentials } Proc WExpFit(X, Y, S : TVector; Lb, Ub, Nexp : Int; ConsTerm :Bool; MaxIter : Int; Tol : Float; B : TVector; V : TMatrix); external 'dmath'; { Weighted fit of sum of exponentials } Func ExpFit_Func(X : Float; B : TVector) : Float; external 'dmath'; { Returns the value of the regression Func at point X } Proc IncExpFit(X, Y : TVector; Lb, Ub : Int; ConsTerm :Bool; MaxIter : Int; Tol : Float; B : TVector; V : TMatrix); external 'dmath'; { Unweighted fit of model of increasing exponential } Proc WIncExpFit(X, Y, S : TVector; Lb, Ub : Int; ConsTerm :Bool; MaxIter : Int; Tol : Float; B : TVector; V : TMatrix); external 'dmath'; { Weighted fit of increasing exponential } Func IncExpFit_Func(X : Float; B : TVector) : Float; external 'dmath'; { Returns the value of the regression Func at point X } Proc ExpLinFit(X, Y : TVector; Lb, Ub : Int; MaxIter : Int; Tol : Float; B : TVector; V : TMatrix); external 'dmath'; { Unweighted fit of the "exponential + linear" model } Proc WExpLinFit(X, Y, S : TVector; Lb, Ub : Int; MaxIter : Int; Tol : Float; B : TVector; V : TMatrix); external 'dmath'; { Weighted fit of the "exponential + linear" model } Func ExpLinFit_Func(X : Float; B : TVector) : Float; external 'dmath'; { Returns the value of the regression Func at point X } Proc MichFit(X, Y : TVector; Lb, Ub : Int; MaxIter : Int; Tol : Float; B : TVector; V : TMatrix); external 'dmath'; { Unweighted fit of Michaelis equation } Proc WMichFit(X, Y, S : TVector; Lb, Ub : Int; MaxIter : Int; Tol : Float; B : TVector; V : TMatrix); external 'dmath'; { Weighted fit of Michaelis equation } Func MichFit_Func(X : Float; B : TVector) : Float; external 'dmath'; { Returns the value of the Michaelis equation at point X } Proc MintFit(X, Y : TVector; Lb, Ub : Int; MintVar : TMintVar; Fit_S0 :Bool; MaxIter : Int; Tol : Float; B : TVector; V : TMatrix); external 'dmath'; { Unweighted fit of the integrated Michaelis equation } Proc WMintFit(X, Y, S : TVector; Lb, Ub : Int; MintVar : TMintVar; Fit_S0 :Bool; MaxIter : Int; Tol : Float; B : TVector; V : TMatrix); external 'dmath'; { Weighted fit of the integrated Michaelis equation } Func MintFit_Func(X : Float; B : TVector) : Float; external 'dmath'; { Returns the value of the integrated Michaelis equation at point X } Proc HillFit(X, Y : TVector; Lb, Ub : Int; MaxIter : Int; Tol : Float; B : TVector; V : TMatrix); external 'dmath'; { Unweighted fit of Hill equation } Proc WHillFit(X, Y, S : TVector; Lb, Ub : Int; MaxIter : Int; Tol : Float; B : TVector; V : TMatrix); external 'dmath'; { Weighted fit of Hill equation } Func HillFit_Func(X : Float; B : TVector) : Float; external 'dmath'; { Returns the value of the Hill equation at point X } Proc LogiFit(X, Y : TVector; Lb, Ub : Int; ConsTerm :Bool; General :Bool; MaxIter : Int; Tol : Float; B : TVector; V : TMatrix); external 'dmath'; { Unweighted fit of logistic Func } Proc WLogiFit(X, Y, S : TVector; Lb, Ub : Int; ConsTerm :Bool; General :Bool; MaxIter : Int; Tol : Float; B : TVector; V : TMatrix); external 'dmath'; { Weighted fit of logistic Func } Func LogiFit_Func(X : Float; B : TVector) : Float; external 'dmath'; { Returns the value of the logistic Func at point X } Proc PKFit(X, Y : TVector; Lb, Ub : Int; MaxIter : Int; Tol : Float; B : TVector; V : TMatrix); external 'dmath'; { Unweighted fit of the acid-base titration curve } Proc WPKFit(X, Y, S : TVector; Lb, Ub : Int; MaxIter : Int; Tol : Float; B : TVector; V : TMatrix); external 'dmath'; { Weighted fit of the acid-base titration curve } Func PKFit_Func(X : Float; B : TVector) : Float; external 'dmath'; { Returns the value of the acid-base titration Func at point X } Proc PowFit(X, Y : TVector; Lb, Ub : Int; MaxIter : Int; Tol : Float; B : TVector; V : TMatrix); external 'dmath'; { Unweighted fit of power Func } Proc WPowFit(X, Y, S : TVector; Lb, Ub : Int; MaxIter : Int; Tol : Float; B : TVector; V : TMatrix); external 'dmath'; { Weighted fit of power Func } Func PowFit_Func(X : Float; B : TVector) : Float; external 'dmath'; { Returns the value of the power Func at point X } Proc GammaFit(X, Y : TVector; Lb, Ub : Int; MaxIter : Int; Tol : Float; B : TVector; V : TMatrix); external 'dmath'; { Unweighted fit of gamma distribution Func } Proc WGammaFit(X, Y, S : TVector; Lb, Ub : Int; MaxIter : Int; Tol : Float; B : TVector; V : TMatrix); external 'dmath'; { Weighted fit of gamma distribution Func } Func GammaFit_Func(X : Float; B : TVector) : Float; external 'dmath'; { Returns the value of the gamma distribution Func at point X } { ------------------------------------------------------------------ Principal component analysis ------------------------------------------------------------------ } Proc VecMean(X : TMatrix; Lb, Ub, Nvar : Int; M : TVector); external 'dmath'; { Computes the mean vector M from matrix X } Proc VecSD(X : TMatrix; Lb, Ub, Nvar : Int; M, S : TVector); external 'dmath'; { Computes the vector of standard deviations S from matrix X } Proc MatVarCov(X : TMatrix; Lb, Ub, Nvar : Int; M : TVector; V : TMatrix); external 'dmath'; { Computes the variance-covariance matrix V from matrix X } Proc MatCorrel(V : TMatrix; Nvar : Int; R : TMatrix); external 'dmath'; { Computes the correlation matrix R from the var-cov matrix V } Proc PCA(R : TMatrix; Nvar : Int; Lambda : TVector; C, Rc : TMatrix); external 'dmath'; { Performs a principal component analysis of the correlation matrix R } Proc ScaleVar(X : TMatrix; Lb, Ub, Nvar : Int; M, S : TVector; Z : TMatrix); external 'dmath'; { Scales a set of variables by subtracting means and dividing by SD's } Proc PrinFac(Z : TMatrix; Lb, Ub, Nvar : Int; C, F : TMatrix); external 'dmath'; { Computes principal factors } { ------------------------------------------------------------------ Strings ------------------------------------------------------------------ } Func LTrim(S :Str) :Str; external 'dmath'; { Removes leading blanks } Func RTrim(S :Str) :Str; external 'dmath'; { Removes trailing blanks } Func Trim(S :Str) :Str; external 'dmath'; { Removes leading and trailing blanks } Func StrChar(N : Byte; C : Char) :Str; external 'dmath'; { Returns a string made of character C repeated N times } Func RFill(S :Str; L : Byte) :Str; external 'dmath'; { Completes string S with trailing blanks for a total length L } Func LFill(S :Str; L : Byte) :Str; external 'dmath'; { Completes string S with leading blanks for a total length L } Func CFill(S :Str; L : Byte) :Str; external 'dmath'; { Centers string S on a total length L } Func Replace(S :Str; C1, C2 : Char) :Str; external 'dmath'; { Replaces in string S all the occurences of C1 by C2 } Func Extract(S:str; var Index:Byte; Delim:Char):str; external 'dmath'; { Extracts a field from a string } Proc Parse(S:str;Delim:Char;Field:TStrVector;var N:Byte);external 'dmath'; { Parses a string into its constitutive fields } Proc SetFormat(NumLength,MaxDec:Int;FloatPoint,NSZero:Bool); external 'dmath'; { Sets the numeric format } Func FloatStr(X : Float) :Str; external 'dmath'; { Converts a real to a string according to the numeric format } Func IntStr(N : LongInt) :Str; external 'dmath'; { Converts an Int to a string } Func CompStr(Z : Complex) :Str; external 'dmath'; { Converts a complex number to a string } {$IFDEF DELPHI} Func StrDec(S :Str) :Str; external 'dmath'; { Set decimal separator to the symbol defined in SysUtils } Func IsNumeric(var S :Str; var X : Float) :Bool; external 'dmath'; { Test if a string represents a number and returns it in X } Func ReadNumFromEdit(Edit : TEdit) : Float; external 'dmath'; { Reads a floating point number from an Edit control } Proc WriteNumToFile(var F : Text; X : Float); external 'dmath'; { Writes a floating point number in a text file } {$ENDIF} { ------------------------------------------------------------------ BGI / Delphi graphics ------------------------------------------------------------------ } Func InitGraphics {$IFDEF DELPHI} (Width, Height : Int) :Bool; {$ELSE} (Pilot, Mode : Int; BGIPath :Str) :Bool; {$ENDIF} external 'dmath'; { Enters graphic mode } Proc SetWindow({$IFDEF DELPHI}Canvas : TCanvas;{$ENDIF} X1, X2, Y1,Y2 : Int; GraphBorder:Boolean); external 'dmath'; { Sets the graphic window } Proc SetOxScale(Scale : TScale; OxMin, OxMax, OxStep : Float); external 'dmath'; { Sets the scale on the Ox axis } Proc SetOyScale(Scale : TScale; OyMin, OyMax, OyStep : Float); external 'dmath'; { Sets the scale on the Oy axis } Proc GetOxScale(var Scale : TScale; var OxMin, OxMax, OxStep : Float); external 'dmath'; { Returns the scale on the Ox axis } Proc GetOyScale(var Scale : TScale; var OyMin, OyMax, OyStep : Float); external 'dmath'; { Returns the scale on the Oy axis } Proc SetGraphTitle(Title:str);external 'dmath';{Sets title for the graph } Proc SetOxTitle(Title String);external'dmath';{ Sets title for the Ox axis } Proc SetOyTitle(Title:str);external'dmath';{Sets the title for Oy axis } Func GetGraphTitle:str;external 'dmath';{ Returns the title for the graph } Func GetOxTitle:str; external 'dmath'; { Returns the title for the Ox axis } Func GetOyTitle:str; external 'dmath'; { Returns the title for the Oy axis } {$IFNDEF DELPHI} Proc SetTitleFont(FontIndex, Width, Height : Int); external 'dmath'; { Sets the font for the main graph title } Proc SetOxFont(FontIndex, Width, Height : Int); external 'dmath'; { Sets the font for the Ox axis (title and labels) } Proc SetOyFont(FontIndex, Width, Height : Int); external 'dmath'; { Sets the font for the Oy axis (title and labels) } Proc SetLgdFont(FontIndex, Width, Height : Int); external 'dmath'; { Sets the font for the legends } Proc SetClipping(Clip :Bool); external 'dmath'; { Determines whether drawings are clipped at the current viewport boundaries, according to the value of the Boolean parameter Clip } {$ENDIF} Proc PlotOxAxis{$IFDEF DELPHI}(Canvas : TCanvas){$ENDIF}; external 'dmath'; { Plots the horizontal axis } Proc PlotOyAxis{$IFDEF DELPHI}(Canvas : TCanvas){$ENDIF}; external 'dmath'; { Plots the vertical axis } Proc PlotGrid({$IFDEF DELPHI}Canvas:TCanvas;{$ENDIF}Grid:TGrid);external 'dmath'; { Plots a grid on the graph } Proc WriteGraphTitle{$IFDEF DELPHI}(Canvas:TCanvas){$ENDIF}; external 'dmath'; { Writes the title of the graph } Proc SetMaxCurv(NCurv : Byte); external 'dmath'; { Sets the maximum number of curves and re-initializes their parameters } Proc SetPointParam {$IFDEF DELPHI} (CurvIndex, Symbol, Size : Int; Color : TColor); {$ELSE} (CurvIndex, Symbol, Size, Color : Int); {$ENDIF} external 'dmath'; { Sets the point parameters for curve # CurvIndex } Proc SetLineParam {$IFDEF DELPHI} (CurvIndex : Int; Style : TPenStyle; Width : Int; Color : TColor); {$ELSE} (CurvIndex, Style, Width, Color : Int); {$ENDIF} external 'dmath'; { Sets the line parameters for curve # CurvIndex } Proc SetCurvLegend(CurvIndex : Int; Legend :Str); external 'dmath'; { Sets the legend for curve # CurvIndex } Proc SetCurvStep(CurvIndex, Step : Int); external 'dmath'; { Sets the step for curve # CurvIndex } Func GetMaxCurv: Byte;external 'dmath';{ Returns the maximum number of curves } Proc GetPointParam {$IFDEF DELPHI} (CurvIndex : Int; var Symbol, Size : Int; var Color : TColor); {$ELSE} (CurvIndex : Int; var Symbol, Size, Color : Int); {$ENDIF} external 'dmath'; { Returns the point parameters for curve # CurvIndex } Proc GetLineParam {$IFDEF DELPHI} (CurvIndex : Int; var Style : TPenStyle; var Width : Int; var Color : TColor); {$ELSE} (CurvIndex : Int; var Style, Width, Color : Int); {$ENDIF} external 'dmath'; { Returns the line parameters for curve # CurvIndex } Func GetCurvLegend(CurvIndex : Int) :Str; external 'dmath'; { Returns the legend for curve # CurvIndex } Func GetCurvStep(CurvIndex : Int) : Int; external 'dmath'; { Returns the step for curve # CurvIndex } {$IFDEF DELPHI} Proc PlotPoint(Canvas : TCanvas; X, Y : Float; CurvIndex : Int); external 'dmath'; {$ELSE} Proc PlotPoint(Xp, Yp, CurvIndex : Int); external 'dmath'; {$ENDIF} { Plots a point on the screen } Proc PlotCurve({$IFDEF DELPHI}Canvas : TCanvas;{$ENDIF} X, Y : TVector; Lb, Ub, CurvIndex : Int); external 'dmath'; { Plots a curve } Proc PlotCurveWithErrorBars({$IFDEF DELPHI}Canvas : TCanvas;{$ENDIF} X, Y, S : TVector; Ns, Lb, Ub, CurvIndex : Int); external 'dmath'; { Plots a curve with error bars } Proc PlotFunc({$IFDEF DELPHI}Canvas : TCanvas;{$ENDIF} Func : TFunc; Xmin, Xmax : Float; {$IFDEF DELPHI}Npt : Int;{$ENDIF} CurvIndex : Int); external 'dmath'; { Plots a Func } Proc WriteLegend({$IFDEF DELPHI}Canvas : TCanvas;{$ENDIF} NCurv : Int; ShowPoints, ShowLines :Bool); external 'dmath'; { Writes the legends for the plotted curves } Proc ConRec({$IFDEF DELPHI}Canvas : TCanvas;{$ENDIF} Nx, Ny, Nc : Int; X, Y, Z : TVector; F : TMatrix); external 'dmath'; { Contour plot } Func Xpixel(X:Float):Int; external 'dmath';{Converts user abscissa X to screen coordinate } Func Ypixel(Y:Float):Int; external 'dmath';{Converts user ordinate Y to screen coordinate } Func Xuser(X:Int):Float; external 'dmath';{Converts screen coordinate X to user abscissa } Func Yuser(Y:Int):Float; external 'dmath';{Converts screen coordinate Y to user ordinate } {$IFNDEF DELPHI} Proc LeaveGraphics; external 'dmath'; { Quits graphic mode } {$ENDIF} { ------------------------------------------------------------------ LaTeX graphics ------------------------------------------------------------------ } Func TeX_InitGraphics(FileName :Str; PgWidth, PgHeight : Int; Header :Bool) :Bool; external 'dmath'; { Initializes the LaTeX file } Proc TeX_SetWindow(X1,X2,Y1 Y2:Int; GraphBorder :Bool); external 'dmath'; { Sets the graphic window } Proc TeX_LeaveGraphics(Footer:Boolean);external 'dmath';{ Close LaTeX file } Proc TeX_SetOxScale(Scale:TScale;OxMin,OxMax,OxStep:Float);external 'dmath'; { Sets the scale on the Ox axis } Proc TeX_SetOyScale(Scale:TScale;OyMin,OyMax,OyStep:Float); external 'dmath'; { Sets the scale on the Oy axis } Proc TeX_SetGraphTitle(Title:str);external 'dmath';{ Sets title for graph } Proc TeX_SetOxTitle(Title:str);external 'dmath';{ Sets title for Ox axis } Proc TeX_SetOyTitle(Title:str);external 'dmath';{ Sets title for Oy axis } Proc TeX_PlotOxAxis; external 'dmath'; { Plots horizontal axis } Proc TeX_PlotOyAxis; external 'dmath'; { Plots vertical axis } Proc TeX_PlotGrid(Grid:TGrid);external 'dmath'; { Plots a grid on the graph } Proc TeX_WriteGraphTitle; external 'dmath'; Writes the title of the graph } Proc TeX_SetMaxCurv(NCurv : Byte); external 'dmath'; { Sets the maximum number of curves and re-initializes their parameters } Proc TeX_SetPointParam(CurvIndex, Symbol, Size : Int); external 'dmath'; { Sets the point parameters for curve # CurvIndex } Proc TeX_SetLineParam(CurvIndex, Style : Int; Width : Float; Smooth :Bool); external 'dmath'; { Sets the line parameters for curve # CurvIndex } Proc TeX_SetCurvLegend(CurvIndex : Int; Legend :Str); external 'dmath'; { Sets the legend for curve # CurvIndex } Proc TeX_SetCurvStep(CurvIndex, Step : Int); external 'dmath'; { Sets the step for curve # CurvIndex } Proc TeX_PlotCurve(X, Y : TVector; Lb, Ub, CurvIndex : Int); external 'dmath'; { Plots a curve } Proc TeX_PlotCurveWithErrorBars(X,Y,S:TVector;Ns,Lb,Ub,CurvIndex Int);external 'dmath'; { Plots a curve with error bars } Proc TeX_PlotFunc(Func:TFunc;X1 X2:Float;Npt:Int;CurvIndex:Int);external 'dmath'; { Plots a Func } Proc TeX_WriteLegend(NCurv:Int;ShowPoints,ShowLines:Bool); external 'dmath'; { Writes the legends for the plotted curves } Proc TeX_ConRec(Nx,Ny Nc:Int; X,Y,Z :TVector; F : TMatrix); external 'dmath'; { Contour plot } Func Xcm(X:Float):Float; external 'dmath'; { Converts user coordinate X to cm } Func Ycm(Y:Float):Float; external 'dmath'; { Converts user coordinate Y to cm } //*****************************************************unit uPSI_SynPdf; Func RawUTF8ToPDFString( const Value : RawUTF8) : PDFString Func _DateTimeToPdfDate( ADate : TDateTime) : TPdfDate Func _PdfDateToDateTime( const AText : TPdfDate) : TDateTime Func PdfRect( Left, Top, Right, Bottom : Single) : TPdfRect; Func PdfRect1( const Box : TPdfBox) : TPdfRect; Func PdfBox( Left, Top, Width, Height : Single) : TPdfBox //Func _GetCharCount( Text : PAnsiChar) : Int //Proc L2R( W : PWideChar; L : Int) Func PdfCoord( MM : single) : Int Func CurrentPrinterPaperSize : TPDFPaperSize Func CurrentPrinterRes : TPoint Proc GDICommentBookmark( MetaHandle : HDC; const aBookmarkName : RawUTF8) Proc GDICommentOutline(MetaHandle:HDC; const aTitle : RawUTF8; aLevel : Int) Proc GDICommentLink(MetaHandle:HDC;const aBookmarkName:RawUTF8;const aRect: TRect) Const('Usp10','String 'usp10.dll AddTypeS('TScriptState_enum', '( r0, r1, r2, r3, r4, fOverrideDirection, fInhibitSymSwap, 'fCharShape, fDigitSubstitute,fInhibitLigate,fDisplayZWG, fArabicNumContext, fGcpClusters ) TScriptState_set', 'set of TScriptState_enum //********************************************************************** Proc SIRegister_PMrand(CL: TPSPascalCompiler); //ParkMiller begin Proc PMrandomize( I : word) Func PMrandom : longint Func Rrand : extended Func Irand( N : word) : word Func Brand( P : extended) :Bool Func Nrand : extended end; Proc SIRegister_Spring_Cryptography_Utils(CL: TPSPascalCompiler); begin Func Endian( x : LongWord) : LongWord Func Endian64( x : Int64) : Int64 Func spRol( x : LongWord; y : Byte) : LongWord Func spRor( x : LongWord; y : Byte) : LongWord Func Ror64( x : Int64; y : Byte) : Int64 end; Proc SIRegister_MapReader(CL: TPSPascalCompiler); begin Proc ClearModules Proc ReadMapFile( Fname :Str) Func AddressInfo( Address : dword) :Str end; Proc SIRegister_LibTar(CL: TPSPascalCompiler); begin TTarPermission','(tpReadByOwner,tpWriteByOwner,tpExecuteByOwner,tpReadByGroup,tpWriteByGroup,tpExecuteByGroup,tpReadByOther, tpWriteByOther, tpExecuteByOther) TTarPermissions', 'set of TTarPermission TFileType', '( ftNormal, ftLink, ftSymbolicLink, ftCharacter, ft' +'Block,ftDirectory,ftFifo,ftContiguous,ftDumpDir,ftMultiVolume,ftVolumeHeader; TTarMode', '( tmSetUid, tmSetGid, tmSaveText ) TTarModes', 'set of TTarMode TTarDirRec', 'record Name :Str; Size : INT64; DateTime : TDa' +teTime; Permissions : TTarPermissions; FileType : TFileType; LinkName : ST' +RING; UID : Int; GID : Int; UserName :Str; GroupName :Str;' + ChecksumOK :Bool; Mode : TTarModes; Magic :Str; MajorDevNo : INTE' +GER; MinorDevNo : Int; FilePos : INT64; end SIRegister_TTarArchive(CL); SIRegister_TTarWriter(CL); Func PermissionString( Permissions : TTarPermissions) :Str Func ConvertFilename( Filename :Str) :Str Func FileTimeGMT( FileName :Str) : TDateTime; Func FileTimeGMT1( SearchRec : TSearchRec) : TDateTime; Proc ClearDirRec( var DirRec : TTarDirRec) end; //***************************************************unit uPSI_TlHelp32; Proc SIRegister_TlHelp32(CL: TPSPascalCompiler); begin Const('MAX_MODULE_NAME32','LongInt'( 255); Func CreateToolhelp32Snapshot( dwFlags, th32ProcessID : DWORD) : THandle Const('TH32CS_SNAPHEAPLIST',LongWord( $00000001); Const('TH32CS_SNAPPROCESS','LongWord').SetUInt( $00000002); Const('TH32CS_SNAPTHREAD','LongWord').SetUInt( $00000004); Const('TH32CS_SNAPMODULE','LongWord').SetUInt( $00000008); Const('TH32CS_INHERIT','LongWord').SetUInt( $80000000); tagHEAPLIST32','record dwSize:DWORD;th32ProcessID:DWORD;th32HeapID:DWORD;dwFlags:DWORD;end'; AddTypeS('HEAPLIST32', 'tagHEAPLIST32 AddTypeS('THeapList32', 'tagHEAPLIST32 Const('HF32_DEFAULT','LongInt'( 1); Const('HF32_SHARED','LongInt'( 2); Func Heap32ListFirst( hSnapshot : THandle; var lphl : THeapList32) : BOOL Func Heap32ListNext( hSnapshot : THandle; var lphl : THeapList32) : BOOL AddTypeS(tagHEAPENTRY32', 'record dwSize : DWORD; hHandle : THandle; dwAd' +'dress : DWORD; dwBlockSize : DWORD; dwFlags : DWORD; dwLockCount : DWORD; ' +dwResvd : DWORD; th32ProcessID : DWORD; th32HeapID : DWORD; end AddTypeS('HEAPENTRY32', 'tagHEAPENTRY32 AddTypeS('THeapEntry32', 'tagHEAPENTRY32 Const('LF32_FIXED','LongWord').SetUInt( $00000001); Const('LF32_FREE','LongWord').SetUInt( $00000002); Const('LF32_MOVEABLE','LongWord').SetUInt( $00000004); Func Heap32First(var lphe:THeapEntry32;th32ProcessID,th32HeapID:DWORD):BOOL Func Heap32Next( var lphe : THeapEntry32) : BOOL DWORD; var lpNumberOfBytesRead : DWORD) : BOOL AddTypeS('tagTHREADENTRY32', 'record dwSize : DWORD; cntUsage : DWORD; th3' +'2ThreadID : DWORD; th32OwnerProcessID : DWORD; tpBasePri : Longint; tpDelt' +'aPri : Longint; dwFlags : DWORD; end AddTypeS('THREADENTRY32', 'tagTHREADENTRY32 AddTypeS('TThreadEntry32', 'tagTHREADENTRY32 Func Thread32First( hSnapshot : THandle; var lpte : TThreadEntry32) : BOOL Func Thread32Next( hSnapshot: THandle; var lpte : TThreadENtry32):BOOL end; Const('EW_RESTARTWINDOWS','LongWord').SetUInt( $0042); Const('EW_REBOOTSYSTEM','LongWord( $0043); Const('EW_EXITANDEXECAPP','LongWord( $0044); Const('ENDSESSION_LOGOFF','LongWord').SetUInt( DWORD ( $80000000 )); Const('EWX_LOGOFF','LongInt'( 0); Const('EWX_SHUTDOWN','LongInt'( 1); Const('EWX_REBOOT','LongInt'( 2); Const('EWX_FORCE','LongInt'( 4); Const('EWX_POWEROFF','LongInt'( 8); Const('EWX_FORCEIFHUNG','LongWord').SetUInt( $10); Func GET_APPCOMMAND_LPARAM( const lParam : LongInt) : Shortint Func GET_DEVICE_LPARAM( const lParam : LongInt) : Word Func GET_MOUSEORKEY_LPARAM( const lParam : LongInt) : Word Func GET_FLAGS_LPARAM( const lParam : LongInt) : Word Func GET_KEYSTATE_LPARAM( const lParam : LongInt) : Word Func GetWindowWord( hWnd : HWND; nIndex : Int) : Word Func SetWindowWord( hWnd : HWND; nIndex : Int; wNewWord : Word) : Word Func GetWindowLong( hWnd : HWND; nIndex : Int) : Longint Func SetWindowLong( hWnd : HWND; nIndex : Int; dwNewLong:Longint) : Longint Func GetClassWord( hWnd : HWND; nIndex : Int) : Word Func SetClassWord( hWnd : HWND; nIndex : Int; wNewWord : Word) : Word Func GetClassLong( hWnd : HWND; nIndex : Int) : DWORD Func SetClassLong( hWnd : HWND; nIndex : Int; dwNewLong : Longint) : DWORD Func GetDesktopWindow : HWND Func GetParent( hWnd : HWND) : HWND Func SetParent( hWndChild, hWndNewParent : HWND) : HWND Func GetTopWindow( hWnd : HWND) : HWND Func GetNextWindow( hWnd : HWND; uCmd : UINT) : HWND Func GetWindow( hWnd : HWND; uCmd : UINT) : HWND //Delphi DFM Func LoadDFMFile2Strings(const AFile:str; AStrings:TStrings; var WasText:bool):Int Func SaveStrings2DFMFile( AStrings : TStrings; const AFile :Str) : Int Proc GetHighlighters(AOwner:TComponent; AHighlighters:TStringList;AppendToList:Bool); Func GetHighlightersFilter(AHighlighters: TStringList):Str; Func GetHighlighterFromFileExt(AHighlighters: TStringList;Extension:Str):TSynCustomHighlighter; Func ShowOwnedPopups( hWnd : HWND; fShow : BOOL) : BOOL Func OpenIcon( hWnd : HWND) : BOOL Func CloseWindow( hWnd : HWND) : BOOL Func MoveWindow(hWnd:HWND;X Y,nWidth, nHeight : Int; bRepaint : BOOL) : BOOL Func SetWindowPos(hWnd:HWND;hWndInsertAfter:HWND;X,Y,cx,cy:Int;uFlags:UINT): BOOL Func IsWindowVisible( hWnd : HWND) : BOOL Func IsIconic( hWnd : HWND) : BOOL Func AnyPopup : BOOL Func BringWindowToTop( hWnd : HWND) : BOOL Func IsZoomed( hWnd : HWND) : BOOL Func IsWindow( hWnd : HWND) : BOOL Func IsMenu( hMenu : HMENU) : BOOL Func IsChild( hWndParent, hWnd : HWND) : BOOL Func DestroyWindow( hWnd : HWND) : BOOL Func ShowWindow( hWnd : HWND; nCmdShow : Int) : BOOL Func AnimateWindow( hWnd : HWND; dwTime : DWORD; dwFlags : DWORD) : BOOL Func ShowWindowAsync( hWnd : HWND; nCmdShow : Int) : BOOL Func FlashWindow( hWnd : HWND; bInvert : BOOL) : BOOL Func IsWindowUnicode( hWnd : HWND) : BOOL Func EnableWindow( hWnd : HWND; bEnable : BOOL) : BOOL Func IsWindowEnabled( hWnd : HWND) : BOOL Proc SIRegister_IDECmdLine(CL: TPSPascalCompiler); begin const('ShowSetupDialogOptLong','String '--setup PrimaryConfPathOptLong','String '--primary-config-path= PrimaryConfPathOptShort','String '--pcp= SecondaryConfPathOptLong','String '--secondary-config-path= SecondaryConfPathOptShort','String '--scp= NoSplashScreenOptLong','String '--no-splash-screen NoSplashScreenOptShort','String '--nsc StartedByStartLazarusOpt','String '--started-by-startlazarus SkipLastProjectOpt','String '--skip-last-project DebugLogOpt','String '--debug-log= DebugLogOptEnable','String '--debug-enable= LanguageOpt','String '--language= LazarusDirOpt','String '--lazarusdir= Proc ParseCommandLine(aCmdLineParams:TStrings;out IDEPid:Int;out ShowSplashScreen:bool); Func GetCommandLineParameters(aCmdLineParams:TStrings;isStartLazarus:Bool):Str Func ExtractPrimaryConfigPath( aCmdLineParams : TStrings) :Str Func IsHelpRequested :Bool Func IsVersionRequested :Bool Func GetLanguageSpecified :Str Func ParamIsOption( ParamIndex : Int; const Option :Str) :Bool Func ParamIsOptionPlusValue(ParamIndex:int;const Option:str;out AValue:str):bool; Proc ParseNoGuiCmdLineParams Func ExtractCmdLineFilenames : TStrings end; Proc SIRegister_LazFileUtils(CL: TPSPascalCompiler); begin Func CompareFilenames( const Filename1, Filename2 :Str) : Int Func CompareFilenamesIgnoreCase( const Filename1, Filename2 :Str) : Int Func CompareFileExt( const Filename, Ext :Str; CaseSensitive :Bool) : Int; Func CompareFileExt1( const Filename, Ext :Str) : Int; Func CompareFilenameStarts( const Filename1, Filename2 :Str) : Int Func CompareFilenames(Filename1:PChar;Len1:Int; Filename2:PChar;Len2:Int):Int Func CompareFilenamesP(Filename1,Filename2:PChar;IgnoreCase :Bool) : Int Func DirPathExists( DirectoryName :Str) :Bool Func DirectoryIsWritable( const DirectoryName :Str) :Bool Func ExtractFileNameOnly( const AFilename :Str) :Str Func FilenameIsAbsolute( const TheFilename :Str) :Bool Func FilenameIsWinAbsolute( const TheFilename :Str) :Bool Func FilenameIsUnixAbsolute( const TheFilename :Str) :Bool Func ForceDirectory( DirectoryName :Str) :Bool Proc CheckIfFileIsExecutable( const AFilename :Str) Proc CheckIfFileIsSymlink( const AFilename :Str) Func FileIsText( const AFilename :Str) :Bool Func FileIsText2(const AFilename:str; out FileReadable: bool): bool Func FilenameIsTrimmed( const TheFilename :Str) :Bool Func FilenameIsTrimmed2( StartPos : PChar; NameLen : Int) :Bool Func TrimFilename( const AFilename :Str) :Str Func ResolveDots( const AFilename :Str) :Str Proc ForcePathDelims( var FileName :Str) Func GetForcedPathDelims( const FileName :Str) :Str Func CleanAndExpandFilename( const Filename :Str) :Str Func CleanAndExpandDirectory( const Filename :Str) :Str Func TrimAndExpandFilename(const Filename:str;const BaseDir:str):str Func TrimAndExpandDirectory(const Filename:str;const BaseDir:str):Str Func TryCreateRelativePath(const Dest,Source:str; UsePointDirectory:bool; AlwaysRequireSharedBaseFolder:Bool; out RelPath :Str) :Bool Func CreateRelativePath(const Filename,BaseDirectory:str;UsePointDirectory:boolean;AlwaysRequireSharedBaseFolder:Bool) :Str Func FileIsInPath( const Filename, Path :Str) :Bool Func AppendPathDelim( const Path :Str) :Str Func ChompPathDelim( const Path :Str) :Str Func CreateAbsoluteSearchPath(const SearchPath,BaseDirectory:str):str Func CreateRelativeSearchPath(const SearchPath,BaseDirectory:str):Str Func MinimizeSearchPath( const SearchPath :Str) :Str Func FindPathInSearchPath(APath:PChar;APathLen:int;SearchPath:PChar;SearchPathLen:int):PChar; (*Func FileExistsUTF8( const Filename :Str) :Bool Func FileAgeUTF8( const FileName :Str) : Longint Func DirectoryExistsUTF8( const Directory :Str) :Bool Func ExpandFileNameUTF8( const FileName :Str; BaseDir :Str) :Str Func FindFirstUTF8(const Path:str;Attr:Longint;out Rslt:TSearchRec): Longint Func FindNextUTF8( var Rslt : TSearchRec) : Longint Proc FindCloseUTF8( var F : TSearchrec) Func FileSetDateUTF8( const FileName :Str; Age : Longint) : Longint Func FileGetAttrUTF8( const FileName :Str) : Longint Func FileSetAttrUTF8( const Filename :Str; Attr : longint) : Longint Func DeleteFileUTF8( const FileName :Str) :Bool Func RenameFileUTF8( const OldName, NewName :Str) :Bool Func FileSearchUTF8(const Name,DirList:str;ImplicitCurrentDir:Bool):str Func FileIsReadOnlyUTF8( const FileName :Str) :Bool Func GetCurrentDirUTF8 :Str Func SetCurrentDirUTF8( const NewDir :Str) :Bool Func CreateDirUTF8( const NewDir :Str) :Bool Func RemoveDirUTF8( const Dir :Str) :Bool Func ForceDirectoriesUTF8( const Dir :Str) :Bool Func FileOpenUTF8( const FileName :Str; Mode : Int) : THandle Func FileCreateUTF8( const FileName :Str) : THandle; Func FileCreateUTF81( const FileName :Str; Rights :Card): THandle; Func FileCreateUtf82(const FileName:str;ShareMode:Int;Rights:Card): THandle; Func FileSizeUtf8( const Filename :Str) : int64 Func GetFileDescription( const AFilename :Str) :Str Func GetAppConfigDirUTF8( Global :Bool; Create :Bool) :Str Func GetAppConfigFileUTF8(Global:Bool;SubDir:bool;CreateDir: bool):Str Func GetTempFileNameUTF8( const Dir, Prefix :Str) :Str*) Func IsUNCPath( const Path :Str) :Bool Func ExtractUNCVolume( const Path :Str) :Str Func ExtractFileRoot( FileName :Str) :Str Func GetDarwinSystemFilename( Filename :Str) :Str Proc SplitCmdLineParams( const Params:str; ParamList:TStrings; ReadBackslash:bool) Func StrToCmdLineParam( const Param :Str) :Str Func MergeCmdLineParams( ParamList : TStrings) :Str Proc InvalidateFileStateCache( const Filename :Str) Func FindAllFiles(const SearchPath:str;SearchMask:Str;SearchSubDirs:Bool):TStringList); Func FindAllDirectories(const SearchPath:str;SearchSubDirs:Bool):TStringList Func FindAllDocs(const Root, extmask:Str): TStringlist; Func ReadFileToString( const Filename:Str):Str Proc Inc1(var X: longint; N: Longint); type TCopyFileFlag = ( cffOverwriteFile, cffCreateDestDirectory, cffPreserveTime ); TCopyFileFlags = set of TCopyFileFlag;*) TCopyFileFlag', '(cffOverwriteFile, cffCreateDestDirectory, cffPreserveTime) TCopyFileFlags', 'set of TCopyFileFlag Func CopyDirTree(const SourceDir,TargetDir:str;Flags:TCopyFileFlags):Bool end; Proc SIRegister_lazMasks(CL: TPSPascalCompiler); begin TMaskCharType','( mcChar, mcCharSet, mcAnyChar, mcAnyText ) SIRegister_TMask(CL); SIRegister_TParseStringList(CL); SIRegister_TMaskList(CL); Func MatchesMask(const FileName,Mask:str;const CaseSensitive:Bool):Bool Func MatchesWindowsMask(const FileName,Mask:str;const CaseSensitive:Bool): Bool; Func MatchesMaskList(const FileName,Mask:Str;Separatr:Char;const CaseSensitive:Bool):Bool; Func MatchesWindowsMaskList(const FileName,Mask:str;Separat:Char;const CaseSensitive:Bool):Bool; end; Proc SIRegister_JvShellHook(CL: TPSPascalCompiler); begin //PShellHookInfo', '^TShellHookInfo // will not work TShellHookInfo', 'record hwnd : THandle; rc : TRect; end SHELLHOOKINFO', 'TShellHookInfo LPSHELLHOOKINFO', 'PShellHookInfo TJvShellHookEvent', 'Proc ( Sender : TObject; var Msg : TMessage) SIRegister_TJvShellHook(CL); Func InitJvShellHooks :Bool Proc UnInitJvShellHooks end; Proc SIRegister_JvExControls(CL: TPSPascalCompiler); begin TDlgCode','(dcWantAllKeys,dcWantArrows,dcWantChars,dcButton,dcHasSetSel,dcWantTab,dcNative) TDlgCodes', 'set of TDlgCodedcWantMessage',' dcWantAllKeys); SIRegister_IJvExControl(CL); SIRegister_IJvDenySubClassing(CL); SIRegister_TStructPtrMessage(CL); Proc SetDotNetFrameColors( FocusedColor, UnfocusedColor : TColor) Proc DrawDotNetControl( Control : TWinControl; AColor : TColor; InControl :Bool); Proc DrawDotNetControl1(DC:HDC; R:TRect;AColor:TColor;UseFocusedColor:Bool); Proc HandleDotNetHighlighting(Cntrl:TWinControl;const Msg:TMessage;MouseOver:Bool;Color:TColor); Func CreateWMMessage( Msg : Int; WParam : Int; LParam : Longint) : TMessage; Func CreateWMMessage1( Msg : Int; WParam : Int; LParam : TControl) : TMessage; Func SmallPointToLong( const Pt : TSmallPoint) : Longint Func ShiftStateToKeyData( Shift : TShiftState) : Longint Func GetFocusedControl( AControl : TControl) : TWinControl Func DlgcToDlgCodes( Value : Longint) : TDlgCodes Func DlgCodesToDlgc( Value : TDlgCodes) : Longint Proc GetHintColor(var HintInfo:THintInfo AControl:TControl;HintColor:TColor) Func DispatchIsDesignMsg( Control : TControl; var Msg : TMessage) :Bool SIRegister_TJvExControl(CL); SIRegister_TJvExWinControl(CL); SIRegister_TJvExCustomControl(CL); SIRegister_TJvExGraphicControl(CL); SIRegister_TJvExHintWindow(CL); SIRegister_TJvExPubGraphicControl(CL); end; (*----------------------------------------------------------------------------*) Proc SIRegister_EncdDecd(CL: TPSPascalCompiler); begin Proc EncodeStream(Input, Output : TStream) Proc DecodeStream(Input, Output : TStream) Func EncodeString1(const Input :Str) :Str Func DecodeString1(const Input :Str) :Str end; (*----------------------------------------------------------------------------*) Proc SIRegister_SockAppReg(CL: TPSPascalCompiler); begin SIRegister_TWebAppRegInfo(CL); SIRegister_TWebAppRegList(CL); Proc GetRegisteredWebApps( AList : TWebAppRegList) Proc RegisterWebApp( const AFileName, AProgID :Str) Proc UnregisterWebApp( const AProgID :Str) Func FindRegisteredWebApp( const AProgID :Str) :Str Func CreateRegistry(InitializeNewFile:Bool):TCustomIniFilesUDPPort',String 'UDPPort end; Proc SIRegister_PJEnvVars(CL: TPSPascalCompiler); begin // TStringDynArray', 'array of string Func GetEnvVarValue( const VarName :Str) :Str Func SetEnvVarValue( const VarName, VarValue :Str) : Int Func DeleteEnvVar( const VarName :Str) : Int Func CreateEnvBlock(const NewEnv:TStrings;const IncludeCurrent:Bool;const Buffer:str;const BufSize:Int):Int; Func ExpandEnvVars( const Str :Str) :Str Func GetAllEnvVars( const Vars : TStrings) : Int Proc GetAllEnvVarNames( const Names : TStrings); Func GetAllEnvVarNames1 : TStringDynArray; Func EnvBlockSize : Int TPJEnvVarsEnum', 'Proc ( const VarName :Str; Data : TObject) SIRegister_TPJEnvVarsEnumerator(CL); SIRegister_TPJEnvVars(CL); FindClass('TOBJECT'),'EPJEnvVars FindClass('TOBJECT'),'EPJEnvVars //Proc Register end; (*----------------------------------------------------------------------------*) Proc SIRegister_PJConsoleApp(CL: TPSPascalCompiler); begin 'cOneSecInMS','LongInt'( 1000); //'cDefTimeSlice','LongInt'( 50); //'cDefMaxExecTime',' cOneMinInMS); 'cAppErrorMask','LongInt'( 1 shl 29); Func IsApplicationError( const ErrCode : LongWord) :Bool TPJConsoleAppPriority','( cpDefault, cpHigh, cpNormal, cpIdle, cpRealTime ) TPJConsoleColors','record Foreground : TPJConsoleColor; Background:TPJConsoleColor; end; Func MakeConsoleColors(const AForeground,ABackground:TPJConsoleColor):TPJConsoleColors; Func MakeConsoleColors1(const AForeground,ABackground:TColor): TPJConsoleColors; Func MakeConsoleColors2(const AForeground ABackground:TAlphaColor): TPJConsoleColors; Func MakeSize( const ACX, ACY : LongInt) : TSize SIRegister_TPJCustomConsoleApp(CL); SIRegister_TPJConsoleApp(CL); end; Proc SIRegister_ip_misc(CL: TPSPascalCompiler); begin INVALID_IP_ADDRESS','LongWord').SetUInt( $ffffffff); t_encoding', '( uuencode, base64, mime ) Func internet_date( date : TDateTime) :Str Func lookup_hostname( const hostname :Str) : longint Func my_hostname :Str Func my_ip_address : longint Func ip2string( ip_address : longint) :Str Func resolve_hostname( ip : longint) :Str Func address_from( const s :Str; count : Int) :Str Func encode_base64( data : TStream) : TStringList Func decode_base64( source : TStringList) : TMemoryStream Func posn( const s, t :Str; count : Int) : Int Func poscn( c : char; const s :Str; n : Int) : Int Func filename_of( const s :Str) :Str //Func trim( const s :Str) :Str //Proc setlength( var s :Str; l : byte) Func TimeZoneBias : longint Func eight2seven_quoteprint( const s :Str) :Str Func eight2seven_german( const s :Str) :Str Func seven2eight_quoteprint( const s :Str) :Str end; type in_addr', 'record s_bytes : array[1..4] of byte; end; Func socketerror : cint Func fpsocket( domain : cint; xtype : cint; protocol : cint) : cint Func fprecv( s : cint; buf : ___pointer; len : size_t; flags : cint): ssize_t Func fpsend( s : cint; msg : ___pointer; len : size_t; flags : cint): ssize_t //Func fpbind( s : cint; addrx : psockaddr; addrlen : tsocklen) : cint Func fplisten( s : cint; backlog : cint) : cint //Func fpaccept( s : cint; addrx : psockaddr; addrlen : plongint) : cint //Func fpconnect( s : cint; name : psockaddr; namelen : tsocklen) : cint //Func fpgetsockname( s : cint; name : psockaddr; namelen : psocklen) : cint Func NetAddrToStr( Entry : in_addr) :Str Func HostAddrToStr( Entry : in_addr) :Str Func StrToHostAddr( IP :Str) : in_addr Func StrToNetAddr( IP :Str) : in_addr SOL_SOCKET','LongWord').SetUInt( $ffff); cint8', 'shortint cuint8', 'byte cchar', 'cint8 cschar', 'cint8 cuchar', 'cuint8 cint16', 'smallint cuint16', 'word cshort', 'cint16 csshort', 'cint16 cushort', 'cuint16 cint32', 'longint cuint32', 'longword cint', 'cint32 csint', 'cint32 cuint', 'cuint32 csigned', 'cint cunsigned', 'cuint cint64', 'int64 clonglong', 'cint64 cslonglong', 'cint64 cbool', 'longbool cfloat', 'single cdouble', 'double clongdouble', 'extended Proc SIRegister_uLkJSON(CL: TPSPascalCompiler); begin TlkJSONtypes','(jsBase,jsNumber,jsString,jsBoolean,jsNull,jsList,jsObject ) SIRegister_TlkJSONdotnetclass(CL); SIRegister_TlkJSONbase(CL); SIRegister_TlkJSONnumber(CL); SIRegister_TlkJSONstring(CL); SIRegister_TlkJSONboolean(CL); SIRegister_TlkJSONnull(CL); TlkJSONFuncEnum','Procedure(ElName:str;Elem:TlkJSONbase;data:TObject;var Continue:Boolean) SIRegister_TlkJSONcustomlist(CL); SIRegister_TlkJSONlist(CL); SIRegister_TlkJSONobjectmethod(CL); TlkHashItem', 'record hash :Card; index : Int; end TlkHashFunction', 'Func ( const ws : WideString) :Card SIRegister_TlkHashTable(CL); SIRegister_TlkBalTree(CL); SIRegister_TlkJSONobject(CL); SIRegister_TlkJSON(CL); SIRegister_TlkJSONstreamed(CL); Func GenerateReadableText( vObj : TlkJSONbase; var vLevel : Int):Str end; Ex: js:= TlkJSON.create; jsonObject:= js.ParseText(jsonstring) as TlkJSONobject; try writeln('get message: '+jsonObject.Field['amessage'].value); writeln(vartostr(jsonobject.Field['book'].Child[3].field['ISBN'].value)); Proc SIRegister_ZSysUtils(CL: TPSPascalCompiler); begin TZListSortCompare', 'Func (Item1, Item2 : TObject): Int SIRegister_TZSortedList(CL); Func zFirstDelimiter( const Delimiters, Str :Str) : Int Func zLastDelimiter( const Delimiters, Str :Str) : Int //Func MemLCompUnicode( P1, P2 : PWideChar; Len : Int) :Bool //Func MemLCompAnsi( P1, P2 : PAnsiChar; Len : Int) :Bool Func zStartsWith( const Str, SubStr : WideString) :Bool; Func StartsWith1( const Str, SubStr : RawByteString) :Bool; Func EndsWith( const Str, SubStr : WideString) :Bool; Func EndsWith1( const Str, SubStr : RawByteString) :Bool; Func SQLStrToFloatDef( Str : RawByteString; Def : Extended) : Extended; Func SQLStrToFloatDef1( Str :Str; Def : Extended) : Extended; Func SQLStrToFloat( const Str : Ansistr) : Extended //Func BufferToStr( Buffer : PWideChar; Length : LongInt) :Str; //Func BufferToStr1( Buffer : PAnsiChar; Length : LongInt) :Str; Func BufferToBytes( Buffer : TObject; Length : LongInt) : TByteDynArray Func StrToBoolEx( Str :Str) :Bool Func BoolToStrEx( Bool :Bool) :Str Func IsIpAddr( const Str :Str) :Bool //IsIP() Func zSplitString( const Str, Delimiters :Str) : TStrings Proc PutSplitString( List : TStrings; const Str, Delimiters :Str) Proc AppendSplitString( List : TStrings; const Str, Delimiters :Str) Func ComposeString( List : TStrings; const Delimiter :Str) :Str Func FloatToSQLStr( Value : Extended) :Str Proc PutSplitStringEx( List : TStrings; const Str, Delimiter :Str) Func SplitStringEx( const Str, Delimiter :Str) : TStrings Proc AppendSplitStringEx( List : TStrings; const Str, Delimiter:Str) Func zBytesToStr( const Value : TByteDynArray) : Ansistr Func zStrToBytes( const Value : Ansistr) : TByteDynArray; Func StrToBytes1( const Value : UTF8String) : TByteDynArray; Func StrToBytes2( const Value : RawByteString) : TByteDynArray; Func StrToBytes3( const Value : WideString) : TByteDynArray; Func StrToBytes4( const Value : UnicodeString) : TByteDynArray; Func BytesToVar( const Value : TByteDynArray) : Variant Func VarToBytes( const Value : Variant) : TByteDynArray Func AnsiSQLDateToDateTime( const Value :Str) : TDateTime Func TimestampStrToDateTime( const Value :Str) : TDateTime Func DateTimeToAnsiSQLDate( Value : TDateTime; WithMMSec:Bool):Str Func EncodeCString( const Value :Str) :Str Func DecodeCString( const Value :Str) :Str Func zReplaceChar( const Source, Target : Char; const Str:Str):Str Func MemPas( Buffer : PChar; Length : LongInt) :Str Proc DecodeSQLVersioning(const FullVersion:Int;out MajorVersion:Int;out MinorVersion:Int;out SubVersion:Int); Func EncodeSQLVersioning(const MajorVersion:Int;const MinorVersion:Int;const SubVersion:Int):Int; Func FormatSQLVersion( const SQLVersion : Int) :Str Func ZStrToFloat( Value : AnsiChar) : Extended; Func ZStrToFloat1( Value : Ansistr) : Extended; Proc ZSetString( const Src : AnsiChar; var Dest : Ansistr); Proc ZSetString1(const Src:AnsiChar;const Len:Card;var Dest:Ansistr); Proc ZSetString2(const Src : AnsiChar; var Dest : UTF8String); Proc ZSetString3(const Src:AnsiChar;const Len:Card;var Dest:UTF8String); Proc ZSetString4(const Src:AnsiChar;const Len:Card;var Dest:WideString); Proc ZSetString5(const Src : AnsiChar; var Dest : RawByteString); Proc ZSetString6(const Src:AnsiChar;const Len:Card;var Dest:RawByteString); end; unit uPSI_ZEncoding; Func StringToAnsiEx( const s :Str; const FromCP, ToCP : Word) : RawByteString Func AnsiToStringEx(const s:RawByteString;const FromCP, ToCP : Word :Str Func ZRawToUnicode( const S : RawByteString; const CP : Word) : WideString Func ZUnicodeToRaw( const US : WideString; CP : Word) : RawByteString Func ZConvertAnsiToRaw( const Src : Ansistr; const RawCP : Word) : RawByteString Func ZConvertRawToAnsi(const Src:RawByteString;const RawCP:Word):Ansistr Func ZConvertAnsiToUTF8( const Src : Ansistr) : UTF8String Func ZConvertUTF8ToAnsi( const Src : UTF8String) : Ansistr Func ZConvertRawToUTF8( const Src : RawByteString; const CP : Word) : UTF8String Func ZConvertUTF8ToRaw( const Src : UTF8String; const CP : Word) : RawByteString Func ZConvertRawToString(const Src:RawByteString;const RawCP,StringCP:Word):str Func ZConvertStringToRaw( const Src :Str; const StringCP, RawCP : Word) : RawByteString Func ZConvertStringToRawWithAutoEncode(const Src:str;const StringCP,RawCP:Word):RawByteString; Func ZConvertUTF8ToString(const Src:UTF8String;const StringCP: Word):Str Func ZConvertStringToUTF8(const Src:Str;const StringCP:Word):UTF8String Func ZConvertStringToUTF8WithAutoEncode(const Src:str;const StringCP:Word): UTF8String Func ZConvertStringToAnsi( const Src :Str; const StringCP : Word) : Ansistr Func ZConvertStringToAnsiWithAutoEncode(const Src:str;const StringCP:Word): Ansistr Func ZConvertAnsiToString(const Src:Ansistr;const StringCP:Word):str Func ZConvertUnicodeToString(const Src:WideString;const StringCP:Word):str Func ZConvertUnicodeToString_CPUTF8(const Src:WideString; const StringCP : Word):Str Func ZConvertStringToUnicode( const Src :Str; const StringCP : Word) : WideString Func ZConvertString_CPUTF8ToUnicode(const Src:str;const StringCP:Word): WideString Func ZConvertStringToUnicodeWithAutoEncode(const Src:str;const StringCP:Word):WideString Func ZMoveAnsiToRaw( const Src : Ansistr; const RawCP : Word) : RawByteString Func ZMoveRawToAnsi( const Src : RawByteString; const RawCP : Word) : Ansistr Func ZMoveAnsiToUTF8( const Src : Ansistr) : UTF8String Func ZMoveUTF8ToAnsi( const Src : UTF8String) : Ansistr Func ZMoveRawToUTF8( const Src : RawByteString; const CP : Word) : UTF8String Func ZMoveUTF8ToRaw( const Src : UTF8String; const CP : Word) : RawByteString Func ZMoveStringToAnsi( const Src :Str; const StringCP : Word) : Ansistr Func ZMoveAnsiToString( const Src : Ansistr; const StringCP : Word) :Str Func ZMoveRawToString(const Src:RawByteString;const RawCP,StringCP:Word):Str Func ZMoveStringToRaw( const Src :Str; const StringCP, RawCP : Word) : RawByteString Func ZMoveUTF8ToString( const Src : UTF8String; StringCP : Word) :Str Func ZMoveStringToUTF8( const Src :Str; const StringCP : Word) : UTF8String Func ZUnknownRawToUnicode( const S : RawByteString; const CP : Word) : WideString Func ZUnknownRawToUnicodeWithAutoEncode(const S:RawByteString;const CP:Word): WideString Func ZUnicodeToUnknownRaw( const US : WideString; CP : Word) : RawByteString Func ZDefaultSystemCodePage : Word Func ZCompatibleCodePages( const CP1, CP2 : Word) :Bool Func MPing(const AHost:Str;const ATimes:Int; out AvgMS:Double):Boolean; Proc SIRegister_BoldComUtils(CL: TPSPascalCompiler); begin 'RPC_C_AUTHN_LEVEL_DEFAULT','LongInt'( 0); ('RPC_C_AUTHN_LEVEL_NONE','LongInt'( 1); ('RPC_C_AUTHN_LEVEL_CONNECT','LongInt'( 2); ('RPC_C_AUTHN_LEVEL_CALL','LongInt'( 3); ('RPC_C_AUTHN_LEVEL_PKT','LongInt'( 4); ('RPC_C_AUTHN_LEVEL_PKT_INTEGRITY','LongInt'( 5); ('RPC_C_AUTHN_LEVEL_PKT_PRIVACY','LongInt'( 6); {('alDefault','1 RPC_C_AUTHN_LEVEL_DEFAULT); ('alNone','2 RPC_C_AUTHN_LEVEL_NONE); ('alConnect','3 RPC_C_AUTHN_LEVEL_CONNECT); ('alCall','4 RPC_C_AUTHN_LEVEL_CALL); ('alPacket','5 RPC_C_AUTHN_LEVEL_PKT); ('alPacketIntegrity','6 RPC_C_AUTHN_LEVEL_PKT_INTEGRITY); ('alPacketPrivacy','7 RPC_C_AUTHN_LEVEL_PKT_PRIVACY);} ('RPC_C_IMP_LEVEL_DEFAULT','LongInt'( 0); ('RPC_C_IMP_LEVEL_ANONYMOUS','LongInt'( 1); ('RPC_C_IMP_LEVEL_IDENTIFY','LongInt'( 2); ('RPC_C_IMP_LEVEL_IMPERSONATE','LongInt'( 3); ('RPC_C_IMP_LEVEL_DELEGATE','LongInt'( 4); {('ilDefault','0 RPC_C_IMP_LEVEL_DEFAULT); ('ilAnonymous','1 RPC_C_IMP_LEVEL_ANONYMOUS); ('ilIdentiry','2 RPC_C_IMP_LEVEL_IDENTIFY); ('ilImpersonate','3 RPC_C_IMP_LEVEL_IMPERSONATE); ('ilDelegate','4 RPC_C_IMP_LEVEL_DELEGATE);} ('EOAC_NONE','LongWord').SetUInt( $0); ('EOAC_DEFAULT','LongWord').SetUInt( $800); ('EOAC_MUTUAL_AUTH','LongWord').SetUInt( $1); ('EOAC_STATIC_CLOACKING','LongWord').SetUInt( $20); ('EOAC_DYNAMIC_CLOAKING','LongWord').SetUInt( $40); ('EOAC_ANY_AUTHORITY','LongWord').SetUInt( $80); ('RPC_C_AUTHN_WINNT','LongInt'( 10); ('RPC_C_AUTHNZ_NONE','LongInt'( 0); ('RPC_C_AUTHNZ_NAME','LongInt'( 1); ('RPC_C_AUTHNZ_DCE','LongInt'( 2); FindClass('TOBJECT'),'EBoldCom Func BoldVariantIsType( V : OleVariant; TypeCode : Int) :Bool Func BoldMemoryToVariant( const Buffer, BufSize : Int) : OleVariant Func BoldStreamToVariant( Stream : TStream) : OleVariant Func BoldStringsToVariant( Strings : TStrings) : OleVariant Func BoldVariantToMemory( V : OleVariant; var Buffer, BufSize : Int) : Int Func BoldVariantToStream( V : OleVariant; Stream : TStream) : Int Func BoldVariantArrayOfArraysOfStringToStrings(V:OleVariant;Strings: TStrings) : Int Func BoldVariantIsNamedValues( V : OleVariant) :Bool Func BoldCreateNamedValues(const Names:array of string;const Values:array of OleVariant):OleVariant; Func BoldGetNamedValue( Data : OleVariant; const Name :Str) : OleVariant Proc BoldSetNamedValue( Data : OleVariant; const Name :Str; Value : OleVariant) Func BoldCreateGUID : TGUID Func BoldCreateComObject( const ClsId,IId:TGUID; out Obj:variant;out Res:HResult):Bool Func BoldCreateRemoteComObject(const HostName:str;const ClsId,IId:TGUID;out Obj:variant;out Res:HRes):Bool; Proc BoldInitializeComSecurity( AuthenticationLevel, ImpersonationLevel : longint) Proc BoldSetSecurityForInterface(AuthenticationLevel,ImpersonationLevel:longint;Unk:IUnknown); end; (*----------------------------------------------------------------------------*) Proc SIRegister_BoldIsoDateTime(CL: TPSPascalCompiler); begin Func ParseISODate( s :Str) : TDateTime Func ParseISODateTime( s :Str) : TDateTime Func ParseISOTime( str :Str) : TDateTime end; (*----------------------------------------------------------------------------*) Proc SIRegister_BoldGUIDUtils(CL: TPSPascalCompiler); begin Func BoldCreateGUIDAsString( StripBrackets :Bool) :Str Func BoldCreateGUIDWithBracketsAsString :Str end; Proc SIRegister_BoldFileHandler(CL: TPSPascalCompiler); begin FindClass('TOBJECT'),'TBoldFileHandler FindClass('TOBJECT'),'TBoldDiskFileHandler //TBoldFileHandlerClass', 'class of TBoldFileHandler TBoldInitializeFileContents', 'Proc ( StringList : TStringList) SIRegister_TBoldFileHandler(CL); SIRegister_TBoldDiskFileHandler(CL); Proc BoldCloseAllFilehandlers Proc BoldRemoveUnchangedFilesFromEditor Func BoldFileHandlerList : TBoldObjectArray Func BoldFileHandlerForFile(path,FileName:str;ModuleType:TBoldModuleType;ShowInEditor:Bool;OnInitializeFileContents:TBoldInitializeFileContents): TBoldFileHandler end; Proc SIRegister_BoldWinINet(CL: TPSPascalCompiler); begin PCharArr', 'array of PChar Func BoldInternetOpen(Agent:Str;AccessType:Int;Proxy:str;ProxyByPass:Str;Flags:Int):ptr); Func BoldInternetOpenUrl(iNet:Poin;URL:str;Headers:str;Flags,Context:Card):Point Func BoldInternetReadFile(hFile:Pointer;Buff:Ptr;NumbOfBytesToRead:Card;var NumberOfBytesRead:Card):LongBool; Func BoldInternetCloseHandle( HINet : Pointer) : LongBool Func BoldHttpQueryInfo(hRequest:Pointer;InfoLevel:Card;Buffer:Pointer;BufferLength:Card;Reserved:Card) : LongBool Func BoldInternetQueryDataAvailable(hFile:Pointer;var NumberOfBytesAvailable:Card; flags:Card; Context:Card): LongBool Func BoldHttpOpenRequest(hConnect:Pointer;Verb,ObjectName,Version,Referrer:str;AcceptTypes:PCharArr;Flags,Context:Card):Pointer Func BoldHttpSendRequest(hRequest:Ptr;Headers:str;Optional:Ptr;OptionalLength:Cardi): LongBool Func BoldInternetErrorDlg(hWnd:HWND;hRequest:HINTERNET;dwError,dwFlags:DWORD;var lppvData:Ptr):DWORD Func BoldInternetAttemptConnect( dwReserved : DWORD) : DWORD Func BoldInternetConnect(hInet: HINTERNET;ServerName:str; nServerPort:INTERNET_PORT; Username:str; Password:Str;dwService:DWORD;dwFlags:DWORD;dwContext:DWORD):HINTERNET Func BoldInternetCrackUrl(Url:PChar;UrlLength,dwFlags:DWORD;var lpUrlComponents:TURLComponents):BOOL; end; Proc SIRegister_BoldQueryUserDlg(CL: TPSPascalCompiler); begin TBoldQueryResult', '( qrYesAll, qrYes, qrNo, qrNoAll ) SIRegister_TfrmBoldQueryUser(CL); Func QueryUser( const Title, Query :Str) : TBoldQueryResult end; (*----------------------------------------------------------------------------*) Proc SIRegister_BoldQueue(CL: TPSPascalCompiler); begin //('befIsInDisplayList',' BoldElementFlag0); //('befStronglyDependedOfPrioritized',' BoldElementFlag1); //('befFollowerSelected',' BoldElementFlag2); FindClass('TOBJECT'),'TBoldQueue FindClass('TOBJECT'),'TBoldQueueable TBoldQueueDisplayMode', '( dmDisplayOne, dmDisplayAll ) SIRegister_TBoldQueueable(CL); SIRegister_TBoldQueue(CL); Func BoldQueueFinalized :Bool Func BoldInstalledQueue : TBoldQueue end; Proc SIRegister_Barcode(CL: TPSPascalCompiler); begin const mmPerInch','Extended).setExtended( 25.4); TBarcodeType', '( bcCode_2_5_interleaved, bcCode_2_5_industrial,' + bcCode_2_5_matrix, bcCode39, bcCode39Extended, bcCode128A, bcCode128B, bc' +Code128C, bcCode93, bcCode93Extended, bcCodeMSI, bcCodePostNet, bcCodeCoda' +bar, bcCodeEAN8, bcCodeEAN13, bcCodeUPC_A, bcCodeUPC_E0, bcCodeUPC_E1, bcC' +odeUPC_Supp2, bcCodeUPC_Supp5, bcCodeEAN128A, bcCodeEAN128B, bcCodeEAN128C TBarLineType', '( white, black, black_half ) TBarcodeOption', '( bcoNone, bcoCode, bcoTyp, bcoBoth ) TShowTextPosition','(stpTopLeft,stpTopRight,stpTopCenter,stpBottomLeft,stpBottomRight, stpBottomCenter ) TCheckSumMethod', '( csmNone, csmModulo10 ) SIRegister_TAsBarcode(CL); Func CheckSumModulo10( const data :Str) :Str Func ConvertMmToPixelsX( const Value : Double) : Int Func ConvertMmToPixelsY( const Value : Double) : Int Func ConvertInchToPixelsX( const Value : Double) : Int Func ConvertInchToPixelsY( const Value : Double) : Int end; Proc SIRegister_Geometry(CL: TPSPascalCompiler); //OpenGL begin TVector3f = array[0..2] of single; CL.AddTypeS('TAffineVector', 'TVector3f CL.AddTypeS('TVertex', 'TAffineVector THomogeneousByteVector', 'array[0..3] of Byte THomogeneousWordVector', 'array[0..3] of Word THomogeneousIntVector', 'array[0..3] of Int THomogeneousFltVector', 'array[0..3] of single THomogeneousDblVector', 'array[0..3] of double THomogeneousExtVector', 'array[0..3] of extended TAffineByteVector', 'array[0..2] of Byte TAffineWordVector', 'array[0..2] of Word TAffineIntVector', 'array[0..2] of Int TAffineFltVector', 'array[0..2] of single TAffineDblVector', 'array[0..2] of double TAffineExtVector', 'array[0..2] of extended THomogeneousByteMatrix', 'array[0..3] of THomogeneousByteVector THomogeneousWordMatrix', 'array[0..3] of THomogeneousWordVector THomogeneousIntMatrix', 'array[0..3] of THomogeneousIntVector THomogeneousFltMatrix', 'array[0..3] of THomogeneousFltVector THomogeneousDblMatrix', 'array[0..3] of THomogeneousDblVector THomogeneousExtMatrix', 'array[0..3] of THomogeneousExtVector TAffineByteMatrix', 'array[0..2] of TAffineByteVector TAffineWordMatrix', 'array[0..2] of TAffineWordVector TAffineIntMatrix', 'array[0..2] of TAffineIntVector TAffineFltMatrix', 'array[0..3] of TAffineFltVector TAffineDblMatrix', 'array[0..3] of TAffineDblVector TAffineExtMatrix', 'array[0..3] of TAffineExtVector TMatrix4b', 'THomogeneousByteMatrix TMatrix4w', 'THomogeneousWordMatrix TMatrix4i', 'THomogeneousIntMatrix TMatrix4f', 'THomogeneousFltMatrix TMatrix4d', 'THomogeneousDblMatrix TMatrix4e', 'THomogeneousExtMatrix TMatrix3b', 'TAffineByteMatrix TMatrix3w', 'TAffineWordMatrix TMatrix3i', 'TAffineIntMatrix TMatrix3f', 'TAffineFltMatrix TMatrix3d', 'TAffineDblMatrix TMatrix3e', 'TAffineExtMatrix //'PMatrix', '^TMatrix // will not work TMatrixGL', 'THomogeneousFltMatrix THomogeneousMatrix', 'THomogeneousFltMatrix TAffineMatrix', 'TAffineFltMatrix TQuaternion', 'record Vector : TVector4f; end TRectangle', 'record Left : Int; Top : Int; Width : integer; Height : Int; end TTransType', '( ttScaleX, ttScaleY, ttScaleZ, ttShearXY, ttShear' +'XZ, ttShearYZ, ttRotateX, ttRotateY, ttRotateZ, ttTranslateX, ttTranslateY' +',ttTranslateZ,ttPerspectiveX,ttPerspectiveY,ttPerspectiveZ, ttPerspectiveW ) 'EPSILON','Extended').setExtended( 1E-100); 'EPSILON2','Extended').setExtended( 1E-50); Func VectorAddGL( V1, V2 : TVectorGL) : TVectorGL Func VectorAffineAdd( V1, V2 : TAffineVector) : TAffineVector Func VectorAffineCombine(V1,V2:TAffineVector; F1, F2 : Single) : TAffineVector Func VectorAffineDotProduct( V1, V2 : TAffineVector) : Single Func VectorAffineLerp( V1, V2 : TAffineVector; t : Single) : TAffineVector Func VectorAffineSubtract( V1, V2 : TAffineVector) : TAffineVector Func VectorAngle( V1, V2 : TAffineVector) : Single Func VectorCombine( V1, V2 : TVectorGL; F1, F2 : Single) : TVectorGL Func VectorCrossProduct( V1, V2 : TAffineVector) : TAffineVector Func VectorDotProduct( V1, V2 : TVectorGL) : Single Func VectorLength( V : array of Single) : Single Func VectorLerp( V1, V2 : TVectorGL; t : Single) : TVectorGL Proc VectorNegate( V : array of Single) Func VectorNorm( V : array of Single) : Single Func VectorNormalize( V : array of Single) : Single Func VectorPerpendicular( V, N : TAffineVector) : TAffineVector Func VectorReflect( V, N : TAffineVector) : TAffineVector Proc VectorRotate( var Vector : TVector4f; Axis : TVector3f; Angle : Single) Proc VectorScale( V : array of Single; Factor : Single) Func VectorSubtractGL( V1, V2 : TVectorGL) : TVectorGL Func CreateRotationMatrixX( Sine, Cosine : Single) : TMatrixGL Func CreateRotationMatrixY( Sine, Cosine : Single) : TMatrixGL Func CreateRotationMatrixZ( Sine, Cosine : Single) : TMatrixGL Func CreateScaleMatrix( V : TAffineVector) : TMatrixGL Func CreateTranslationMatrix( V : TVectorGL) : TMatrixGL Proc MatrixAdjoint( var M : TMatrixGL) Func MatrixAffineDeterminant( M : TAffineMatrix) : Single Proc MatrixAffineTranspose( var M : TAffineMatrix) Func MatrixDeterminant( M : TMatrixGL) : Single Proc MatrixInvert( var M : TMatrixGL) Func MatrixMultiply( M1, M2 : TMatrixGL) : TMatrixGL Proc MatrixScale( var M : TMatrixGL; Factor : Single) Proc MatrixTranspose( var M : TMatrixGL) Func QuaternionConjugate( Q : TQuaternion) : TQuaternion Func QuaternionFromPoints( V1, V2 : TAffineVector) : TQuaternion Func QuaternionMultiply( qL, qR : TQuaternion) : TQuaternion Func QuaternionSlerp( QStart,QEnd:TQuaternion; Spin:Int; t:Single):TQuaternion Func QuaternionToMatrix( Q : TQuaternion) : TMatrixGL Proc QuaternionToPoints( Q : TQuaternion; var ArcFrom, ArcTo : TAffineVector) Func ConvertRotation( Angles : TAffineVector) : TVectorGL Func CreateRotationMatrix( Axis : TVector3f; Angle : Single) : TMatrixGL //Func MatrixDecompose( M : TMatrixGL; var Tran : TTransformations) :Bool Func VectorAffineTransform( V : TAffineVector; M : TAffineMatrix) : TAffineVector Func VectorTransform( V : TVector4f; M : TMatrixGL) : TVector4f; Func VectorTransform1( V : TVector3f; M : TMatrixGL) : TVector3f; Func MakeAffineDblVector( V : array of Double) : TAffineDblVector Func MakeDblVector( V : array of Double) : THomogeneousDblVector Func MakeAffineVector( V : array of Single) : TAffineVector Func MakeQuaternion( Imag : array of Single; Real : Single) : TQuaternion Func MakeVector( V : array of Single) : TVectorGL Func PointInPolygonGL( xp, yp : array of Single; x, y : Single) :Bool Func VectorAffineDblToFlt( V : TAffineDblVector) : TAffineVector Func VectorDblToFlt( V : THomogeneousDblVector) : THomogeneousVector Func VectorAffineFltToDbl( V : TAffineVector) : TAffineDblVector Func VectorFltToDbl( V : TVectorGL) : THomogeneousDblVector Func ArcCosGL( X : Extended) : Extended Func ArcSinGL( X : Extended) : Extended Func ArcTan2GL( Y, X : Extended) : Extended Func CoTanGL( X : Extended) : Extended Func DegToRadGL( Degrees : Extended) : Extended Func RadToDegGL( Radians : Extended) : Extended Proc SinCosGL( Theta : Extended; var Sin, Cos : Extended) Func TanGL( X : Extended) : Extended Func Turn( Matrix : TMatrixGL; Angle : Single) : TMatrixGL; Func Turn1( Matrix : TMatrixGL; MasterUp : TAffineVector; Angle: Single): TMatrixGL; Func Pitch( Matrix : TMatrixGL; Angle : Single) : TMatrixGL; Func Pitch1( Matrix : TMatrixGL; MasterRight:TAffineVector;Angle:Single):TMatrixGL; Func Roll( Matrix : TMatrixGL; Angle : Single) : TMatrixGL; Func Roll1(Matrix:TMatrixGL; MasterDirection:TAffineVector;Angle:Single):TMatrixGL; end; Proc SIRegister_JclRegistry(CL: TPSPascalCompiler); begin Func RegCreateKey( const RootKey : HKEY; const Key, Value :Str) : Longint Func RegDeleteEntry( const RootKey : HKEY; const Key, Name :Str) :Bool Func RegDeleteKeyTree( const RootKey : HKEY; const Key :Str) :Bool Func RegReadBool( const RootKey : HKEY; const Key, Name :Str) :Bool Func RegReadBoolDef(const RootKey:HKEY; const Key, Name:Str; Def:Bool) :Bool Func RegReadInt( const RootKey : HKEY; const Key, Name :Str) : Int Func RegReadIntDef( const RootKey : HKEY; const Key, Name :Str; Def : Int) : Int Func RegReadString( const RootKey : HKEY; const Key, Name :Str) :Str Func RegReadStringDef( const RootKey : HKEY; const Key, Name, Def :Str) :Str Func RegReadDWORD( const RootKey : HKEY; const Key, Name :Str) : Int64 Func RegReadDWORDDef(const RootKey: HKEY; const Key, Name :Str; Def:int64) : Int64 Proc RegWriteBool( const RootKey : HKEY; const Key, Name :Str; Value :Bool) Proc RegWriteInt( const RootKey : HKEY; const Key, Name :Str; Value : Int) Proc RegWriteString( const RootKey : HKEY; const Key, Name, Value :Str) Proc RegWriteDWORD( const RootKey : HKEY; const Key, Name :Str; Value : Int64) Func RegGetValueNames(const RootKey:HKEY;const Key:Str; const List : TStrings): Bool Func RegGetKeyNames( const RootKey: HKEY;const Key:Str; const List:TStrings):Bool Func RegHasSubKeys( const RootKey : HKEY; const Key :Str) :Bool Func RegKeyExists( const RootKey : HKEY; const Key :Str) :Bool AddTypeS('TExecKind',(ekMachineRun,ekMachineRunOnce,ekUserRun,ekUserRunOnce,ekServiceRun,ekServiceRunOnce ) AddClassN(FindClass('TOBJECT'),'EJclRegistryError Func UnregisterAutoExec( ExecKind : TExecKind; const Name :Str) :Bool Func RegisterAutoExec( ExecKind : TExecKind; const Name, Cmdline :Str) :Bool Func RegSaveList(const RootKey:HKEY;const Key:str;const ListName:str;const Items:TStrings):Bool; Func RegLoadList(const RootKey:HKEY;const Key:str;const ListName:str;const SaveTo:TStrings):Bool; Func RegDelList( const RootKey:HKEY;const Key:str;const ListName:str): Bool end; Proc SIRegister_JclCOM(CL: TPSPascalCompiler); begin CLSID_StdComponentCategoriesMgr','TGUID '{0002E005-0000-0000-C000-000000000046} CATID_SafeForInitializing','TGUID '{7DD95802-9882-11CF-9FA9-00AA006C42C4} CATID_SafeForScripting','TGUID '{7DD95801-9882-11CF-9FA9-00AA006C42C4} icMAX_CATEGORY_DESC_LEN','LongInt'( 128); FindClass('TOBJECT'),'EInvalidParam Func IsDCOMInstalled :Bool Func IsDCOMEnabled :Bool Func GetDCOMVersion :Str Func GetMDACVersion :Str Func GetMDACVersion2:Str Func MarshalInterThreadInterfaceInVarArray(const iid:TIID;unk:IUnknown;var VarArray:OleVariant):HResult; Func MarshalInterProcessInterfaceInStream(const iid:TIID;unk:IUnknown;var stm:IStream):HResult; Func MarshalInterProcessInterfaceInVarArray(const iid:TIID;unk:IUnknown;var VarArray:OleVariant):HResult; Func MarshalInterMachineInterfaceInStream(const iid:TIID;unk:IUnknown;var stm:IStream):HResult; Func MarshalInterMachineInterfaceInVarArray(const iid:TIID;unk:IUnknown;var VarArray:OleVariant):HResult; Func CreateComponentCategory( const CatID:TGUID; const sDescription:str): HResult Func RegisterCLSIDInCategory( const ClassID : TGUID; const CatID : TGUID): HResult Func UnRegisterCLSIDInCategory(const ClassID: TGUID; const CatID : TGUID): HResult Func ResetIStreamToStart( Stream : IStream) :Bool Func SizeOfIStreamContents( Stream : IStream) : Largeint Func StreamToVariantArray( Stream : TStream) : OleVariant; Func StreamToVariantArray1( Stream : IStream) : OleVariant; Proc VariantArrayToStream( VarArray : OleVariant; var Stream : TStream); Proc VariantArrayToStream1( VarArray : OleVariant; var Stream : IStream); end; Proc SIRegister_JclUnitConv_mX2(CL: TPSPascalCompiler); begin Const('CelsiusFreezingPoint','Extended').setExtended( 0.0); FahrenheitFreezingPoint','Extended).setExtended( 32.0); KelvinFreezingPoint','Extended).setExtended( 273.15); CelsiusAbsoluteZero','Extended).setExtended( - 273.15); FahrenheitAbsoluteZero','Extended).setExtended( - 459.67); KelvinAbsoluteZero','Extended).setExtended( 0.0); DegPerCycle','Extended).setExtended( 360.0); DegPerGrad','Extended).setExtended( 0.9); DegPerRad','Extended).setExtended( 57.295779513082320876798154814105); GradPerCycle','Extended).setExtended( 400.0); GradPerDeg','Extended).setExtended( 1.1111111111111111111111111111111); GradPerRad','Extended).setExtended( 63.661977236758134307553505349006); RadPerCycle','Extended).setExtended( 6.283185307179586476925286766559); RadPerDeg','Extended).setExtended( 0.017453292519943295769236907684886); RadPerGrad','Extended).setExtended( 0.015707963267948966192313216916398); CyclePerDeg','Extended).setExtended( 0.0027777777777777777777777777777778); CyclePerGrad','Extended).setExtended( 0.0025); CyclePerRad','Extended).setExtended( 0.15915494309189533576888376337251); ArcMinutesPerDeg','Extended).setExtended( 60.0); ArcSecondsPerArcMinute',Extended').setExtended( 60.0); Func HowAOneLinerCanBiteYou( const Step, Max : Longint) : Longint Func MakePercentage( const Step, Max : Longint) : Longint Func CelsiusToKelvin( const T : double) : double Func CelsiusToFahrenheit( const T : double) : double Func KelvinToCelsius( const T : double) : double Func KelvinToFahrenheit( const T : double) : double Func FahrenheitToCelsius( const T : double) : double Func FahrenheitToKelvin( const T : double) : double Func CycleToDeg( const Cycles : double) : double Func CycleToGrad( const Cycles : double) : double Func CycleToRad( const Cycles : double) : double Func DegToCycle( const Degrees : double) : double Func DegToGrad( const Degrees : double) : double Func DegToRad( const Degrees : double) : double Func GradToCycle( const Grads : double) : double Func GradToDeg( const Grads : double) : double Func GradToRad( const Grads : double) : double Func RadToCycle( const Radians : double) : double Func RadToDeg( const Radians : double) : double Func RadToGrad( const Radians : double) : double Func DmsToDeg( const D, M : Int; const S : double) : double Func DmsToRad( const D, M : Int; const S : double) : double Proc DegToDms( const Degrees : double; out D, M : Int; out S : double) Func DegToDmsStr( const Degrees : double; const SecondPrecision :Card):Str Proc CartesianToPolar( const X, Y : double; out R, Phi : double) Proc PolarToCartesian( const R, Phi : double; out X, Y : double) Proc CartesianToCylinder( const X, Y, Z : double; out R, Phi, Zeta : double) Proc CartesianToSpheric( const X, Y, Z : double; out Rho, Phi, Theta : double) Proc CylinderToCartesian( const R, Phi, Zeta : double; out X, Y, Z : double) Proc SphericToCartesian( const Rho, Theta, Phi : double; out X, Y, Z : double) Func CmToInch( const Cm : double) : double Func InchToCm( const Inch : double) : double Func FeetToMetre(const Feet : double) : double Func MetreToFeet(const Metre : double) : double Func YardToMetre(const Yard : double) : double Func MetreToYard(const Metre : double) : double Func NmToKm(const Nm : double) : double Func KmToNm(const Km : double) : double Func KmToSm(const Km : double) : double Func SmToKm(const Sm : double) : double Func LitreToGalUs( const Litre : double) : double Func GalUsToLitre( const GalUs : double) : double Func GalUsToGalCan( const GalUs : double) : double Func GalCanToGalUs( const GalCan : double) : double Func GalUsToGalUk( const GalUs : double) : double Func GalUkToGalUs( const GalUk : double) : double Func LitreToGalCan( const Litre : double) : double Func GalCanToLitre( const GalCan : double) : double Func LitreToGalUk( const Litre : double) : double Func GalUkToLitre( const GalUk : double) : double Func KgToLb( const Kg : double) : double Func LbToKg( const Lb : double) : double Func KgToOz( const Kg : double) : double Func OzToKg( const Oz : double) : double Func CwtUsToKg(const Cwt : double) : double Func CwtUkToKg(const Cwt : double) : double Func KaratToKg(const Karat : double) : double Func KgToCwtUs(const Kg : double) : double Func KgToCwtUk(const Kg : double) : double Func KgToKarat(const Kg : double) : double Func KgToSton(const Kg : double) : double Func KgToLton(const Kg : double) : double Func StonToKg(const STon : double) : double Func LtonToKg(const Lton : double) : double Func QrUsToKg(const Qr : double) : double Func QrUkToKg(const Qr : double) : double Func KgToQrUs(const Kg : double) : double Func KgToQrUk(const Kg : double) : double Func PascalToBar( const Pa : double) : double Func PascalToAt( const Pa : double) : double Func PascalToTorr( const Pa : double) : double Func BarToPascal( const Bar : double) : double Func AtToPascal( const At : double) : double Func TorrToPascal( const Torr : double) : double Func KnotToMs( const Knot : double) : double Func HpElectricToWatt( const HpE : double) : double Func HpMetricToWatt( const HpM : double) : double Func MsToKnot( const ms : double) : double Func WattToHpElectric( const W : double) : double Func WattToHpMetric( const W : double) : double Func getBigPI:Str; //PI of 1000 numbers Proc SIRegister_devcutils(CL: TPSPascalCompiler); begin Func CDExecuteFile( const FileName, Params, DefaultDir :Str; ShowCmd : Int) : THandle Proc CDCopyFile( const FileName, DestName :Str) Proc CDMoveFile( const FileName, DestName :Str) Func MakeCommaTextToColor( Text :Str; Index : Int; DefaultColor : TColor) : TColor Proc CDDeleteFiles( Sender : TObject; s :Str) Func CDGetTempDir :Str Func CDGetFileSize( FileName :Str) : longint Func GetFileTime( FileName :Str) : longint Func GetShortName( FileName :Str) :Str Func GetFullName( FileName :Str) :Str Func WinReboot :Bool Func WinDir :Str Func RunFile( FileToRun :Str; Params :Str; Dir :Str; Wait :Bool) :Card Func RunFile_( Cmd, WorkDir :Str; Wait :Bool) :Bool Func devExecutor : TdevExecutor end; Proc SIRegister_FileAssocs(CL: TPSPascalCompiler); begin Proc CheckAssociations // AssociationsCount','LongInt'( 7); Proc Associate( Index : Int) Proc UnAssociate( Index : Int) Func IsAssociated( Index : Int) :Bool Func CheckFiletype(const extension,filetype,description, verb,serverapp:str):Bool Proc RegisterFiletype(const extension,filetype,description,verb,serverapp,IcoNum:str) Proc RegisterDDEServer( const filetype, verb, topic, servername, macro :Str) Proc RefreshIcons; Func GetShadeColor(ACanvas: TCanvas; clr: TColor; Value: Int): TColor; Func MergColor(Colors: Array of TColor): TColor; Func NewColor(ACanvas: TCanvas; clr: TColor; Value: Int): TColor; Proc DimBitmap(ABitmap: TBitmap; Value: Int); Func GrayColor(ACanvas: TCanvas; clr: TColor; Value: Int): TColor; Func GetInverseColor(AColor: TColor): TColor; Proc GrayBitmap(ABitmap: TBitmap; Value: Int); Proc DrawBitmapShadow(B: TBitmap; ACanvas: TCanvas;X,Y: Int;ShadowColor: TColor); Proc DrawCheckMark(ACanvas: TCanvas; X, Y: Int); Proc GetSystemMenuFont(Font: TFont); end; //***************************unit uPSI_JvHLParser;******************************* Func IsStringConstant(const St:Str):Bool; Func IsIntConstant(const St:Str):Bool; Func IsRealConstant(const St:Str):Bool; Func IsIdentifier(const ID:Str):Bool; Func GetStringValue(const St:Str):Str; Proc ParseString(const S:Str; Ss: TStrings); Func IsStringConstantW(const St: WideString):Bool; Func IsIntConstantW(const St: WideString):Bool; Func IsRealConstantW(const St: WideString):Bool; Func IsIdentifierW(const ID: WideString):Bool; Func GetStringValueW(const St: WideString): WideString; Proc ParseStringW(const S: WideString; Ss: TStrings); //***************************unit uPSI_JclMapi;******************************* Func JclSimpleSendMail( const ARecipient,AName,ASubject, ABody :Str; const AAttachment : TFileName; ShowDialog :Bool; AParentWND : HWND) :Bool Func JclSimpleSendFax( const ARecipient, AName,ASubject,ABody:str;const AAttachment: TFileName; ShowDialog :Bool; AParentWND : HWND) :Bool Func JclSimpleBringUpSendMailDialog(const ASubject,ABody:str;const AAttach:TFileName;AParentWND:HWND):Bool Func MapiCheck( const Res : DWORD; IgnoreUserAbort :Bool) : DWORD Func MapiErrorMessage( const ErrorCode : DWORD) :Str Proc SIRegister_IdNTLM(CL: TPSPascalCompiler); begin //'Pdes_key_schedule', '^des_key_schedule // will not work Func BuildType1Message( ADomain, AHost :Str) :Str Func BuildType3Message(ADomain,AHost,AUsername:WideString;APassword,ANonce:str):str Proc RegisterAuthenticationMethod(MethodName:str; AuthClass:TIdAuthenticationClass) Func FindAuthClass( AuthName :Str) : TIdAuthenticationClass GBase64CodeTable','string'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/ GXXECodeTable','string'+-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz GUUECodeTable','string'`!"#$%&''()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_ end; Proc SIRegister_WDosSocketUtils(CL: TPSPascalCompiler); begin ('IpAny','LongWord').SetUInt( $00000000); IpLoopBack','LongWord').SetUInt( $7F000001); IpBroadcast','LongWord').SetUInt( $FFFFFFFF); IpNone','LongWord').SetUInt( $FFFFFFFF); PortAny','LongWord( $0000); SocketMaxConnections','LongInt'( 5); TIpAddr', 'LongWord TIpRec', 'record IpB1 : byte; IpB2 : byte; IpB3 : byte; IpB4:Byte; end Func HostToNetLong( HostLong : LongWord) : LongWord Func HostToNetShort( HostShort : Word) : Word Func NetToHostLong( NetLong : LongWord) : LongWord Func NetToHostShort( NetShort : Word) : Word Func StrToIp( Ip :Str) : TIpAddr Func IpToStr( Ip : TIpAddr) :Str end; (*----------------------------------------------------------------------------*) Proc SIRegister_ALSMTPClient(CL: TPSPascalCompiler); begin TAlSmtpClientAuthType', '( AlsmtpClientAuthNone, alsmtpClientAut' +'hPlain, AlsmtpClientAuthLogin, AlsmtpClientAuthCramMD5, AlsmtpClientAuthCr' +'amSha1, AlsmtpClientAuthAutoSelect ) TAlSmtpClientAuthTypeSet', 'set of TAlSmtpClientAuthType SIRegister_TAlSmtpClient(CL); end; Proc SIRegister_WDosPlcUtils(CL: TPSPascalCompiler); begin TBitNo', 'IntTStByteNo', 'IntTStationNo','IntTInOutNo','IntTIo','(EE,AA,NE,NA ) TBitSet', 'set of TBitNo TAddrKind', 'set of ( akBit0, akBit1, akBit2, akOut, akNot, akBus ) TBitAddrRec', 'record Kind : TAddrKind; InOutNo : TInOutNo; ByteNo : Byte; end TBitAddr', 'LongInt TByteAddrRec', 'record Kind : TAddrKind; ByteNo: Byte; end TByteAddr', 'SmallInt TInOutState', '( iosInit, iosHalt, iosRun, iosError ) Func BitAddr(aIo: TIo; aInOutNo : TInOutNo; aByteNo : Byte; aBitNo : TBitNo) : TBitAddr Func BusBitAddr(aIo:TIo;aInOutNo:TInOutNo;aStat:TStatNo;aStByteNo:TStByteNo;aBitNo:TBitNo):TBitAddr; Proc BitAddrToValues(aBitAdr:TBitAdr;var aIo:TIo;var aInOutNo:TInOutNo;var aByteNo:Byte;var aBitNo:TBitNo); Func BitAddrToStr( Value : TBitAddr) :Str Func StrToBitAddr( const Value :Str) : TBitAddr Func ByteAddr( aIo : TIo; aInOutNo : TInOutNo; aByteNo : Byte) : TByteAddr Func BusByteAddr(aIo:TIo;aInOutNo:TInOutNo;aStation:TStationNo;aStByteNo: TStByteNo):TByteAddr Proc ByteAddrToValues(aByteAddr:TByteAddr;var aIo:TIo;var aInOutNo:TInOutNo;var aByteNo:Byte) Func ByteAddrToStr( Value : TByteAddr) :Str Func StrToByteAddr( const Value :Str) : TByteAddr Proc IncByteAddr( var ByteAddr : TByteAddr; Increment : Int) Proc DecByteAddr( var ByteAddr : TByteAddr; Decrement : Int) Func InOutStateToStr( State : TInOutState) :Str Func MasterErrorToStr( ErrorCode : TErrorCode) :Str Func SlaveErrorToStr( ErrorCode : TErrorCode) :Str end; Proc SIRegister_WDosTimers(CL: TPSPascalCompiler); begin TIntFreq', '( ifNone, if32768, if16384, if8192, if4096, if2048, ' +'if1024, if512, if256, if128, if64, if32, if16, if8, if4,if2 ) DpmiPmVector', 'Int64 'DInterval','LongInt'( 1000); //'DEnabled','Boolean')BoolToStr( True); 'DIntFreq','string' if64 //'DMessages','Boolean if64); SIRegister_TwdxCustomTimer(CL); SIRegister_TwdxTimer(CL); SIRegister_TwdxRtcTimer(CL); SIRegister_TCustomIntTimer(CL); SIRegister_TIntTimer(CL); SIRegister_TRtcIntTimer(CL); Func RealNow : TDateTime Func MsToDateTime( MilliSecond : LongInt) : TDateTime Func DateTimeToMs( Time : TDateTime) : LongInt end; Proc SIRegister_IdSysLogMessage(CL: TPSPascalCompiler); begin TIdSyslogPRI', 'Int TIdSyslogFacility', '( sfKernel, sfUserLevel, sfMailSystem, sfSy' +'stemDaemon, sfSecurityOne, sfSysLogInternal, sfLPR, sfNNTP, sfUUCP, sfCloc' +'kDaemonOne, sfSecurityTwo, sfFTPDaemon, sfNTP, sfLogAudit, sfLogAlert, sfC' +'lockDaemonTwo, sfLocalUseZero, sfLocalUseOne, sfLocalUseTwo, sfLocalUseThr' +'ee, sfLocalUseFour, sfLocalUseFive, sfLocalUseSix, sfLocalUseSeven ) TIdSyslogSeverity','(slEmergency,slAlert,slCritical,slError,slWarning,slNotice,slInformational,slDebug) SIRegister_TIdSysLogMsgPart(CL); SIRegister_TIdSysLogMessage(CL); Func FacilityToString( AFac : TIdSyslogFacility) :Str Func SeverityToString( ASec : TIdsyslogSeverity) :Str Func NoToSeverity( ASev : Word) : TIdSyslogSeverity Func logSeverityToNo( ASev : TIdSyslogSeverity) : Word Func NoToFacility( AFac : Word) : TIdSyslogFacility Func logFacilityToNo( AFac : TIdSyslogFacility) : Word end; Proc SIRegister_TextUtils(CL: TPSPascalCompiler); begin 'UWhitespace','String '(?:\s*) Func StripSpaces( const AText :Str) :Str Func CharCount( const AText :Str; Ch : Char) : Int Func BalancedText(const AText:Str; const Ch1,Ch2: Char; const Count: Int) :Str Func BalancedTextReg( const AText:str;const Ch1, Ch2 : Char; const Count :Int):str end; Proc SIRegister_ExtPascalUtils(CL: TPSPascalCompiler); begin ExtPascalVersion','String '0.9.8 AddTypeS('TBrowser', '( brUnknown, brIE, brFirefox, brChrome, brSafari, br' +'Opera, brKonqueror, brMobileSafari ) AddTypeS('TCSSUnit',(cssPX,cssPerc,cssEM,cssEX,cssIN,cssCM,cssMM,cssPT, cssPC, cssnone ) AddTypeS('TExtProcedure', 'Procedure Func DetermineBrowser( const UserAgentStr :Str) : TBrowser Func ExtExtract(const Delims:array of string;var S:str;var Matches:TStringList;Remove:bool):bool; Func ExtExplode( Delim : char; const S :Str; Separator : char) : TStringList Func FirstDelimiter( const Delimiters, S :Str; Offset : Int) : Int Func RPosEx( const Substr, Str :Str; Offset : Int) : Int Func CountStr( const Substr, Str :Str; UntilStr :Str) : Int Func StrToJS( const S :Str; UseBR :Bool) :Str Func CaseOf( const S :Str; const Cases : array of string) : Int Func RCaseOf( const S :Str; const Cases : array of string) : Int Func EnumToJSString( TypeInfo : PTypeInfo; Value : Int) :Str Func SetPaddings(Top:Int;Right:int;Bottom:intr;Left:int;CSSUnit:TCSSUnit;Header:bool):str; Func SetMargins(Top:Int;Right:int;Bottom:int;Left:Int;CSSUnit:TCSSUnit;Header:bool):str; Func ExtBefore( const BeforeS, AfterS, S :Str) :Bool Func IsUpperCase( S :Str) :Bool Func BeautifyJS(const AScript:str;const StartingLevel:Int;SplitHTMLNewLine:bool):str; Func BeautifyCSS( const AStyle :Str) :Str Func LengthRegExp( Rex :Str; CountAll :Bool) : Int Func JSDateToDateTime( JSDate :Str) : TDateTime end; Proc SIRegister_JclShell(CL: TPSPascalCompiler); begin TSHDeleteOption','( doSilent, doAllowUndo, doFilesOnly ) TSHDeleteOptions','set of TSHDeleteOption TSHRenameOption','( roSilent, roRenameOnCollision ) TSHRenameOptions','set of TSHRenameOption Func SHDeleteFiles(Parent:HWND;const Files:str;Options:TSHDeleteOptions):Boolean Func SHDeleteFolder(Parent:HWND; const Folder:str; Options: TSHDeleteOptions): Bool Func SHRenameFile( const Src, Dest :Str; Options : TSHRenameOptions) :Bool TEnumFolderFlag', '( efFolders, efNonFolders, efIncludeHidden ) TEnumFolderFlags', 'set of TEnumFolderFlag TEnumFolderRec','record DisplayName:str; Attributes:DWORD;IconLarge:HICON;IconSmall:HICON; Item:PItemIdList; EnumIdList:IEnumIdList;Folder:IShellFolder;end Func SHEnumFolderFirst(const Folder:str;Flags:TEnumFolderFlags;var F:TEnumFolderRec):Bool; Func SHEnumSpecialFolderFirst(SpecFolder:DWORD;Flags:TEnumFolderFlags;var F:TEnumFolderRec):Bool; Proc SHEnumFolderClose( var F : TEnumFolderRec) Func SHEnumFolderNext( var F : TEnumFolderRec) :Bool Func GetSpecialFolderLocation( const Folder : Int) :Str Func DisplayPropDialog( const Handle : HWND; const FileName :Str) :Bool; Func DisplayPropDialog1( const Handle : HWND; const Item : PItemIdList) :Bool; Func DisplayContextMenu(const Handle:HWND; const FileName:Str; Pos:TPoint):Bool Func OpenFolder( const Path :Str; Parent : HWND) :Bool Func OpenSpecialFolder( FolderID : Int; Parent : HWND) :Bool Func SHReallocMem( var P : Pointer; Count : Int) :Bool Func SHAllocMem( out P : Pointer; Count : Int) :Bool Func SHGetMem( var P : Pointer; Count : Int) :Bool Func SHFreeMem( var P : Pointer) :Bool Func DriveToPidlBind( const DriveName :Str; out Folder : IShellFolder) : PItemIdList Func PathToPidl( const Path :Str; Folder : IShellFolder) : PItemIdList Func PathToPidlBind( const FileName :Str; out Folder : IShellFolder) : PItemIdList Func PidlBindToParent(const IdList:PItemIdList;out Folder:IShellFolder;out Last:PItemIdList):Bool; Func PidlCompare( const Pidl1, Pidl2 : PItemIdList) :Bool Func PidlCopy( const Source : PItemIdList; out Dest : PItemIdList) :Bool Func PidlFree( var IdList : PItemIdList) :Bool Func PidlGetDepth( const Pidl : PItemIdList) : Int Func PidlGetLength( const Pidl : PItemIdList) : Int Func PidlGetNext( const Pidl : PItemIdList) : PItemIdList Func PidlToPath( IdList : PItemIdList) :Str Func StrRetFreeMem( StrRet : TStrRet) :Bool Func StrRetToString( IdList : PItemIdList; StrRet : TStrRet; Free :Bool) :Str PShellLink', '^TShellLink // will not work TShellLink', 'record Arguments :Str; ShowCmd : Int; Work' +ingDirectory :Str; IdList : PItemIDList; Target :Str; Description ' +:Str; IconLocation :Str; IconIndex : Int; HotKey : Word; end Proc ShellLinkFree( var Link : TShellLink) Func ShellLinkResolve( const FileName :Str; var Link : TShellLink) : HRESULT Func ShellLinkCreate( const Link : TShellLink; const FileName :Str) : HRESULT Func ShellLinkCreateSystem(const Link:TShellLink;const Folder:Int;const FileName:str):HRESULT; Func ShellLinkGetIcon( const Link : TShellLink; const Icon : TIcon) :Bool Func SHDllGetVersion( const FileName :Str; var Version : TDllVersionInfo) :Bool Func GetSystemIcon( IconIndex : Int; Flags :Card) : HICON Func OverlayIcon( var Icon : HICON; Overlay : HICON; Large :Bool) :Bool Func OverlayIconShortCut( var Large, Small : HICON) :Bool Func OverlayIconShared( var Large, Small : HICON) :Bool Func SHGetItemInfoTip( const Folder : IShellFolder; Item : PItemIdList) :Str Func ShellExecEx(const FileName:str;const Paramtrs:str;const Verb:str;CmdShow:Int):Bool; Func ShellExec(Wnd:Int;const Operati,FileNam,Paramtrs,Directy:str;ShowCommand:Int):Bool; Func ShellExecAndWait(const FileName:str;const Paramets:str;const Verb:str;CmdShow:Int):Bool; Func ShellOpenAs( const FileName :Str) :Bool Func ShellRasDial( const EntryName :Str) :Bool Func ShellRunControlPanel( const NameOrFileName:str; AppletNumber:Int):Boolean Func GetFileNameIcon( const FileName :Str; Flags :Card) : HICON TJclFileExeType', '( etError, etMsDos, etWin16, etWin32Gui, etWin32Con ) Func GetFileExeType( const FileName : TFileName) : TJclFileExeType Func ShellFindExecutable( const FileName, DefaultDir :Str) :Str Proc keybd_event( bVk : Byte; bScan : Byte; dwFlags, dwExtraInfo : DWORD) Func OemKeyScan( wOemChar : Word) : DWORD Proc mouse_event( dwFlags, dx, dy, dwData, dwExtraInfo : DWORD) end; Proc SIRegister_cXMLFunctions(CL: TPSPascalCompiler); begin xmlVersion','String '1.0 FindClass('TOBJECT'),'Exml //Func xmlValidChar( const Ch : AnsiChar) :Bool; Func xmlValidChar1( const Ch : UCS4Char) :Bool; Func xmlValidChar2( const Ch : WideChar) :Bool; Func xmlIsSpaceChar( const Ch : WideChar) :Bool Func xmlIsLetter( const Ch : WideChar) :Bool Func xmlIsDigit( const Ch : WideChar) :Bool Func xmlIsNameStartChar( const Ch : WideChar) :Bool Func xmlIsNameChar( const Ch : WideChar) :Bool Func xmlIsPubidChar( const Ch : WideChar) :Bool Func xmlValidName( const Text : UnicodeString) :Bool //xmlSpace','Char #$20 or #$9 or #$D or #$A); //Func xmlSkipSpace( var P : PWideChar) :Bool //Func xmlSkipEq( var P : PWideChar) :Bool //Func xmlExtractQuotedText( var P : PWideChar; var S : UnicodeString) :Bool //Func xmlGetEntityEncoding(const Buf:Pointer;const BufSize:Int;out HeaderSize:Int):TUnicodeCodecClass Func xmlResolveEntityReference( const RefName : UnicodeString) : WideChar Func xmlTag( const Tag : UnicodeString) : UnicodeString Func xmlEndTag( const Tag : UnicodeString) : UnicodeString Func xmlAttrTag( const Tag : UnicodeString; const Attr : UnicodeString) : UnicodeString Func xmlEmptyTag( const Tag, Attr : UnicodeString) : UnicodeString Proc xmlSafeTextInPlace( var Txt : UnicodeString) Func xmlSafeText( const Txt : UnicodeString) : UnicodeString Func xmlSpaceIndent( const IndentLength : Int; const IndentLevel : Int):UnicodeString Func xmlTabIndent( const IndentLevel : Int) : UnicodeString Func xmlComment( const Comment : UnicodeString) : UnicodeString Proc SelfTestcXMLFunctions end; (*----------------------------------------------------------------------------*) Proc SIRegister_DepWalkUtils(CL: TPSPascalCompiler); begin Func AWaitCursor : IUnknown Func ChangeCursor( NewCursor : TCursor) : IUnknown Proc SuspendRedraw( AControl : TWinControl; Suspend :Bool) Func YesNo( const ACaption, AMsg :Str) :Bool Proc strTokenize( const S :Str; Delims : TSysCharSet; Results : TStrings) Func GetBorlandLibPath( Version : Int; ForDelphi :Bool) :Str Func GetExpandedLibRoot( Version : Int; ForDelphi :Bool) :Str Proc GetPathList( Version : Int; ForDelphi :Bool; Strings : TStrings) Proc GetSystemPaths( Strings : TStrings) Proc MakeEditNumeric( EditHandle : Int) end; Proc SIRegister_yuvconverts(CL: TPSPascalCompiler); begin AddTypeS('TVideoCodec','(vcUnknown,vcRGB,vcYUY2,vcUYVY,vcBTYUV,vcYV,U9,vcYUV12,vcY8,vcY211) 'BI_YUY2','LongWord( $32595559); 'BI_UYVY','LongWord').SetUInt( $59565955); 'BI_BTYUV','LongWord').SetUInt( $50313459); 'BI_YVU9','LongWord').SetUInt( $39555659); 'BI_YUV12','LongWord( $30323449); 'BI_Y8','LongWord').SetUInt( $20203859); 'BI_Y211','LongWord').SetUInt( $31313259); Func BICompressionToVideoCodec( Value : DWord) : TVideoCodec Func ConvertCodecToRGB(Codec:TVideoCodec;Src,Dst:Pointer;AWidth,AHeight:Int):Bool; end; (*----------------------------------------------------------------------------*) Proc SIRegister_AviCap(CL: TPSPascalCompiler); begin 'WM_USER','LongWord').SetUInt( $0400); 'WM_CAP_START','LongWord').SetUint($0400); 'WM_CAP_END','longword').SetUint($0400+85); //WM_CAP_START+ 85 // WM_CAP_SET_CALLBACK_CAPCONTROL = (WM_CAP_START+ 85); Func capSetCallbackOnError( hwnd : THandle; fpProc : LongInt) : LongInt Func capSetCallbackOnStatus( hwnd : THandle; fpProc : LongInt) : LongInt Func capSetCallbackOnYield( hwnd : THandle; fpProc : LongInt) : LongInt Func capSetCallbackOnFrame( hwnd : THandle; fpProc : LongInt) : LongInt Func capSetCallbackOnVideoStream( hwnd : THandle; fpProc : LongInt) : LongInt Func capSetCallbackOnWaveStream( hwnd : THandle; fpProc : LongInt) : LongInt Func capSetCallbackOnCapControl( hwnd : THandle; fpProc : LongInt) : LongInt Func capSetUserData( hwnd : THandle; lUser : LongInt) : LongInt Func capGetUserData( hwnd : THandle) : LongInt Func capDriverConnect( hwnd : THandle; I : Word) : LongInt Func capDriverDisconnect( hwnd : THandle) : LongInt Func capDriverGetName( hwnd : THandle; szName : LongInt; wSize : Word) : LongInt Func capDriverGetVersion( hwnd : THandle; szVer : LongInt; wSize : Word) : LongInt Func capDriverGetCaps( hwnd : THandle; s : LongInt; wSize : Word) : LongInt Func capFileSetCaptureFile( hwnd : THandle; szName : LongInt) : LongInt Func capFileGetCaptureFile( hwnd : THandle; szName : LongInt; wSize : Word):LongInt Func capFileAlloc( hwnd : THandle; dwSize : LongInt) : LongInt Func capFileSaveAs( hwnd : THandle; szName : LongInt) : LongInt Func capFileSetInfoChunk( hwnd : THandle; lpInfoChunk : LongInt) : LongInt Func capFileSaveDIB( hwnd : THandle; szName : LongInt) : LongInt Func capEditCopy( hwnd : THandle) : LongInt Func capSetAudioFormat( hwnd : THandle; s : LongInt; wSize : Word) : LongInt Func capGetAudioFormat( hwnd : THandle; s : LongInt; wSize : Word) : LongInt Func capGetAudioFormatSize( hwnd : THandle) : LongInt Func capDlgVideoFormat( hwnd : THandle) : LongInt Func capDlgVideoSource( hwnd : THandle) : LongInt Func capDlgVideoDisplay( hwnd : THandle) : LongInt Func capDlgVideoCompression( hwnd : THandle) : LongInt Func capGetVideoFormat( hwnd : THandle; s : LongInt; wSize : Word) : LongInt Func capGetVideoFormatSize( hwnd : THandle) : LongInt Func capSetVideoFormat( hwnd : THandle; s : LongInt; wSize : Word) : LongInt Func capPreview( hwnd : THandle; f : Word) : LongInt Func capPreviewRate( hwnd : THandle; wMS : Word) : LongInt Func capOverlay( hwnd : THandle; f : Word) : LongInt Func capPreviewScale( hwnd : THandle; f : Word) : LongInt Func capGetStatus( hwnd : THandle; s : LongInt; wSize : Word) : LongInt Func capSetScrollPos( hwnd : THandle; lpP : LongInt) : LongInt Func capGrabFrame( hwnd : THandle) : LongInt Func capGrabFrameNoStop( hwnd : THandle) : LongInt Func capCaptureSequence( hwnd : THandle) : LongInt Func capCaptureSequenceNoFile( hwnd : THandle) : LongInt Func capCaptureStop( hwnd : THandle) : LongInt Func capCaptureAbort( hwnd : THandle) : LongInt Func capCaptureSingleFrameOpen( hwnd : THandle) : LongInt Func capCaptureSingleFrameClose( hwnd : THandle) : LongInt Func capCaptureSingleFrame( hwnd : THandle) : LongInt Func capCaptureGetSetup( hwnd : THandle; s : LongInt; wSize : Word) : LongInt Func capCaptureSetSetup( hwnd : THandle; s : LongInt; wSize : Word) : LongInt Func capSetMCIDeviceName( hwnd : THandle; szName : LongInt) : LongInt Func capGetMCIDeviceName( hwnd : THandle; szName : LongInt; wSize : Word) : LongInt Func capPaletteOpen( hwnd : THandle; szName : LongInt) : LongInt Func capPaletteSave( hwnd : THandle; szName : LongInt) : LongInt Func capPalettePaste( hwnd : THandle) : LongInt Func capPaletteAuto( hwnd : THandle; iFrames : Word; iColors : LongInt) : LongInt Func capPaletteManual( hwnd : THandle; fGrab : Word; iColors : LongInt) : LongInt //PCapDriverCaps', '^TCapDriverCaps // will not work TCapDriverCaps', 'record wDeviceIndex : WORD; fHasOverlay : BOOL' +'; fHasDlgVideoSource : BOOL; fHasDlgVideoFormat : BOOL; fHasDlgVideoDispla' +'y : BOOL; fCaptureInitialized : BOOL; fDriverSuppliesPalettes : BOOL; hVid' +'eoIn : THANDLE; hVideoOut : THANDLE; hVideoExtIn:THANDLE; hVideoExtOut:THANDLE; end //PCapStatus', '^TCapStatus // will not work TCapStatus', 'record uiImageWidth : UINT; uiImageHeight : UINT; ' +'fLiveWindow : BOOL; fOverlayWindow : BOOL; fScale : BOOL; ptScroll : TPOIN' +'T; fUsingDefaultPalette : BOOL; fAudioHardware : BOOL; fCapFileExists : BO' +'OL; dwCurrentVideoFrame : DWORD; dwCurrentVideoFramesDropped : DWORD; dwCu' +'rrentWaveSamples : DWORD; dwCurrentTimeElapsedMS : DWORD; hPalCurrent : HP' +'ALETTE; fCapturingNow : BOOL; dwReturn : DWORD; wNumVideoAllocated : WORD;' +' wNumAudioAllocated : WORD; end //PCaptureParms', '^TCaptureParms // will not work TCaptureParms', 'record dwRequestMicroSecPerFrame : DWORD; fMake' +'UserHitOKToCapture : BOOL; wPercentDropForError : WORD; fYield : BOOL; dwI' +'ndexSize : DWORD; wChunkGranularity : WORD; fUsingDOSMemory : BOOL; wNumVi' +'deoRequested : WORD; fCaptureAudio : BOOL; wNumAudioRequested : WORD; vKey' +'Abort : WORD; fAbortLeftMouse : BOOL; fAbortRightMouse : BOOL; fLimitEnabl' +'ed : BOOL; wTimeLimit : WORD; fMCIControl : BOOL; fStepMCIDevice : BOOL; d' +'wMCIStartTime : DWORD; dwMCIStopTime : DWORD; fStepCaptureAt2x : BOOL; wSt' +'epCaptureAverageFrames : WORD; dwAudioBufferSize : DWORD; fDisableWriteCac' +he : BOOL; AVStreamMaster : WORD; end // PCapInfoChunk', '^TCapInfoChunk // will not work //TCapInfoChunk', 'record fccInfoID : FOURCC; lpData : LongInt; cbData : LongInt; end 'CONTROLCALLBACK_PREROLL','LongInt'( 1); 'CONTROLCALLBACK_CAPTURING','LongInt'( 2); Func capCreateCaptureWindow( lpszWindowName: PChar; dwStyle : DWord; x, y : Int; nWidth, nHeight : Int; hwndParent : THandle; nID : Int) : THandle Func capGetDriverDescription(wDriverIndex:DWord;lpszName:PChar;cbName:Int;lpszVer:PChar;cbVer:Int):Bool; 'IDS_CAP_BEGIN','LongInt'( 300); 'IDS_CAP_END','LongInt'( 301); 'IDS_CAP_INFO','LongInt'( 401); 'IDS_CAP_OUTOFMEM','LongInt'( 402); 'IDS_CAP_FILEEXISTS','LongInt'( 403); 'IDS_CAP_ERRORPALOPEN','LongInt'( 404); 'IDS_CAP_ERRORPALSAVE','LongInt'( 405); 'IDS_CAP_ERRORDIBSAVE','LongInt'( 406); 'IDS_CAP_DEFAVIEXT','LongInt'( 407); 'IDS_CAP_DEFPALEXT','LongInt'( 408); 'IDS_CAP_CANTOPEN','LongInt'( 409); 'IDS_CAP_SEQ_MSGSTART','LongInt'( 410); 'IDS_CAP_SEQ_MSGSTOP','LongInt'( 411); 'IDS_CAP_VIDEDITERR','LongInt'( 412); 'IDS_CAP_READONLYFILE','LongInt'( 413); 'IDS_CAP_WRITEERROR','LongInt'( 414); 'IDS_CAP_NODISKSPACE','LongInt'( 415); 'IDS_CAP_SETFILESIZE','LongInt'( 416); 'IDS_CAP_SAVEASPERCENT','LongInt'( 417); 'IDS_CAP_DRIVER_ERROR','LongInt'( 418); 'IDS_CAP_WAVE_OPEN_ERROR','LongInt'( 419); 'IDS_CAP_WAVE_ALLOC_ERROR','LongInt'( 420); 'IDS_CAP_WAVE_PREPARE_ERROR','LongInt'( 421); 'IDS_CAP_WAVE_ADD_ERROR','LongInt'( 422); 'IDS_CAP_WAVE_SIZE_ERROR','LongInt'( 423); 'IDS_CAP_VIDEO_OPEN_ERROR','LongInt'( 424); 'IDS_CAP_VIDEO_ALLOC_ERROR','LongInt'( 425); 'IDS_CAP_VIDEO_PREPARE_ERROR','LongInt'( 426); 'IDS_CAP_VIDEO_ADD_ERROR','LongInt'( 427); 'IDS_CAP_VIDEO_SIZE_ERROR','LongInt'( 428); 'IDS_CAP_FILE_OPEN_ERROR','LongInt'( 429); 'IDS_CAP_FILE_WRITE_ERROR','LongInt'( 430); 'IDS_CAP_RECORDING_ERROR','LongInt'( 431); 'IDS_CAP_RECORDING_ERROR2','LongInt'( 432); 'IDS_CAP_AVI_INIT_ERROR','LongInt'( 433); 'IDS_CAP_NO_FRAME_CAP_ERROR','LongInt'( 434); 'IDS_CAP_NO_PALETTE_WARN','LongInt'( 435); 'IDS_CAP_MCI_CONTROL_ERROR','LongInt'( 436); 'IDS_CAP_MCI_CANT_STEP_ERROR','LongInt'( 437); 'IDS_CAP_NO_AUDIO_CAP_ERROR','LongInt'( 438); 'IDS_CAP_AVI_DRAWDIB_ERROR','LongInt'( 439); 'IDS_CAP_COMPRESSOR_ERROR','LongInt'( 440); 'IDS_CAP_AUDIO_DROP_ERROR','LongInt'( 441); 'IDS_CAP_STAT_LIVE_MODE','LongInt'( 500); 'IDS_CAP_STAT_OVERLAY_MODE','LongInt'( 501); 'IDS_CAP_STAT_CAP_INIT','LongInt'( 502); 'IDS_CAP_STAT_CAP_FINI','LongInt'( 503); 'IDS_CAP_STAT_PALETTE_BUILD','LongInt'( 504); 'IDS_CAP_STAT_OPTPAL_BUILD','LongInt'( 505); 'IDS_CAP_STAT_I_FRAMES','LongInt'( 506); 'IDS_CAP_STAT_L_FRAMES','LongInt'( 507); 'IDS_CAP_STAT_CAP_L_FRAMES','LongInt'( 508); 'IDS_CAP_STAT_CAP_AUDIO','LongInt'( 509); 'IDS_CAP_STAT_VIDEOCURRENT','LongInt'( 510); 'IDS_CAP_STAT_VIDEOAUDIO','LongInt'( 511); 'IDS_CAP_STAT_VIDEOONLY','LongInt'( 512); 'IDS_CAP_STAT_FRAMESDROPPED','LongInt'( 513); 'AVICAP32','String 'AVICAP32.dll end; Proc SIRegister_ALFcnMisc(CL: TPSPascalCompiler); begin Func AlBoolToInt( Value :Bool) : Int Func ALMediumPos( LTotal, LBorder, LObject : Int) : Int Func AlIsValidEmail( const Value : Ansistr) :Bool Func AlLocalDateTimeToGMTDateTime( const aLocalDateTime : TDateTime) : TdateTime Func ALInc( var x : Int; Count : Int) : Int Func ALCopyStr(const aSourceString: Ansistr; aStart, aLength: Int): Ansistr Func ALGetStringFromFile(filename:AnsiStr;const ShareMode:Word= fmShareDenyWrite):AnsiStr; Proc ALSaveStringtoFile(Str: Ansistr; filename: Ansistr); Func ALIsInt(const S: Ansistr):Bool; Func ALIsDecimal(const S: Ansistr):Bool; Func ALStringToWideString(const S: Ansistr; const aCodePage: Word): WideString; Func AlWideStringToString(const WS: WideString; const aCodePage: Word): Ansistr; Func ALQuotedStr(const S: Ansistr; const Quote: AnsiChar = ''''): Ansistr; Func ALDequotedStr(const S: Ansistr; AQuote: AnsiChar): Ansistr; Func AlUTF8removeBOM(const S: Ansistr): Ansistr; Func ALRandomStr1(const aLength: Longint; const aCharset: Array of Char): Ansistr; Func ALRandomStr(const aLength: Longint): Ansistr; Func ALRandomStrU1(const aLength: Longint; const aCharset: Array of Char):Str; Func ALRandomStrU(const aLength: Longint):Str; end; Proc SIRegister_ALJSONDoc(CL: TPSPascalCompiler); begin Proc ALJSONToTStrings(const AJsonStr:Ansistr;aLst:TALStrings; const aNullStr:AnsiStr;const aTrueStr:Ansistr; const aFalseStr: Ansistr) end; Proc SIRegister_ALWindows(CL: TPSPascalCompiler); begin _ALMEMORYSTATUSEX', 'record dwLength : DWORD; dwMemoryLoad : DWO' +RD; ullTotalPhys : Int64; ullAvailPhys : Int64; ullTotalPageFile : Int64; ' +ullAvailPageFile : Int64; ullTotalVirtual : Int64; ullAvailVirtual : Int64' +; ullAvailExtendedVirtual : Int64; end TALMemoryStatusEx', '_ALMEMORYSTATUSEX Func ALGlobalMemoryStatusEx( var lpBuffer : TALMEMORYSTATUSEX) : BOOL Func ALInterlockedExchange64( var Target : LONGlONG; Value : LONGLONG) : LONGLONG 'INVALID_SET_FILE_POINTER','LongInt'( DWORD ( - 1 )); 'QUOTA_LIMITS_HARDWS_MIN_DISABLE','LongWord').SetUInt( $2); 'QUOTA_LIMITS_HARDWS_MIN_ENABLE','LongWord').SetUInt( $1); 'QUOTA_LIMITS_HARDWS_MAX_DISABLE','LongWord').SetUInt( $8); 'QUOTA_LIMITS_HARDWS_MAX_ENABLE','LongWord').SetUInt( $4); end; Proc SIRegister_IPCThrd(CL: TPSPascalCompiler); begin SIRegister_THandledObject(CL); SIRegister_TEvent(CL); SIRegister_TMutex(CL); SIRegister_TSharedMem(CL); 'TRACE_BUF_SIZE','LongInt'( 200 * 1024); 'TRACE_BUFFER','String 'TRACE_BUFFER 'TRACE_MUTEX','String 'TRACE_MUTEX //PTraceEntry', '^TTraceEntry // will not work SIRegister_TIPCTracer(CL); 'MAX_CLIENTS','LongInt'( 6); 'IPCTIMEOUT','LongInt'( 2000); 'IPCBUFFER_NAME','String 'BUFFER_NAME 'BUFFER_MUTEX_NAME','String 'BUFFER_MUTEX 'MONITOR_EVENT_NAME','String 'MONITOR_EVENT 'CLIENT_EVENT_NAME','String 'CLIENT_EVENT 'CONNECT_EVENT_NAME','String 'CONNECT_EVENT 'CLIENT_DIR_NAME','String 'CLIENT_DIRECTORY 'CLIENT_DIR_MUTEX','String 'DIRECTORY_MUTEX FindClass('TOBJECT'),'EMonitorActive FindClass('TOBJECT'),'TIPCThread TEventKind', '( evMonitorAttach, evMonitorDetach, evMonitorSigna' +'l, evMonitorExit, evClientStart, evClientStop, evClientAttach, evClientDet' +'ach, evClientSwitch, evClientSignal, evClientExit ) TClientFlag', '( cfError, cfMouseMove, cfMouseDown, cfResize, cfAttach ) TClientFlags', 'set of TClientFlag //PEventData', '^TEventData // will not work TEventData', 'record X:SmallInt; Y:SmallInt;Flag: TClientFlag; Flags:TClientFlags; end TConnectEvent', 'Proc ( Sender : TIPCThread; Connecting :Bool) TDirUpdateEvent', 'Proc ( Sender : TIPCThread) TIPCNotifyEvent', 'Proc ( Sender : TIPCThread; Data : TEventData) //PIPCEventInfo', '^TIPCEventInfo // will not work TIPCEventInfo','record FID:Int;FKind:TEventKind;FData:TEventData;end SIRegister_TIPCEvent(CL); //PClientDirRecords', '^TClientDirRecords // will not work SIRegister_TClientDirectory(CL); TIPCState', '( stInActive, stDisconnected, stConnected ) SIRegister_TIPCThread(CL); SIRegister_TIPCMonitor(CL); SIRegister_TIPCClient(CL); Func IsMonitorRunning( var Hndl : THandle) :Bool end; (*----------------------------------------------------------------------------*) Proc SIRegister_ALGSMComm(CL: TPSPascalCompiler); begin SIRegister_TAlGSMComm(CL); Func AlGSMComm_BuildPDUMessage( aSMSCenter,aSMSAddress,aMessage: Ansistr) : Ansistr Proc AlGSMComm_DecodePDUMessage(aPDUMessage:AnsiStr;var aSMSCenter,aSMSAddress,AMessage:AnsiStr); Func AlGSMComm_UnicodeToGSM7BitDefaultAlphabet( aMessage : WideString) : Ansistr Func AlGSMComm_GSM7BitDefaultAlphabetToUnicode(aMess:Ansistr;const UseGreekAlphabet:Bool):Widestring; Func ALMatchesMask(const Filename, Mask: Ansistr):Bool; end; Proc SIRegister_ALHttpCommon(CL: TPSPascalCompiler); begin TALHTTPPropertyChangeEvent','Procedure(sender:Tobject;const PropertyIndex:Int; TALHTTPProtocolVersion', '( HTTPpv_1_0, HTTPpv_1_1 ) TALHTTPMethod','(HTTPmt_Get,HTTPmt_Post,HTTPmt_Head,HTTPmt_Trace,HTTPmt_Put,HTTPmt_Delete); TInternetScheme', 'Int TALIPv6Binary', 'array[1..16] of Char; // TALIPv6Binary = array[1..16] of ansiChar; // TInternetScheme = Int; SIRegister_TALHTTPRequestHeader(CL); SIRegister_TALHTTPCookie(CL); SIRegister_TALHTTPCookieCollection(CL); SIRegister_TALHTTPResponseHeader(CL); Func ALHTTPDecode( const AStr : Ansistr) : Ansistr Proc ALHTTPEncodeParamNameValues( ParamValues : TALStrings) //Proc ALExtractHTTPFields(Separators,WhiteSpace,Quotes:TSysCharSet;Content:PAnsiChar;Strings:TALStrings;StripQuotes:Bool; //Proc ALExtractHeaderFields(Separators,WhiteSpace,Quotes:TSysCharSet;Content:PAnsiChar; Strings:TALStrings;Decode:Bool;StripQuotes:Bool) //Proc ALExtractHeaderFieldsWithQuoteEscaped(Separators,WhiteSpace,Quotes:TSysCharSet;Content:PAnsiChar;Strings:TALStrings;Decode:Bool;StripQuotes:Bool) Func AlRemoveShemeFromUrl( aUrl : Ansistr) : Ansistr Func AlExtractShemeFromUrl( aUrl : Ansistr) : TInternetScheme Func AlExtractHostNameFromUrl( aUrl : Ansistr) : Ansistr Func AlExtractDomainNameFromUrl( aUrl : Ansistr) : Ansistr Func AlExtractUrlPathFromUrl( aUrl : Ansistr) : Ansistr Func AlInternetCrackUrl(aUrl:Ansistr;var SchemeName,HostName,UserName,Password,UrlPath,ExtraInfo: Ansistr; var PortNumber:Int):Bool; Func AlInternetCrackUrl1(aUrl:Ansistr;var SchemeNam,HostName,UserName,Password,UrlPath,Anchor:Ansistr;Query:TALStrings;var PortNumber:Int):Bool Func AlInternetCrackUrl2(var Url:Ansistr;var Anchor:Ansistr;Query:TALStrings):Bool; Func AlRemoveAnchorFromUrl( aUrl : Ansistr; var aAnchor : Ansistr) : Ansistr; Func AlRemoveAnchorFromUrl1( aUrl : Ansistr) : Ansistr; Func AlCombineUrl( RelativeUrl, BaseUrl : Ansistr) : Ansistr; Func AlCombineUrl1(RelativeUrl,BaseUrl,Anchor:Ansistr; Query:TALStrings): Ansistr; Func ALGmtDateTimeToRfc822Str( const aValue : TDateTime) : Ansistr Func ALDateTimeToRfc822Str( const aValue : TDateTime) : Ansistr Func ALTryRfc822StrToGMTDateTime( const S : Ansistr; out Value : TDateTime) :Bool Func ALRfc822StrToGMTDateTime( const s : Ansistr) : TDateTime Func ALTryIPV4StrToNumeric( aIPv4Str : Ansistr; var aIPv4Num :Card) :Bool Func ALIPV4StrToNumeric( aIPv4 : Ansistr) :Card Func ALNumericToIPv4Str( aIPv4 :Card) : Ansistr Func ALZeroIpV6 : TALIPv6Binary Func ALTryIPV6StrToBinary( aIPv6Str : Ansistr; var aIPv6Bin : TALIPv6Binary) :Bool Func ALIPV6StrTobinary( aIPv6 : Ansistr) : TALIPv6Binary Func ALBinaryToIPv6Str( aIPv6 : TALIPv6Binary) : Ansistr Func ALBinaryStrToIPv6Binary( aIPV6BinaryStr : Ansistr) : TALIPv6Binary end; Proc SIRegister_ALFcnHTML(CL: TPSPascalCompiler); //JavaScript begin Proc ALUTF8ExtractHTMLText(HtmlCont:AnsiStr;LstExtractedResourceText:TALStrings;const DecodeHTMLText:Bool; Func ALUTF8ExtractHTMLText1(HtmlContent:Ansistr;const DecodeHTMLText:Bool):Ansistr; Func ALXMLCDataElementEncode( Src : Ansistr) : Ansistr Func ALXMLTextElementEncode(Src:Ansistr;const useNumericReference:bool):Ansistr Func ALUTF8XMLTextElementDecode( const Src : Ansistr) : Ansistr Func ALUTF8HTMLEncode(const Src:AnsiStr;const EncodeASCIIHtmlEntities:Bool;const useNumRef:bool):Ansistr); Func ALUTF8HTMLDecode( const Src : Ansistr) : Ansistr Func ALJavascriptEncode(const Src:Ansistr;const useNumericReference:bool):Ansistr Func ALUTF8JavascriptDecode( const Src : Ansistr) : Ansistr Proc ALHideHtmlUnwantedTagForHTMLHandleTagfunct(var HtmlContent:Ansistr;const DeleteBodyOfUnwantedTag:Bool;const ReplaceUnwantedTagCharBy:AnsiChar) Proc ALCompactHtmlTagParams( TagParams : TALStrings) Proc ALUTF8JavascriptDecodeV( var Str : Ansistr) //'Func ALUTF8JavascriptDecode( const Src : Ansistr) : Ansistr {This Func evaluates the Javascript code given in the parameter "aCode" and returns result. The Func works similar to browser's console, so you can send even the code like this "2+2" => returns "4".} Example: writeln('runJScript: '+runJS('Math.pow(2, 64)')) Func ALRunJavascript( const aCode : Ansistr) : Ansistr Func RunJavascript( const aCode : Ansistr) : Ansistr Func RunJavascript2(const aCode:Ansistr):Ansistr //no CoInitialize of COM-Server Func RunJS( const aCode : Ansistr) : Ansistr //no CoInitialize of COM-Server //CL.AddDelphiFunction('Proc ALHideHtmlUnwantedTagForHTMLHandleTagfunct(var HtmlContent:Ansistr;const DeleteBodyOfUnwantedTag:Boolean; const ReplaceUnwantedTagCharBy:AnsiChar) //CL.AddDelphiFunction('Proc ALCompactHtmlTagParams( TagParams : TALStrings) Func ALJavascriptEncodeU(const Src:str; const useNumericReference:boolean) :Str Proc ALJavascriptDecodeVU( var Str :Str) Func ALJavascriptDecodeU( const Src :Str):Str end; Proc SIRegister_ALInternetMessageCommon(CL: TPSPascalCompiler); begin SIRegister_TALEMailHeader(CL); SIRegister_TALNewsArticleHeader(CL); Func AlParseEmailAddress(FriendlyEmail:AnsiStr;var RealName:AString;const decodeRealName:Bool):Ansistr; Func AlExtractEmailAddress( FriendlyEmail : Ansistr) : Ansistr Func ALMakeFriendlyEmailAddress( aRealName, aEmail : Ansistr) : Ansistr Func ALEncodeRealName4FriendlyEmailAddress( aRealName : Ansistr) : Ansistr Func AlGenerateInternetMessageID : Ansistr; Func AlGenerateInternetMessageID1( ahostname : Ansistr) : Ansistr; Func ALDecodeQuotedPrintableString( src : Ansistr) : Ansistr Func AlDecodeInternetMessageHeaderInUTF8(aHeaderStr:Ansistr;aDefaultCodePage:Int):Ansistr; end; (*----------------------------------------------------------------------------*) Proc SIRegister_ALFcnWinSock(CL: TPSPascalCompiler); begin Func ALHostToIP( HostName : Ansistr; var Ip : Ansistr):Boolean Func ALIPAddrToName( IPAddr : Ansistr) : Ansistr Func ALgetLocalIPs : TALStrings Func ALgetLocalHostName : Ansistr end; Proc SIRegister_ALFcnCGI(CL: TPSPascalCompiler); begin Proc AlCGIInitDefaultServerVariablesFromWebRequest(WebRequest : TALWebRequest;ServerVariables:TALStrings); Proc AlCGIInitDefaultServerVariablesFromWebRequest1(WebRequest:TALWebRequest;ServerVariables:TALStrings;ScriptName,ScriptFileName: Ansistr;Url:Ansistr); Proc ALCGIInitDefaultServerVariables( ServerVariables : TALStrings); Proc AlCGIInitDefaultServerVariables1(ServerVars:TALStrings;ScriptName,ScriptFileName:Ansistr;Url:AnsiStr; Proc AlCGIInitServerVariablesFromWebRequest(WebRequest:TALWebRequest;ServerVariables:TALStrings;ScriptName,ScriptFileName:Ansistr;Url: Ansistr); Proc AlCGIExec( InterpreterFilename: Ansistr; ServerVariables: TALStrings;RequestContentStream:Tstream;ResponseContentStream:Tstream;ResponseHeader:TALHTTPResponseHeader); Proc AlCGIExec1(ScriptName,ScriptFileName, Url, X_REWRITE_URL, InterpreterFilename:Ansistr; WebRequest : TALIsapiRequest; overloadedCookies:Ansistr;overloadedQueryString: Ansistr;overloadedReferer: Ansistr;' +'overloadedRequestContentStream:Tstream;var ResponseContentStr:Ansistr;ResponseHeader:TALHTTPResponseHeader; Proc AlCGIExec2(ScriptName,ScriptFileName,Url,X_REWRITE_URL,InterpreterFilename:Ansistr;WebRequest:TALIsapiRequest; var ResponseContentString:Ansistr;ResponseHeader : TALHTTPResponseHeader); end; Proc SIRegister_ALFcnExecute(CL: TPSPascalCompiler); begin TStartupInfoA', 'TStartupInfo 'SE_CREATE_TOKEN_NAME','String'( 'SeCreateTokenPrivilege SE_ASSIGNPRIMARYTOKEN_NAME','String 'SeAssignPrimaryTokenPrivilege SE_LOCK_MEMORY_NAME','String)( 'SeLockMemoryPrivilege SE_INCREASE_QUOTA_NAME','String 'SeIncreaseQuotaPrivilege SE_UNSOLICITED_INPUT_NAME','String 'SeUnsolicitedInputPrivilege SE_MACHINE_ACCOUNT_NAME','String 'SeMachineAccountPrivilege SE_TCB_NAME','String 'SeTcbPrivilege SE_SECURITY_NAME','String 'SeSecurityPrivilege SE_TAKE_OWNERSHIP_NAME','String 'SeTakeOwnershipPrivilege SE_LOAD_DRIVER_NAME','String 'SeLoadDriverPrivilege SE_SYSTEM_PROFILE_NAME','String 'SeSystemProfilePrivilege SE_SYSTEMTIME_NAME','String 'SeSystemtimePrivilege SE_PROF_SINGLE_PROCESS_NAME','String 'SeProfileSingleProcessPrivilege SE_INC_BASE_PRIORITY_NAME','String 'SeIncreaseBasePriorityPrivilege SE_CREATE_PAGEFILE_NAME','String 'SeCreatePagefilePrivilege SE_CREATE_PERMANENT_NAME','String 'SeCreatePermanentPrivilege SE_BACKUP_NAME','String 'SeBackupPrivilege SE_RESTORE_NAME','String 'SeRestorePrivilege SE_SHUTDOWN_NAME','String 'SeShutdownPrivilege SE_DEBUG_NAME','String 'SeDebugPrivilege SE_AUDIT_NAME','String 'SeAuditPrivilege SE_SYSTEM_ENVIRONMENT_NAME','String 'SeSystemEnvironmentPrivilege SE_CHANGE_NOTIFY_NAME','String 'SeChangeNotifyPrivilege SE_REMOTE_SHUTDOWN_NAME','String 'SeRemoteShutdownPrivilege SE_UNDOCK_NAME','String 'SeUndockPrivilege SE_SYNC_AGENT_NAME','String 'SeSyncAgentPrivilege SE_ENABLE_DELEGATION_NAME','String 'SeEnableDelegationPrivilege SE_MANAGE_VOLUME_NAME','String 'SeManageVolumePrivilege Func AlGetEnvironmentString : Ansistr Func ALWinExec32(const FileName,CurrentDir,Environment:Ansistr;InStream:Tstream;OutStream:TStream):Dword; Func ALWinExec321(const FileName:AnsiStr;InputStream:Tstream;OutputStream:TStream):Dword; Func ALWinExecAndWait32( FileName : Ansistr; Visibility : Int) : DWORD Func ALWinExecAndWait32V2( FileName : Ansistr; Visibility : Int) : DWORD Func ALNTSetPrivilege( sPrivilege : Ansistr; bEnabled :Bool) :Bool end; Proc SIRegister_ALFcnFile(CL: TPSPascalCompiler); begin Func AlEmptyDirectory(Directory:Ansistr;SubDirectory:Bool;IgnoreFiles:array of Ansistr; const RemoveEmptySubDirectory :Bool; const FileNameMask : Ansistr; const MinFileAge : TdateTime):Boolean; Func AlEmptyDirectory1( Directory : Ansistr; SubDirectory :Bool; const RemoveEmptySubDirectory:Bool;const FileNameMask:ansiStr; const MinFileAge:TdateTime):Bool; Func AlCopyDirectory(SrcDirectory,DestDirectory:Ansistr;SubDirectory:Boolean; const FileNameMask: Ansistr; const FailIfExists:Boolean):Bool Func ALGetModuleName : Ansistr Func ALGetModuleFileNameWithoutExtension : Ansistr Func ALGetModulePath : Ansistr Func AlGetFileSize( const AFileName : Ansistr) : int64 Func AlGetFileVersion( const AFileName : Ansistr) : Ansistr Func ALGetFileCreationDateTime( const aFileName : Ansistr) : TDateTime Func ALGetFileLastWriteDateTime( const aFileName : Ansistr) : TDateTime Func ALGetFileLastAccessDateTime( const aFileName : Ansistr) : TDateTime Proc ALSetFileCreationDateTime(const aFileName:Ansistr;const aCreationDateTime:TDateTime) Func ALIsDirectoryEmpty( const directory : Ansistr) :Bool Func ALFileExists( const Path : Ansistr) :Bool Func ALDirectoryExists( const Directory : Ansistr) :Bool Func ALCreateDir( const Dir : Ansistr) :Bool Func ALRemoveDir( const Dir : Ansistr) :Bool Func ALDeleteFile( const FileName : Ansistr) :Bool Func ALRenameFile( const OldName, NewName : Ansistr) :Bool end; Proc SIRegister_ALFcnMime(CL: TPSPascalCompiler); begin NativeInt', 'Int NativeUInt', 'Cardinal Func ALMimeBase64EncodeString( const S : Ansistr) : Ansistr Func ALMimeBase64EncodeStringNoCRLF( const S : Ansistr) : Ansistr Func ALMimeBase64DecodeString( const S : Ansistr) : Ansistr Func ALMimeBase64EncodedSize( const InputSize : NativeInt) : NativeInt Func ALMimeBase64EncodedSizeNoCRLF( const InputSize : NativeInt) : NativeInt Func ALMimeBase64DecodedSize( const InputSize : NativeInt): NativeInt Proc ALMimeBase64Encode(const InputBuffer:TByteDynArray;InputOffset:NativeInt;const InputByteCount:NativeInt;out OutputBuffer:TByteDynArray;OutputOffset:NativeInt) Proc ALMimeBase64EncodeNoCRLF(const InputBuffer:TByteDynArray;InputOffset:NativeInt; const InputByteCount:NativeInt;out OutputBuffer:TByteDynArray;OutputOffset:NativeInt) Proc ALMimeBase64EncodeFullLines( const InputBuffer: TByteDynArray;InputOffset:NativeInt;const InputByteCount:NativeInt;out OutputBuffer:TByteDynArray;OutputOffset:NativeInt) Func ALMimeBase64Decode(const InputBuffer:TByteDynArray;InputOffset:NativeInt;const InputByteCount:NativeInt;out OutputBuffer:TByteDynArray;OutputOffset:NativeInt):NativeInt; Func ALMimeBase64DecodePartial(const InputBuffer:TByteDynArray;InputOffset:NativeInt;const InputByteCount:NativeInt;out OutputBuffer:TByteDynArray;OutputOffset:NativeInt;' + var ByteBuffer:Card;var ByteBufferSpace:Card):NativeInt; Func ALMimeBase64DecodePartialEnd(out OutputBuffer:TByteDynArray;OutputOffset:NativeInt;const ByteBuffer:Card;const ByteBufferSpace:Card):NativeInt; Proc ALMimeBase64Encode(const InputBuf:TByteDynArray;const InputByteCnt:NatInt;out OutputBuf:TByteDynArray); Proc ALMimeBase64EncodeNoCRLF(const InputBuffer:TByteDynArray;const InputByteCount:NativeInt;out OutputBuffer:TByteDynArray); Proc ALMimeBase64EncodeFullLines(const InputBuffer:TByteDynArray;const InputByteCount:NativeInt;out OutputBuffer:TByteDynArray); Func ALMimeBase64Decode1(const InputBuffer:TByteDynArray;const InputByteCount:NativeInt;out OutputBuffer:TByteDynArray):NativeInt; Func ALMimeBase64DecodePartial1(const InputBuffer:TByteDynArray;const InputByteCount:NativeInt;out OutputBuffer:TByteDynArray;var ByteBuffer:Card;var ByteBufferSpace:Card):NativeInt; Func ALMimeBase64DecodePartialEnd1(out OutputBuffer:TByteDynArray;const ByteBuffer:Card;const ByteBufferSpace:Card):NativeInt; Proc ALMimeBase64EncodeFile( const InputFileName, OutputFileName : TFileName) Proc ALMimeBase64EncodeFileNoCRLF( const InputFileName, OutputFileName : TFileName) Proc ALMimeBase64DecodeFile( const InputFileName, OutputFileName : TFileName) Proc ALMimeBase64EncodeStream( const InputStream : TStream; const OutputStream : TStream) Proc ALMimeBase64EncodeStreamNoCRLF(const InputStream:TStream;const OutputStream:TStream) Proc ALMimeBase64DecodeStream( const InputStream : TStream; const OutputStream : TStream) 'cALMimeBase64_ENCODED_LINE_BREAK','LongInt'( 76); 'cALMimeBase64_DECODED_LINE_BREAK','LongInt'(cALMimeBase64_ENCODED_LINE_BREAK div 4 * 3); 'cALMimeBase64_BUFFER_SIZE','LongInt'( cALMimeBase64_DECODED_LINE_BREAK * 3 * 4 * 4); Proc ALFillMimeContentTypeByExtList( AMIMEList : TALStrings) Proc ALFillExtByMimeContentTypeList( AMIMEList : TALStrings) Func ALGetDefaultFileExtFromMimeContentType( aContentType : Ansistr) : Ansistr Func ALGetDefaultMIMEContentTypeFromExt( aExt : Ansistr) : Ansistr end; Proc SIRegister_ALXmlDoc(CL: TPSPascalCompiler); begin 'cALXMLNodeMaxListSize','LongInt'( Maxint div 16); FindClass('TOBJECT'),TALXMLNode FindClass('TOBJECT'),TALXMLNodeList FindClass('TOBJECT'),TALXMLDocument TAlXMLParseProcessingInstructionEvent','Proc (Sender:TObject;const Target,Data:AnsiStr) TAlXMLParseTextEvent','Proc (Sender: TObject; const str: Ansistr) TAlXMLParseStartElementEvent','Procedure(Sender:TObject;const Name:Ansistr;const Attributes:TALStrings) TAlXMLParseEndElementEvent','Procedure(Sender : TObject;const Name: Ansistr) TALXmlNodeType','(ntReserved,ntElement,ntAttribute,ntText,ntCData,ntEntityRef,ntEntity,ntProcessingInstr,ntComment,ntDocumentntDocType,ntDocFragment,ntNotation) TALXMLDocOption', '( doNodeAutoCreate, doNodeAutoIndent ) TALXMLDocOptions', 'set of TALXMLDocOption TALXMLParseOption', '( poPreserveWhiteSpace, poIgnoreXMLReferences ) TALXMLParseOptions', 'set of TALXMLParseOption TALXMLPrologItem', '( xpVersion, xpEncoding, xpStandalone ) PALPointerXMLNodeList', '^TALPointerXMLNodeList // will not work SIRegister_EALXMLDocError(CL); SIRegister_TALXMLNodeList(CL); SIRegister_TALXMLNode(CL); SIRegister_TALXmlElementNode(CL); SIRegister_TALXmlAttributeNode(CL); SIRegister_TALXmlTextNode(CL); SIRegister_TALXmlDocumentNode(CL); SIRegister_TALXmlCommentNode(CL); SIRegister_TALXmlProcessingInstrNode(CL); SIRegister_TALXmlCDataNode(CL); SIRegister_TALXmlEntityRefNode(CL); SIRegister_TALXmlEntityNode(CL); SIRegister_TALXmlDocTypeNode(CL); SIRegister_TALXmlDocFragmentNode(CL); SIRegister_TALXmlNotationNode(CL); SIRegister_TALXMLDocument(CL); cAlXMLUTF8EncodingStr','String 'UTF-8 cALXmlUTF8HeaderStr','String''+#13#10); CALNSDelim','String ': CALXML','String 'xml CALVersion','String 'version CALEncoding','String 'encoding CALStandalone','String 'standalone CALDefaultNodeIndent','String ' CALXmlDocument','String 'DOCUMENT Func ALCreateEmptyXMLDocument(const Rootname: Ansistr): TalXMLDocument Proc ALClearXMLDocument(const rootname:Ansistr;xmldoc:TalXMLDocument;const EncodingStr:AnsiStr); Func ALFindXmlNodeByChildNodeValue(xmlrec:TalxmlNode;const ChildNodeName,ChildNodeValue:Ansistr;const Recurse:Bool):TalxmlNode Func ALFindXmlNodeByNameAndChildNodeValue(xmlrec:TalxmlNode;const NodeName:Ansistr;const ChildNodeName,ChildNodeValue:Ansistr;const Recurse:Bool):TalxmlNode Func ALFindXmlNodeByAttribute(xmlrec:TalxmlNode;const AttributeName,AttributeValue:Ansistr;const Recurse:Bool):TalxmlNode Func ALFindXmlNodeByNameAndAttribute(xmlrec:TalxmlNode;const NodeName:Ansistr;const AttributeName,AttributeValue:Ansistr;const Recurse:Bool):TalxmlNode Func ALExtractAttrValue(const AttrName,AttrLine:Ansistr;const Default:Ansistr): Ansistr end; Proc SIRegister_TProcess(CL: TPSPascalCompiler); begin //with RegClassS(CL,'TComponent', 'TProcess') do with CL.AddClassN(CL.FindClass('TComponent'),'TProcess') do begin Constructor Create( AOwner : TComponent) Proc Free Proc Execute Func Resume : Integer Func Suspend : Integer Func Terminate( AExitCode : Integer) :Bool Func WaitOnExit : DWord WindowRect', 'Trect', iptrw); StartupInfo', 'TStartupInfo', iptr); ProcessAttributes', 'TSecurityAttributes', iptrw); ProcessInformation', 'TProcessInformation', iptr); Handle', 'THandle', iptr); ThreadHandle', 'THandle', iptr); Input', 'TOutPutPipeStream', iptr); OutPut', 'TInputPipeStream', iptr); StdErr', 'TinputPipeStream', iptr); ExitStatus', 'Integer', iptr); Active', 'Boolean', iptrw); ApplicationName', 'String', iptrw); CommandLine', 'String', iptrw); ConsoleTitle', 'String', iptrw); CurrentDirectory', 'String', iptrw); DeskTop', 'String', iptrw); Environment', 'TStrings', iptrw); FillAttribute', 'Cardinal', iptrw); InheritHandles', 'LongBool', iptrw); Options', 'TProcessOptions', iptrw); Priority', 'TProcessPriority', iptrw); StartUpOptions', 'TStartUpOptions', iptrw); Running', 'Boolean', iptr); ShowWindow', 'TShowWindowOptions', iptrw); ThreadAttributes', 'TSecurityAttributes', iptrw); WindowColumns', 'Cardinal', iptrw); WindowHeight', 'Cardinal', iptrw); WindowLeft', 'Cardinal', iptrw); WindowRows', 'Cardinal', iptrw); WindowTop', 'Cardinal', iptrw); WindowWidth', 'Cardinal', iptrw); end; end; (*----------------------------------------------------------------------------*) Proc SIRegister_TAlWebSpider(CL: TPSPascalCompiler); begin //with RegClassS(CL,'TObject', 'TAlWebSpider') do with CL.AddClassN(CL.FindClass('TObject'),'TAlWebSpider') do begin RegisterMethod('Proc Crawl RegisterMethod('Proc UpdateLinkToLocalPath OnCrawlBeforeDownload', 'TAlWebSpiderCrawlBeforeDownloadEvent', iptrw); OnCrawlAfterDownload', 'TAlWebSpiderCrawlAfterDownloadEvent', iptrw); OnCrawlDownloadSuccess', 'TAlWebSpiderCrawlDownloadSuccessEvent', iptrw); OnCrawlDownloadRedirect', 'TAlWebSpiderCrawlDownloadRedirectEvent', iptrw); OnCrawlDownloadError', 'TAlWebSpiderCrawlDownloadErrorEvent', iptrw); OnCrawlGetNextLink', 'TAlWebSpiderCrawlGetNextLinkEvent', iptrw); OnCrawlFindLink', 'TAlWebSpiderCrawlFindLinkEvent', iptrw); OnCrawlEnd', 'TAlWebSpiderCrawlEndEvent', iptrw); OnUpdateLinkToLocalPathGetNextFile','TAlWebSpiderUpdateLinkToLocalPathGetNextFileEvent'rw); OnUpdateLinkToLocalPathFindLink', 'TAlWebSpiderUpdateLinkToLocalPathFindLinkEvent', iptrw); OnUpdateLinkToLocalPathEnd', 'TAlWebSpiderUpdateLinkToLocalPathEndEvent', iptrw); RegisterProperty('HttpClient', 'TalHttpClient', iptrw); end; end; https://sourceforge.net/p/alcinoe/code/HEAD/tree/source/ALWebSpider.pas#l184 {----------------------------------} TAlTrivialWebSpider = Class(Tobject) Private FWebSpider: TalWebSpider; fStartUrl: Ansistr; fLstUrlCrawled: TALStrings; fLstErrorEncountered: TALStrings; FPageDownloadedBinTree: TAlStringKeyAVLBinaryTree; FPageNotYetDownloadedBinTree: TAlStringKeyAVLBinaryTree; FCurrentDeepLevel: Integer; FCurrentLocalFileNameIndex: Integer; fMaxDeepLevel: Integer; fOnCrawlBeforeDownload: TAlWebSpiderCrawlBeforeDownloadEvent; fUpdateLinkToLocalPath:Bool; fExcludeMask: Ansistr; fStayInStartDomain:Bool; fSaveDirectory: Ansistr; fSplitDirectoryAmount: integer; FHttpClient: TalHttpClient; fIncludeMask: Ansistr; fOnCrawlAfterDownload: TAlWebSpiderCrawlAfterDownloadEvent; fOnCrawlFindLink: TAlTrivialWebSpiderCrawlFindLinkEvent; fDownloadImage:Bool; fOnUpdateLinkToLocalPathProgress: TAlTrivialWebSpiderUpdateLinkToLocalPathProgressEvent; fOnCrawlProgress: TAlTrivialWebSpiderCrawlProgressEvent; Proc WebSpiderCrawlDownloadError(Sender:TObject;const URL,ErrorMessage:Ansistr; HTTPResponseHeader: TALHTTPResponseHeader; var StopCrawling: Bool); Proc WebSpiderCrawlDownloadRedirect(Sender:TObject;const Url,RedirectedTo:Ansistr; HTTPResponseHeader: TALHTTPResponseHeader; var StopCrawling:Bool); Proc WebSpiderCrawlDownloadSuccess(Sender: TObject; const Url: Ansistr; HTTPResponseHeader: TALHTTPResponseHeader;HttpResponseContentTStream;var StopCrawling:Bool); Proc WebSpiderCrawlFindLink(Sender:TObject;const HtmlTagString:AnsiStr;HtmlTagParams: TALStrings; const URL: Ansistr); Proc WebSpiderCrawlGetNextLink(Sender: TObject; var Url: Ansistr); Proc WebSpiderUpdateLinkToLocalPathFindLink(Sender:TObject;const HtmlTagString:AnsiStr; HtmlTagParams: TALStrings;const URL: Ansistr;var LocalPath: Ansistr); Proc WebSpiderUpdateLinkToLocalPathGetNextFile(Sender:TObject;var FileN,BaseHref:AnsiStr); Func GetNextLocalFileName(const aContentType: Ansistr): Ansistr; Protected Public Constructor Create; Destructor Destroy; override; Proc Crawl(const aUrl: Ansistr); overload; {Launch the Crawling of the page} Proc Crawl(const aUrl:AnsiStr;LstUrlCrawled:TALStrings;LstErrorEncountered:TALStrings); Property HttpClient: TalHttpClient Read FHttpClient write FHttpClient; Property DownloadImage:Bool read fDownloadImage write fDownloadImage default false; Property StayInStartDomain:Bool read fStayInStartDomain write fStayInStartDomain default true; Property UpdateLinkToLocalPath:Bool read fUpdateLinkToLocalPath write fUpdateLinkToLocalPath default True; Property MaxDeepLevel: Integer read fMaxDeepLevel write fMaxDeepLevel default -1; Property ExcludeMask: Ansistr read fExcludeMask write fExcludeMask; Property IncludeMask: Ansistr read fIncludeMask write fIncludeMask; Property SaveDirectory: Ansistr read fSaveDirectory write fSaveDirectory; Property SplitDirectoryAmount: integer read fSplitDirectoryAmount write fSplitDirectoryAmount default 5000; Property OnCrawlBeforeDownload: TAlWebSpiderCrawlBeforeDownloadEvent read fOnCrawlBeforeDownload write fOnCrawlBeforeDownload;{When a page is successfully downloaded} Property OnCrawlAfterDownload: TAlWebSpiderCrawlAfterDownloadEvent read fOnCrawlAfterDownload write fOnCrawlAfterDownload; {When a page is successfully downloaded} Property OnCrawlFindLink:TAlTrivialWebSpiderCrawlFindLinkEvent read fOnCrawlFindLink write fOnCrawlFindLink; {When a a link is found} Property OnCrawlProgress:TAlTrivialWebSpiderCrawlProgressEvent read fOnCrawlProgress write fOnCrawlProgress; Property OnUpdateLinkToLocalPathProgress: TAlTrivialWebSpiderUpdateLinkToLocalPathProgressEvent read fOnUpdateLinkToLocalPathProgress write fOnUpdateLinkToLocalPathProgress; end; Proc SIRegister_ALOpenOffice(CL: TPSPascalCompiler); begin CL.AddClassN(CL.FindClass('TOBJECT'),'EALOpenOfficeException Proc ConnectOpenOffice Proc DisconnectOpenOffice( aTerminateOpenOffice :Bool) Func IsOpenOfficeConnected :Bool Func CreateUnoService( const aServiceName : Ansistr) : Variant Func CreateUnoStruct(const aStructureName:Ansistr;const aMaxIndex:integer): Variant Func HasUnoInterfaces( aObject: Variant;aInterfaceList: array of Ansistr):Bool Func CreateOOProperties( aPropertyList : array of Variant) : Variant Func MakeOOPropertyValue(aPropertyName: Ansistr;aPropertyValue: Variant): Variant Func CreateOOCalcDocument : Variant Func CreateOOWordDocument: Variant; Func CreateOOImpressDocument : Variant Func CreateOODrawDocument : Variant Proc SaveOODocument(aDocument: Variant; aFileName: Ansistr;aFileType : Ansistr) Proc CreateOOSheet( aDocument : Variant; const aSheetName : Ansistr) Proc SetColumnWidth(aSheet:Variant;const aColumnIndex:int;const aWidthInCentimetres:int); Proc SetColumnWidth1(aSheet:Variant;aColumn:Variant;const aWidthInCentimetres:integer); Proc SetCellBold( aCell : Variant) Proc SetCellBorder( aCellRange : Variant; const aBorderColor : Longword) Func IsVariantNullOrEmpty( aVariant : Variant) :Bool Func VarDummyArray : Variant Func ConvertToURL( aWinAddress : Ansistr) : Ansistr Func ConvertFromURL( aUrlAddress : Ansistr) : Ansistr Func OORGB( aRedByte, aGreenByte, aBlueByte : byte) : Longword Func ALCopyStr2(const aSourceString: Ansistr; aStart, aLength: Integer): Ansistr; end; Proc SIRegister_ALExecute2(CL: TPSPascalCompiler); begin //CL.AddTypeS('TStartupInfoA', 'TStartupInfo CL.AddConstantN('SE_CREATE_TOKEN_NAME','String').SetString( 'SeCreateTokenPrivilege SE_ASSIGNPRIMARYTOKEN_NAME','String').SetString( 'SeAssignPrimaryTokenPrivilege SE_LOCK_MEMORY_NAME','String').SetString( 'SeLockMemoryPrivilege SE_INCREASE_QUOTA_NAME','String').SetString( 'SeIncreaseQuotaPrivilege SE_UNSOLICITED_INPUT_NAME','String').SetString( 'SeUnsolicitedInputPrivilege SE_MACHINE_ACCOUNT_NAME','String').SetString( 'SeMachineAccountPrivilege Func AlGetEnvironmentStringX : Ansistr Func ALWinExec0X(const aCommandLine:Ansistr;const aCurrentDirectory:Ansistr;const aEnvironment:Ansistr;const aInputStream:Tstream;const aOutputStream Stream; const aOwnerThread TThread):Dword; Func ALWinExec1X(const aCommandLine: Ansistr; const aInputStream: Tstream; const aOutputStream: TStream; const aOwnerThread: TThread): Dword; Proc ALWinExec2X( const aCommandLine:Ansistr; const aCurrentDirectory : Ansistr); Proc ALWinExec3X(const aUserName:Ansistr;const aPassword:Ansistr;const aCommandLine:Ansistr;const aCurrentDirectory:Ansistr;const aLogonFlags:dword); Func ALWinExecAndWait4X(const aCommandLine: Ansistr;const aCurrentDirectory:Ansistr;const aEnvironment:Ansistr;const aVisibility:integer): DWORD; Func ALWinExecAndWait5X(const aCommandLine:Ansistr; const aVisibility:integer):DWORD; Func ALWinExecAndWaitV2X(const aCommandLine:Ansistr;const aVisibility integer):DWORD Func ALNTSetPrivilegeX( const sPrivilege : Ansistr; bEnabled :Bool) :Bool Func ALStartServiceX(const aServiceName:Ansistr;const aComputerName:Ansistr;const aTimeOut:integer):bool; Func ALStopServiceX(const aServiceName:Ansistr;const aComputerName:Ansistr;const aTimeOut:integer):bool; Func ALMakeServiceAutorestartingX(const aServiceName:Ansistr;const aComputerName:Ansistr;const aTimeToRestartInSec:integer;const aTimeToResetInSec:int):Bool end; Proc SIRegister_ALIsapiHTTP(CL: TPSPascalCompiler); begin CL.AddClassN(CL.FindClass('TOBJECT'),'EALIsapiRequestContentSizeTooBig CL.AddClassN(CL.FindClass('TOBJECT'),'EALIsapiRequestConnectionDropped SIRegister_TALWebRequest(CL); SIRegister_TALISAPIRequest(CL); SIRegister_TALWebResponse(CL); SIRegister_TALISAPIResponse(CL); Func ALIsapiHttpStatusString( StatusCode : Integer) : Ansistr CL.AddConstantN('HSE_IO_SYNC','LongWord').SetUInt( $00000001); 'HSE_IO_ASYNC','LongWord').SetUInt( $00000002); 'HSE_IO_DISCONNECT_AFTER_SEND','LongWord').SetUInt( $00000004); 'HSE_IO_SEND_HEADERS','LongWord').SetUInt( $00000008); end; Proc SIRegister_uUsb(CL: TPSPascalCompiler); begin //CL.AddTypeS('PDevBroadcastHdr', '^DEV_BROADCAST_HDR // will not work CL.AddTypeS(DEV_BROADCAST_HDR','record dbch_size:DWORD;dbch_devicetype:DWORD;dbch_reserved:DWORD;end; CL.AddTypeS('TDevBroadcastHdr', 'DEV_BROADCAST_HDR //CL.AddTypeS('PDevBroadcastDeviceInterface','^DEV_BROADCAST_DEVICEINTERFACE//will not work CL.AddTypeS(DEV_BROADCAST_DEVICEINTERFACE', 'record dbcc_size : DWORD; dbcc_' +devicetype: DWORD;dbcc_reserved:DWORD; dbcc_classguid: TGUID; dbcc_name:Char; end CL.AddTypeS('TDevBroadcastDeviceInterface', 'DEV_BROADCAST_DEVICEINTERFACE //CL.AddConstantN('GUID_DEVINTERFACE_USB_DEVICE','TGUID').SetString( '{A5DCBF10-6530-11D2-901F-00C04FB951ED} 'DBT_DEVICEARRIVAL','LongWord').SetUInt( $8000); 'DBT_DEVICEREMOVECOMPLETE','LongWord').SetUInt( $8004); 'DBT_DEVTYP_DEVICEINTERFACE','LongWord').SetUInt( $00000005); CL.AddTypeS('TUsbNotifyProc', 'Proc ( Sender : TObject; const DeviceName:Str) SIRegister_TUsbNotifier(CL); end; Proc SIRegister_uWebcam(CL: TPSPascalCompiler); begin CL.AddConstantN('WM_CAP_START','LongWord').SetUInt( $0400); 'WM_CAP_DRIVER_CONNECT','LongInt').SetInt( $0400 + 10); 'WM_CAP_DRIVER_DISCONNECT','LongInt').SetInt( $0400 + 11); 'WM_CAP_SAVEDIB','LongInt').SetInt( $0400 + 25); 'WM_CAP_GRAB_FRAME','LongInt').SetInt( $0400 + 60); 'WM_CAP_STOP','LongInt').SetInt( $0400 + 68); Func Connectwebcam( WebcamID : integer) :Bool Proc CaptureWebCam( FilePath :Str) Proc CloseWebcam( ); Proc WebcamInit; Func WebcamList: TStringlist; end; Proc WebcamInit; begin LibHandle := LoadLibrary('avicap32.dll CapGetDriverDescriptionA:= GetProcAddress(LibHandle,'capGetDriverDescriptionA CapCreateCaptureWindowA := GetProcAddress(LibHandle,'capCreateCaptureWindowA end; Example: webcaminit; writeln(webcamlist.text) if Connectwebcam(0) then CaptureWebCam(Exepath+'foto4.png CloseWebcam(); Top5 Functions mX4.7.1.80 Proc LoadResourceFile3HTML(aFile:str; ms:TMemoryStream); Func VarArrayToStr(const vArray: variant):Str; Func VarStrNull(const V:OleVariant):str; //avoid problems with null strings Func GetWMIObject(const objectName:Str): IDispatch; //create the Wmi instance Func GetAntiVirusProductInfo: TStringlist; Func EnDeCrypt(const Value :Str) :Str; //http://www.delphibasics.info/home/delphibasicssnippets/executingpreparedshellcodeindelphi Proc SIRegister_TeCanvas(CL: TPSPascalCompiler); //based on TEEProc, TeCanvas, TEEngine, TChart begin 'TeePiStep','Double').setExtended( Pi / 180.0); 'TeeDefaultPerspective','LongInt'( 100); 'TeeMinAngle','LongInt'( 270); 'teeclMoneyGreen','LongWord').SetUInt( TColor ( $C0DCC0 )); 'teeclSkyBlue','LongWord').SetUInt( TColor ( $F0CAA6 )); 'teeclCream','LongWord( TColor ( $F0FBFF )); 'teeclMedGray','LongWord').SetUInt( TColor ( $A4A0A0 )); 'teeclMoneyGreen','LongWord').SetUInt( TColor ( $C0DCC0 )); 'teeclSkyBlue','LongWord').SetUInt( TColor ( $F0CAA6 )); 'teeclCream','LongWord').SetUInt( TColor ( $F0FBFF )); 'teeclMedGray','LongWord').SetUInt( TColor ( $A4A0A0 )); 'TA_LEFT','LongInt'( 0); 'TA_RIGHT','LongInt'( 2); 'TA_CENTER','LongInt'( 6); 'TA_TOP','LongInt'( 0); 'TA_BOTTOM','LongInt'( 8); 'teePATCOPY','LongInt'( 0); 'NumCirclePoints','LongInt'( 64); 'teeDEFAULT_CHARSET','LongInt'( 1); 'teeANTIALIASED_QUALITY','LongInt'( 4); 'TA_LEFT','LongInt'( 0); 'bs_Solid','LongInt'( 0); 'teepf24Bit','LongInt'( 0); 'teepfDevice','LongInt'( 1); 'CM_MOUSELEAVE','LongInt'( 10000); 'CM_SYSCOLORCHANGE','LongInt'( 10001); 'DC_BRUSH','LongInt'( 18); 'DC_PEN','LongInt'( 19); teeCOLORREF', 'LongWord TLogBrush', 'record lbStyle : Int; lbColor : TColor; lbHatch: Int; end //TNotifyEvent', 'Proc ( Sender : TObject) SIRegister_TFilterRegion(CL); SIRegister_IFormCreator(CL); SIRegister_TTeeFilter(CL); //TFilterClass', 'class of TTeeFilter SIRegister_TFilterItems(CL); SIRegister_TConvolveFilter(CL); SIRegister_TBlurFilter(CL); SIRegister_TTeePicture(CL); TPenEndStyle', '( esRound, esSquare, esFlat ) SIRegister_TChartPen(CL); SIRegister_TChartHiddenPen(CL); SIRegister_TDottedGrayPen(CL); SIRegister_TDarkGrayPen(CL); SIRegister_TWhitePen(CL); SIRegister_TChartBrush(CL); TTeeView3DScrolled', 'Proc ( IsHoriz :Bool) TTeeView3DChangedZoom', 'Proc ( NewZoom : Int) SIRegister_TView3DOptions(CL); FindClass('TOBJECT'),'TTeeCanvas TTeeTransparency', 'Int SIRegister_TTeeBlend(CL); FindClass('TOBJECT'),'TCanvas3D SIRegister_TTeeShadow(CL); teeTGradientDirection','(gdTopBottom,gdBottomTop,gdLeftRight,gdRightLeft,gdFromCenter, gdFromTopLeft,gdFromBottomLeft,gdRadial,gdDiagonalUp,gdDiagonalDown ) FindClass('TOBJECT'),'TSubGradient SIRegister_TCustomTeeGradient(CL); SIRegister_TSubGradient(CL); SIRegister_TTeeGradient(CL); SIRegister_TTeeFontGradient(CL); SIRegister_TTeeFont(CL); TCanvasBackMode', '( cbmNone, cbmTransparent, cbmOpaque ) TCanvasTextAlign', 'Int TTeeCanvasHandle', 'HDC SIRegister_TTeeCanvas(CL); TPoint3DFloat', 'record X : Double; Y : Double; Z : Double; end SIRegister_TFloatXYZ(CL); TPoint3D', 'record x : Int; y : Int; z : Int; end TRGB', 'record blue: byte; green: byte; red: byte; end {TRGB=packed record Blue : Byte; Green : Byte; Red : Byte; //$IFDEF CLX //Alpha : Byte; // Linux end;} TTeeCanvasCalcPoints','Function(x,z:Int;var P0,P1:TPoint3D;var Color0,Color1:TColor):Bool TTeeCanvasSurfaceStyle', '( tcsSolid, tcsWire, tcsDot ) TCanvas3DPlane', '( cpX, cpY, cpZ ) //IInterface', 'IUnknown SIRegister_TCanvas3D(CL); SIRegister_TTeeCanvas3D(CL); TTrianglePoints', 'Array[0..2] of TPoint; TFourPoints', 'Array[0..3] of TPoint; Func ApplyDark( Color : TColor; HowMuch : Byte) : TColor Func ApplyBright( Color : TColor; HowMuch : Byte) : TColor Func Point3D( const x, y, z : Int) : TPoint3D Proc SwapDouble( var a, b : Double) Proc SwapInt( var a, b : Int) Proc RectSize( const R : TRect; var RectWidth, RectHeight : Int) Proc teeRectCenter( const R : TRect; var X, Y : Int) Func RectFromPolygon( const Points : array of TPoint; NumPoints : Int): TRect Func RectFromTriangle( const Points : TTrianglePoints) : TRect Func RectangleInRectangle( const Small, Big : TRect) :Bool Proc ClipCanvas( ACanvas : TCanvas; const Rect : TRect) Proc UnClipCanvas( ACanvas : TCanvas) Proc ClipEllipse( ACanvas : TTeeCanvas; const Rect : TRect) Proc ClipRoundRectangle(ACanvas:TTeeCanvas;const Rect : TRect; RoundSize : Int) Proc ClipPolygon(ACanvas:TTeeCanvas;const Points:array of TPoint;NumPoints:Int) 'TeeCharForHeight','String 'W 'DarkerColorQuantity','Byte').SetUInt( 128); 'DarkColorQuantity','Byte').SetUInt( 64); TButtonGetColorProc', 'Func : TColor SIRegister_TTeeButton(CL); SIRegister_TButtonColor(CL); SIRegister_TComboFlat(CL); Proc TeeSetTeePen(FPen:TPen; APen : TChartPen; AColor : TColor; Handle:TTeeCanvasHandle) Func TeePoint( const aX, aY : Int) : TPoint Func TEEPointInRect( const Rect : TRect; const P : TPoint) :Bool; Func PointInRect1( const Rect : TRect; x, y : Int) :Bool; Func TeeRect( Left, Top, Right, Bottom : Int) : TRect Func OrientRectangle( const R : TRect) : TRect Proc TeeSetBitmapSize( Bitmap : TBitmap; Width, Height : Int) Func PolygonBounds( const P : array of TPoint) : TRect Func PolygonInPolygon( const A, B : array of TPoint) :Bool Func RGBValue( const Color : TColor) : TRGB Func EditColor( AOwner : TComponent; AColor : TColor) : TColor Func EditColorDialog( AOwner : TComponent; var AColor : TColor) :Bool Func PointAtDistance( AFrom, ATo : TPoint; ADist : Int) : TPoint Func TeeCull( const P : TFourPoints) :Bool; Func TeeCull1( const P0, P1, P2 : TPoint) :Bool; TSmoothStretchOption', '( ssBestQuality, ssBestPerformance ) Proc SmoothStretch( Src, Dst : TBitmap); Proc SmoothStretch1( Src, Dst : TBitmap; Option : TSmoothStretchOption); Func TeeDistance( const x, y : Double) : Double Func TeeLoadLibrary( const FileName :Str) : HInst Proc TeeFreeLibrary( hLibModule : HMODULE) Proc TeeBlendBitmaps(const Percent:Double; ABitmap, BBitmap : TBitmap; BOrigin : TPoint) //Proc TeeCalcLines( var Lines : TRGBArray; Bitmap : TBitmap) Proc TeeShadowSmooth(Bitmap,Back:TBitmap;Left,Top,Width,Height,horz,vert:Int;Smoothness:Double;FullDraw:Bool;ACanvas:TCanvas3D;Clip:Bool) SIRegister_ICanvasHyperlinks(CL); SIRegister_ICanvasToolTips(CL); Func Supports( const Instance : IInterface; const IID : TGUID) :Bool end; Proc SIRegister_ovcmisc(CL: TPSPascalCompiler); begin TOvcHdc', 'Int TOvcHWND', 'Cardinal TOvcHdc', 'HDC TOvcHWND', 'HWND Func LoadBaseBitmap( lpBitmapName : PChar) : HBITMAP Func LoadBaseCursor( lpCursorName : PChar) : HCURSOR Func ovCompStruct( const S1, S2, Size :Card) : Int Func DefaultEpoch : Int Func DrawButtonFrame(Canvas:TCanvas;const Client:TRect;IsDown,IsFlat:Bool;Style:TButtonStyle):TRect; Proc FixRealPrim( P : PChar; DC : Char) Func GetDisplayString(Canvas: TCanvas; const S:Str; MinChars, MaxWidth : Int) :Str Func GetLeftButton : Byte Func GetNextDlgItem( Ctrl : TOvcHWnd) : hWnd Proc GetRGB( Clr : TColor; var IR, IG, IB : Byte) Func GetShiftFlags : Byte Func ovCreateRotatedFont( F : TFont; Angle : Int) : hFont Func GetTopTextMargin(Font:TFont;BorderStyle:TBorderStyle; Height:Int;Ctl3D:Boolean): Int Func ovExtractWord( N : Int; const S :Str; WordDelims : TCharSet) :Str Func ovIsForegroundTask :Bool Func ovTrimLeft( const S :Str) :Str Func ovTrimRight( const S :Str) :Str Func ovQuotedStr( const S :Str) :Str Func ovWordCount( const S :Str; const WordDelims : TCharSet) : Int Func ovWordPosition(const N:Int;const S:Str;const WordDelims : TCharSet) : Int Func PtrDiff( const P1, P2 : PChar) : Word Proc PtrInc( var P, Delta : Word) Proc PtrDec( var P, Delta : Word) Proc FixTextBuffer( InBuf, OutBuf : PChar; OutSize : Int) Proc TransStretchBlt(DstDC:TOvcHdc;DstX,DstY,DstW,DstH:Int;SrcDC:TOvcHdc;SrcX,SrcY,SrcW,SrcH:Int;MaskDC:TOvcHdc;MaskX,MaskY:Int) Func ovMinI( X, Y : Int) : Int Func ovMaxI( X, Y : Int) : Int Func ovMinL( X, Y : LongInt) : LongInt Func ovMaxL( X, Y : LongInt) : LongInt Func GenerateComponentName( PF : TWinControl; const Root :Str) :Str Func PartialCompare( const S1, S2 :Str) :Bool Func PathEllipsis( const S :Str; MaxWidth : Int) :Str Func ovCreateDisabledBitmap( FOriginal : TBitmap; OutlineColor : TColor) : TBitmap Proc ovCopyParentImage( Control : TControl; Dest : TCanvas) Proc ovDrawTransparentBitmap(Dest:TCanvas;X,Y,W,H:Int;Rect:TRect;Bitmap:TBitmap; TransparentColor:TColor) Proc DrawTransparentBitmapPrim(DC:TOvcHdc;Bitmap:HBitmap;xStart,yStart,Width,Height:Int;Rect:TRect;TransparentColor : TColorRef) Func ovWidthOf( const R : TRect) : Int Func ovHeightOf( const R : TRect) : Int Proc ovDebugOutput( const S :Str) Func GetArrowWidth( Width, Height : Int) : Int Proc StripCharSeq( CharSeq :Str; var Str :Str) Proc StripCharFromEnd( aChr : Char; var Str :Str) Proc StripCharFromFront( aChr : Char; var Str :Str) Func SystemParametersInfo(uiAction,uiParam: UINT; pvParam : UINT; fWinIni : UINT) : BOOL Func SystemParametersInfoNCM(uiAction,uiParam:UINT;pvParam:TNonClientMetrics;fWinIni:UINT):BOOL; Func SystemParametersInfoA(uiAction,uiParam: UINT; pvParam: UINT; fWinIni : UINT) : BOOL Func CreateEllipticRgn( p1, p2, p3, p4 : Int) : HRGN Func CreateEllipticRgnIndirect( const p1 : TRect) : HRGN Func CreateFontIndirect( const p1 : TLogFont) : HFONT Func CreateMetaFile( p1 : PChar) : HDC Func DescribePixelFormat(DC: HDC;p2:Int;p3:UINT;var p4:TPixelFormatDescriptor): BOOL Func DrawText(hDC:HDC;lpString:PChar;nCount:Int;var lpRect: TRect;uFormat:UINT):Int Func DrawTextS(hDC:HDC;lpString:str;nCount:Int;var lpRect:TRect;uFormat:UINT):Int Func SetMapperFlags( DC : HDC; Flag : DWORD) : DWORD Func SetGraphicsMode( hdc : HDC; iMode : Int) : Int Func SetMapMode( DC : HDC; p2 : Int) : Int Func SetMetaFileBitsEx( Size : UINT; const Data : PChar) : HMETAFILE //Func SetPaletteEntries(Palette:HPALETTE;StartIndex,NumEntries:UINT;var PaletteEntries):UINT Func SetPixel( DC : HDC; X, Y : Int; Color : COLORREF) : COLORREF Func SetPixelV( DC : HDC; X, Y : Int; Color : COLORREF) : BOOL //Func SetPixelFormat(DC:HDC;PixelFormat:Int;FormatDef:PPixelFormatDescriptor) : BOOL Func SetPolyFillMode( DC : HDC; PolyFillMode : Int) : Int Func StretchBlt(DestDC:HDC;X,Y,Width,Height:Int;SrcDC:HDC;XSrc,YSrc,SrcWidth,SrcHeight:Int;Rop:DWORD):BOOL Func SetRectRgn( Rgn : HRgn; X1, Y1, X2, Y2 : Int) : BOOL Func StretchDIBits(DC:HDC;DestX,DestY,DestWidth,DestHeight,SrcX,SrcY,SrcWidth,SrcHeight:Int;Bits:int;var BitsInfo:TBitmapInfo;Usage:UINT;Rop:DWORD):Int Func SetROP2( DC : HDC; p2 : Int) : Int Func SetStretchBltMode( DC : HDC; StretchMode : Int) : Int Func SetSystemPaletteUse( DC : HDC; p2 : UINT) : UINT Func SetTextCharacterExtra( DC : HDC; CharExtra : Int) : Int Func SetTextColor( DC : HDC; Color : COLORREF) : COLORREF Func SetTextAlign( DC : HDC; Flags : UINT) : UINT Func SetTextJustification( DC : HDC; BreakExtra, BreakCount : Int) : Int Func UpdateColors( DC : HDC) : BOOL Func GetViewportExtEx( DC : HDC; var Size : TSize) : BOOL Func GetViewportOrgEx( DC : HDC; var Point : TPoint) : BOOL Func GetWindowExtEx( DC : HDC; var Size : TSize) : BOOL Func GetWindowOrgEx( DC : HDC; var Point : TPoint) : BOOL Func IntersectClipRect( DC : HDC; X1, Y1, X2, Y2 : Int) : Int Func InvertRgn( DC : HDC; p2 : HRGN) : BOOL Func MaskBlt(DestDC:HDC;XDest,YDest,Width,Height:Int;SrcDC:HDC;XScr,YScr:Int; Mask:HBITMAP;xMask,yMask:Int;Rop: DWORD): BOOL Func PlgBlt(DestDC:HDC;const PtsArray,SrcDC:HDC;XSrc,YSrc,Widt,Heigh:Int;Mask:HBITMAP;xMask,yMask:Int):BOOL; Func OffsetClipRgn( DC : HDC; XOffset, YOffset : Int) : Int Func OffsetRgn( RGN : HRGN; XOffset, YOffset : Int) : Int Func PatBlt( DC : HDC; X, Y, Width, Height : Int; Rop : DWORD) : BOOL Func Pie( DC : HDC; X1, Y1, X2, Y2, X3, Y3, X4, Y4 : Int) : BOOL Func PlayMetaFile( DC : HDC; MF : HMETAFILE) : BOOL Func PaintRgn( DC : HDC; RGN : HRGN) : BOOL Func PtInRegion( RGN : HRGN; X, Y : Int) : BOOL Func PtVisible( DC : HDC; X, Y : Int) : BOOL Func RectInRegion( RGN : HRGN; const Rect : TRect) : BOOL Func RectVisible( DC : HDC; const Rect : TRect) : BOOL Func Rectangle( DC : HDC; X1, Y1, X2, Y2 : Int) : BOOL Func RestoreDC( DC : HDC; SavedDC : Int) : BOOL end; Proc SIRegister_ovcfiler(CL: TPSPascalCompiler); begin SIRegister_TOvcAbstractStore(CL); //PExPropInfo', '^TExPropInfo // will not work // TExPropInfo', 'record PI : TPropInfo; AObject : TObject; end SIRegister_TOvcPropertyList(CL); SIRegister_TOvcDataFiler(CL); Proc UpdateStoredList(AForm: TWinControl; AStoredList : TStrings; FromForm :Bool) Proc UpdateStoredList1( AForm : TCustomForm; AStoredList: TStrings;FromForm:Bool) Func CreateStoredItem( const CompName, PropName :Str) :Str Func ParseStoredItem( const Item :Str; var CompName, PropName :Str) :Bool //Func GetPropType( PropInfo : PExPropInfo) : PTypeInfo end; Proc SIRegister_ovccoco(CL: TPSPascalCompiler); begin 'ovsetsize','LongInt'( 16); 'etSyntax','LongInt'( 0); 'etSymantic','LongInt'( 1); 'chCR',Char #13); 'chLF',Char #10); 'chLineSeparator', chCR); SIRegister_TCocoError(CL); SIRegister_TCommentItem(CL); SIRegister_TCommentList(CL); SIRegister_TSymbolPosition(CL); TGenListType', '( glNever, glAlways, glOnError ) TovBitSet', 'set of Int //PStartTable', '^TStartTable // will not work TovCharSet', 'set of AnsiChar TAfterGenListEvent','Proc ( Sender : TObject; var PrintErrorCount :Bool) TCommentEvent','Proc ( Sender : TObject; CommentList : TCommentList) TCustomErrorEvent','Function(Sender:TObject;const ErrorCode:longint;const Data:str):str TovErrorEvent', 'Proc ( Sender : TObject; Error : TCocoError) TovErrorProc','Proc (ErrorCode:Int;Symbol:TSymbolPosition;const Data:str;ErrorType:Int) TFailureEvent','Proc (Sender : TObject; NumErrors : Int) TGetCH', 'Func (pos : longint) : char TStatusUpdateProc', 'Proc ( Sender : TObject; Status:Str; LineNum:Int) SIRegister_TCocoRScanner(CL); SIRegister_TCocoRGrammar(CL); '_EF','Char #0); '_TAB','Char').SetString( #09); '_CR','Char').SetString( #13); '_LF','Char').SetString( #10); '_EL','').SetString( _CR); '_EOF','Char').SetString( #26); 'LineEnds','TCharSet'(ord(_CR) or ord(_LF) or ord(_EF)); 'minErrDist','LongInt'( 2); Func ovPadL(S:Str; ch : char; L : Int) :Str end; TFormatSettings = record CurrencyFormat: Byte; NegCurrFormat: Byte; ThousandSeparator: Char; DecimalSeparator: Char; CurrencyDecimals: Byte; DateSeparator: Char; TimeSeparator: Char; ListSeparator: Char; CurrencyString:Str; ShortDateFormat:Str; LongDateFormat:Str; TimeAMString:Str; TimePMString:Str; ShortTimeFormat:Str; LongTimeFormat:Str; ShortMonthNames: array[1..12] of string; LongMonthNames: array[1..12] of string; ShortDayNames: array[1..7] of string; LongDayNames: array[1..7] of string; TwoDigitYearCenturyWindow: Word; end; Proc SIRegister_OvcFormatSettings(CL: TPSPascalCompiler); begin Func ovFormatSettings : TFormatSettings end; Proc SIRegister_ovcstr(CL: TPSPascalCompiler); begin TOvcCharSet', 'set of Char ovBTable', 'array[0..255] of Byte //BTable = array[0..{$IFDEF UNICODE}{$IFDEF HUGE_UNICODE_BMTABLE}$FFFF{$ELSE}$FF{$ENDIF}{$ELSE}$FF{$ENDIF}] of Byte; Func BinaryBPChar( Dest : PChar; B : Byte) : PChar Func BinaryLPChar( Dest : PChar; L : LongInt) : PChar Func BinaryWPChar( Dest : PChar; W : Word) : PChar Proc BMMakeTable( MatchString : PChar; var BT : ovBTable) Func BMSearch(var Buffer,BufLength:Card;var BT:ovBTable;MatchString:PChar;var Pos:Card):Bool; Func BMSearchUC(var Buffer,BufLength:Card;var BT:ovBTable;MatchString:PChar;var Pos:Card):Bool Func CharStrPChar( Dest : PChar; C : Char; Len :Card) : PChar Func DetabPChar( Dest : PChar; Src : PChar; TabSize : Byte) : PChar Func HexBPChar( Dest : PChar; B : Byte) : PChar Func HexLPChar( Dest : PChar; L : LongInt) : PChar Func HexPtrPChar( Dest : PChar; P : TObject) : PChar Func HexWPChar( Dest : PChar; W : Word) : PChar Func LoCaseChar( C : Char) : Char Func OctalLPChar( Dest : PChar; L : LongInt) : PChar Func StrChDeletePrim( P : PChar; Pos :Card) : PChar Func StrChInsertPrim( Dest : PChar; C : Char; Pos:Card) : PChar Func StrChPos( P : PChar; C : Char; var Pos :Card) :Bool Proc StrInsertChars( Dest : PChar; Ch : Char; Pos, Count : Word) Func StrStCopy( Dest, S : PChar; Pos, Count :Card) : PChar Func StrStDeletePrim( P : PChar; Pos, Count :Card) : PChar Func StrStInsert( Dest, S1, S2 : PChar; Pos :Card) : PChar Func StrStInsertPrim( Dest, S : PChar; Pos :Card) : PChar Func StrStPos( P, S : PChar; var Pos :Card) :Bool Func StrToLongPChar( S : PChar; var I : LongInt) :Bool Proc TrimAllSpacesPChar( P : PChar) Func TrimEmbeddedZeros( const S :Str) :Str Proc TrimEmbeddedZerosPChar( P : PChar) Func TrimTrailPrimPChar( S : PChar) : PChar Func TrimTrailPChar( Dest, S : PChar) : PChar Func TrimTrailingZeros( const S :Str) :Str Proc TrimTrailingZerosPChar( P : PChar) Func UpCaseChar( C : Char) : Char Func ovcCharInSet( C : Char; const CharSet : TOvcCharSet) :Bool Func ovc32StringIsCurrentCodePage( const S : WideString) :Bool; //Func ovc32StringIsCurrentCodePage1( const S:PWideChar; CP :Card) :Bool; end; Proc SIRegister_AfUtils(CL: TPSPascalCompiler); begin //PRaiseFrame', '^TRaiseFrame // will not work TRaiseFrame', 'record NextRaise : PRaiseFrame; ExceptAddr : ___Poin' +ter; ExceptObject : TObject; ExceptionRecord : PExceptionRecord; end Proc SafeCloseHandle( var Handle : THandle) Proc ExchangeInt( X1, X2 : Int) Proc FillInt( const Buffer, Size, Value : Int) Func LongMulDiv( Mult1, Mult2, Div1 : Longint) : Longint Func afCompareMem( P1, P2 : TObject; Length : Int) :Bool FILENAME_ADVAPI32 = 'ADVAPI32.DLL'; Func AbortSystemShutdown; external advapi32 name 'AbortSystemShutdownW'; Func AbortSystemShutdown(lpMachineName: PKOLChar): BOOL; stdcall; Func AccessCheckAndAuditAlarm(SubsystemName: PKOLChar; HandleId: Pointer; ObjectTypeName, ObjectName: PKOLChar; SecurityDescriptor: PSecurityDescriptor; DesiredAccess: DWORD; const GenericMapping: TGenericMapping; ObjectCreation: BOOL; var GrantedAccess: DWORD; var AccessStatus, pfGenerateOnClose: BOOL): BOOL; stdcall; Func AccessCheckByTypeAndAuditAlarm(SubsystemName: PKOLChar; HandleId: Pointer; ObjectTypeName, ObjectName: PKOLChar; SecurityDescriptor: PSecurityDescriptor; PrincipalSelfSid: PSID; DesiredAccess: DWORD; AuditType: AUDIT_EVENT_TYPE; Flags: DWORD; ObjectTypeList: PObjectTypeList; ObjectTypeListLength:DWORD;const GenericMapping: TGenericMapping; ObjectCreation: BOOL; var GrantedAccess: DWORD; var AccessStatus, pfGenerateOnClose: BOOL): BOOL; stdcall; Func AccessCheckByTypeResultListAndAuditAlarm(SubsystemName: PKOLChar; HandleId: Pointer; ObjectTypeName, ObjectName: PKOLChar; SecurityDescriptor: PSecurityDescriptor; PrincipalSelfSid: PSID; DesiredAccess: DWORD; AuditType: AUDIT_EVENT_TYPE; Flags: DWORD; ObjectTypeList: PObjectTypeList; ObjectTypeListLength: DWORD;const GenericMapping:TGenericMapping; ObjectCreation: BOOL; var GrantedAccess:DWORD;var AccessStatusList:DWORD;var pfGenerateOnClose:BOOL):BOOL; stdcall; Func BackupEventLog(hEventLog:THandle; lpBackupFileName: PKOLChar):BOOL; stdcall; Func ClearEventLog(hEventLog: THandle; lpBackupFileName: PKOLChar): BOOL; stdcall; Func CreateProcessAsUser(hToken: THandle; lpApplicationName: PKOLChar; lpCommandLine: PKOLChar; lpProcessAttributes: PSecurityAttributes; lpThreadAttributes: PSecurityAttributes; bInheritHandles: BOOL; dwCreationFlags: DWORD; lpEnvironment: Pointer; lpCurrentDirectory: PKOLChar; const lpStartupInfo:TStartupInfo;var lpProcessInformation: TProcessInformation):BOOL; stdcall; Func GetCurrentHwProfile(var lpHwProfileInfo: THWProfileInfo): BOOL; stdcall; Func GetFileSecurity(lpFileName: PKOLChar; RequestedInformation: SECURITY_INFORMATION; pSecurityDescriptor:PSecurityDescriptor;nLength:DWORD;var lpnLengthNeeded:DWORD):BOOL; stdcall; Func GetUserName(lpBuffer: PKOLChar; var nSize: DWORD): BOOL; stdcall; Func InitiateSystemShutdown(lpMachineName, lpMessage: PKOLChar; dwTimeout: DWORD; bForceAppsClosed, bRebootAfterShutdown: BOOL): BOOL; stdcall; Func LogonUser(lpszUsername, lpszDomain, lpszPassword: PKOLChar; dwLogonType, dwLogonProvider: DWORD; var phToken: THandle): BOOL; stdcall; Func LookupAccountName(lpSystemName, lpAccountName: PKOLChar; Sid: PSID; var cbSid: DWORD; ReferencedDomainName: PKOLChar; var cbReferencedDomainName: DWORD; var peUse: SID_NAME_USE): BOOL; stdcall; Func LookupAccountSid(lpSystemName: PKOLChar; Sid: PSID; Name: PKOLChar; var cbName: DWORD; ReferencedDomainName: PKOLChar; var cbReferencedDomainName: DWORD; var peUse: SID_NAME_USE): BOOL; stdcall; Func LookupPrivilegeDisplayName(lpSystemName, lpName: PKOLChar; lpDisplayName: PKOLChar; var cbDisplayName, lpLanguageId: DWORD): BOOL; stdcall; Func LookupPrivilegeName(lpSystemName: PKOLChar; var lpLuid: TLargeInt; lpName: PKOLChar; var cbName: DWORD): BOOL; stdcall; Func LookupPrivilegeValue(lpSystemName, lpName: PKOLChar; var lpLuid: TLargeInt): BOOL; stdcall; Func ObjectCloseAuditAlarm(SubsystemName: PKOLChar; HandleId: Pointer; GenerateOnClose: BOOL): BOOL; stdcall; Func ObjectDeleteAuditAlarm(SubsystemName: PKOLChar; HandleId: Pointer; GenerateOnClose: BOOL): BOOL; stdcall; Func ObjectOpenAuditAlarm(SubsystemName: PKOLChar; HandleId: Pointer; ObjectTypeName:PKOLChar; ObjectName: PKOLChar; pSecurityDescriptor: PSecurityDescriptor; ClientToken: THandle; DesiredAccess, GrantedAccess: DWORD; var Privileges: TPrivilegeSet; ObjectCreation, AccessGranted: BOOL; var GenerateOnClose: BOOL): BOOL; stdcall; Func ObjectPrivilegeAuditAlarm(SubsystemName: PKOLChar; HandleId: Pointer; ClientToken: THandle; DesiredAccess: DWORD; var Privileges: TPrivilegeSet; AccessGranted: BOOL): BOOL; stdcall; Func OpenBackupEventLog(lpUNCServerName, lpFileName: PKOLChar): THandle; stdcall; Func OpenEventLog(lpUNCServerName, lpSourceName: PKOLChar): THandle; stdcall; Func PrivilegedServiceAuditAlarm(SubsystemName, ServiceName: PKOLChar; ClientToken: THandle;var Privileges: TPrivilegeSet; AccessGranted: BOOL): BOOL; stdcall; Func ReadEventLog(hEventLog: THandle; dwReadFlags, dwRecordOffset: DWORD; lpBuffer: Pointer; nNumberOfBytesToRead: DWORD; var pnBytesRead, pnMinNumberOfBytesNeeded: DWORD): BOOL; stdcall; Func RegConnectRegistry(lpMachineName: PKOLChar; hKey: HKEY; var phkResult: HKEY): Longint; stdcall; Func RegCreateKey(hKey: HKEY; lpSubKey: PKOLChar; var phkResult: HKEY): Longint; stdcall; Func RegCreateKeyEx(hKey: HKEY; lpSubKey: PKOLChar; Reserved: DWORD; lpClass: PKOLChar; dwOptions: DWORD; samDesired: REGSAM; lpSecurityAttributes: PSecurityAttributes; var phkResult: HKEY; lpdwDisposition: PDWORD): Longint; stdcall; Func RegDeleteKey(hKey: HKEY; lpSubKey: PKOLChar): Longint; stdcall; Func RegDeleteValue(hKey: HKEY; lpValueName: PKOLChar): Longint; stdcall; Func RegEnumKeyEx(hKey: HKEY; dwIndex: DWORD; lpName: PKOLChar; var lpcbName: DWORD; lpReserved: Pointer; lpClass: PKOLChar; lpcbClass: PDWORD; lpftLastWriteTime: PFileTime): Longint; stdcall; Func RegEnumKey(hKey:HKEY;dwIndex:DWORD;lpName:PKOLChar;cbName:DWORD):Longint;stdcall; Func RegEnumValue(hKey: HKEY; dwIndex: DWORD; lpValueName: PKOLChar; var lpcbValueName: DWORD; lpReserved: Pointer; lpType: PDWORD; lpData: PByte; lpcbData: PDWORD): Longint; stdcall; Func RegLoadKey(hKey: HKEY; lpSubKey, lpFile: PKOLChar): Longint; stdcall; Func RegOpenKey(hKey: HKEY; lpSubKey: PKOLChar;var phkResult: HKEY):Longint; stdcall; Func RegOpenKeyEx(hKey: HKEY; lpSubKey: PKOLChar; ulOptions: DWORD; samDesired: REGSAM; var phkResult: HKEY): Longint; stdcall; Func RegQueryInfoKey(hKey: HKEY; lpClass: PKOLChar; lpcbClass: PDWORD; lpReserved: Pointer; lpcSubKeys, lpcbMaxSubKeyLen, lpcbMaxClassLen, lpcValues, lpcbMaxValueNameLen, lpcbMaxValueLen, lpcbSecurityDescriptor: PDWORD; lpftLastWriteTime: PFileTime): Longint; stdcall; Func RegQueryMultipleValues(hKey: HKEY; var ValList; NumVals: DWORD; lpValueBuf: PKOLChar; var ldwTotsize: DWORD): Longint; stdcall; Func RegQueryValue(hKey: HKEY; lpSubKey: PKOLChar; lpValue: PKOLChar; var lpcbValue: Longint): Longint; stdcall; Func RegQueryValueEx(hKey: HKEY; lpValueName: PKOLChar; lpReserved: Pointer; lpType: PDWORD; lpData: PByte; lpcbData: PDWORD): Longint; stdcall; Func RegReplaceKey(hKey: HKEY; lpSubKey: PKOLChar; lpNewFile: PKOLChar; lpOldFile: PKOLChar): Longint; stdcall; Func RegRestoreKey(hKey: HKEY; lpFile:PKOLChar; dwFlags: DWORD):Longint; stdcall; Func RegSaveKey(hKey: HKEY; lpFile: PKOLChar; lpSecurityAttributes: PSecurityAttributes): Longint; stdcall; Func RegSetValue(hKey: HKEY; lpSubKey: PKOLChar; dwType: DWORD; lpData: PKOLChar; cbData: DWORD): Longint; stdcall; Func RegSetValueEx(hKey: HKEY; lpValueName: PKOLChar; Reserved: DWORD; dwType: DWORD; lpData: Pointer; cbData: DWORD): Longint; stdcall; Func RegUnLoadKey(hKey: HKEY; lpSubKey: PKOLChar): Longint; stdcall; Func RegisterEventSource(lpUNCServerName, lpSourceName: PKOLChar): THandle; stdcall; Func ReportEvent(hEventLog: THandle; wType, wCategory: Word; dwEventID: DWORD; lpUserSid: Pointer; wNumStrings: Word; dwDataSize: DWORD; lpStrings, lpRawData: Pointer): BOOL; stdcall; Func SetFileSecurity(lpFileName: PKOLChar; SecurityInformation: SECURITY_INFORMATION; pSecurityDescriptor: PSecurityDescriptor): BOOL; stdcall; Func wAddAtom( lpString : PKOLChar) : ATOM Func wBeginUpdateResource( pFileName : PKOLChar; bDeleteExistingResources : BOOL): THandle //Func wCallNamedPipe(lpNamedPipeName:PKOLChar;lpInBuffer:Pointer;nInBufferSize:DWORD;lpOutBuffer:Pointer;nOutBufferSize:DWORD;var lpBytesRead:DWORD;nTimeOut:DWORD):BOOL //Func wCommConfigDialog( lpszName : PKOLChar; hWnd : HWND; var lpCC : TCommConfig): BOOL Func wCompareString(Locale:LCID;dwCmpFlags:DWORD;lpString1:PKOLChar;cchCount1:Int;lpString2:PKOLChar;cchCount2:Int):Int Func wCopyFile( lpExistingFileName, lpNewFileName : PKOLChar; bFailIfExists : BOOL):BOOL //Func wCopyFileEx(lpExistingFileName,lpNewFileName:PKOLChar;lpProgressRoutine:TFNProgressRoutine;lpData:Pointer;pbCancel:PBool;dwCopyFlags:DWORD):BOOL Func wCreateDirectory(lpPathName:PKOLChar;lpSecurityAttributes:PSecurityAttributes):BOOL Func wCreateDirectoryEx(lpTemplateDirectory,lpNewDirectory:PKOLChar;lpSecAttrib:PSecurityAttribts):BOOL; Func wCreateEvent(lpEventAttribes:PSecurityAttrib;bManualReset,bInitialState:BOOL;lpName:PKOLChar):THandle; Func wCreateFile(lpFileName : PKOLChar; dwDesiredAccess,dwShareMode:DWORD;lpSecurityAttributes:PSecurityAttributes;dwCreationDisposition,dwFlagsAndAttributes: DWORD;hTemplateFile:THandle):THandle Func wCreateFileMapping(hFile:THandle;lpFileMappingAttributes:PSecurityAttributes; flProtect,dwMaximumSizeHigh,dwMaximumSizeLow:DWORD;lpName:PKOLChar):THandle Func wCreateHardLink(lpFileName,lpExistingFileName:PKOLChar;lpSecurityAttributes:PSecurityAttributes):BOOL Func CreateMailslot(lpName:PKOLChar;MaxMessSize:DWORD;lReadTimeout:DWORD;lpSecurityAttrib:PSecurityAttributes):THandle); Func wCreateNamedPipe(lpName:PKOLChar;dwOpenMode,dwPipeMode,nMaxInstances,nOutBufferSize,nInBufferSize,nDefaultTimeOut:DWORD;lpSecurityAttributes:PSecurityAttributes): THandle //Func CreateProcess( lpApplicationName : PKOLChar; lpCommandLine : PKOLChar; lpProcessAttributes, lpThreadAttributes : PSecurityAttributes; bInheritHandles : BOOL; dwCreationFlags : DWORD; lpEnvironment : Pointer;lpCurrentDirectory:PKOLChar;const lpStartupInfo:TStartupInfo;var lpProcessInfo:TProcessInformation):BOOL Func wCreateSemaphore(lpSemaphoreAttributes:PSecurityAttributes;lInitialCount,lMaximumCount:Longint;lpName:PKOLChar):THandle Func wCreateWaitableTimer(lpTimerAttribs:PSecurityAttribs;bManualReset:BOOL;lpTimerName:PKOLChar):THandle); Func wDefineDosDevice( dwFlags : DWORD; lpDeviceName, lpTargetPath : PKOLChar) : BOOL Func wDeleteFile( lpFileName : PKOLChar) : BOOL Func wEndUpdateResource( hUpdate : THandle; fDiscard : BOOL) : BOOL //Func wEnumCalendarInfo(lpCalInfEnumProc:TFNCalInfEnumProc;Locale:LCID;Calendar:CALID;CalType:CALTYPE):BOOL; //Func wEnumDateFormats(lpDateFmtEnumProc:TFNDateFmtEnumProc;Locale:LCID;dwFlags:DWORD): BOOL //Func wEnumResourceNames(hModule:HMODULE;lpType:PKOLChar;lpEnumFunc:ENUMRESNAMEPROC;lParam:Longint):BOOL; //Func wEnumResourceTypes(hModule:HMODULE;lpEnumFunc:ENUMRESTYPEPROC;lParam:Longint):BOOL; //Func wEnumSystemCodePages(lpCodePageEnumProc:TFNCodepageEnumProc;dwFlags:DWORD): BOOL //Func wEnumSystemLocales(lpLocaleEnumProc:TFNLocaleEnumProc;dwFlags:DWORD): BOOL //Func wEnumTimeFormats(lpTimeFmtEnumProc:TFNTimeFmtEnumProc;Locale:LCID;dwFlags:DWORD):BOOL; Func wExpandEnvironmentStrings(lpSrc:PKOLChar;lpDst:PKOLChar;nSize:DWORD): DWORD Proc wFatalAppExit( uAction : UINT; lpMessageText : PKOLChar) //Func wFillConsoleOutputCharacter(hConsoleOutput:THandle;cCharacter:KOLChar;nLength:DWORD; dwWriteCoord: TCoord;var lpNumberOfCharsWritten:DWORD):BOOL Func wFindAtom( lpString : PKOLChar) : ATOM Func wFindFirstChangeNotification(lpPathName:PKOLChar;bWatchSubtree:BOOL;dwNotifyFilter:DWORD):THandle; Func wFindFirstFile(lpFileName:PKOLChar;var lpFindFileData:TWIN32FindData): THandle //Func wFindFirstFileEx( lpFileName : PKOLChar; fInfoLevelId : TFindexInfoLevels; lpFindFileData : Pointer; fSearchOp : TFindexSearchOps; lpSearchFilter : Pointer; dwAdditionalFlags : DWORD) : BOOL Func wFindNextFile(hFindFile:THandle;var lpFindFileData:TWIN32FindData):BOOL Func wFindResource( hModule : HMODULE; lpName, lpType : PKOLChar) : HRSRC Func wFindResourceEx(hModule:HMODULE;lpType,lpName:PKOLChar;wLanguage:Word): HRSRC Func wFoldString(dwMapFlags:DWORD;lpSrcStr:PKOLChar;cchSrc:Int;lpDestStr:PKOLChar;cchDest:Int):Int; //Func wFormatMessage(dwFlags:DWORD;lpSource:Pointer;dwMessageId:DWORD;dwLanguageId:DWORD; lpBuffer:PKOLChar;nSize:DWORD;Arguments:Pointer):DWORD Func wFreeEnvironmentStrings( EnvBlock : PKOLChar): BOOL Func wGetAtomName( nAtom : ATOM; lpBuffer : PKOLChar; nSize : Int) : UINT Func wGetBinaryType(lpApplicationName:PKOLChar;var lpBinaryType:DWORD):BOOL Func wGetCommandLine: PKOLChar //Func wGetCompressedFileSize(lpFileName:PKOLChar;lpFileSizeHigh:PDWORD): DWORD Func wGetComputerName( lpBuffer : PKOLChar; var nSize : DWORD) : BOOL Func wGetConsoleTitle( lpConsoleTitle : PKOLChar; nSize : DWORD) : DWORD //Func wGetCurrencyFormat(Locale:LCID;dwFlags:DWORD;lpValue:PKOLChar;lpFormat : PCurrencyFmt;lpCurrencyStr:PKOLChar;cchCurrency:Int):Int Func wGetCurrentDirectory( nBufferLength : DWORD; lpBuffer : PKOLChar) : DWORD //Func wGetDateFormat(Locale:LCID; dwFlags:DWORD;lpDate:PSystemTime;lpFormat: PKOLChar; lpDateStr:PKOLChar; cchDate: Int):Int //Func wGetDefaultCommConfig(lpszName:PKOLChar;var lpCC:TCommConfig;var lpdwSize:DWORD):BOOL Func wGetDiskFreeSpace(lpRootPathName:PKOLChar;var lpSectorsPerCluster,lpBytesPerSector, lpNumberOfFreeClusters,lpTotalNumberOfClusters:DWORD):BOOL //Func wGetDiskFreeSpaceEx(lpDirectoryName:PKOLChar;var lpFreeBytesAvailableToCaller,lpTotalNumberOfBytes,lpTotalNumberOfFreeBytes:PLargeInt):BOOL Func wGetDriveType( lpRootPathName : PKOLChar) : UINT Func wGetEnvironmentStrings : PKOLChar Func wGetEnvironmentVariable(lpName:PKOLChar;lpBuffer:PKOLChar;nSize:DWORD): DWORD; Func wGetFileAttributes( lpFileName : PKOLChar) : DWORD //Func wGetFileAttributesEx(lpFileName:PKOLChar;fInfoLevelId:TGetFileExInfoLevs;lpFileInform:Pointer):BOOL; Func wGetFullPathName(lpFileName:PKOLChar;nBufferLeng:WORD;lpBuffer:PKOLChar;var lpFilePart:PKOLChar):DWORD; //Func wGetLocaleInfo(Locale:LCID;LCType:LCTYPE;lpLCData:PKOLChar;cchData:Int):Int Func wGetLogicalDriveStrings(nBufferLength:DWORD;lpBuffer:PKOLChar):DWORD Func wGetModuleFileName(hModule:HINST;lpFilename:PKOLChar;nSize:DWORD):DWORD Func wGetModuleHandle( lpModuleName : PKOLChar) : HMODULE //Func wGetNamedPipeHandleState(hNamedPipe:THandle;lpState,lpCurInstances,lpMaxCollectionCount,lpCollectDataTimeout:PDWORD;lpUserName:PKOLChar;nMaxUserNameSize:DWORD): BOOL //Func wGetNumberFormat(Locale:CID;dwFlags:DWORD;lpValue:PKOLChar;lpFormat:PNumberFmt;lpNumberStr:PKOLChar;cchNumber:Int):Int Func wGetPrivateProfileInt(lpAppName,lpKeyName:PKOLChar;nDefault:Int;lpFileName:PKOLChar):UINT; Func wGetPrivateProfileSection(lpAppName:PKOLChar;lpRetrStr:PKOLChar;nSize:DWORD;pFileName:PKOLChar):DWORD; Func wGetPrivateProfileSectionNames(lpszReturnBuffer:PKOLChar;nSize:DWORD;lpFileName:PKOLChar):DWORD; Func wGetPrivateProfileString(lpAppName,lpKeyName,lpDefault:PKOLChar;lpReturnedStr:PKOLChar;nSize:DWORD;lpFileName:PKOLChar):DWORD Func wGetProfileInt( lpAppName, lpKeyName : PKOLChar; nDefault : Int) : UINT Func wGetProfileSection(lpAppName:PKOLChar;lpReturnedString:PKOLChar;nSize:DWORD):DWORD Func wGetProfileString(lpAppName,lpKeyName,lpDefault:PKOLChar;lpReturnedStr:PKOLChar;nSize:DWORD):DWORD; Func wGetShortPathName(lpszLongPath:PKOLChar;lpszShortPath:PKOLChar;cchBuffer:DWORD):DWORD //Proc wGetStartupInfo( var lpStartupInfo : TStartupInfo) //Func wGetStringTypeEx(Locale:LCID;dwInfoType:DWORD;lpSrcStr:PKOLChar;cchSrc:Int;var lpCharType):BOOL Func wGetSystemDirectory( lpBuffer : PKOLChar; uSize : UINT) : UINT Func wGetTempFileName(lpPathName,lpPrefixString:PKOLChar;uUnique:UINT;lpTempFileName:PKOLChar):UINT Func wGetTempPath( nBufferLength : DWORD; lpBuffer : PKOLChar) : DWORD //Func wGetTimeFormat(Loc:LCID;dwFlgs:DWORD;lpTime:PSystemTime;lpFrm:PKOLChar;lpTimeStr:PKOLChar;cTime:Int):Int //Func wGetVersionEx( var lpVersionInformation : TOSVersionInfo) : BOOL //Func GetVolumeInformation( lpRootPathName : PKOLChar; lpVolumeNameBuffer:PKOLChar; nVolumeNameSize:DWORD;lpVolumeSerialNumber : PDWORD;var lpMaximumComponentLength,lpFileSystemFlags: DWORD;lpFileSystemNameBuffer:PKOLChar;nFileSystemNameSize:DWORD): BOOL Func wGetWindowsDirectory( lpBuffer : PKOLChar; uSize : UINT) : UINT Func wGlobalAddAtom( lpString : PKOLChar) : ATOM Func wGlobalFindAtom( lpString : PKOLChar) : ATOM Func wGlobalGetAtomName(nAtom:ATOM;lpBuffer:PKOLChar;nSize:Int):UINT Func wIsBadStringPtr( lpsz : PKOLChar; ucchMax : UINT) : BOOL Func wLCMapString(Loc:LCID;dwMapFlgs:DWORD;lpSrcStr:PKOLChar;cchSrc:Int;lpDestStr:PKOLChar;cchDest:Int):Int; Func wLoadLibrary( lpLibFileName : PKOLChar) : HMODULE Func wLoadLibraryEx(lpLibFileName:PKOLChar;hFile:THandle;dwFlags:DWORD): HMODULE Func wMoveFile( lpExistingFileName, lpNewFileName : PKOLChar) : BOOL Func wMoveFileEx(lpExistingFileName,lpNewFileName:PKOLChar;dwFlags:DWORD): BOOL //Func wMoveFileWithProgress(lpExistingFileName,lpNewFileName:PKOLChar;lpProgressRoutine: TFNProgressRoutine;lpData:Pointer;dwFlags:DWORD): BOOL Func wOpenEvent( dwDesiredAccess : DWORD; bInheritHandle : BOOL;lpName:PKOLChar) : THandle Func wOpenFileMapping(dwDesiredAccess:DWORD;bInheritHandle:BOOL;lpName: PKOLChar):THandle Func wOpenMutex(dwDesiredAccess:DWORD;bInheritHandle:BOOL;lpName:PKOLChar): THandle Func wOpenSemaphore( dwDesiredAccess:DWORD; bInheritHandle:BOOL;lpName:PKOLChar):THandle Func wOpenWaitableTimer(dwDesiredAccess:DWORD;bInheritHandle:BOOL;lpTimerName:PKOLChar):THandle Proc wOutputDebugString( lpOutputString : PKOLChar) //Func wPeekConsoleInput(hConsoleInput:THandle;varlpBuffer:TInputRecord;nLength:DWORD;var lpNumberOfEventsRead:DWORD):BOOL; Func wQueryDosDevice(lpDeviceName:PKOLChar;lpTargetPath:PKOLChar;ucchMax:DWORD):DWORD //Func wQueryRecoveryAgents(p1:PKOLChar;var p2:Pointer;var p3:TRecoveryAgentInformation):DWORD //Func wReadConsole(hConsoleInput:THandle;lpBuffer:Pointer;nNumberOfCharsToRead:DWORD; var lpNumberOfCharsRead:DWORD;lpReserved Pointer):BOOL //Func wReadConsoleInput(hConsInp:THandle;var lpBuf:TInpRec;nLength:DWORD;var lpNumbOfEventsRead:DWORD):BOOL; //Func wReadConsoleOutput(hConsoleOutput:THandle;lpBuffer:Pointer;dwBufferSize,dwBufferCoord:TCoord;var lpReadRegion:TSmallRect) : BOOL //Func wReadConsoleOutputCharacter(hConsoleOutput:THandle;lpCharacter:PKOLChar;nLength : DWORD;dwReadCoord:TCoord;var lpNumberOfCharsRead:DWORD): BOOL Func wRemoveDirectory( lpPathName : PKOLChar) : BOOL //Func wScrollConsoleScreenBuffer(hConsoleOutput:THandle;const lpScrollRectangle:TSmallRect; lpClipRectangle:PSmallRect;dwDestinationOrigin:TCoord;var lpFill:TCharInfo):BOOL Func wSearchPath(lpPath,lpFileName,lpExtension:PKOLChar;nBufferLength:DWORD;lpBuffer:PKOLChar;var lpFilePart:PKOLChar):DWORD; Func wSetComputerName( lpComputerName: PKOLChar): BOOL Func wSetConsoleTitle( lpConsoleTitle: PKOLChar): BOOL Func wSetCurrentDirectory( lpPathName: PKOLChar): BOOL //Func wSetDefaultCommConfig(lpszName: PKOLChar; lpCC:PCommConfig; dwSize: DWORD) : BOOL Func wSetEnvironmentVariable( lpName, lpValue : PKOLChar) : BOOL Func wSetFileAttributes(lpFileName:PKOLChar;dwFileAttributes:DWORD): BOOL //Func wSetLocaleInfo(Locale:LCID;LCType LCTYPE;lpLCData:PKOLChar): BOOL Func wSetVolumeLabel(lpRootPathName:PKOLChar;lpVolumeName:PKOLChar): BOOL //Func wUpdateResource(hUpdate:THandle;lpType,lpName:PKOLChar;wLanguage:Word;lpData:Ptr;cbData:DWORD):BOOL Func wVerLanguageName(wLang:DWORD;szLang:PKOLChar;nSize:DWORD):DWORD Func wWaitNamedPipe( lpNamedPipeName : PKOLChar; nTimeOut : DWORD) : BOOL //Func wWriteConsole(hConsoleOutput:THandle;const lpBuffer:Pointer;nNumberOfCharsToWrite:DWORD;var lpNumberOfCharsWritten:DWORD;lpReserved:Pointer):BOOL //Func wWriteConsoleInput(hConsoleInput:THandle;const lpBuffer:TInputRecord;nLength:DWORD;var lpNumberOfEventsWritten:DWORD):BOOL //Func wWriteConsoleOutput(hConsoleOutput:THandle;lpBuffer:Pointer;dwBufferSize,dwBufferCoord:TCoord;var lpWriteRegion:TSmallRect):BOOL //Func wWriteConsoleOutputCharacter(hConsoleOutput:THandle;lpCharacter:PKOLChar;nLength:DWORD;dwWriteCoord:TCoord;var lpNumberOfCharsWritten:DWORD):BOOL Func wWritePrivateProfileSection(lpAppName,lpString,lpFileName:PKOLChar):BOOL Func wWritePrivateProfileString(lpAppName,lpKeyName,lpString,lpFileName:PKOLChar):BOOL Func wWriteProfileSection( lpAppName, lpString : PKOLChar) : BOOL Func wWriteProfileString( lpAppName, lpKeyName, lpString : PKOLChar) : BOOL Func wlstrcat( lpString1, lpString2 : PKOLChar) : PKOLChar Func wlstrcmp( lpString1, lpString2 : PKOLChar) : Int Func wlstrcmpi( lpString1, lpString2 : PKOLChar) : Int Func wlstrcpy( lpString1, lpString2 : PKOLChar) : PKOLChar Func wlstrcpyn( lpString1, lpString2 : PKOLChar; iMaxLength : Int) : PKOLChar Func wlstrlen( lpString : PKOLChar) : Int //Func wMultinetGetConnectionPerformance(lpNetResource:PNetResource;lpNetConnectInfoStruc:PNetConnectInfoStruct):DWORD //Func wWNetAddConnection2(var lpNetResource:TNetResource;lpPassw,lpUserName:PKOLChar;dwFlags:DWORD):DWORD; //Func wWNetAddConnection3(hwndOwner:HWND;var lpNetResource:TNetResource;lpPassword,lpUserName:PKOLChar;dwFlags:DWORD):DWORD Func wWNetAddConnection(lpRemoteName,lpPassword,lpLocalName:PKOLChar):DWORD Func wWNetCancelConnection2(lpName:PKOLChar;dwFlags:DWORD;fForce:BOOL):DWORD Func wWNetCancelConnection( lpName : PKOLChar; fForce : BOOL) : DWORD //Func wWNetConnectionDialog1(var lpConnDlgStruct:TConnectDlgStruct): DWORD //Func wWNetDisconnectDialog1( var lpConnDlgStruct : TDiscDlgStruct): DWORD //Func wWNetEnumResource(hEnum:THandle;var lpcCount:DWORD;lpBuffer:Ptr;var lpBufferSize:DWORD):DWORD; Func wWNetGetConnection(lpLocalName:PKOLChar;lpRemoteName:PKOLChar;var lpnLength:DWORD):DWORD; Func wWNetGetLastError(var lpError:DWORD;lpErrorBuf:PKOLChar;nErrorBufSize: DWORD; lpNameBuf:PKOLChar;nNameBufSize:DWORD):DWORD //Func wWNetGetNetworkInformation(lpProvider:PKOLChar;var lpNetInfoStruct:TNetInfoStruct):DWORD; Func wWNetGetProviderName(dwNetType:DWORD;lpProviderName:PKOLChar;var lpBufferSize:DWORD):DWORD; //Func wWNetGetResourceParent(lpNetResource:PNetResource;lpBuffer:Pointer;var cbBuffer:DWORD):DWORD; //Func wWNetGetUniversalName(lpLocalPath:PKOLChar;dwInfoLevel:DWORD;lpBuffer:Ptr;var lpBufferSize:DWORD):DWORD; Func wWNetGetUser(lpName:PKOLChar;lpUserName PKOLChar;var lpnLength:DWORD): DWORD //Func wWNetOpenEnum(dwScope,dwType,dwUsage:DWORD;lpNetResource:PNetRes;var lphEnum:THandle):DWORD; //Func wWNetSetConnection(lpName:PKOLChar;dwProperties:DWORD; pvValues : Pointer): DWORD //Func wWNetUseConnection(hwndOwner:HWND;var lpNetResource:TNetResource;lpUserID:PKOLChar;lpPassword:PKOLChar; dwFlags:DWORD;lpAccessName:PKOLChar;var lpBufferSize:DWORD;var lpResult:DWORD):DWORD Func wGetFileVersionInfo(lptstrFilenam:PKOLChar;dwHandle,dwLen:DWORD;lpData:Pointer):BOOL; Func wGetFileVersionInfoSize( lptstrFilename : PKOLChar; var lpdwHandle : DWORD) : DWORD Func wVerFindFile(uFlags:DWORD;szFileName,szWinDir,szAppDir,szCurDir:PKOLChar;var lpuCurDirLen:UINT;szDestDir:PKOLChar;var lpuDestDirLen:UINT):DWORD Func wVerInstallFile(uFlags:DWORD;szSrcFileName,szDestFileName,szSrcDir,szDestDir,szCurDir, szTmpFile:PKOLChar;var lpuTmpFileLen:UINT):DWORD //Func wVerQueryValue(pBlock:Pter;lpSubBlock:PKOLChar;varlplpBuffer:Ptr;varpuLen:UINT):BOOL; //Func wGetPrivateProfileStruct(lpszSection,lpszKey:PKOLChar;lpStruct:Ptr;uSizeStruct:UINT;szFile:PKOLChar):BOOL; //Func wWritePrivateProfileStruct(lpszSection,lpszKey:PKOLChar;lpStruct:Ptr;uSizeStruct:UINT;szFile:PKOLChar):BOOL; Func wAddFontResource( FileName : PKOLChar) : Int //Func wAddFontResourceEx(p1:PKOLChar;p2 DWORD;p3:PDesignVector): Int Func wCopyEnhMetaFile( p1 : HENHMETAFILE; p2 : PKOLChar) : HENHMETAFILE Func wCopyMetaFile( p1 : HMETAFILE; p2 : PKOLChar) : HMETAFILE //Func wCreateColorSpace( var ColorSpace : TLogColorSpace) : HCOLORSPACE //Func wCreateDC(lpszDriver,lpszDevice,lpszOutput:PKOLChar; lpdvmInit: PDeviceMode) : HDC //Func wCreateEnhMetaFile(DC:HDC;FileName:PKOLChar;Rect:PRect;Desc: PKOLChar) : HDC Func wCreateFont( nHeight,nWidth,nEscapement,nOrientaion,fnWeight:Int;fdwItalic, fdwUnderline,fdwStrikeOut,fdwCharSet,fdwOutputPrec,fdwClipPrecision,fdwQualy, fdwPitchAndFamily:DWORD;lpszFace:PKOLChar):HFONT; Func wCreateFontIndirect( const p1 : TLogFont) : HFONT //Func wCreateFontIndirectEx( const p1 : PEnumLogFontExDV) : HFONT // Func wCreateIC(lpszDriver,lpszDevice, lpszOutput:PKOLChar; lpdvmInit:PDeviceMode): HDC Func wCreateMetaFile( p1 : PKOLChar) : HDC Func wCreateScalableFontResource( p1 : DWORD; p2, p3, p4 : PKOLChar) : BOOL //Func wDeviceCapabilities(pDriverNa,pDeviceNam,pPort:PKOLChar;iIdx:Int;pOut:PKOLChar;DevMod:PDeviceMode):Int; // Func wEnumFontFamilies(DC:HDC; p2: PKOLChar; p3 : TFNFontEnumProc; p4 : LPARAM) : BOOL //Func wEnumFontFamiliesEx(DC:HDC;var p2:TLogFont;p3:TFNFontEnumProc;p4:LPARAM;p5:DWORD):BOOL); //Func wEnumFonts(DC:HDC;lpszFace:PKOLChar;fntenmprc:TFNFontEnumProc;lpszData:PKOLChar):Int; //Func wEnumICMProfiles(DC:HDC; ICMProc:TFNICMEnumProc; p3 LPARAM) : Int //Func wExtTextOut(DC:HDC;X,Y:Int;Options:Longint;Rect:PRect;Str:PKOLChar;Count:Longint;Dx:PInt:BOOL //Func wGetCharABCWidths( DC : HDC; FirstChar, LastChar : UINT; const ABCStructs): BOOL //Func wGetCharABCWidthsFloat(DC:HDC; FirstChar,LastChar: UINT;const ABCFloatSturcts): BOOL //Func wGetCharWidth32(DC:HDC;FirstChar,LastChar:UINT; const Widths): BOOL //Func wGetCharWidth(DC:HDC;FirstChar,LastChar:UINT; const Widths): BOOL // Func wGetCharWidthFloat(DC:HDC;FirstChar,LastChar UINT;const Widths):BOOL // Func wGetCharacterPlacement(DC:HDC;p2:PKOLChar;p3,p4:BOOL;var p5:TGCPResults;p6:DWORD):DWORD Func wGetEnhMetaFile( p1 : PKOLChar) : HENHMETAFILE Func wGetEnhMetaFileDescription(p1 HENHMETAFILE;p2:UINT;p3:PKOLChar):UINT // Func wGetGlyphIndices(DC:HDC;p2:PKOLChar;p3:Int;p4:PWORD;p5:DWORD): DWORD //Func wGetGlyphOutline(DC:HDC;uChar,uFormat:UINT;const lpgm:TGlyphMetrics;cbBuffer:DWORD;lpvBuffer:Pointer;const lpmat2:TMat2): DWORD Func wGetICMProfile( DC : HDC; var Size : DWORD; Name : PKOLChar) : BOOL // Func wGetLogColorSpace(p1:HCOLORSPACE;var ColorSpace:TLogColorSpace;Size:DWORD):BOOL Func wGetMetaFile( p1 : PKOLChar) : HMETAFILE // Func wGetObject( p1 : HGDIOBJ; p2 : Int; p3 : Pointer) : Int //Func wGetOutlineTextMetrics(DC:HDC;p2:UINT;OTMetricStructs:Pointer): UINT //Func wGetTextExtentExPoint(DC:HDC;p2:PKOLChar; p3,p4:Int;p5,p6:PInt;var p7:TSize):BOOL Func wGetTextExtentPoint32(DC:HDC;Str:PKOLChar;Count:Int;var Size:TSize):BOOL Func wGetTextExtentPoint(DC:HDC;Str:PKOLChar;Count:Int;var Size:TSize):BOOL Func wGetTextFace( DC : HDC; Count : Int; Buffer : PKOLChar) : Int //Func wGetTextMetrics( DC : HDC; var TM : TTextMetric) : BOOL Func wPolyTextOut( DC : HDC; const PolyTextArray, Strings : Int) : BOOL Func wRemoveFontResource( FileName : PKOLChar) : BOOL //Func wRemoveFontResourceEx(p1:PKOLChar;p2 DWORD;p3: PDesignVector): BOOL //Func wResetDC( DC : HDC; const InitData : TDeviceMode) : HDC Func wSetICMProfile( DC : HDC; Name : PKOLChar) : BOOL //Func wStartDoc( DC : HDC; const p2 : TDocInfo) : Int Func wTextOut( DC : HDC; X, Y : Int; Str : PKOLChar; Count : Int) : BOOL Func wUpdateICMRegKey( p1 : DWORD; p2, p3 : PKOLChar; p4 : UINT) : BOOL Func wwglUseFontBitmaps( DC : HDC; p2, p3, p4 : DWORD) : BOOL //Func wwglUseFontOutlines(p1:HDC;p2,p3,p4:DWORD;p5,p6:Single;p7:Int;p8:PGlyphMetricsFloat):BOOL Func wAppendMenu(hMenu:HMENU;uFlags,uIDNewItem:UINT;lpNewItem:PKOLChar):BOOL Func wCallMsgFilter( var lpMsg : TMsg; nCode : Int) : BOOL //Func wCallWindowProc(lpPrevWndFunc:TFNWndProc;hWnd:HWND;Msg:UINT;wParam:WPARAM;lParam:LPARAM):LRESULT //Func wChangeDisplaySettings(var lpDevMode:TDeviceMode; dwFlags : DWORD) : Longint // Func wChangeDisplaySettingsEx(lpszDeviceName:PKOLChar;var lpDevMode: TDeviceMode;wnd:HWND;dwFlags:DWORD;lParam:Pointer):Longint Func wChangeMenu(hMenu:HMENU;cmd:UINT;lpszNewItem:PKOLChar;cmdInsert:UINT;flags:UINT):BOOL; Func wCharLower( lpsz : PKOLChar) : PKOLChar Func wCharLowerBuff( lpsz : PKOLChar; cchLength : DWORD) : DWORD Func wCharNext( lpsz : PKOLChar) : PKOLChar //Func wCharNextEx(CodePage:Word;lpCurrentChar:LPCSTR;dwFlags:DWORD): LPSTR Func wCharPrev( lpszStart : PKOLChar; lpszCurrent : PKOLChar) : PKOLChar // Func wCharPrevEx(CodePage:Word;lpStart,lpCurrentChar:LPCSTR; dwFlags:DWORD) : LPSTR Func wCharToOem(lpszSrc:PKOLChar; lpszDst : PKOLChar) : BOOL Func wCharToOemBuff(lpszSrc:PKOLChar;lpszDst:PKOLChar;cchDstLength:DWORD): BOOL Func wCharUpper( lpsz : PKOLChar) : PKOLChar Func wCharUpperBuff( lpsz : PKOLChar; cchLength : DWORD) : DWORD Func wCopyAcceleratorTable(hAccelSrc:HACCEL;var lpAccelDst,cAccelEntries:Int) :Int Func wCreateAcceleratorTable( var Accel, Count : Int) : HACCEL //Func wCreateDesktop(lpszDesktop,lpszDevice:PKOLChar;pDevmode:PDeviceMode;dwFlags:DWORD;dwDesiredAccess:DWORD;lpsa:PSecurityAttribs):HDESK //Func wCreateDialogIndirectParam(hInstance:HINST;const lpTemplate:TDlgTemplate;hWndParent :HWND;lpDialogFunc:TFNDlgProc;dwInitParam:LPARAM):HWND //Func wCreateDialogParam(hInstance:HINST;lpTemplateName:PKOLChar;hWndParent:HWND;lpDialogFunc:TFNDlgProc;dwInitParam:LPARAM):HWND Func wCreateMDIWindow(lpClassName,lpWindowName:PKOLChar;dwStyle:DWORD;X,Y,nWidth,nHeight:Int;hWndParent:HWND;hInstance:HINST;lParam:LPARAM):HWND //Func wCreateWindowEx(dwExStyle:DWORD;lpClassName:PKOLChar;lpWindowName:PKOLChar;dwStyle DWORD;X,Y,nWidth,nHeight:Int WndParent:HWND;hMenu:HMENU; hInstance:HINST;lpParam:Pointer):HWND //Func wCreateWindowStation(lpwinsta:PKOLChar;dwReserv,dwDesiredAccess:DWORD;lpsa:PSecurityAttribs):HWINSTA; Func wDefDlgProc(hDlg:HWND;Msg:UINT;wParam WPARAM;lParam:LPARAM):LRESULT Func wDefFrameProc(hWnd,hWndMDIClient:HWND;uMsg:UINT;wParam:WPARAM;lParam:LPARAM):LRESULT; Func wDefMDIChildProc(hWnd:HWND;uMsg:UINT;wParam:WPARAM;lParam:LPARAM):LRESULT; Func wDefWindowProc(hWnd:HWND;Msg:UINT;wParam:WPARAM;lParam:LPARAM): RESULT //Func wDialogBoxIndirectParam(hInstance:HINST;const lpDialogTemplate:TDlgTemplate;hWndParent:HWND;lpDialogFunc:TFNDlgProc;dwInitParam:LPARAM):Int //Func wDialogBoxParam(hInstance:HINST;lpTemplateName:PKOLChar;hWndParent:HWND;lpDialogFunc:TFNDlgProc;dwInitParam LPARAM): Int Func wDispatchMessage(const lpMsg : TMsg) : Longint Func wDlgDirList(hDlg:HWND;lpPathSpec:PKOLChar;nIDListBox,nIDStaticPath:Int;uFileType:UINT):Int; Func wDlgDirListComboBox(hDlg:HWND;lpPathSpec:PKOLChar;nIDComboBox,nIDStaticPath:Int;uFiletype:UINT):Int; Func wDlgDirSelectComboBoxEx(hDlg:HWND;lpString:PKOLChar;nCount,nIDComboBox:Int): BOOL Func wDlgDirSelectEx(hDlg:HWND;lpString:PKOLChar;nCount,nIDListBox:Int):BOOL //FuncwDrawState(DC:HDC;Brush:HBRUSH;CBFunc:TFNDrawStateProc;lData:LPARA;wDat:WPARA;x,y,cx,cy:Int;Flags:UINT):BOOL; Func wDrawText(hDC:HDC;lpString:PKOLChar;nCount:Int;var lpRect:TRect;uFormat:UINT):Int; Func wFindWindow( lpClassName, lpWindowName : PKOLChar) : HWND Func wFindWindowEx(Parent,Child:HWND;ClassName,WindowName:PKOLChar): HWND //Func wGetAltTabInfo(hwnd:HWND;iItem:Int;var pati:TAltTabInfo;pszItemText:PKOLChar;cchItemText:UINT):BOOL; // Func wGetClassInfo(hInstance:HINST;lpClassName:PKOLChar;var lpWndClass:TWndClass):BOOL //Func wGetClassInfoEx(Instance:HINST;Classname:PKOLChar;var WndClass:TWndClassEx):BOOL Func wGetClassLong( hWnd : HWND; nIndex : Int) : DWORD Func wGetClassName(hWnd:HWND; lpClassName:PKOLChar;nMaxCount:Int) : Int Func wGetClipboardFormatName(format:UINT;lpszFormatName:PKOLChar;cchMaxCount:Int):Int; Func wGetDlgItemText(hDlg:HWND;nIDDlgItem:Int;lpString:PKOLChar;nMaxCount:Int):UINT Func wGetKeyNameText(lParam:Longint;lpString:PKOLChar;nSize:Int):Int Func wGetKeyboardLayoutName( pwszKLID : PKOLChar) : BOOL //Func wGetMenuItemInfo( p1 : HMENU; p2 : UINT; p3 : BOOL; var p4 : TMenuItemInfo) : BOOL Func wGetMenuString(hMenu:HMENU;uIDItem:UINT;lpString:PKOLChar;nMaxCount:Int;uFlag:UINT):Int; Func wGetMessage(var lpMsg:TMsg;hWnd:HWND;wMsgFilterMin wMsgFilterMax:UINT):BOOL Func wGetProp( hWnd : HWND; lpString : PKOLChar) : THandle //Func wGetTabbedTextExtent(hDC:HDC;lpString:PKOLChar;nCount,nTabPositions:Int;var lpnTabStopPositions):DWORD //Func wGetUserObjectInform(hObj:THandle;nIndex:Int;pvInfo:Ptr;nLength:DWORD;var lpnLengthNeed:DWORD)BOOL; Func wGetWindowLong( hWnd : HWND; nIndex : Int) : Longint Func wGetWindowModuleFileName(hwnd:HWND;pszFileName:PKOLChar;cchFileNameMax:UINT): UINT Func wGetWindowText( hWnd : HWND; lpString : PKOLChar; nMaxCount : Int) : Int Func wGetWindowTextLength( hWnd : HWND) : Int //Func wGrayString(hDC:HDC;hBrush:HBRUSH;lpOutFunc:TFNGrayStrProc;lpDat:LPARA;nCnt,X,Y,nWidt,nHeigt:Int):BOOL; Func wInsertMenu(hMenu:HMENU;uPosition,uFlags,uIDNewItem:UINT; lpNewItem: PKOLChar): BOOL //Func wInsertMenuItem(p1 : HMENU; p2 : UINT; p3 : BOOL; const p4 : TMenuItemInfo) : BOOL Func wIsCharAlpha( ch : KOLChar) : BOOL Func wIsCharAlphaNumeric( ch : KOLChar) : BOOL Func wIsCharLower( ch : KOLChar) : BOOL Func wIsCharUpper( ch : KOLChar) : BOOL Func wIsDialogMessage( hDlg : HWND; var lpMsg : TMsg) : BOOL Func wLoadAccelerators( hInstance : HINST; lpTableName : PKOLChar) : HACCEL Func wLoadBitmap( hInstance : HINST; lpBitmapName : PKOLChar) : HBITMAP Func wLoadCursor( hInstance : HINST; lpCursorName : PKOLChar) : HCURSOR Func wLoadCursorFromFile( lpFileName : PKOLChar) : HCURSOR Func wLoadIcon( hInstance : HINST; lpIconName : PKOLChar) : HICON Func wLoadImage(hInst:HINST;ImageName:PKOLChar;ImageType:UINT;X,Y:Int;Flags:UINT): THandle Func wLoadKeyboardLayout( pwszKLID : PKOLChar; Flags : UINT) : HKL Func wLoadMenu( hInstance : HINST; lpMenuName : PKOLChar) : HMENU //Func wLoadMenuIndirect( lpMenuTemplate : Pointer) : HMENU Func wLoadString(hInstance:HINST;uID:UINT;lpBuffer:PKOLChar;nBufferMax:Int):Int Func wMapVirtualKey( uCode, uMapType : UINT) : UINT Func wMapVirtualKeyEx( uCode, uMapType : UINT; dwhkl : HKL) : UINT Func wMessageBox( hWnd : HWND; lpText, lpCaption : PKOLChar; uType : UINT) : Int Func wMessageBoxEx(hWnd:HWND;lpText,lpCaption:PKOLChar;uType:UINT;wLanguageId:Word)Int //Func wMessageBoxIndirect( const MsgBoxParams : TMsgBoxParams) : BOOL Func wModifyMenu(hMnu: HMENU; uPosition,uFlags,uIDNewItem:UINT; lpNewItem:PKOLChar): BOOL //Func wOemToAnsi( const lpszSrc : LPCSTR; lpszDst : LPSTR) : BOOL //7Func wOemToAnsiBuff( lpszSrc : LPCSTR; lpszDst : LPSTR; cchDstLength : DWORD) : BOOL //Func wOemToChar( lpszSrc : PKOLChar; lpszDst : PKOLChar) : BOOL Func wOemToCharBuff( lpszSrc : PKOLChar; lpszDst : PKOLChar; cchDstLength : DWORD) : BOOL Func wOpenDesktop(lpszDesktop:PKOLChar;dwFlags:DWORD;fInherit:BOOL;dwDesiredAccess:DWORD): HDESK Func wOpenWindowStation(lpszWinSta:PKOLChar;fInherit:BOOL;dwDesiredAccess:DWORD):HWINSTA Func wPeekMessage(var lpMsg:TMsg;hWnd:HWND;wMsgFilterMin,wMsgFilterMax,wRemoveMsg:UINT):BOOL Func wPostMessage(hWnd:HWND;Msg:UINT;wParam:WPARAM;lParam:LPARAM):BOOL Func wPostThreadMessage(idThread:DWORD;Msg:UINT;wParam:WPARAM;lParam:LPARAM): BOOL Func wRealGetWindowClass(hwnd:HWND;pszType PKOLChar;cchType:UINT):UINT // Func wRegisterClass( const lpWndClass : TWndClass) : ATOM // Func wRegisterClassEx( const WndClass : TWndClassEx): ATOM Func wRegisterClipboardFormat( lpszFormat : PKOLChar) : UINT //Func wRegisterDeviceNotification(hRecipient:THandle;NotificFilter:Pointer;Flags:DWORD):HDEVNOTIFY Func wRegisterWindowMessage( lpString : PKOLChar) : UINT Func wRemoveProp( hWnd : HWND; lpString : PKOLChar) : THandle Func wSendDlgItemMessage(hDlg:HWND;nIDDlgItem:Int;Msg:UINT;wParam:WPARAM;lParam:LPARAM):Longint; Func wSendMessage(hWnd:HWND;Msg:UINT;wParam:WPARAM;lParam:LPARAM): LRESULT //Func wSendMessageCallback(hWnd: HWND; Msg:UINT;wParam: WPARAM;lParam:LPARAM;lpResultCallBack:TFNSendAsyncProc;dwData DWORD):BOOL Func wSendMessageTimeout(hWnd:HWND;Msg:UINT;wParam:WPARAM;lParam:LPARAM;fuFlags,uTimeout:UINT;var lpdwResult:DWORD):LRESULT Func wSendNotifyMessage(hWnd:HWND;Msg:UINT;wParam:WPARAM;lParam:LPARAM):BOOL Func wSetClassLong( hWnd : HWND; nIndex : Int; dwNewLong : Longint) : DWORD Func wSetDlgItemText(hDlg: HWND;nIDDlgItem:Int;lpString : PKOLChar) : BOOL //Func wSetMenuItemInfo(p1:HMENU;p2:UINT;p3:BOOL;const p4:TMenuItemInfo):BOOL Func wSetProp( hWnd : HWND; lpString : PKOLChar; hData : THandle) : BOOL // Func wSetUserObjectInformation(hObj:THandle;nIndex:Int;pvInfo:Pointer;nLength:DWORD):BOOL Func wSetWindowLong( hWnd : HWND; nIndex : Int; dwNewLong : Longint) : Longint Func wSetWindowText( hWnd : HWND; lpString : PKOLChar) : BOOL //Func wSetWindowsHook(nFilterType:Int; pfnFilterProc:TFNHookProc): HHOOK //Func wSetWindowsHookEx(idHook:Int;lpfn:TFNHookProc;hmod:HINST;dwThreadId:DWORD):HHOOK; // Func wSystemParametersInfo(uiAction,uiParam:UINT; pvParam:Pointer; fWinIni: UINT):BOOL Func wTabbedTextOut(hDC:HDC;X,Y:Int;lpString:PKOLChar;nCount,nTabPositions:Int;var lpnTabStopPositions,nTabOrigin:Int):Longint; Func wTranslateAccelerator(hWnd:HWND;hAccTable:HACCEL;var lpMsg:TMsg): Int Func wUnregisterClass( lpClassName : PKOLChar; hInstance : HINST) : BOOL Func wVkKeyScan( ch : KOLChar) : SHORT Func wVkKeyScanEx( ch : KOLChar; dwhkl : HKL) : SHORT Func wWinHelp(hWndMain:HWND;lpszHelp:PKOLChar;uCommand:UINT;dwData:DWORD):BOOL Func wwsprintf( Output : PKOLChar; Format : PKOLChar) : Int Func wwvsprintf( Output : PKOLChar; Format: PKOLChar; arglist:va_list): Int //TestDrive! 'SID_REVISION','LongInt'(1);'FILENAME_ADVAPI32','String').SetString('ADVAPI32.DLL 'PROC_CONVERTSIDTOSTRINGSIDA','String').SetString( 'ConvertSidToStringSidA Func GetDomainUserSidS(const domainName:Str;const userName:Str;var foundDomain:Str):str; Func GetLocalUserSidStr( const UserName :Str) :Str Func getPid4user(const domain:str;const user:str;var pid:dword):boolean Func Impersonate2User( const domain :Str; const user :Str):Bool Func GetProcessUserBypid(pid:DWORD;var UserName,Domain:Ansistr):Bool Func KillProcessbyname( const exename :Str; var found : Int) : Int Func getWinProcessList : TStringList Func WaitTilClose(hWnd: Int): Int; Func DoUserMsgs:Bool; Func MsgFunc(hWnd,Msg,wParam,lParam:Int):Int; stdcall; Proc ShowMsg(hParent:Int; const Mess, Title:Str); //modal but NOT blockable Proc DeleteMsgForm(Handle: Int); Proc DisableForms; Func FoundTopLevel(hWnd, LParam: Int): BOOL; StdCall; end; Proc SIRegister_AfSafeSync(CL: TPSPascalCompiler); begin 'AfMaxSyncSlots','LongInt'( 64); 'AfSynchronizeTimeout','LongInt'( 2000); TAfSyncSlotID', 'DWORD TAfSyncStatistics','record MessagesCount:Int;TimeoutMessages:Int;DisabledMessages:Int;end; TAfSafeSyncEvent', 'Proc ( ID : TAfSyncSlotID) TAfSafeDirectSyncEvent', 'Procedure Func AfNewSyncSlot( const AEvent : TAfSafeSyncEvent) : TAfSyncSlotID Func AfReleaseSyncSlot( const ID : TAfSyncSlotID) :Bool Func AfEnableSyncSlot( const ID : TAfSyncSlotID; Enable :Bool) :Bool Func AfValidateSyncSlot( const ID : TAfSyncSlotID) :Bool Func AfSyncEvent( const ID : TAfSyncSlotID; Timeout : DWORD) :Bool Func AfDirectSyncEvent(Event:TAfSafeDirectSyncEvent;Timeout:DWORD):Boolean Func AfIsSyncMethod :Bool Func AfSyncWnd : HWnd Func AfSyncStatistics : TAfSyncStatistics Proc AfClearSyncStatistics end; Proc SIRegister_AfComPortCore(CL: TPSPascalCompiler); begin 'fBinary','LongWord')( $00000001); 'fParity','LongWord'( $00000002); 'fOutxCtsFlow','LongWord').SetUInt( $00000004); 'fOutxDsrFlow','LongWord')( $00000008); 'fDtrControl','LongWord')( $00000030); 'fDtrControlDisable','LongWord')( $00000000); 'fDtrControlEnable','LongWord')( $00000010); 'fDtrControlHandshake','LongWord')( $00000020); 'fDsrSensitivity','LongWord')( $00000040); 'fTXContinueOnXoff','LongWord')( $00000080); 'fOutX','LongWord')( $00000100); 'fInX','LongWord')( $00000200); 'fErrorChar','LongWord')( $00000400); 'fNull','LongWord')( $00000800); 'fRtsControl','LongWord')( $00003000); 'fRtsControlDisable','LongWord')( $00000000); 'fRtsControlEnable','LongWord')( $00001000); 'fRtsControlHandshake','LongWord')( $00002000); 'fRtsControlToggle','LongWord')( $00003000); 'fAbortOnError','LongWord')( $00004000); 'fDummy2','LongWord')( $FFFF8000); TAfCoreEvent', '( ceOutFree, ceLineEvent, ceNeedReadData, ceException ) FindClass('TOBJECT'),'EAfComPortCoreError FindClass('TOBJECT'),'TAfComPortCore TAfComPortCoreEvent', 'Proc ( Sender : TAfComPortCore; Even' +'tKind : TAfCoreEvent; Data : DWORD) SIRegister_TAfComPortCoreThread(CL); SIRegister_TAfComPortEventThread(CL); SIRegister_TAfComPortWriteThread(CL); SIRegister_TAfComPortCore(CL); Func FormatDeviceName( PortNumber : Int) :Str end; Proc SIRegister_ApplicationFileIO(CL: TPSPascalCompiler); begin TAFIOFileStreamEvent', 'Func ( const fileName :Str; mode: Word) : TStream TAFIOFileStreamExistsEvent', 'Func ( const fileName :Str) :Bool SIRegister_TApplicationFileIO(CL); TDataFileCapability', '( dfcRead, dfcWrite ) TDataFileCapabilities', 'set of TDataFileCapability SIRegister_TDataFile(CL); //TDataFileClass', 'class of TDataFile Func ApplicationFileIODefined :Bool Func CreateFileStream(const fileName:str;mode:WordfmShareDenyNone):TStream Func FileStreamExists(const fileName:Str):Bool //Proc Register end; Proc SIRegister_ALFBXLib(CL: TPSPascalCompiler); begin TALFBXFieldType', '( uftUnKnown, uftNumeric, uftChar, uftVarchar' +', uftCstring, uftSmallint, uftInt, uftQuad, uftFloat, uftDoublePrecisi' +'on,uftTimestamp,uftBlob,uftBlobId,uftDate,uftTime,uftInt64,uftArray,uftNull) TALFBXScale', 'Int FindClass('TOBJECT'),'EALFBXConvertError SIRegister_EALFBXError(CL); SIRegister_EALFBXException(CL); FindClass('TOBJECT'),'EALFBXGFixError FindClass('TOBJECT'),'EALFBXDSQLError FindClass('TOBJECT'),'EALFBXDynError FindClass('TOBJECT'),'EALFBXGBakError FindClass('TOBJECT'),'EALFBXGSecError FindClass('TOBJECT'),'EALFBXLicenseError FindClass('TOBJECT'),'EALFBXGStatError //EALFBXExceptionClass', 'class of EALFBXError TALFBXCharacterSet', '( csNONE, csASCII, csBIG_5, csCYRL, csDOS4' +'37, csDOS850, csDOS852, csDOS857, csDOS860, csDOS861, csDOS863, csDOS865, ' +'csEUCJ_0208, csGB_2312, csISO8859_1, csISO8859_2, csKSC_5601, csNEXT, csOC' +'TETS, csSJIS_0208, csUNICODE_FSS, csUTF8, csWIN1250, csWIN1251, csWIN1252,' +' csWIN1253, csWIN1254, csDOS737, csDOS775, csDOS858, csDOS862, csDOS864, c' +'sDOS866, csDOS869, csWIN1255, csWIN1256, csWIN1257, csISO8859_3, csISO8859' +'_4, csISO8859_5, csISO8859_6, csISO8859_7, csISO8859_8, csISO8859_9, csISO' +'8859_13, csKOI8R, csKOI8U, csWIN1258, csTIS620, csGBK, csCP943C ) TALFBXTransParam', '( tpConsistency, tpConcurrency, tpShared, tp' +'Protected, tpExclusive, tpWait, tpNowait, tpRead, tpWrite, tpLockRead, tpL' +'ockWrite, tpVerbTime, tpCommitTime, tpIgnoreLimbo, tpReadCommitted, tpAuto' +'Commit,tpRecVersion,tpNoRecVersion,tpRestartRequests,tpNoAutoUndo, tpLockTimeout) TALFBXTransParams', 'set of TALFBXTransParam Func ALFBXStrToCharacterSet( const CharacterSet : Ansistr) : TALFBXCharacterSet Func ALFBXCreateDBParams( Params : Ansistr; Delimiter : Char) : Ansistr Func ALFBXCreateBlobParams( Params : Ansistr; Delimiter : Char) : Ansistr 'cALFBXMaxParamLength','LongInt'( 125); TALFBXParamsFlag', '( pfNotInitialized, pfNotNullable ) TALFBXParamsFlags', 'set of TALFBXParamsFlag //PALFBXSQLVar', '^TALFBXSQLVar // will not work //PALFBXSQLDaData', '^TALFBXSQLDaData // will not work TALFBXStatementType', '( stSelect, stInsert, stUpdate, stDelete,' +' stDDL, stGetSegment, stPutSegment, stExecProcedure, stStartTrans, stCommi' +'t, stRollback, stSelectForUpdate, stSetGenerator, stSavePoint ) SIRegister_TALFBXSQLDA(CL); //PALFBXPtrArray', '^TALFBXPtrArray // will not work SIRegister_TALFBXPoolStream(CL); //PALFBXBlobData', '^TALFBXBlobData // will not work TALFBXBlobData', 'record Size : Int; Buffer :Str; end //PALFBXArrayDesc', '^TALFBXArrayDesc // will not work //TALFBXArrayDesc', 'TISCArrayDesc //TALFBXBlobDesc', 'TISCBlobDesc //PALFBXArrayInfo', '^TALFBXArrayInfo // will not work //TALFBXArrayInfo', 'record index : Int; size:Int;info: TALFBXArrayDesc; end SIRegister_TALFBXSQLResult(CL); //TALFBXSQLResultClass', 'class of TALFBXSQLResult SIRegister_TALFBXSQLParams(CL); //TALFBXSQLParamsClass', 'class of TALFBXSQLParams TALFBXDSQLInfoData', 'record InfoCode : byte; InfoLen : Word; St' +'atementType : TALFBXStatementType; end FindClass('TOBJECT'),'TALFBXLibrary //PALFBXStatusVector', '^TALFBXStatusVector // will not work TALFBXOnConnectionLost', 'Proc ( Lib : TALFBXLibrary) //TALFBXOnGetDBExceptionClass', 'Proc ( Number : Int; out' //+' Excep : EALFBXExceptionClass) SIRegister_TALFBXLibrary(CL); 'cAlFBXDateOffset','LongInt'( 15018); 'cALFBXTimeCoeff','LongInt'( 864000000); //Proc ALFBXDecodeTimeStamp( v : PISCTimeStamp; out DateTime : Double); //Proc ALFBXDecodeTimeStamp1( v : PISCTimeStamp; out TimeStamp : TTimeStamp); //Func ALFBXDecodeTimeStamp2( v : PISCTimeStamp) : Double; Proc ALFBXDecodeSQLDate( v : Int; out Year : SmallInt; out Month, Day : Word) Proc ALFBXDecodeSQLTime(v:Card;out Hour,Minute,Second:Word;out Fractions: LongWord) //Proc ALFBXEncodeTimeStamp( const DateTime : TDateTime; v : PISCTimeStamp); //Proc ALFBXEncodeTimeStamp1( const Date : Int; v : PISCTimeStamp); //Proc ALFBXEncodeTimeStamp2( const Time :Card; v : PISCTimeStamp); Func ALFBXEncodeSQLDate(Year : Int; Month, Day : Int) : Int Func ALFBXEncodeSQLTime(Hour,Minute,Second:Word;var Fractions:LongWord):Card TALFBXParamType', '( prNone, prByte, prShrt, prCard, prStrg, prIgno ) TALFBXDPBInfo', 'record Name : Ansistr; ParamType : TALFBXParamType; end Func ALFBXSQLQuote( const name : Ansistr) : Ansistr Func ALFBXSQLUnQuote( const name : Ansistr) : Ansistr end; Proc SIRegister_ALFBXClient(CL: TPSPascalCompiler); begin TALFBXClientSQLParam', 'record Value : Ansistr; IsNull :Bool; end TALFBXClientSQLParams', 'array of TALFBXClientSQLParam TALFBXClientSelectDataSQL', 'record SQL : Ansistr; Params : T' +ALFBXClientSQLParams; RowTag : Ansistr; ViewTag : Ansistr; Skip : in' +teger; First : Int; CacheThreshold : Int; end TALFBXClientSelectDataSQLs', 'array of TALFBXClientSelectDataSQL TALFBXClientUpdateDataSQL','record SQL : Ansistr; Params: TALFBXClientSQLParams; end TALFBXClientUpdateDataSQLs', 'array of TALFBXClientUpdateDataSQL TALFBXClientMonitoringIOStats','record page_reads:int64;page_writes:int64;page_fetches:int64;page_marks:int64;end SIRegister_TALFBXClient(CL); SIRegister_TALFBXConnectionStatementPoolBinTreeNode(CL); SIRegister_TALFBXConnectionStatementPoolBinTree(CL); SIRegister_TALFBXConnectionWithStmtPoolContainer(CL); SIRegister_TALFBXConnectionWithoutStmtPoolContainer(CL); SIRegister_TALFBXReadTransactionPoolContainer(CL); SIRegister_TALFBXReadStatementPoolContainer(CL); SIRegister_TALFBXStringKeyPoolBinTreeNode(CL); SIRegister_TALFBXConnectionPoolClient(CL); SIRegister_TALFBXEventThread(CL); Func AlMySqlClientSlashedStr( const Str : Ansistr) : Ansistr end; Proc SIRegister_ovcBidi(CL: TPSPascalCompiler); begin _OSVERSIONINFOA = record dwOSVersionInfoSize: DWORD; dwMajorVersion: DWORD; dwMinorVersion: DWORD; dwBuildNumber: DWORD; dwPlatformId: DWORD; szCSDVersion: array[0..127] of AnsiChar;{ Maintenance Ansistr for PSS usage} end; TOSVersionInfoA', '_OSVERSIONINFOA TOSVersionInfo', 'TOSVersionInfoA 'WS_EX_RIGHT','LongWord')( $00001000); 'WS_EX_LEFT','LongWord')( $00000000); 'WS_EX_RTLREADING','LongWord')( $00002000); 'WS_EX_LTRREADING','LongWord')( $00000000); 'WS_EX_LEFTSCROLLBAR','LongWord')( $00004000); 'WS_EX_RIGHTSCROLLBAR','LongWord')( $00000000); Func SetProcessDefaultLayout( dwDefaultLayout : DWORD) : BOOL 'LAYOUT_RTL','LongWord')( $00000001); 'LAYOUT_BTT','LongWord')( $00000002); 'LAYOUT_VBH','LongWord')( $00000004); 'LAYOUT_BITMAPORIENTATIONPRESERVED','LongWord')( $00000008); 'NOMIRRORBITMAP','LongWord')( DWORD ( $80000000 )); Func SetLayout( dc : HDC; dwLayout : DWORD) : DWORD Func GetLayout( dc : hdc) : DWORD Func IsBidi :Bool Func GetCurrentHwProfile( var lpHwProfileInfo : THWProfileInfo) : BOOL Func GetVersionEx( var lpVersionInformation : TOSVersionInfo) : BOOL Func SetPriorityClass( hProcess : THandle; dwPriorityClass: DWORD) : BOOL Func GetPriorityClass( hProcess : THandle) : DWORD Func OpenClipboard( hWndNewOwner : HWND) : BOOL Func CloseClipboard : BOOL Func GetClipboardSequenceNumber : DWORD Func GetClipboardOwner : HWND Func SetClipboardViewer( hWndNewViewer : HWND) : HWND Func GetClipboardViewer : HWND Func ChangeClipboardChain( hWndRemove, hWndNewNext : HWND) : BOOL Func SetClipboardData( uFormat : UINT; hMem : THandle) : THandle Func GetClipboardData( uFormat : UINT) : THandle Func RegisterClipboardFormat( lpszFormat : PChar) : UINT Func CountClipboardFormats : Int Func EnumClipboardFormats( format : UINT) : UINT Func GetClipboardFormatName(format:UINT;lpszFormatName:PChar;cchMaxCount:Int):Int Func EmptyClipboard : BOOL Func IsClipboardFormatAvailable( format : UINT) : BOOL Func GetPriorityClipboardFormat(var paFormatPriorityList,cFormats:Int):Int Func GetOpenClipboardWindow : HWND Func EndDialog( hDlg : HWND; nResult : Int) : BOOL Func GetDlgItem( hDlg : HWND; nIDDlgItem : Int) : HWND Func SetDlgItemInt(hDlg:HWND;nIDDlgItem:Int;uValue:UINT;bSigned:BOOL): BOOL Func GetDlgItemInt(hDlg:HWND;nIDDlgItem:Int;var lpTranslated:BOOL;bSigned: BOOL):UINT Func SetDlgItemText( hDlg : HWND; nIDDlgItem : Int; lpString : PChar) : BOOL Func CheckDlgButton( hDlg : HWND; nIDButton : Int; uCheck : UINT) : BOOL Func CheckRadioButton(hDlg:HWND;nIDFirstButton,nIDLastButton,nIDCheckButton:Int):BOOL Func IsDlgButtonChecked( hDlg : HWND; nIDButton : Int) : UINT Func SendDlgItemMessage(hDlg:HWND;nIDDlgItem:Int;Msg:UINT;wParam:WPARAM;lParam:LPARAM):Longint; end; Proc SIRegister_DXPUtils(CL: TPSPascalCompiler); begin Func glExecuteAndWait(cmdLine:Str;visibility:Word;timeout:Card;killAppOnTimeOut:Bool):Int; Func GetTemporaryFilesPath :Str Func GetTemporaryFileName :Str Func FindFileInPaths( const fileName, paths :Str) :Str Func PathsToString( const paths : TStrings) :Str Proc StringToPaths( const pathsString :Str; paths : TStrings) //Func MacroExpandPath( const aPath :Str) :Str end; Proc SIRegister_ALMultiPartBaseParser(CL: TPSPascalCompiler); begin SIRegister_TALMultiPartBaseContent(CL); SIRegister_TALMultiPartBaseContents(CL); SIRegister_TAlMultiPartBaseStream(CL); SIRegister_TALMultipartBaseEncoder(CL); SIRegister_TALMultipartBaseDecoder(CL); Func ALMultipartExtractBoundaryFromContentType(aContentType:Ansistr): Ansistr Func ALMultipartExtractSubValueFromHeaderLine(aHeaderLine:Ansistr;aName:Ansistr):Ansistr; Func ALMultipartSetSubValueInHeaderLine(aHeaderLine:Ansistr;aName,AValue:Ansistr):Ansistr; end; Proc SIRegister_SmallUtils(CL: TPSPascalCompiler); begin TdriveSize', 'record FreeS : Int64; TotalS : Int64; end TWinVerRec','record WinPlatform : Int; WinMajorVersion : In' +teger; WinMinorVersion :Int; WinBuildNumber : Int; WinCSDVersion:Str; end Func aAllocPadedMem( Size :Card) : TObject Proc aFreePadedMem( var P : TObject); Proc aFreePadedMem1( var P : PChar); Func aCheckPadedMem( P : Pointer) : Byte Func aGetPadMemSize( P : Pointer) :Card Func aAllocMem( Size :Card) : Pointer Func aStrLen( const Str : PChar) :Card Func aStrLCopy( Dest : PChar; const Source : PChar; MaxLen :Card) : PChar Func aStrECopy( Dest : PChar; const Source : PChar) : PChar Func aStrCopy( Dest : PChar; const Source : PChar) : PChar Func aStrEnd( const Str : PChar) : PChar Func aStrScan( const Str : PChar; aChr : Char) : PChar Func aStrMove( Dest : PChar; const Source : PChar; Count :Card) : PChar Func aPCharLength( const Str : PChar) :Card Func aPCharUpper( Str : PChar) : PChar Func aPCharLower( Str : PChar) : PChar Func aStrCat( Dest : PChar; const Source : PChar) : PChar Func aLastDelimiter( const Delimiters, S :Str) : Int Func aCopyTail( const S :Str; Len : Int) :Str Func aInt2Thos( I : Int64) :Str Func aUpperCase( const S :Str) :Str Func aLowerCase( const S :Str) :Str Func aCompareText( const S1, S2 :Str) : Int Func aSameText( const S1, S2 :Str) :Bool Func aInt2Str( Value : Int64) :Str Func aStr2Int( const Value :Str) : Int64 Func aStr2IntDef( const S :Str; Default : Int64) : Int64 Func aGetFileExt( const FileName :Str) :Str Func aGetFilePath( const FileName :Str) :Str Func aGetFileName( const FileName :Str) :Str Func aChangeExt( const FileName, Extension :Str) :Str Func aAdjustLineBreaks( const S :Str) :Str Func aGetWindowStr( WinHandle : HWND) :Str Func aDiskSpace( Drive :Str) : TdriveSize Func aFileExists( FileName :Str) :Bool Func aFileSize( FileName :Str) : Int64 Func aDirectoryExists( const Name :Str) :Bool Func aSysErrorMessage( ErrorCode : Int) :Str Func aShortPathName( const LongName :Str) :Str Func aGetWindowVer : TWinVerRec Proc InitDriveSpacePtr; end; Proc SIRegister_MakeApp(CL: TPSPascalCompiler); begin aZero','LongInt'( 0); 'makeappDEF','LongInt'( - 1); 'CS_VREDRAW','LongInt'( DWORD ( 1 )); 'CS_HREDRAW','LongInt'( DWORD ( 2 )); 'CS_KEYCVTWINDOW','LongInt'( 4); 'CS_DBLCLKS','LongInt'( 8); 'CS_OWNDC','LongWord')( $20); 'CS_CLASSDC','LongWord')( $40); 'CS_PARENTDC','LongWord')( $80); 'CS_NOKEYCVT','LongWord')( $100); 'CS_NOCLOSE','LongWord')( $200); 'CS_SAVEBITS','LongWord')( $800); 'CS_BYTEALIGNCLIENT','LongWord')( $1000); 'CS_BYTEALIGNWINDOW','LongWord')( $2000); 'CS_GLOBALCLASS','LongWord')( $4000); 'CS_IME','LongWord')( $10000); 'CS_DROPSHADOW','LongWord')( $20000); //PPanelFunc', '^TPanelFunc // will not work TPanelStyle', '(psEdge, psTabEdge, psBorder, psTabBorder, psTab, psNone ) TFontLook', '( flBold, flItalic, flUnderLine, flStrikeOut ) TFontLooks', 'set of TFontLook TMessagefunc','function(hWnd,iMsg,wParam,lParam:Int):Int) Func SetWinClass(const ClassName:str; pMessFunc: Tmessagefunc; wcStyle : Int): Word Func SetWinClassO( const ClassNam:str; pMessFunc: TObject; wcStyle : Int): Word Func SetWinClass(const ClassName:str; pMessFunc : TObject; wcStyle : Int) : Word Func MakeForm(Left,Top,Width,Height:Int;const Caption:str;WinStyle:Int):Int Proc RunMsgLoop( Show :Bool) Func MakeFont(Height,Width:Int;const FontName:str; Look:TFontLooks;Roman:Boolean):Int Func MakeButton(Left,Top,Width,Height:Int;pCaption:PChar;hParent,ID_Number:Cardi;hFont:Int):Int; Func MakeListBox(Left,Top,Width,Height,Parent:Int;const ListItems:str;WinStyle:Int):Int Func MakeComboBox(Left,Top,Width,Height,Parent:Int;const ListItems:str;WinStyle:Int):Int Func MakePanel(Left,Top,Width,Height,hParent:Int;WndFunc:TPanelFunc;ID_Number:Card;Style:TPanelStyle):Int; Func MakeSubMenu(const ItemList :Str; ID1, ID2 :Card; hMenu : Int) : Int Func id4menu( a, b : Byte; c : Byte; d : Byte) :Card Proc DoInitMakeApp //set first to init formclasscontrol! end; Proc SIRegister_ScreenSaver(CL: TPSPascalCompiler); begin TScreenSaverOption', '( ssoAutoAdjustFormProperties, ssoAutoHook' +KeyboardEvents, ssoAutoHookMouseEvents, ssoEnhancedMouseMoveDetection ) TScreenSaverOptions', 'set of TScreenSaverOption 'cDefaultScreenSaverOptions','LongInt').Value.ts32:=ord(ssoAutoAdjustFormProperties) or ord(ssoAutoHookKeyboardEvents) or ord(ssoEnhancedMouseMoveDetection); TScreenSaverPreviewEvent', 'Proc ( Sender : TObject; previewHwnd: HWND) SIRegister_TScreenSaver(CL); //Proc Register Proc SetScreenSaverPassword end; Proc SIRegister_XCollection(CL: TPSPascalCompiler); begin FindClass('TOBJECT'),'TXCollection SIRegister_EFilerException(CL); SIRegister_TXCollectionItem(CL); //TXCollectionItemClass', 'class of TXCollectionItem SIRegister_TXCollection(CL); Proc RegisterXCollectionDestroyEvent( notifyEvent : TNotifyEvent) Proc DeRegisterXCollectionDestroyEvent( notifyEvent : TNotifyEvent) Proc RegisterXCollectionItemClass( aClass : TXCollectionItemClass) Proc UnregisterXCollectionItemClass( aClass : TXCollectionItemClass) Func FindXCollectionItemClass( const className :Str) : TXCollectionItemClass Func GetXCollectionItemClassesList( baseClass : TXCollectionItemClass) : TList end; Proc SIRegister_XOpenGL(CL: TPSPascalCompiler); begin TMapTexCoordMode', '(mtcmUndefined, mtcmNull, mtcmMain, mtcmDual, mtcmSecond,mtcmArbitrary); Proc xglMapTexCoordToNull Proc xglMapTexCoordToMain Proc xglMapTexCoordToSecond Proc xglMapTexCoordToDual Proc xglMapTexCoordToArbitrary( const units : array of Cardinal); Proc xglMapTexCoordToArbitrary1( const bitWiseUnits :Card); Proc xglMapTexCoordToArbitraryAdd( const bitWiseUnits :Card) Proc xglBeginUpdate Proc xglEndUpdate Proc xglPushState Proc xglPopState Proc xglForbidSecondTextureUnit Proc xglAllowSecondTextureUnit Func xglGetBitWiseMapping :Card end; Proc SIRegister_VectorLists(CL: TPSPascalCompiler); begin TBaseListOption', '( bloExternalMemory, bloSetCountResetsMemory) TBaseListOptions', 'set of TBaseListOption SIRegister_TBaseList(CL); SIRegister_TBaseVectorList(CL); SIRegister_TAffineVectorList(CL); SIRegister_TVectorList(CL); SIRegister_TTexPointList(CL); SIRegister_TXIntList(CL); //PSingleArrayList', '^TSingleArrayList // will not work SIRegister_TSingleList(CL); SIRegister_TByteList(CL); SIRegister_TQuaternionList(CL); Proc QuickSortLists(startIndex,endIndex:Int;refList:TSingleList; objList : TList); Proc QuickSortLists1(startIndex,endIndex:Int;refList: TSingleList; objList: TBaseList); Proc FastQuickSortLists(startIndex,endIndex:Int;refList:TSingleList;objList:TPersistentObjectList); end; ********** File C:\maXbox\maxbox3\maxbox3\maXbox3\source\REST\uPSI_UIntList.pas File C:\maXbox\maxbox3\maxbox3\maXbox3\source\JvJCLUtils.pas { compile-time registration functions } 24: Proc SIRegister_TIntList(CL: TPSPascalCompiler); Proc SIRegister_UIntList(CL: TPSPascalCompiler); { run-time registration functions } 28: Proc RIRegister_TIntList(CL: TPSRuntimeClassImporter); Proc RIRegister_UIntList(CL: TPSRuntimeClassImporter); (*----------------------------------------------------------------------------*) 49: Proc SIRegister_TIntList(CL: TPSPascalCompiler); 51: //with RegClassS(CL,'TPersistent', 'TIntList') do with ClassN(CL.FindClass('TPersistent'),'TIntList') do begin with ClassN(CL.FindClass('TList'),'TIntList') do begin //with RegClassS(CL,'TPersistent', 'TIntList') do TIntList = class(TPersistent) private FUpDateCount: Int; FList: PIntItemList; FCount: Int; FCapacity: Int; FSorted:Bool; FDuplicates: TDuplicates; FOnChange: TNotifyEvent; FOnChanging: TNotifyEvent; Proc ExchangeItems(Index1, Index2: Int); Proc Grow; Proc QuickSort(L, R: Int; SCompare: TIntListSortCompare); Proc InsertItem(Index: Int; const S: int64); Proc SetSorted(Value:Bool); protected Proc Error(const Msg:Str; Data: Int); Proc Changed; virtual; Proc Changing; virtual; Func Get(Index: Int): int64; Func GetCapacity: Int; //Func GetCount: Int; Func GetObject(Index: Int): TObject; Proc Put(Index: Int; const S: int64); Proc PutObject(Index: Int; AObject: TObject); Proc SetCapacity(NewCapacity: Int); Proc SetUpdateState(Updating:Bool); public Func GetCount: Int; destructor Destroy; override; Func Add(const S: int64): Int; Func AddObject(const S: int64; AObject: TObject): Int; virtual; Proc Clear; Proc Delete(Index: Int); Proc Exchange(Index1, Index2: Int); Func Find(const S: int64; var Index: Int):Bool; virtual; Func IndexOf(const S: int: Int; Proc Insert(Index: Int; const S: int64); Proc Sort; virtual; Proc CustomSort(Compare: TIntListSortCompare); virtual; Proc LoadFromFile(const FileName:Str); virtual; Proc LoadFromStream(Stream:TStream); virtual; Proc SaveToFile(const FileName:Str); virtual; Proc SaveToStream(Stream: TStream); property Duplicates: TDuplicates read FDuplicates write FDuplicates; property Sorted:Bool read FSorted write SetSorted; property OnChange: TNotifyEvent read FOnChange write FOnChange; property OnChanging: TNotifyEvent read FOnChanging write FOnChanging; property Ints [Index: Int]: int64 read Get write Put; default; property Count: Int read GetCount; property Objects[Index: Int]: TObject read GetObject write PutObject; end; procedure SIRegister_TInteger(CL: TPSPascalCompiler); //biginteger bigint begin //with RegClassS(CL,'TObject', 'TInteger') do with CL.AddClassN(CL.FindClass('TObject'),'TInteger') do begin Constructor Create1( const initialValue : int64) Constructor Create Procedure Free RegisterProperty('Digits', 'TDigits', iptr); Procedure Assign( const I2 : TInteger);'); Procedure Assign1( const I2 : int64); Procedure Assign2( const I2 : string); Procedure AbsoluteValue'); Procedure Add( const I2 : TInteger); Procedure Add1( const I2 : int64); Procedure AssignZero'); Procedure AssignOne'); Procedure Subtract( const I2 : TInteger); Procedure Subtract1( const I2 : int64); Procedure Mult( const I2 : TInteger); Procedure Mult1( const I2 : int64); Procedure FastMult( const I2 : TInteger); Procedure Divide( const I2 : TInteger); Procedure Divide1( const I2 : int64); Procedure Modulo( const I2 : TInteger); Procedure Modulo1( const N : int64); Procedure ModPow( const I2, m : TInteger); Procedure InvMod( I2 : TInteger); Procedure DivideRem( const I2 : TInteger; var remain : TInteger); Procedure DivideRemTrunc( const I2 : TInteger; var remain : TInteger); Procedure DivideRemFloor( const I2 : TInteger; var remain : TInteger); Procedure DivideRemEuclidean( const I2 : TInteger; var remain : TInteger); Function Compare( I2 : TInteger) : integer; Function Compare1( I2 : int64) : integer; Procedure Factorial'); Function ConvertToDecimalString( commas : boolean) : string'); Function ConvertToInt64( var N : int64) : boolean'); Function DigitCount : '); Procedure SetSign( s : integintegerer); Function GetSign : integer'); Function IsOdd : boolean'); Function IsPositive : boolean'); Function IsNegative : boolean'); Function IsProbablyPrime : boolean'); Function IsZero : boolean'); Procedure ChangeSign'); Procedure Pow( const exponent : int64); Procedure Sqroot'); Procedure Square'); Procedure FastSquare'); Procedure Gcd( const I2 : TInteger); Procedure Gcd1( const I2 : int64); Procedure NRoot( const Root : int64); Function GetBase : integer'); Function BitCount : integer'); Function ConvertToHexString : String'); Function AssignRandomPrime( BitLength:integer; seed:String; mustMatchBitLength:boolean):boolean'); Function AssignHex( HexStr : String) : boolean'); Procedure RandomOfSize( size : integer); Procedure Random( maxint : TInteger); Procedure Getnextprime'); end; end; procedure SIRegister_TBigFloat(CL: TPSPascalCompiler); //bigdecimal bigdec begin //with RegClassS(CL,'TObject', 'TBigFloat') do with CL.AddClassN(CL.FindClass('TObject'),'TBigFloat') do begin decpart', 'TFloatInt', iptrw); sigdigits', 'word', iptrw); exponent', 'integer', iptrw); Constructor Create; Constructor Create1( const MaxSig : TMaxSig); Procedure Assign( A : TBigFloat); Procedure Assign3( A : TBigFloat; SigDig : word); Procedure Assign4( A : TInteger); Procedure Assign5( N : int64); Procedure Assign6( N : int64; SigDig : integer); Procedure Assign7( d : extended); Procedure Assign8( S : string); Procedure Assign9( S : string; SigDig : word); Procedure AssignZero'); Procedure AssignOne'); Procedure Add( B : TBigFloat); Procedure Add1( B : int64); Procedure AbsAdd( B : TBigFloat); Procedure Subtract( B : TBigFloat); Procedure Subtract1( B : int64); Procedure Mult( B : TBigFloat); Procedure Mult1( B : TBigfloat; const MaxSig : TMaxSig); Procedure Mult2( B : TInteger); Procedure Mult3( B : int64); Procedure MultRaw( B : TBigFloat); Procedure Reciprocal( const MaxSig : TMaxSig); Procedure Divide( B : TBigFloat; const MaxSig : TMaxSig); Procedure Divide1( B : TInteger; const MaxSig : TMaxSig); Procedure Divide2( B : int64; const MaxSig : TMaxSig); Procedure Square( const MaxSig : TMaxSig); Function Compare( B : TBigFloat) : integer'); Function IsZero : boolean'); Procedure MaxBigFloat( B : TBigFloat); Procedure MinBigFloat( B : TBigFloat); Procedure Sqrt; Procedure Sqrt1( const MaxSig : TMaxSig); Procedure NRoot( N : integer; const MaxSig : TMaxSig); Procedure IntPower( intpower : integer; const MaxSig : TMaxSig); Procedure Power( power : TBigfloat; const MaxSig : TMaxSig); Procedure Log( const MaxSig : TMaxSig); Procedure Log10( const MaxSig : TMaxSig); Procedure Exp( const MaxSig : TMaxSig); Procedure PiConst( const MaxSig : TMaxSig); Procedure Log2Const( const MaxSig : TMaxSig); Procedure RoundToPrec( const MaxSig : TMaxSig); Procedure RoundToPrec1; Procedure Trunc( const x : integer); Procedure Floor( const x : integer); Procedure Ceiling( const x : integer); Procedure Round( const x : integer); Procedure AbsoluteValue'); Procedure Negate'); Procedure SetSigDigits( const newsigdigits : integer); Function ConvertToString( const View : TView) : string'); Function ToString( const View : TView) : string'); Function ConvertToExtended( var num : extended) : boolean'); Function ConvertToInt64( var N : int64) : boolean'); Function IntPart : int64'); end; end; Proc SIRegister_MeshUtils(CL: TPSPascalCompiler); begin Proc ConvertStripToList( const strip : TAffineVectorList; list : TAffineVectorList); Proc ConvertStripToList1( const strip : TIntList; list : TIntList); Proc ConvertStripToList2(const strip:TAffineVectorList;const indices:TIntList;list:TAffineVectorList); Proc ConvertIndexedListToList(const data:TAffineVectlist;const indices:TIntList;list:TAffineVectorList); Func BuildVectorCountOptimizedIndices(const vertices:TAffineVectorList;const normals:TAffineVectorList;const texCoords:TAffineVectorList):TIntList Proc RemapReferences( reference : TAffineVectorList; const indices : TIntList); Proc RemapReferences1( reference : TIntList; const indices : TIntList); Proc RemapAndCleanupReferences( reference : TAffineVectorList; indices : TIntList) Func RemapIndicesToIndicesMap( remapIndices : TIntList) : TIntList Proc RemapTrianglesIndices( indices, indicesMap : TIntList) Proc RemapIndices( indices, indicesMap : TIntList) Proc UnifyTrianglesWinding( indices : TIntList) Proc InvertTrianglesWinding( indices : TIntList) Func BuildNormals( reference : TAffineVectorList; indices : TIntList) : TAffineVectorList Func BuildNonOrientedEdgesList(triangleIndices:TIntList;triangleEdges:TIntList;edgesTriangles:TIntList):TIntList Proc WeldVertices(vertices:TAffineVectorList;indicesMap:TIntList;weldRadius: Single) Func StripifyMesh(indices:TIntList;maxVertexIndex:Int;agglomerateLoneTriangles:Boolean): TPersistentObjectList; Proc IncreaseCoherency(indices : TIntList; cacheSize : Int) Proc SubdivideTriangles(smoothFactor:Single;vertices:TAffineVectorList;triangleIndices:TIntList;normals:TAffineVectorList;onSubdivideEdge:TSubdivideEdgeEvent) end; Proc SIRegister_JclSysUtils(CL: TPSPascalCompiler); begin Proc GetAndFillMem( var P : TObject; const Size : Int; const Value : Byte) Proc FreeMemAndNil( var P : TObject) Func PCharOrNil( const S :Str) : PChar SIRegister_TJclReferenceMemoryStream(CL); FindClass('TOBJECT'),'EJclVMTError {Func GetVirtualMethodCount( AClass : TClass) : Int Func GetVirtualMethod( AClass : TClass; const Index : Int) : Pointer Proc SetVirtualMethod( AClass : TClass; const Index : Int; const Method:Pointer) PDynamicIndexList', '^TDynamicIndexList // will not work PDynamicAddressList', '^TDynamicAddressList // will not work Func GetDynamicMethodCount( AClass : TClass) : Int Func GetDynamicIndexList( AClass : TClass) : PDynamicIndexList Func GetDynamicAddressList( AClass : TClass) : PDynamicAddressList Func HasDynamicMethod( AClass : TClass; Index : Int) :Bool Func GetDynamicMethod( AClass : TClass; Index : Int) : Pointer Func GetInitTable( AClass : TClass) : PTypeInfo PFieldEntry', '^TFieldEntry // will not work} TFieldEntry', 'record OffSet : Int; IDX : Word; Name : ShortString; end Func JIsClass( Address : Pointer) :Bool Func JIsObject( Address : Pointer) :Bool Func GetImplementorOfInterface( const I : IInterface) : TObject TDigitCount', 'Int SIRegister_TJclNumericFormat(CL); Func JIntToStrZeroPad( Value, Count : Int) : Ansistr TTextHandler', 'Proc ( const Text :Str) // 'ABORT_EXIT_CODE','LongInt'( ERROR_CANCELLED 1223); Func JExecute(const CommandLine:str;OutputLineCallback:TTextHandler;RawOutpt:Bool;AbortPtr:PBool):Card; Func JExecute1(const CommandLine:str;var Output:str;RawOutput:Bool;AbortPtr:PBool):Card; Func JExecute2(const CommandLine:str;OutputLineCallback:TTextHandler;RawOutput:Bool;AbortPtr:PBool):Card; Func JExecute3('cmd /C dir *.*',@TTextHandlerQ, true, false))); Func JExecute3('cmd /C dir *.*',Nil, true, false))); Func ReadKey : Char //to and from the DOS console ! TModuleHandle', 'HINST //TModuleHandle', 'Pointer 'INVALID_MODULEHANDLE_VALUE','LongInt'( TModuleHandle ( 0 )); Func LoadModule( var Module : TModuleHandle; FileName :Str) :Bool Func LoadModuleEx(var Module: TModuleHandle; FileName:str;Flags:Card):Bool Proc UnloadModule( var Module : TModuleHandle) Func GetModuleSymbol( Module : TModuleHandle; SymbolName :Str) : Pointer Func GetModuleSymbolEx(Module:TModuleHandle;SymbolName:str;var Accu:Boolean):Pointer Func ReadModuleData(Module:TModuleHandle;SymbolName:str;var Buffer,Size:Card):Bool; Func WriteModuleData(Module:TModuleHandle;SymbolName:str;var Buffer,Size:Card):Bool; FindClass('TOBJECT'),'EJclConversionError Func JStrToBoolean( const S :Str) :Bool Func JBooleanToStr( B :Bool) :Str Func JIntToBool( I : Int) :Bool Func JBoolToInt( B :Bool) : Int 'ListSeparator','String '; 'ListSeparator1','String ': Proc ListAddItems( var List :Str; const Separator, Items:Str) Proc ListIncludeItems( var List :Str; const Separator, Items :Str) Proc ListRemoveItems( var List :Str; const Separator, Items :Str) Proc ListDelItem( var List :Str; const Separator :Str; const Index : Int) Func ListItemCount( const List, Separator :Str) : Int Func ListGetItem( const List, Separator :Str; const Index : Int) :Str Proc ListSetItem(var List:str;const Separator:str;const Index:Int;const Value:str) Func ListItemIndex( const List, Separator, Item :Str) : Int Func SystemTObjectInstance : LongWord Func IsCompiledWithPackages :Bool Func JJclGUIDToString( const GUID : TGUID) :Str Func JJclStringToGUID( const S :Str) : TGUID SIRegister_TJclIntfCriticalSection(CL); SIRegister_TJclSimpleLog(CL); Proc InitSimpleLog( const ALogFileName :Str) end; Proc SIRegister_JclBorlandTools(CL: TPSPascalCompiler); begin FindClass('TOBJECT'),'EJclBorRADException TJclBorRADToolKind', '( brDelphi, brCppBuilder, brBorlandDevStudio ) TJclBorRADToolEdition', '( deOPEN, dePRO, deSVR ) TJclBorRADToolEdition', '( deSTD, dePRO, deCSS, deARC ) TJclBorRADToolPath', 'string 'SupportedDelphiVersions','LongInt'( 5 or 6 or 7 or 8 or 9 or 10 or 11); 'SupportedBCBVersions','LongInt'( 5 or 6 or 10 or 11); 'SupportedBDSVersions','LongInt'( 1 or 2 or 3 or 4 or 5); BorRADToolRepositoryPagesSection','String 'Repository Pages BorRADToolRepositoryDialogsPage','String 'Dialogs BorRADToolRepositoryFormsPage','String 'Forms BorRADToolRepositoryProjectsPage','String 'Projects BorRADToolRepositoryDataModulesPage','String 'Data Modules BorRADToolRepositoryObjectType','String 'Type BorRADToolRepositoryFormTemplate','String 'FormTemplate BorRADToolRepositoryProjectTemplate','String 'ProjectTemplate BorRADToolRepositoryObjectName','String 'Name BorRADToolRepositoryObjectPage','String 'Page BorRADToolRepositoryObjectIcon','String 'Icon BorRADToolRepositoryObjectDescr','String 'Description BorRADToolRepositoryObjectAuthor','String 'Author BorRADToolRepositoryObjectAncestor','String 'Ancestor BorRADToolRepositoryObjectDesigner','String 'Designer BorRADToolRepositoryDesignerDfm','String 'dfm BorRADToolRepositoryDesignerXfm','String 'xfm BorRADToolRepositoryObjectNewForm','String 'DefaultNewForm BorRADToolRepositoryObjectMainForm','String 'DefaultMainForm SourceExtensionDelphiPackage','String '.dpk SourceExtensionBCBPackage','String '.bpk SourceExtensionDelphiProject','String '.dpr SourceExtensionBCBProject','String '.bpr SourceExtensionBDSProject','String '.bdsproj SourceExtensionDProject','String '.dproj BinaryExtensionPackage','String '.bpl BinaryExtensionLibrary','String '.dll BinaryExtensionExecutable','String '.exe CompilerExtensionDCP','String '.dcp CompilerExtensionBPI','String '.bpi CompilerExtensionLIB','String '.lib CompilerExtensionTDS','String '.tds CompilerExtensionMAP','String '.map CompilerExtensionDRC','String '.drc CompilerExtensionDEF','String '.def SourceExtensionCPP','String '.cpp SourceExtensionH','String '.h SourceExtensionPAS','String '.pas SourceExtensionDFM','String '.dfm SourceExtensionXFM','String '.xfm SourceDescriptionPAS','String 'Pascal source file SourceDescriptionCPP','String 'C++ source file DesignerVCL','String 'VCL DesignerCLX','String 'CLX ProjectTypePackage','String 'package ProjectTypeLibrary','String 'library ProjectTypeProgram','String 'program Personality32Bit','String '32 bit Personality64Bit','String '64 bit PersonalityDelphi','String 'Delphi PersonalityDelphiDotNet','String 'Delphi.net PersonalityBCB','String 'C++Builder PersonalityCSB','String 'C#Builder PersonalityVB','String 'Visual Basic PersonalityDesign','String 'Design PersonalityUnknown','String 'Unknown personality PersonalityBDS','String 'Borland Developer Studio DOFDirectoriesSection','String 'Directories DOFUnitOutputDirKey','String 'UnitOutputDir DOFSearchPathName','String 'SearchPath DOFConditionals','String 'Conditionals DOFLinkerSection','String 'Linker DOFPackagesKey','String 'Packages DOFCompilerSection','String 'Compiler DOFPackageNoLinkKey','String 'PackageNoLink DOFAdditionalSection','String 'Additional DOFOptionsKey','String 'Options TJclBorPersonality', '( bpDelphi32, bpDelphi64, bpBCBuilder32, b' +'pBCBuilder64, bpDelphiNet32, bpDelphiNet64, bpCSBuilder32, bpCSBuilder64, ' +'bpVisualBasic32, bpVisualBasic64, bpDesign, bpUnknown ) TJclBorPersonalities', 'set of TJclBorPersonality TJclBorDesigner', '( bdVCL, bdCLX ) TJclBorDesigners', 'set of TJClBorDesigner TJclBorPlatform', '( bp32bit, bp64bit ) FindClass('TOBJECT'),'TJclBorRADToolInstallation SIRegister_TJclBorRADToolInstallationObject(CL); SIRegister_TJclBorlandOpenHelp(CL); TJclHelp2Object', '( hoRegisterSession, hoRegister, hoPlugin ) TJclHelp2Objects', 'set of TJclHelp2Object SIRegister_TJclHelp2Manager(CL); SIRegister_TJclBorRADToolIdeTool(CL); SIRegister_TJclBorRADToolIdePackages(CL); SIRegister_IJclCommandLineTool(CL); FindClass('TOBJECT'),'EJclCommandLineToolError SIRegister_TJclCommandLineTool(CL); SIRegister_TJclBorlandCommandLineTool(CL); SIRegister_TJclBCC32(CL); SIRegister_TJclDCC32(CL); TJclDCC', 'TJclDCC32 SIRegister_TJclBpr2Mak(CL); SIRegister_TJclBorlandMake(CL); SIRegister_TJclBorRADToolPalette(CL); SIRegister_TJclBorRADToolRepository(CL); TCommandLineTool', '( clAsm, clBcc32, clDcc32, clDccIL, clMake,clProj2Mak ) TCommandLineTools', 'set of TCommandLineTool //TJclBorRADToolInstallationClass', 'class of TJclBorRADToolInstallation SIRegister_TJclBorRADToolInstallation(CL); SIRegister_TJclBCBInstallation(CL); SIRegister_TJclDelphiInstallation(CL); SIRegister_TJclDCCIL(CL); SIRegister_TJclBDSInstallation(CL); TTraverseMethod', 'Func ( Installation: TJclBorRADToolInstallation) :Bool SIRegister_TJclBorRADToolInstallations(CL); Func BPLFileName( const BPLPath, PackageFileName :Str) :Str Func BinaryFileName( const OutputPath, ProjectFileName :Str) :Str Func IsDelphiPackage( const FileName :Str) :Bool Func IsDelphiProject( const FileName :Str) :Bool Func IsBCBPackage( const FileName :Str) :Bool Func IsBCBProject( const FileName :Str) :Bool Proc GetDPRFileInfo(const DPRFileName:str;out BinaryExtensio:str;const LibSuffx:PString); Proc GetBPRFileInfo(const BPRFileName:str;out BinaryFileName:str;const Descript:PString); Proc GetDPKFileInfo(const DPKFileName:str;out RunOnly:Bool;const LibSuffix:PString;const Descript:PString; Proc GetBPKFileInfo(const BPKFileName:str;out RunOnly:Bool;const BinaryFName:PString;const Descript:PString Func SamePath(const Path1, Path2:Str):Bool; end; Proc SIRegister_JclFileUtils_max(CL: TPSPascalCompiler); begin 'ERROR_NO_MORE_FILES','LongInt'( 18); //Func stat64( FileName: PChar;var StatBuffer : TStatBuf64) : Int //Func fstat64( FileDes: Int;var StatBuffer : TStatBuf64) : Int //Func lstat64( FileName: PChar;var StatBuffer : TStatBuf64) : Int 'LPathSeparator','String '/ 'LDirDelimiter','String '/ 'LDirSeparator','String ': 'JXPathDevicePrefix','String '\\.\ 'JXPathSeparator','String '\ 'JXDirDelimiter','String '\ 'JXDirSeparator','String '; 'JXPathUncPrefix','String '\\ 'faNormalFile','LongWord')( $00000080); //'faUnixSpecific',' faSymLink); JXTCompactPath', '( cpCenter, cpEnd ) _WIN32_FILE_ATTRIBUTE_DATA', 'record dwFileAttributes : DWORD; f' +'tCreationTime : TFileTime; ftLastAccessTime : TFileTime; ftLastWriteTime :' +' TFileTime; nFileSizeHigh : DWORD; nFileSizeLow : DWORD; end TWin32FileAttributeData', '_WIN32_FILE_ATTRIBUTE_DATA WIN32_FILE_ATTRIBUTE_DATA', '_WIN32_FILE_ATTRIBUTE_DATA Func jxPathAddSeparator( const Path :Str) :Str Func jxPathAddExtension( const Path, Extension :Str) :Str Func jxPathAppend( const Path, Append :Str) :Str Func jxPathBuildRoot( const Drive : Byte) :Str Func jxPathCanonicalize( const Path :Str) :Str Func jxPathCommonPrefix( const Path1, Path2 :Str) : Int Func jxPathCompactPath(const DC:HDC;const Path:str;const Width:Int;CmpFmt:TCompactPath):str Proc jxPathExtractElements(const Source:str;var Drive,Path,FileName,Ext:str) Func jxPathExtractFileDirFixed( const S :Str) :Str Func jxPathExtractFileNameNoExt( const Path :Str) :Str Func jxPathExtractPathDepth( const Path :Str; Depth : Int) :Str Func jxPathGetDepth( const Path :Str) : Int Func jxPathGetLongName( const Path :Str) :Str Func jxPathGetShortName( const Path :Str) :Str Func jxPathGetLongName( const Path :Str) :Str Func jxPathGetShortName( const Path :Str) :Str Func jxPathGetRelativePath( Origin, Destination :Str) :Str Func jxPathGetTempPath :Str Func jxPathIsAbsolute( const Path :Str) :Bool Func jxPathIsChild( const Path, Base :Str) :Bool Func jxPathIsDiskDevice( const Path :Str) :Bool Func jxPathIsUNC( const Path :Str) :Bool Func jxPathRemoveSeparator( const Path :Str) :Str Func jxPathRemoveExtension( const Path :Str) :Str Func jxPathGetPhysicalPath( const LocalizedPath :Str) :Str Func jxPathGetLocalizedPath( const PhysicalPath :Str) :Str JxTFileListOption', '( flFullNames, flRecursive, flMaskedSubfolders) JxTFileListOptions', 'set of TFileListOption JxTJclAttributeMatch', '( amAny, amExact, amSubSetOf, amSuperSetOf, amCustom ) TFileHandler', 'Proc ( const FileName :Str) TFileHandlerEx', 'Proc ( const Directory :Str; const FileInfo : TSearchRec) Func jxBuildFileList( const Path :Str; const Attr : Int; const List : TStrings) :Bool Func jxAdvBuildFileList( const Path :Str; const Attr : Int; const Files : TStrings; const AttributeMatch:TJclAttributeMatch;const Optis:TFileListOptions;const SubfoldersMask:str;const FileMatchFunc:TFileMatchFunc):Bool; Func jxVerifyFileAttributeMask( var RejectedAttributes, RequiredAttributes : Int): Bool Func jxIsFileAttributeMatch(FileAttributes,RejectedAttributes,RequiredAttributes:Int):Bool; Func jxFileAttributesStr( const FileInfo : TSearchRec) :Str Func jxIsFileNameMatch(FileName:str;const Mask:str;const CaseSensitive:Bool):Bool; Proc jxEnumFiles(const Path:str;HandleFile:TFileHandlerEx;RejectedAttributes:Int;RequiredAttributes:Int;Abort:TObject) Proc jxEnumDirectories(const Root:str;const HandleDirectory:TFileHandler;const IncludeHiddenDirects:Bool;const SubDirectoriesMask:str;Abort:TObject;ResolveSymLinks:Bool) Proc jxCreateEmptyFile( const FileName :Str) Func jxCloseVolume( var Volume : THandle) :Bool Func jxDeleteDirectory(const DirectoryName:str; MoveToRecycleBin:Boolean:Boolean Func jxCopyDirectory( ExistingDirectoryName, NewDirectoryName :Str) :Bool Func jxMoveDirectory( ExistingDirectoryName, NewDirectoryName :Str) :Bool Func jxDelTree( const Path :Str) :Bool //Func DelTreeEx(const Path:str;AbortOnFailure:Bool; Progress:TDelTreeProgress):Bool Func jxDiskInDrive( Drive : Char) :Bool Func jxDirectoryExists( const Name :Str; ResolveSymLinks :Bool) :Bool Func jxFileCreateTemp( var Prefix :Str) : THandle Func jxFileBackup( const FileName :Str; Move :Bool) :Bool Func jxFileCopy(const ExistingFileName,NewFileName:str; ReplaceExisting:Boolean):Bool Func jxFileDelete( const FileName :Str; MoveToRecycleBin :Bool) :Bool Func jxFileExists( const FileName :Str) :Bool Func jxFileMove(const ExistingFileName,NewFileName:Str;ReplaceExisting:Bool):Boolean Func jxFileRestore( const FileName :Str) :Bool Func jxGetBackupFileName( const FileName :Str) :Str Func jxIsBackupFileName( const FileName :Str) :Bool Func jxFileGetDisplayName( const FileName :Str) :Str Func jxFileGetGroupName( const FileName :Str; ResolveSymLinks :Bool) :Str Func jxFileGetOwnerName( const FileName :Str; ResolveSymLinks :Bool) :Str Func jxFileGetSize( const FileName :Str) : Int64 Func jxFileGetTempName( const Prefix :Str) :Str Func jxFileGetTypeName( const FileName :Str) :Str Func jxFindUnusedFileName(FileName:str;const FileExt:str;NumberPrefix:str):str Func jxForceDirectories( Name :Str) :Bool Func jxGetDirectorySize( const Path :Str) : Int64 Func jxGetDriveTypeStr( const Drive : Char) :Str Func jxGetFileAgeCoherence( const FileName :Str) :Bool Proc jxGetFileAttributeList( const Items : TStrings; const Attr : Int) Proc jxGetFileAttributeListEx( const Items : TStrings; const Attr : Int) Func jxGetFileInformation( const FileName :Str; out FileInfo : TSearchRec) :Bool; Func jxGetFileInformation1( const FileName :Str) : TSearchRec; //Func GetFileStatus(const FileName:str;out StatBuf:TStatBuf64;const ResolveSymLinks:Boolean):Int Func jxGetFileLastWrite( const FName :Str) : TFileTime; Func jxGetFileLastWrite1( const FName :Str; out LocalTime : TDateTime) :Bool; Func jxGetFileLastAccess( const FName :Str) : TFileTime; Func jxGetFileLastAccess1(const FName:str; out LocalTime : TDateTime) :Bool; Func jxGetFileCreation( const FName :Str) : TFileTime; Func jxGetFileCreation1( const FName :Str; out LocalTime : TDateTime) :Bool; Func jxGetFileLastWrite(const FName:str;out TimeStamp:Int;ResolveSymLinks:Bool):Bool; Func jxGetFileLastWrite1(const FName:str;out LocalTime:TDateTime;ResolveSymLinks:Bool):Bool Func jxGetFileLastWrite2(const FName :Str; ResolveSymLinks :Bool) : Int; Func jxGetFileLastAccess(const FName:str;out TimeStamp:Int;ResolveSymLinks: Bool): Bool; Func jxGetFileLastAccess1(const FName:str;out LocalTime:TDateTime;ResolveSymLinks:Bool)Bool Func jxGetFileLastAccess2(const FName:str; ResolveSymLinks:Boolean): Int; Func jxGetFileLastAttrChange(const FName:str;out TimeStamp:Int;ResolveSymLinks:Bool):Bool; Func jxGetFileLastAttrChange1(const FName:str;out LocalTime:TDateTime;ResolveSymLinks:Bool):Bool; Func jxGetFileLastAttrChange2( const FName :Str; ResolveSymLinks:Boolean): Int; Func jxGetModulePath( const Module : HMODULE) :Str Func jxGetSizeOfFile( const FileName :Str) : Int64; Func jxGetSizeOfFile1( const FileInfo : TSearchRec) : Int64; Func jxGetSizeOfFile2( Handle : THandle) : Int64; Func jxGetStandardFileInfo( const FileName :Str) : TWin32FileAttributeData Func jxIsDirectory( const FileName :Str; ResolveSymLinks :Bool) :Bool Func jxIsRootDirectory( const CanonicFileName :Str) :Bool Func jxLockVolume( const Volume :Str; var Handle : THandle) :Bool Func jxOpenVolume( const Drive : Char) : THandle Func jxSetDirLastWrite( const DirName :Str; const DateTime : TDateTime) :Bool Func jxSetDirLastAccess( const DirName :Str; const DateTime : TDateTime) :Bool Func jxSetDirCreation( const DirName :Str; const DateTime : TDateTime) :Bool Func jxSetFileLastWrite( const FileName :Str; const DateTime : TDateTime) :Bool Func jxSetFileLastAccess( const FileName :Str; const DateTime : TDateTime) :Bool Func jxSetFileCreation( const FileName :Str; const DateTime : TDateTime) :Bool Proc jxShredFile( const FileName :Str; Times : Int) Func jxUnlockVolume( var Handle : THandle) :Bool Func jxCreateSymbolicLink( const Name, Target :Str) :Bool Func jxSymbolicLinkTarget( const Name :Str) :Str TAttributeInterest', '( aiIgnored, aiRejected, aiRequired ) SIRegister_TJclCustomFileAttrMask(CL); SIRegister_TJclFileAttributeMask(CL); TFileSearchOption', '( fsIncludeSubDirectories, fsIncludeHiddenS' +'ubDirectories, fsLastChangeAfter, fsLastChangeBefore, fsMaxSize, fsMinSize) TFileSearchOptions', 'set of TFileSearchOption TFileSearchTaskID', 'Int TFileSearchTerminationEvent','Procedure(const ID:TFileSearchTaskID;const Aborted:Boolean) TFileEnumeratorSyncMode', '( smPerFile, smPerDirectory ) SIRegister_IJclFileEnumerator(CL); SIRegister_TJclFileEnumerator(CL); Func JxFileSearch : IJclFileEnumerator JxTFileFlag', '(ffDebug,ffInfoInferred,ffPatched,ffPreRelease,ffPrivateBuild,ffSpecialBuild ) JxTFileFlags', 'set of TFileFlag FindClass('TOBJECT'),'EJclFileVersionInfoError SIRegister_TJclFileVersionInfo(CL); Func jxOSIdentToString( const OSIdent : DWORD) :Str Func jxOSFileTypeToString(const OSFileType: DWORD; const OSFileSubType : DWORD) :Str Func jxVersionResourceAvailable( const FileName :Str) :Bool TFileVersionFormat', '( vfMajorMinor, vfFull ) Func jxFormatVersionString( const HiV, LoV : Word) :Str; Func jxFormatVersionString1( const Major, Minor, Build, Revision : Word) :Str; //Func FormatVersionString2(const FixedInfo:TVSFixedFileInfo;VersionFrmat:TFileVersionFormat):str; //Proc VersionExtractFileInfo(const FixedInfo:TVSFixedFileInfo;var Major,Minor,Build,Revision:Word); //Proc VersionExtractProductInfo(const FixedInfo:TVSFixedFileInfo;var Major,Minor,Build,Revision:Word); //Func VersionFixedFileInfo(const FileName:str;var FixedInfo:TVSFixedFileInfo):Boolean Func jxVersionFixedFileInfoString(const FileName:str;VersionFormat:TFileVersionFormat;const NotAvailableText :str):str SIRegister_TJclTempFileStream(CL); FindClass('TOBJECT'),'TJclCustomFileMapping SIRegister_TJclFileMappingView(CL); TJclFileMappingRoundOffset', '( rvDown, rvUp ) SIRegister_TJclCustomFileMapping(CL); SIRegister_TJclFileMapping(CL); SIRegister_TJclSwapFileMapping(CL); SIRegister_TJclFileMappingStream(CL); TJclMappedTextReaderIndex', '( tiNoIndex, tiFull ) //PPCharArray', '^TPCharArray // will not work SIRegister_TJclMappedTextReader(CL); SIRegister_TJclFileMaskComparator(CL); FindClass('TOBJECT'),'EJclPathError FindClass('TOBJECT'),'EJclFileUtilsError FindClass('TOBJECT'),'EJclTempFileStreamError FindClass('TOBJECT'),'EJclTempFileStreamError FindClass('TOBJECT'),'EJclFileMappingError FindClass('TOBJECT'),'EJclFileMappingViewError Func jxPathGetLongName2( const Path :Str) :Str Func jxWin32DeleteFile( const FileName :Str; MoveToRecycleBin :Bool) :Bool Func jxWin32MoveFileReplaceExisting( const SrcFileName, DstFileName :Str) :Bool Func jxWin32BackupFile( const FileName :Str; Move :Bool) :Bool Func jxWin32RestoreFile( const FileName :Str) :Bool Func jxSamePath( const Path1, Path2 :Str) :Bool Proc jxPathListAddItems( var List :Str; const Items :Str) Proc jxPathListIncludeItems( var List :Str; const Items :Str) Proc jxPathListDelItems( var List :Str; const Items :Str) Proc jxPathListDelItem( var List :Str; const Index : Int) Func jxPathListItemCount( const List :Str) : Int Func jxPathListGetItem( const List :Str; const Index : Int) :Str Proc jxPathListSetItem( var List :Str; const Index : Int; const Value :Str) Func jxPathListItemIndex( const List, Item :Str) : Int Func jxParamName(Idx:Int;const Separator:str;const AllowedPrefixChars:str;TrimName:Bool):str; Func jxParamValue(Index:Int; const Separator :Str; TrimValue :Bool) :Str; Func jxParamValue1(const SearchName:str; const Separator :Str; CaseSensitive :Bool; const AllowedPrefixCharacters :Str; TrimValue :Bool) :Str; Func jxParamPos(const SearchName:Str;const Separator:str;CaseSensitive:Boolean;const AllowedPrefixCharacters string): Int end; Proc SIRegister_FileUtil(CL: TPSPascalCompiler); begin 'UTF8FileHeader','String #$ef#$bb#$bf); Func lCompareFilenames( const Filename1, Filename2 :Str) : Int Func lCompareFilenamesIgnoreCase( const Filename1, Filename2 :Str) : Int Func lCompareFilenames(const Filename1,Filename2 :Str; ResolveLinks :Bool): Int Func lCompareFilenames(Filename1:PChar;Len1:int;Filename2:PChar;Len2:int;ResolveLiks:bool):int; Func lFilenameIsAbsolute( const TheFilename :Str) :Bool Func lFilenameIsWinAbsolute( const TheFilename :Str) :Bool Func lFilenameIsUnixAbsolute( const TheFilename :Str) :Bool Proc lCheckIfFileIsExecutable( const AFilename :Str) Proc lCheckIfFileIsSymlink( const AFilename :Str) Func lFileIsReadable( const AFilename :Str) :Bool Func lFileIsWritable( const AFilename :Str) :Bool Func lFileIsText( const AFilename :Str) :Bool Func lFileIsText( const AFilename :Str; out FileReadable :Bool) :Bool Func lFileIsExecutable( const AFilename :Str) :Bool Func lFileIsSymlink( const AFilename :Str) :Bool Func lFileIsHardLink( const AFilename :Str) :Bool Func lFileSize( const Filename :Str) : int64; Func lGetFileDescription( const AFilename :Str) :Str Func lReadAllLinks( const Filename :Str; ExceptionOnError :Bool) :Str Func lTryReadAllLinks( const Filename :Str) :Str Func lDirPathExists( const FileName :Str) :Bool Func lForceDirectory( DirectoryName :Str) :Bool Func lDeleteDirectory(const DirectoryName:Str; OnlyChildren:Bool) :Bool Func lProgramDirectory :Str Func lDirectoryIsWritable( const DirectoryName :Str) :Bool Func lExtractFileNameOnly( const AFilename :Str) :Str Func lExtractFileNameWithoutExt( const AFilename :Str) :Str Func lCompareFileExt( const Filename, Ext :Str; CaseSensitive :Bool) : Int; Func lCompareFileExt( const Filename, Ext :Str) : Int; Func lFilenameIsPascalUnit( const Filename :Str) :Bool Func lAppendPathDelim( const Path :Str) :Str Func lChompPathDelim( const Path :Str) :Str Func lTrimFilename( const AFilename :Str) :Str Func lCleanAndExpandFilename( const Filename :Str) :Str Func lCleanAndExpandDirectory( const Filename :Str) :Str Func lCreateAbsoluteSearchPath( const SearchPath, BaseDirectory :Str) :Str Func lCreateRelativePath(const Filename,BaseDirectory string;UsePointDirectory:boolean;AlwaysRequireSharedBaseFolder:Bool):str Func lCreateAbsolutePath( const Filename, BaseDirectory :Str) :Str Func lFileIsInPath( const Filename, Path :Str) :Bool Func lFileIsInDirectory( const Filename, Directory :Str) :Bool TSearchFileInPathFlag', '( sffDontSearchInBasePath, sffSearchLoUpCase ) TSearchFileInPathFlags', 'set of TSearchFileInPathFlag AllDirectoryEntriesMask','String '* Func lGetAllFilesMask :Str Func lGetExeExt :Str Func lSearchFileInPath(const Filename,BasePath,SearchPath,Delimiter:Str;Flags:TSearchFileInPathFlags):str Func lSearchAllFilesInPath(const Filename,BasePath,SearchPath,Delimiter:str;Flags: TSearchFileInPathFlags):TStrings Func lFindDiskFilename( const Filename :Str) :Str Func lFindDiskFileCaseInsensitive( const Filename :Str) :Str Func lFindDefaultExecutablePath( const Executable :Str; const BaseDir:Str):str Func lGetDarwinSystemFilename( Filename :Str) :Str SIRegister_TFileIterator(CL); TFileFoundEvent', 'Proc ( FileIterator : TFileIterator) TDirectoryFoundEvent', 'Proc ( FileIterator : TFileIterator) TDirectoryEnterEvent', 'Proc ( FileIterator : TFileIterator) SIRegister_TFileSearcher(CL); Func lFindAllFiles(const SearchPath:str;SearchMsk:str;SearchSubDirs:Bool):TStringList Func lFindAllDirectories(const SearchPath:Str; SearchSubDirs:Bool): TStringList // TCopyFileFlag', '( cffOverwriteFile, cffCreateDestDirectory, cffPreserveTime ) // TCopyFileFlags', 'set of TCopyFileFlag Func lCopyFile(const SrcFilename,DestFilename:Str; Flags : TCopyFileFlags):Bool Func lCopyFile(const SrcFilename,DestFilename:Str; PreserveTime :Bool):Bool Func lCopyDirTree( const SourceDir, TargetDir :Str; Flags : TCopyFileFlags):Bool Func lReadFileToString( const Filename :Str) :Str Func lGetTempFilename( const Directory, Prefix :Str) :Str {Func NeedRTLAnsi :Bool Proc SetNeedRTLAnsi( NewValue :Bool) Func UTF8ToSys( const s :Str) :Str Func SysToUTF8( const s :Str) :Str Func ConsoleToUTF8( const s :Str) :Str Func UTF8ToConsole( const s :Str) :Str} Func FileExistsUTF8( const Filename :Str) :Bool Func FileAgeUTF8( const FileName :Str) : Longint Func DirectoryExistsUTF8( const Directory :Str) :Bool Func ExpandFileNameUTF8( const FileName :Str) :Str Func ExpandUNCFileNameUTF8( const FileName :Str) :Str Func ExtractShortPathNameUTF8( const FileName :Str) :Str Func FindFirstUTF8(const Path:Str; Attr : Longint; out Rslt : TSearchRec) : Longint Func FindNextUTF8( var Rslt : TSearchRec) : Longint Proc FindCloseUTF8( var F : TSearchrec) Func FileSetDateUTF8( const FileName :Str; Age : Longint) : Longint Func FileGetAttrUTF8( const FileName :Str) : Longint Func FileSetAttrUTF8( const Filename :Str; Attr : longint) : Longint Func DeleteFileUTF8( const FileName :Str) :Bool Func RenameFileUTF8( const OldName, NewName :Str) :Bool Func FileSearchUTF8(const Name, DirList :Str; ImplicitCurrentDir :Bool) :Str Func FileIsReadOnlyUTF8( const FileName :Str) :Bool Func GetCurrentDirUTF8 :Str Func SetCurrentDirUTF8( const NewDir :Str) :Bool Func CreateDirUTF8( const NewDir :Str) :Bool Func RemoveDirUTF8( const Dir :Str) :Bool Func ForceDirectoriesUTF8( const Dir :Str) :Bool Func FileOpenUTF8( const FileName :Str; Mode : Int) : THandle Func FileCreateUTF8( const FileName :Str) : THandle; Func FileCreateUTF81( const FileName :Str; Rights :Card) : THandle; Func ParamStrUTF8( Param : Int) :Str Func GetEnvironmentStringUTF8( Index : Int) :Str Func GetEnvironmentVariableUTF8( const EnvVar :Str) :Str Func GetAppConfigDirUTF8( Global :Bool; Create :Bool) :Str Func GetAppConfigFileUTF8(Global:Boolean; SubDir:boolean; CreateDir :Bool) :Str Func SysErrorMessageUTF8( ErrorCode : Int) :Str end; Proc SIRegister_Keyboard(CL: TPSPascalCompiler); begin //VK_F23 = 134; //{$EXTERNALSYM VK_F24} //VK_F24 = 135; TVirtualKeyCode', 'Int 'VK_MOUSEWHEELUP','Int'(134); 'VK_MOUSEWHEELDOWN','Int'(135); Func glIsKeyDown( c : Char) :Bool; Func glIsKeyDown1( vk : TVirtualKeyCode) :Bool; Func glKeyPressed( minVkCode : TVirtualKeyCode) : TVirtualKeyCode Func glVirtualKeyCodeToKeyName( vk : TVirtualKeyCode) :Str Func glKeyNameToVirtualKeyCode( const keyName :Str) : TVirtualKeyCode Func glCharToVirtualKeyCode( c : Char) : TVirtualKeyCode Proc glKeyboardNotifyWheelMoved( wheelDelta : Int) end; Proc SIRegister_GLCrossPlatform(CL: TPSPascalCompiler); begin TGLPoint', 'TPoint //PGLPoint', '^TGLPoint // will not work TGLRect', 'TRect //PGLRect', '^TGLRect // will not work TDelphiColor', 'TColor TGLPicture', 'TPicture TGLGraphic', 'TGraphic TGLBitmap', 'TBitmap //TGraphicClass', 'class of TGraphic TGLTextLayout', '( tlTop, tlCenter, tlBottom ) TGLMouseButton', '( mbLeft, mbRight, mbMiddle ) TGLMouseEvent', 'Proc ( Sender : TObject; Button : TGLMouse' +'Button; Shift : TShiftState; X, Y : Int) TGLMouseMoveEvent', 'TMouseMoveEvent TGLKeyEvent', 'TKeyEvent TGLKeyPressEvent', 'TKeyPressEvent EGLOSError', 'EWin32Error EGLOSError', 'EWin32Error EGLOSError', 'EOSError 'glsAllFilter','string'All // sAllFilter Func GLPoint( const x, y : Int) : TGLPoint Func GLRGB( const r, g, b : Byte) : TColor Func GLColorToRGB( color : TColor) : TColor Func GLGetRValue( rgb : DWORD) : Byte Func GLGetGValue( rgb : DWORD) : Byte Func GLGetBValue( rgb : DWORD) : Byte Proc GLInitWinColors Func GLRect( const aLeft, aTop, aRight, aBottom : Int) : TGLRect Proc GLInflateGLRect( var aRect : TGLRect; dx, dy : Int) Proc GLIntersectGLRect( var aRect : TGLRect; const rect2 : TGLRect) Proc GLInformationDlg( const msg :Str) Func GLQuestionDlg( const msg :Str) :Bool Func GLInputDlg( const aCaption, aPrompt, aDefault :Str) :Str Func GLSavePictureDialog( var aFileName :Str; const aTitle :Str) :Bool Func GLOpenPictureDialog( var aFileName :Str; const aTitle :Str) :Bool Func GLApplicationTerminated :Bool Proc GLRaiseLastOSError Proc GLFreeAndNil( var anObject: TObject) Func GLGetDeviceLogicalPixelsX( device :Card) : Int Func GLGetCurrentColorDepth : Int Func GLPixelFormatToColorBits( aPixelFormat : TPixelFormat) : Int Func GLBitmapScanLine( aBitmap : TGLBitmap; aRow : Int) : Pointer Proc GLSleep( length :Card) Proc GLQueryPerformanceCounter( var val : Int64) Func GLQueryPerformanceFrequency( var val : Int64) :Bool Func GLStartPrecisionTimer : Int64 Func GLPrecisionTimerLap( const precisionTimer : Int64) : Double Func GLStopPrecisionTimer( const precisionTimer : Int64) : Double Func GLRDTSC : Int64 Proc GLLoadBitmapFromInstance( ABitmap : TBitmap; AName :Str) Func GLOKMessageBox( const Text, Caption :Str) : Int Proc GLShowHTMLUrl( Url :Str) Proc GLShowCursor( AShow :Bool) Proc GLSetCursorPos( AScreenX, AScreenY : Int) Proc GLGetCursorPos( var point : TGLPoint) Func GLGetScreenWidth : Int Func GLGetScreenHeight : Int Func GLGetTickCount : int64 Func RemoveSpaces(const str :Str) :Str; TNormalMapSpace','( nmsObject, nmsTangent ) Proc CalcObjectSpaceLightVectors(Light:TAffineVector;Vertices TAffineVectorList;Colors:TVectorList) Proc SetupTangentSpace( Vertices, Normals, TexCoords, Tangents, BiNormals : TAffineVectorList) Proc CalcTangentSpaceLightVectors(Light:TAffineVector;Vertices,Normals,Tangents,BiNormals:TAffineVectorList;Colors:TVectorList) Func CreateObjectSpaceNormalMap(Width,Height:Int;HiNormals,HiTexCoords:TAffineVectorList):TGLBitmap Func CreateTangentSpaceNormalMap(Width, Height:Int;HiNormals, HiTexCoords,LoNormals,LoTexCoords,Tangents, BiNormals : TAffineVectorList) : TGLBitmap end; Proc SIRegister_GLStarRecord(CL: TPSPascalCompiler); begin TGLStarRecord', 'record RA: Word; DEC: SmallInt; BVColorIndex: Byte; VMagnitude: Byte; end // PGLStarRecord', '^TGLStarRecord // will not work Func StarRecordPositionZUp( const starRecord : TGLStarRecord) : TAffineVector Func StarRecordPositionYUp( const starRecord : TGLStarRecord) : TAffineVector Func StarRecordColor( const starRecord : TGLStarRecord; bias : Single) : TVector end; Proc SIRegister_GeometryBB(CL: TPSPascalCompiler); begin TAABB', 'record min : TAffineVector; max : TAffineVector; end //PAABB', '^TAABB // will not work TBSphere', 'record Center : TAffineVector; Radius : single; end TClipRect', 'record Left : Single; Top:Single; Right:Single; Bottom : Single; end TSpaceContains', '(scNoOverlap, scContainsFully, scContainsPartially ) Func AddBB( var c1 : THmgBoundingBox; const c2 : THmgBoundingBox) : THmgBoundingBox Proc AddAABB( var aabb : TAABB; const aabb1 : TAABB) Proc SetBB( var c : THmgBoundingBox; const v : TVector) Proc SetAABB( var bb : TAABB; const v : TVector) Proc BBTransform( var c : THmgBoundingBox; const m : TMatrix) Proc AABBTransform( var bb : TAABB; const m : TMatrix) Proc AABBScale( var bb : TAABB; const v : TAffineVector) Func BBMinX( const c : THmgBoundingBox) : Single Func BBMaxX( const c : THmgBoundingBox) : Single Func BBMinY( const c : THmgBoundingBox) : Single Func BBMaxY( const c : THmgBoundingBox) : Single Func BBMinZ( const c : THmgBoundingBox) : Single Func BBMaxZ( const c : THmgBoundingBox) : Single Proc AABBInclude( var bb : TAABB; const p : TAffineVector) Proc AABBFromSweep(var SweepAABB: TAABB; const Start,Dest:TVector; const Radius:Single) Func AABBIntersection( const aabb1, aabb2 : TAABB) : TAABB Func BBToAABB( const aBB : THmgBoundingBox) : TAABB Func AABBToBB( const anAABB : TAABB) : THmgBoundingBox; Func AABBToBB1( const anAABB : TAABB; const m : TMatrix) : THmgBoundingBox; Proc OffsetAABB( var aabb : TAABB; const delta : TAffineVector); Proc OffsetAABB1( var aabb : TAABB; const delta : TVector); Func IntersectAABBs( const aabb1, aabb2 : TAABB; const m1To2, m2To1 : TMatrix) :Bool; Func IntersectAABBsAbsoluteXY( const aabb1, aabb2 : TAABB) :Bool Func IntersectAABBsAbsoluteXZ( const aabb1, aabb2 : TAABB) :Bool Func IntersectAABBsAbsolute( const aabb1, aabb2 : TAABB) :Bool Func AABBFitsInAABBAbsolute( const aabb1, aabb2 : TAABB) :Bool Func PointInAABB( const p : TAffineVector; const aabb : TAABB) :Bool; Func PointInAABB1( const p : TVector; const aabb : TAABB) :Bool; Func PlaneIntersectAABB( Normal : TAffineVector; d : single; aabb : TAABB) :Bool Func TriangleIntersectAABB( const aabb : TAABB; v1, v2, v3 : TAffineVector) :Bool Proc ExtractAABBCorners( const AABB : TAABB; var AABBCorners : TAABBCorners) Proc AABBToBSphere( const AABB : TAABB; var BSphere : TBSphere) Proc BSphereToAABB( const BSphere : TBSphere; var AABB : TAABB); Func BSphereToAABB1( const center : TAffineVector; radius : Single) : TAABB; Func BSphereToAABB2( const center : TVector; radius : Single) : TAABB; Func AABBContainsAABB( const mainAABB, testAABB : TAABB) : TSpaceContains Func BSphereContainsAABB( const mainBSphere : TBSphere; const testAABB : TAABB) : TSpaceContains Func BSphereContainsBSphere( const mainBSphere, testBSphere : TBSphere) : TSpaceContains Func AABBContainsBSphere(const mainAABB:TAABB;const testBSphere:TBSphere): TSpaceContains Func PlaneContainsBSphere(const Location,Normal:TAffineVector;const testBSphere:TBSphere):TSpaceContains Func FrustumContainsBSphere(const Frustum:TFrustum;const testBSphere:TBSphere): TSpaceContains Func FrustumContainsAABB( const Frustum:TFrustum;const testAABB:TAABB): TSpaceContains Func ClipToAABB( const v : TAffineVector; const AABB : TAABB) : TAffineVector Func BSphereIntersectsBSphere( const mainBSphere, testBSphere : TBSphere) :Bool Proc IncludeInClipRect( var clipRect : TClipRect; x, y : Single) Func AABBToClipRect(const aabb:TAABB;modelViewProjection:TMatrix;viewportSizeX,viewportSizeY:Int):TClipRect end; Proc SIRegister_GeometryCoordinates(CL: TPSPascalCompiler); begin Proc Cylindrical_Cartesian( const r, theta, z1 : single; var x, y, z : single); Proc Cylindrical_Cartesian1( const r, theta, z1 : double; var x, y, z : double); Proc Cylindrical_Cartesian2(const r,theta,z1: single; var x,y,z single; var ierr : Int); Proc Cylindrical_Cartesian3(const r,theta,z1: double; var x,y,z: double; var ierr : Int); Proc Cartesian_Cylindrical( const x, y, z1 : single; var r, theta, z : single); Proc Cartesian_Cylindrical1( const x, y, z1 : double; var r, theta, z : double); Proc Spherical_Cartesian( const r, theta, phi : single; var x, y, z : single); Proc Spherical_Cartesian1( const r, theta, phi : double; var x, y, z : double); Proc Spherical_Cartesian2(const r,theta, phi: single;var x,y,z:single;varierr:Int); Proc Spherical_Cartesian3(const r,theta, phi:double;var x,y,z:double;var ierr:Int); Proc Cartesian_Spherical( const x, y, z : single; var r, theta, phi : single); Proc Cartesian_Spherical1( const v : TAffineVector; var r, theta, phi : Single); Proc Cartesian_Spherical2( const x, y, z : double; var r, theta, phi : double); Proc ProlateSpheroidal_Cartesian( const xi, eta, phi, a : single; var x, y, z : single); Proc ProlateSpheroidal_Cartesian1(const xi,eta,phi,a: double;var x,y, z : double); Proc ProlateSpheroidal_Cartesian2(const xi,eta,phi,a:singl;var x,y,z:single;var ierr:Int); Proc ProlateSpheroidal_Cartesian3(const xi,eta,phi,a:doubl;var x,y,z:double;var ierr:Int); Proc OblateSpheroidal_Cartesian( const xi, eta, phi, a : single; var x, y, z : single); Proc OblateSpheroidal_Cartesian1(const xi, eta, phi, a : double; var x, y, z : double); Proc OblateSpheroidal_Cartesian2(const xi,eta,phi,a:single;var x,y,z:single;var ierr:Int); Proc OblateSpheroidal_Cartesian3(const xi,eta,phi,a:double;var x,y,z:double;var ierr:Int); Proc BipolarCylindrical_Cartesian(const u, v, z1, a: single; var x, y, z : single); Proc BipolarCylindrical_Cartesian1(const u, v, z1, a: double; var x, y, z: double); Proc BipolarCylindrical_Cartesian2(const u,v,z1,a:single;var x,y,z:single;var ierr:Int); Proc BipolarCylindrical_Cartesian3(const u,v,z1,a: double;var x,y,z:double;var ierr:Int); end; Proc SIRegister_VectorGeometry(CL: TPSPascalCompiler); begin 'EPSILON','Single').setExtended( 1e-40); 'EPSILON2','Single').setExtended( 1e-30); } TRenderContextClippingInfo', 'record origin : TVector; clippingD' +irection : TVector; viewPortRadius:Single;farClippingDistance:Single;frustum:TFrustum;end THmgPlane', 'TVector TDoubleHmgPlane', 'THomogeneousDblVector {TTransType', '( ttScaleX, ttScaleY, ttScaleZ, ttShearXY, ttShear' +'XZ, ttShearYZ, ttRotateX, ttRotateY, ttRotateZ, ttTranslateX, ttTranslateY' +', ttTranslateZ, ttPerspectiveX, ttPerspectiveY, ttPerspectiveZ, ttPerspectiveW )} TSingleArray', 'array of Single TTransformations','array [0..15] of Single) TPackedRotationMatrix','array [0..2] of Smallint) TVertex', 'TAffineVector //TVectorGL', 'THomogeneousFltVector //TMatrixGL', 'THomogeneousFltMatrix // TPackedRotationMatrix = array [0..2] of SmallInt; Func glTexPointMake( const s, t : Single) : TTexPoint Func glAffineVectorMake( const x, y, z : Single) : TAffineVector; Func glAffineVectorMake1( const v : TVectorGL) : TAffineVector; Proc glSetAffineVector( var v : TAffineVector; const x, y, z : Single); Proc glSetVector( var v : TAffineVector; const x, y, z : Single); Proc glSetVector1( var v : TAffineVector; const vSrc : TVectorGL); Proc glSetVector2( var v : TAffineVector; const vSrc : TAffineVector); Proc glSetVector3( var v : TAffineDblVector; const vSrc : TAffineVector); Proc glSetVector4( var v : TAffineDblVector; const vSrc : TVectorGL); Func glVectorMake( const v : TAffineVector; w : Single) : TVectorGL; Func glVectorMake1( const x, y, z : Single; w : Single) : TVectorGL; Func glPointMake( const x, y, z : Single) : TVectorGL; Func glPointMake1( const v : TAffineVector) : TVectorGL; Func glPointMake2( const v : TVectorGL) : TVectorGL; Proc glSetVector5( var v : TVectorGL; const x, y, z : Single; w : Single); Proc glSetVector6( var v : TVectorGL; const av : TAffineVector; w : Single); Proc glglSetVector7( var v : TVectorGL; const vSrc : TVectorGL); Proc glMakePoint( var v : TVectorGL; const x, y, z : Single); Proc glMakePoint1( var v : TVectorGL; const av : TAffineVector); Proc glMakePoint2( var v : TVectorGL; const av : TVectorGL); Proc glMakeVector( var v : TAffineVector; const x, y, z : Single); Proc glMakeVector1( var v : TVectorGL; const x, y, z : Single); Proc glMakeVector2( var v : TVectorGL; const av : TAffineVector); Proc glMakeVector3( var v : TVectorGL; const av : TVectorGL); Proc glRstVector( var v : TAffineVector); Proc glRstVector1( var v : TVectorGL); Func glVectorAdd( const v1, v2 : TAffineVector) : TAffineVector; Proc glVectorAdd1( const v1, v2 : TAffineVector; var vr : TAffineVector); //Proc VectorAdd2( const v1, v2 : TAffineVector; vr : PAffineVector); Func glVectorAdd3( const v1, v2 : TVectorGL) : TVectorGL; Proc glVectorAdd4( const v1, v2 : TVectorGL; var vr : TVectorGL); Func glVectorAdd5( const v : TAffineVector; const f : Single) : TAffineVector; Func glVectorAdd6( const v : TVectorGL; const f : Single) : TVectorGL; Proc glAddVector7( var v1 : TAffineVector; const v2 : TAffineVector); Proc glAddVector8( var v1 : TAffineVector; const v2 : TVectorGL); Proc glAddVector9( var v1 : TVectorGL; const v2 : TVectorGL); Proc glAddVector10( var v : TAffineVector; const f : Single); Proc glAddVector11( var v : TVectorGL; const f : Single); //Proc TexPointArrayAdd(const src:PTexPointArray;const delta:TTexPoint;const nb:Int;dest:PTexPointArray); //Proc TexPointArrayScaleAndAdd(const src:PTexPointArray;const delta:TTexPoint;const nb:Int;const scale: TTexPoint; dest : PTexPointArray); //Proc VectorArrayAdd(const src:PAffineVectorArray;const delta:TAffineVector;const nb:Int;dest: PAffineVectorArray); Func glVectorSubtract( const V1, V2 : TAffineVector) : TAffineVector; Proc glVectorSubtract1( const v1, v2 : TAffineVector; var result : TAffineVector); Proc glVectorSubtract2( const v1, v2 : TAffineVector; var result : TVectorGL); Proc glVectorSubtract3(const v1: TVectorGL; v2: TAffineVector; var result : TVectorGL); Func glVectorSubtract4( const V1, V2 : TVectorGL) : TVectorGL; Proc glVectorSubtract5( const v1, v2 : TVectorGL; var result : TVectorGL); Proc glVectorSubtract6( const v1, v2 : TVectorGL; var result : TAffineVector); Func glVectorSubtract7( const v1 : TAffineVector; delta : Single) : TAffineVector; Func glVectorSubtract8( const v1 : TVectorGL; delta : Single) : TVectorGL; Proc glSubtractVector9( var V1 : TAffineVector; const V2 : TAffineVector); Proc glSubtractVector10( var V1 : TVectorGL; const V2 : TVectorGL); Proc glCombineVector( var vr : TAffineVector; const v : TAffineVector; var f : Single); //Proc CombineVector1(var vr: TAffineVector; const v : TAffineVector; pf : PFloat); Func glTexPointCombine( const t1, t2 : TTexPoint; f1, f2 : Single) : TTexPoint Func glVectorCombine2(const V1,V2: TAffineVector; const F1, F2 : Single) : TAffineVector; Func glVectorCombine33( const V1, V2, V3 : TAffineVector; const F1, F2, F3 : Single) : TAffineVector; Proc glVectorCombine34(const V1,V2,V3:TAffineVector; const F1,F2,F3: Single; var vr : TAffineVector); Proc glCombineVector5( var vr : TVectorGL; const v : TVectorGL; var f : Single); Proc glCombineVector6( var vr : TVectorGL; const v : TAffineVector; var f : Single); Func glVectorCombine7( const V1, V2 : TVectorGL; const F1, F2 : Single) : TVectorGL; Func glVectorCombine8(const V1:TVectorGL;const V2:TAffineVector;const F1,F2:Single): TVectorGL; Proc glVectorCombine9(const V1:TVectorGL;const V2:TAffineVector;const F1,F2:Single;var vr:TVectorGL); Proc glVectorCombine10( const V1, V2 : TVectorGL; const F1, F2 : Single; var vr : TVectorGL); Proc glVectorCombine11(const V1,V2 : TVectorGL; const F2 : Single; var vr: TVectorGL); Func glVectorCombine3(const V1,V2,V3: TVectorGL; const F1, F2, F3 : Single): TVectorGL; Proc glVectorCombine31(const V1, V2, V3:TVectorGL; const F1,F2, F3:Single; var vr : TVectorGL); Func glVectorDotProduct( const V1, V2 : TAffineVector) : Single; Func glVectorDotProduct1( const V1, V2 : TVectorGL) : Single; Func glVectorDotProduct2( const V1 : TVectorGL; const V2 : TAffineVector) : Single; Func glPointProject( const p, origin, direction : TAffineVector) : Single; Func glPointProject1( const p, origin, direction : TVectorGL) : Single; Func glVectorCrossProduct( const V1, V2 : TAffineVector) : TAffineVector; Func glVectorCrossProduct1( const V1, V2 : TVectorGL) : TVectorGL; Proc glVectorCrossProduct2( const v1, v2 : TVectorGL; var vr : TVectorGL); Proc glVectorCrossProduct3( const v1, v2 : TAffineVector; var vr : TVectorGL); Proc glVectorCrossProduct4( const v1, v2 : TVectorGL; var vr : TAffineVector); Proc glVectorCrossProduct5( const v1, v2 : TAffineVector; var vr : TAffineVector); Func glLerp( const start, stop, t : Single) : Single Func glAngleLerp( start, stop, t : Single) : Single Func glDistanceBetweenAngles( angle1, angle2 : Single) : Single Func glTexPointLerp( const t1, t2 : TTexPoint; t : Single) : TTexPoint; Func glVectorLerp( const v1, v2 : TAffineVector; t : Single) : TAffineVector; Proc glVectorLerp1(const v1,v2: TAffineVector; t : Single; var vr : TAffineVector); Func glVectorLerp2( const v1, v2 : TVectorGL; t : Single) : TVectorGL; Proc glVectorLerp3( const v1, v2 : TVectorGL; t : Single; var vr : TVectorGL); Func glVectorAngleLerp( const v1, v2 : TAffineVector; t : Single) : TAffineVector; Func glVectorAngleCombine( const v1, v2 : TAffineVector; f : Single) : TAffineVector; //Proc VectorArrayLerp(const src1,src2:PVectorArray; t:Single; n:Int; dest:PVectorArray); //Proc VectorArrayLerp1(const src1,src2:PAffineVectorArray; t:Single;n:Int;dest: PAffineVectorArray); Func glVectorLength( const x, y : Single) : Single; Func glVectorLength1( const x, y, z : Single) : Single; Func glVectorLength2( const v : TAffineVector) : Single; Func glVectorLength3( const v : TVectorGL) : Single; Func glVectorLength4( const v : array of Single) : Single; Func glVectorNorm( const x, y : Single) : Single; Func glVectorNorm1( const v : TAffineVector) : Single; Func glVectorNorm2( const v : TVectorGL) : Single; Func glVectorNorm3( var V : array of Single) : Single; Proc glNormalizeVector( var v : TAffineVector); Proc glNormalizeVector1( var v : TVectorGL); Func glVectorNormalize( const v : TAffineVector) : TAffineVector; Func glVectorNormalize1( const v : TVectorGL) : TVectorGL; // Proc NormalizeVectorArray( list : PAffineVectorArray; n : Int); Func glVectorAngleCosine( const V1, V2 : TAffineVector) : Single Func glVectorNegate( const v : TAffineVector) : TAffineVector; Func glVectorNegate1( const v : TVectorGL) : TVectorGL; Proc glNegateVector( var V : TAffineVector); Proc glNegateVector2( var V : TVectorGL); Proc glNegateVector3( var V : array of Single); Proc glScaleVector( var v : TAffineVector; factor : Single); Proc glScaleVector1( var v : TAffineVector; const factor : TAffineVector); Proc glScaleVector2( var v : TVectorGL; factor : Single); Proc glScaleVector3( var v : TVectorGL; const factor : TVectorGL); Func glVectorScale( const v : TAffineVector; factor : Single) : TAffineVector; Proc glVectorScale1( const v : TAffineVector; factor : Single; var vr : TAffineVector); Func glVectorScale2( const v : TVectorGL; factor : Single) : TVectorGL; Proc glVectorScale3( const v : TVectorGL; factor : Single; var vr : TVectorGL); Proc glVectorScale4( const v : TVectorGL; factor : Single; var vr : TAffineVector); Proc glDivideVector( var v : TVectorGL; const divider : TVectorGL); Func glVectorEquals( const V1, V2 : TVectorGL) :Bool; Func glVectorEquals1( const V1, V2 : TAffineVector) :Bool; Func glAffineVectorEquals( const V1, V2 : TVectorGL) :Bool; Func glVectorIsNull( const v : TVectorGL) :Bool; Func glVectorIsNull1( const v : TAffineVector) :Bool; Func glVectorSpacing( const v1, v2 : TTexPoint) : Single; Func glVectorSpacing1( const v1, v2 : TAffineVector) : Single; Func glVectorSpacing2( const v1, v2 : TVectorGL) : Single; Func glVectorDistance( const v1, v2 : TAffineVector) : Single; Func glVectorDistance1( const v1, v2 : TVectorGL) : Single; Func glVectorDistance2( const v1, v2 : TAffineVector) : Single; Func glVectorDistance21( const v1, v2 : TVectorGL) : Single; Func glVectorPerpendicular( const V, N : TAffineVector) : TAffineVector Func glVectorReflect( const V, N : TAffineVector) : TAffineVector Proc glRotateVector(var vector:TVectorGL;const axis: TAffineVector; angle : Single); Proc glRotateVector1( var vector:TVectorGL;const axis : TVectorGL; angle : Single); Proc glRotateVectorAroundY( var v : TAffineVector; alpha : Single) Func glVectorRotateAroundX( const v : TAffineVector; alpha : Single) : TAffineVector; Func glVectorRotateAroundY( const v : TAffineVector; alpha : Single) : TAffineVector; Proc glVectorRotateAroundY1(const v:TAffineVector;alpha:Single; var vr : TAffineVector); Func glVectorRotateAroundZ(const v : TAffineVector; alpha : Single) : TAffineVector; Proc glAbsVector( var v : TVectorGL); Proc glAbsVector1( var v : TAffineVector); Func glVectorAbs( const v : TVectorGL) : TVectorGL; Func glVectorAbs1( const v : TAffineVector) : TAffineVector; Proc glSetMatrix( var dest : THomogeneousDblMatrix; const src : TMatrixGL); Proc glSetMatrix1( var dest : TAffineMatrix; const src : TMatrixGL); Proc glSetMatrix2( var dest : TMatrixGL; const src : TAffineMatrix); Proc glSetMatrixRow( var dest : TMatrixGL; rowNb : Int; const aRow : TVectorGL); Func glCreateScaleMatrix( const v : TAffineVector) : TMatrixGL; Func glCreateScaleMatrix1( const v : TVectorGL) : TMatrixGL; Func glCreateTranslationMatrix( const V : TAffineVector) : TMatrixGL; Func glCreateTranslationMatrix1( const V : TVectorGL) : TMatrixGL; Func glCreateScaleAndTranslationMatrix( const scale, offset : TVectorGL) : TMatrixGL; Func glCreateRotationMatrixX( const sine, cosine : Single) : TMatrixGL; Func glCreateRotationMatrixX1( const angle : Single) : TMatrixGL; Func glCreateRotationMatrixY( const sine, cosine : Single) : TMatrixGL; Func glCreateRotationMatrixY1( const angle : Single) : TMatrixGL; Func glCreateRotationMatrixZ( const sine, cosine : Single) : TMatrixGL; Func glCreateRotationMatrixZ1( const angle : Single) : TMatrixGL; Func glCreateRotationMatrix(const anAxis:TAffineVector; angle: Single): TMatrixGL; Func glCreateRotationMatrix1( const anAxis : TVectorGL; angle : Single) : TMatrixGL; Func glCreateAffineRotationMatrix(const anAxis:TAffineVector;angle:Single):TAffineMatrix Func glMatrixMultiply( const M1, M2 : TAffineMatrix) : TAffineMatrix; Func glMatrixMultiply1( const M1, M2 : TMatrixGL) : TMatrixGL; Proc glMatrixMultiply2( const M1, M2 : TMatrixGL; var MResult : TMatrixGL); Func glVectorTransform( const V : TVectorGL; const M : TMatrixGL) : TVectorGL; Func glVectorTransform1( const V : TVectorGL; const M : TAffineMatrix) : TVectorGL; Func glVectorTransform2( const V : TAffineVector; const M : TMatrixGL) : TAffineVector; Func glVectorTransform3(const V : TAffineVector; const M : TAffineMatrix):TAffineVector; Func glMatrixDeterminant( const M : TAffineMatrix) : Single; Func glMatrixDeterminant1( const M : TMatrixGL) : Single; Proc glAdjointMatrix( var M : TMatrixGL); Proc glAdjointMatrix1( var M : TAffineMatrix); Proc glScaleMatrix( var M : TAffineMatrix; const factor : Single); Proc glScaleMatrix1( var M : TMatrixGL; const factor : Single); Proc glTranslateMatrix( var M : TMatrixGL; const v : TAffineVector); Proc glTranslateMatrix1( var M : TMatrixGL; const v : TVectorGL); Proc glNormalizeMatrix( var M : TMatrixGL) Proc glTransposeMatrix( var M : TAffineMatrix); Proc glTransposeMatrix1( var M : TMatrixGL); Proc glInvertMatrix( var M : TMatrixGL); Proc glInvertMatrix1( var M : TAffineMatrix); Func glAnglePreservingMatrixInvert( const mat : TMatrixGL) : TMatrixGL Func glMatrixDecompose( const M : TMatrixGL; var Tran : TTransformations) :Bool Func glPlaneMake( const p1, p2, p3 : TAffineVector) : THmgPlane; Func glPlaneMake1( const p1, p2, p3 : TVectorGL) : THmgPlane; Func glPlaneMake2( const point, normal : TAffineVector) : THmgPlane; Func glPlaneMake3( const point, normal : TVectorGL) : THmgPlane; Proc glSetPlane( var dest : TDoubleHmgPlane; const src : THmgPlane) Proc glNormalizePlane( var plane : THmgPlane) Func glPlaneEvaluatePoint(const plane:THmgPlane;const point: TAffineVector): Single; Func glPlaneEvaluatePoint1( const plane : THmgPlane; const point : TVectorGL) : Single; Func glCalcPlaneNormal( const p1, p2, p3 : TAffineVector) : TAffineVector; Proc glCalcPlaneNormal1( const p1, p2, p3 : TAffineVector; var vr : TAffineVector); Proc glCalcPlaneNormal2( const p1, p2, p3 : TVectorGL; var vr : TAffineVector); Func glPointIsInHalfSpace( const point, planePoint, planeNormal : TVectorGL) :Bool; Func glPointIsInHalfSpace1(const point,planePoint,planeNormal : TAffineVector) :Bool; Func glPointPlaneDistance(const point, planePoint, planeNormal: TVectorGL) : Single; Func glPointPlaneDistance1(const point, planePoint, planeNormal: TAffineVector): Single; Func glPointSegmentClosestPoint(const point,segmentStart, segmentStop:TAffineVector):TAffineVector Func glPointSegmentDistance(const point,segmentStart,segmentStop:TAffineVector): single Func glPointLineClosestPoint(const point, linePoint, lineDirection : TAffineVector) : TAffineVector Func glPointLineDistance(const point,linePoint,lineDirection:TAffineVector): Single Proc SglegmentSegmentClosestPoint(const S0Start,S0Stop,S1Start,S1Stop TAffineVector; var Segment0Closest,Segment1Closest: TAffineVector) Func glSegmentSegmentDistance(const S0Start,S0Stop,S1Start,S1Stop:TAffineVector):single TEulerOrder', '( eulXYZ, eulXZY, eulYXZ, eulYZX, eulZXY, eulZYX) Func glQuaternionMake( const Imag : array of Single; Real : Single) : TQuaternion Func glQuaternionConjugate( const Q : TQuaternion) : TQuaternion Func glQuaternionMagnitude( const Q : TQuaternion) : Single Proc glNormalizeQuaternion( var Q : TQuaternion) Func glQuaternionFromPoints( const V1, V2 : TAffineVector) : TQuaternion Proc glQuaternionToPoints(const Q: TQuaternion; var ArcFrom,ArcTo : TAffineVector) Func glQuaternionFromMatrix( const mat : TMatrixGL) : TQuaternion Func glQuaternionToMatrix( quat : TQuaternion) : TMatrixGL Func glQuaternionToAffineMatrix( quat : TQuaternion) : TAffineMatrix Func glQuaternionFromAngleAxis(const angle:Single;const axis:TAffineVector) : TQuaternion Func glQuaternionFromRollPitchYaw( const r, p, y : Single) : TQuaternion Func glQuaternionFromEuler( const x, y, z : Single; eulerOrder : TEulerOrder) : TQuaternion Func glQuaternionMultiply( const qL, qR : TQuaternion) : TQuaternion Func glQuaternionSlerp(const QStart,QEnd:TQuaternion;Spin:Int; t: Single): TQuaternion; Func glQuaternionSlerp1(const source, dest:TQuaternion; const t: Single) : TQuaternion; Func glLnXP1( X : Extended) : Extended Func glLog10( X : Extended) : Extended Func glLog2( X : Extended) : Extended; Func glLog21( X : Single) : Single; Func glLogN( Base, X : Extended) : Extended Func glIntPower( Base : Extended; Exponent : Int) : Extended Func glPower( const Base, Exponent : Single) : Single; Func glPower1( Base : Single; Exponent : Int) : Single; Func glDegToRad( const Degrees : Extended) : Extended; Func glDegToRad1( const Degrees : Single) : Single; Func glRadToDeg( const Radians : Extended) : Extended; Func glRadToDeg1( const Radians : Single) : Single; Func glNormalizeAngle( angle : Single) : Single Func glNormalizeDegAngle( angle : Single) : Single Proc glSinCos( const Theta : Extended; var Sin, Cos : Extended); Proc glSinCos11( const Theta : Double; var Sin, Cos : Double); Proc glSinCos0( const Theta : Single; var Sin, Cos : Single); Proc glSinCos1( const theta, radius : Double; var Sin, Cos : Extended); Proc glSinCos2( const theta, radius : Double; var Sin, Cos : Double); Proc glSinCos3( const theta, radius : Single; var Sin, Cos : Single); Proc glPrepareSinCosCache(var s,c: array of Single; startAngle,stopAngle : Single) Func glArcCos( const X : Extended) : Extended; Func glArcCos1( const x : Single) : Single; Func glArcSin( const X : Extended) : Extended; Func glArcSin1( const X : Single) : Single; Func glArcTan21( const Y, X : Extended) : Extended; Func glArcTan21( const Y, X : Single) : Single; Func glFastArcTan2( y, x : Single) : Single Func glTan( const X : Extended) : Extended; Func glTan1( const X : Single) : Single; Func glCoTan( const X : Extended) : Extended; Func glCoTan1( const X : Single) : Single; Func glSinh( const x : Single) : Single; Func glSinh1( const x : Double) : Double; Func glCosh( const x : Single) : Single; Func glCosh1( const x : Double) : Double; Func glRSqrt( v : Single) : Single Func glRLength( x, y : Single) : Single Func glISqrt( i : Int) : Int Func glILength( x, y : Int) : Int; Func glILength1( x, y, z : Int) : Int; Proc glRegisterBasedExp Proc glRandomPointOnSphere( var p : TAffineVector) Func glRoundInt( v : Single) : Single; Func glRoundInt1( v : Extended) : Extended; Func glTrunc( v : Single) : Int; Func glTrunc64( v : Extended) : Int64; Func glInt( v : Single) : Single; Func glInt1( v : Extended) : Extended; Func glFrac( v : Single) : Single; Func glFrac1( v : Extended) : Extended; Func glRound( v : Single) : Int; Func glRound64( v : Single) : Int64; Func glRound641( v : Extended) : Int64; Func glTrunc( X : Extended) : Int64 Func glRound( X : Extended) : Int64 Func glFrac( X : Extended) : Extended Func glCeil( v : Single) : Int; Func glCeil64( v : Extended) : Int64; Func glFloor( v : Single) : Int; Func glFloor64( v : Extended) : Int64; Func glScaleAndRound( i : Int; var s : Single) : Int Func glSign( x : Single) : Int Func glIsInRange( const x, a, b : Single) :Bool; Func glIsInRange1( const x, a, b : Double) :Bool; Func glIsInCube( const p, d : TAffineVector) :Bool; Func glIsInCube1( const p, d : TVectorGL) :Bool; //Func MinFloat( values : PSingleArray; nbItems : Int) : Single; //Func MinFloat1( values : PDoubleArray; nbItems : Int) : Double; //Func MinFloat2( values : PExtendedArray; nbItems : Int) : Extended; Func glMinFloat3( const v1, v2 : Single) : Single; Func glMinFloat4( const v : array of Single) : Single; Func glMinFloat5( const v1, v2 : Double) : Double; Func glMinFloat6( const v1, v2 : Extended) : Extended; Func glMinFloat7( const v1, v2, v3 : Single) : Single; Func glMinFloat8( const v1, v2, v3 : Double) : Double; Func glMinFloat9( const v1, v2, v3 : Extended) : Extended; //Func MaxFloat10( values : PSingleArray; nbItems : Int) : Single; //Func MaxFloat( values : PDoubleArray; nbItems : Int) : Double; //Func MaxFloat1( values : PExtendedArray; nbItems : Int) : Extended; Func glMaxFloat2( const v : array of Single) : Single; Func glMaxFloat3( const v1, v2 : Single) : Single; Func glMaxFloat4( const v1, v2 : Double) : Double; Func glMaxFloat5( const v1, v2 : Extended) : Extended; Func glMaxFloat6( const v1, v2, v3 : Single) : Single; Func glMaxFloat7( const v1, v2, v3 : Double) : Double; Func glMaxFloat8( const v1, v2, v3 : Extended) : Extended; Func glMinInt9( const v1, v2 : Int) : Int; Func glMinInt( const v1, v2 :Card) :Card; Func glMaxInt( const v1, v2 : Int) : Int; Func glMaxInt1( const v1, v2 :Card) :Card; Func glTriangleArea( const p1, p2, p3 : TAffineVector) : Single; //Func PolygonArea( const p : PAffineVectorArray; nSides : Int) : Single; Func glTriangleSignedArea( const p1, p2, p3 : TAffineVector) : Single; //Func PolygonSignedArea( const p : PAffineVectorArray; nSides : Int) : Single; //Proc ScaleFloatArray( values : PSingleArray; nb : Int; var factor : Single); Proc glScaleFloatArray( var values : TSingleArray; factor : Single); //Proc OffsetFloatArray( values : PSingleArray; nb : Int; var delta : Single); Proc glOffsetFloatArray1( var values : array of Single; delta : Single); //Proc OffsetFloatArray2( valuesDest, valuesDelta : PSingleArray; nb : Int); Func glMaxXYZComponent( const v : TVectorGL) : Single; Func glMaxXYZComponent1( const v : TAffineVector) : single; Func glMinXYZComponent( const v : TVectorGL) : Single; Func glMinXYZComponent1( const v : TAffineVector) : single; Func glMaxAbsXYZComponent( v : TVectorGL) : Single Func glMinAbsXYZComponent( v : TVectorGL) : Single Proc glMaxVector( var v : TVectorGL; const v1 : TVectorGL); Proc glMaxVector1( var v : TAffineVector; const v1 : TAffineVector); Proc glMinVector( var v : TVectorGL; const v1 : TVectorGL); Proc glMinVector1( var v : TAffineVector; const v1 : TAffineVector); Proc glSortArrayAscending( var a : array of Extended) Func glClampValue( const aValue, aMin, aMax : Single) : Single; Func glClampValue1( const aValue, aMin : Single) : Single; Func glGeometryOptimizationMode :Str Proc glBeginFPUOnlySection Proc glEndFPUOnlySection Func glConvertRotation( const Angles : TAffineVector) : TVectorGL Func glMakeAffineDblVector( var v : array of Double) : TAffineDblVector Func glMakeDblVector( var v : array of Double) : THomogeneousDblVector Func glVectorAffineDblToFlt( const v : TAffineDblVector) : TAffineVector Func glVectorDblToFlt( const v : THomogeneousDblVector) : THomogeneousVector Func glVectorAffineFltToDbl( const v : TAffineVector) : TAffineDblVector Func glVectorFltToDbl( const v : TVectorGL) : THomogeneousDblVector Func glPointInPolygon( var xp, yp : array of Single; x, y : Single) :Bool Proc glDivMod( Dividend : Int; Divisor : Word; var Result, Remainder : Word) Func glTurn( const Matrix : TMatrixGL; angle : Single) : TMatrixGL; Func glTurn1(const Matrix:TMatrixGL; const MasterUp:TAffineVector;Angle:Single):TMatrixGL; Func glPitch( const Matrix : TMatrixGL; Angle : Single) : TMatrixGL; Func glPitch1(const Matrix:TMatrixGL;const MasterRight:TAffineVector;Angle:Single):TMatrixGL; Func glRoll( const Matrix: TMatrixGL; Angle : Single) : TMatrixGL; Func glRoll1(const Matrix:TMatrixGL;const MasterDirection:TAffineVector;Angle:Single): TMatrixGL; Func glRayCastMinDistToPoint(const rayStart,rayVector:TVectorGL;const point:TVectorGL):Single Func glRayCastIntersectsSphere(const rayStart,rayVector:TVectorGL;const sphereCenter:TVectorGL;const sphereRadius:Single):Bool; Func glRayCastSphereIntersect(const rayStart,rayVector:TVectorGL;const sphereCenter:TVectorGL;const sphereRadius:Single;var i1,i2:TVectorGL):Int; Func glSphereVisibleRadius( distance, radius : Single) : Single Func glExtractFrustumFromModelViewProjection( const modelViewProj : TMatrixGL) : TFrustum Func glIsVolumeClipped(const objPos:TVectorGL;const objRadius:Single;const rcci:TRenderContextClippingInfo):Bool; Func glIsVolumeClipped1(const objPos:TAffineVector;const objRadius:Single;const rcci:TRenderContextClippingInfo):Bool; Func glIsVolumeClipped2(const min,max:TAffineVector;const rcci:TRenderContextClippingInfo):Bool; Func glIsVolumeClipped3(const objPos:TAffineVector;const objRadius:Single;const Frustum:TFrustum):Bool; Func glMakeParallelProjectionMatrix( const plane : THmgPlane; const dir : TVectorGL) : TMatrixGL Func glMakeShadowMatrix( const planePoint, planeNormal, lightPos : TVectorGL) : TMatrixGL Func glMakeReflectionMatrix( const planePoint, planeNormal : TAffineVector) : TMatrixGL Func glPackRotationMatrix( const mat : TMatrixGL) : TPackedRotationMatrix Func glUnPackRotationMatrix( const packedMatrix : TPackedRotationMatrix) : TMatrixGL 'cPI','Single').setExtended( 3.141592654); 'cPIdiv180','Single').setExtended( 0.017453292); 'c180divPI','Single').setExtended( 57.29577951); 'c2PI','Single').setExtended( 6.283185307); 'cPIdiv2','Single').setExtended( 1.570796326); 'cPIdiv4','Single').setExtended( 0.785398163); 'c3PIdiv4','Single').setExtended( 2.35619449); 'cInv2PI','Single').setExtended( 1 / 6.283185307); 'cInv360','Single').setExtended( 1 / 360); 'c180','Single').setExtended( 180); 'c360','Single').setExtended( 360); 'cOneHalf','Single').setExtended( 0.5); 'cLn10','Single').setExtended( 2.302585093); {'MinSingle','Extended').setExtended( 1.5e-45); 'MaxSingle','Extended').setExtended( 3.4e+38); 'MinDouble','Extended').setExtended( 5.0e-324); 'MaxDouble','Extended').setExtended( 1.7e+308); 'MinExtended','Extended').setExtended( 3.4e-4932); 'MaxExtended','Extended').setExtended( 1.1e+4932); 'MinComp','Extended').setExtended( - 9.223372036854775807e+18); 'MaxComp','Extended').setExtended( 9.223372036854775807e+18);} end; Proc SIRegister_GLVectorFileObjects(CL: TPSPascalCompiler); begin AddClassN(FindClass('TOBJECT'),'TMeshObjectList (FindClass('TOBJECT'),'TFaceGroups TMeshAutoCentering', '( macCenterX, macCenterY, macCenterZ, macUseBarycenter ) TMeshAutoCenterings', 'set of TMeshAutoCentering TMeshObjectMode', '( momTriangles, momTriangleStrip, momFaceGroups ) SIRegister_TBaseMeshObject(CL); (FindClass('TOBJECT'),'TSkeletonFrameList TSkeletonFrameTransform', '( sftRotation, sftQuaternion ) SIRegister_TSkeletonFrame(CL); SIRegister_TSkeletonFrameList(CL); (FindClass('TOBJECT'),'TSkeleton (FindClass('TOBJECT'),'TSkeletonBone SIRegister_TSkeletonBoneList(CL); SIRegister_TSkeletonRootBoneList(CL); SIRegister_TSkeletonBone(CL); (FindClass('TOBJECT'),'TSkeletonColliderList SIRegister_TSkeletonCollider(CL); SIRegister_TSkeletonColliderList(CL); (FindClass('TOBJECT'),'TGLBaseMesh TBlendedLerpInfo', 'record frameIndex1 : Int; frameIndex2 : ' +'Int; lerpFactor : Single; weight : Single; externalPositions : TAffine' +'VectorList; externalRotations : TAffineVectorList; externalQuaternions : T' +'QuaternionList; end SIRegister_TSkeleton(CL); TMeshObjectRenderingOption', '( moroGroupByMaterial ) TMeshObjectRenderingOptions', 'set of TMeshObjectRenderingOption SIRegister_TMeshObject(CL); SIRegister_TMeshObjectList(CL); //TMeshObjectListClass', 'class of TMeshObjectList (FindClass('TOBJECT'),'TMeshMorphTargetList SIRegister_TMeshMorphTarget(CL); SIRegister_TMeshMorphTargetList(CL); SIRegister_TMorphableMeshObject(CL); TVertexBoneWeight', 'record BoneID : Int; Weight : Single; end //PVertexBoneWeightArray', '^TVertexBoneWeightArray // will not wo'rk //PVerticesBoneWeights', '^TVerticesBoneWeights // will not work TVertexBoneWeightDynArray', 'array of TVertexBoneWeight SIRegister_TSkeletonMeshObject(CL); SIRegister_TFaceGroup(CL); TFaceGroupMeshMode', '( fgmmTriangles, fgmmTriangleStrip, fgmmFl' +'atTriangles, fgmmTriangleFan, fgmmQuads ) SIRegister_TFGVertexIndexList(CL); SIRegister_TFGVertexNormalTexIndexList(CL); SIRegister_TFGIndexTexCoordList(CL); SIRegister_TFaceGroups(CL); TMeshNormalsOrientation', '( mnoDefault, mnoInvert ) SIRegister_TVectorFile(CL); //TVectorFileClass', 'class of TVectorFile SIRegister_TGLGLSMVectorFile(CL); SIRegister_TGLBaseMesh(CL); SIRegister_TGLFreeForm(CL); TGLActorOption', '( aoSkeletonNormalizeNormals ) TGLActorOptions', 'set of TGLActorOption 'cDefaultGLActorOptions','LongInt').Value.ts32:= ord(aoSkeletonNormalizeNormals); (FindClass('TOBJECT'),'TGLActor TActorAnimationReference', '( aarMorph, aarSkeleton, aarNone ) SIRegister_TActorAnimation(CL); TActorAnimationName', 'String SIRegister_TActorAnimations(CL); SIRegister_TGLBaseAnimationControler(CL); SIRegister_TGLAnimationControler(CL); TActorFrameInterpolation', '( afpNone, afpLinear ) TActorAnimationMode', '( aamNone, aamPlayOnce, aamLoop, aamBounc' +'eForward, aamBounceBackward, aamLoopBackward, aamExternal ) SIRegister_TGLActor(CL); SIRegister_TVectorFileFormat(CL); SIRegister_TVectorFileFormatsList(CL); (FindClass('TOBJECT'),'EInvalidVectorFile Func GetVectorFileFormats : TVectorFileFormatsList Func VectorFileFormatsFilter :Str Func VectorFileFormatsSaveFilter :Str Func VectorFileFormatExtensionByIndex( index : Int) :Str Proc RegisterVectorFileFormat(const aExtension,aDescription:str;aClass: TVectorFileClass) Proc UnregisterVectorFileClass( aClass : TVectorFileClass) end; Proc SIRegister_AxCtrls(CL: TPSPascalCompiler); begin 'Class_DColorPropPage','TGUID '{5CFF5D59-5946-11D0-BDEF-00A024D1875C} 'Class_DFontPropPage','TGUID '{5CFF5D5B-5946-11D0-BDEF-00A024D1875C} 'Class_DPicturePropPage','TGUID '{5CFF5D5A-5946-11D0-BDEF-00A024D1875C} 'Class_DStringPropPage','TGUID '{F42D677E-754B-11D0-BDFB-00A024D1875C} SIRegister_TOleStream(CL); (FindClass('TOBJECT'),'TConnectionPoints TConnectionKind', '( ckSingle, ckMulti ) SIRegister_TConnectionPoint(CL); SIRegister_TConnectionPoints(CL); TDefinePropertyPage', 'Proc ( const GUID : TGUID) (FindClass('TOBJECT'),'TActiveXControlFactory SIRegister_TActiveXControl(CL); //TActiveXControlClass', 'class of TActiveXControl SIRegister_TActiveXControlFactory(CL); SIRegister_TActiveFormControl(CL); SIRegister_TActiveForm(CL); //TActiveFormClass', 'class of TActiveForm SIRegister_TActiveFormFactory(CL); (FindClass('TOBJECT'),'TPropertyPageImpl SIRegister_TPropertyPage(CL); //TPropertyPageClass', 'class of TPropertyPage SIRegister_TPropertyPageImpl(CL); SIRegister_TActiveXPropertyPage(CL); SIRegister_TActiveXPropertyPageFactory(CL); SIRegister_TCustomAdapter(CL); SIRegister_TAdapterNotifier(CL); SIRegister_IFontAccess(CL); SIRegister_TFontAdapter(CL); SIRegister_IPictureAccess(CL); SIRegister_TPictureAdapter(CL); SIRegister_TOleGraphic(CL); SIRegister_TStringsAdapter(CL); SIRegister_TReflectorWindow(CL); Proc EnumDispatchProperties(Dispatch:IDispatch;PropType:TGUID;VTCode:Int;PropList:TStrings); Proc GetOleFont( Font : TFont; var OleFont : IFontDisp) Proc SetOleFont( Font : TFont; OleFont : IFontDisp) Proc GetOlePicture( Picture : TPicture; var OlePicture : IPictureDisp) Proc SetOlePicture( Picture : TPicture; OlePicture : IPictureDisp) Proc GetOleStrings( Strings : TStrings; var OleStrings : IStrings) Proc SetOleStrings( Strings : TStrings; OleStrings : IStrings) Func ParkingWindow : HWND end; Proc SIRegister_synaip(CL: TPSPascalCompiler); begin // TIp6Bytes = array [0..15] of Byte; {:binary form of IPv6 adress (for string conversion routines)} // TIp6Words = array [0..7] of Word; AddTypeS('TIp6Bytes', 'array [0..15] of Byte;; AddTypeS('TIp6Words', 'array [0..7] of Word;; AddTypeS(TIPAdr', 'record Oct1 : Byte; Oct2 : Byte; Oct3 : Byte; Oct4: Byte; end; Func synaIsIP( const Value :Str) :Bool; Func synaIsIP6( const Value :Str) :Bool; Func synaIPToID( Host :Str) : Ansistr; Func synaStrToIp6( value :Str) : TIp6Bytes; Func synaIp6ToStr( value : TIp6Bytes) :Str; Func synaStrToIp( value :Str) : Int; Func synaIpToStr( value : Int) :Str; Func synaReverseIP( Value : Ansistr) : Ansistr; Func synaReverseIP6( Value : Ansistr) : Ansistr; Func synaExpandIP6( Value : Ansistr) : Ansistr; Func xStrToIP( const Value :Str) : TIPAdr; Func xIPToStr( const Adresse : TIPAdr) :Str; Func IPToCardinal( const Adresse : TIPAdr) :Card; Func CardinalToIP( const Value :Card) : TIPAdr; Func ReverseIP( Value : Ansistr) : Ansistr'); Func ReverseIP6( Value : Ansistr) : Ansistr'); end; Proc SIRegister_synacode(CL: TPSPascalCompiler); begin AddTypeS('TSpecials', 'set of Char; Const('SpecialChar','TSpecials').SetSet( '=()[]<>:;,@/?\"_; Const('URLFullSpecialChar','TSpecials').SetSet( ';/?:@=&#+; Const('TableBase64'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=; Const('TableBase64mod'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+,=; Const('TableUU'(`!"#$%&''()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_; Const('TableXX'(+-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz; Func DecodeTriplet( const Value : Ansistr; Delimiter : Char) : Ansistr; Func DecodeQuotedPrintable( const Value : Ansistr) : Ansistr; Func DecodeURL( const Value : Ansistr) : Ansistr; Func EncodeTriplet(const Value:Ansistr;Delimiter:Char;Specials:TSpecials):Ansistr); Func EncodeQuotedPrintable( const Value : Ansistr) : Ansistr; Func EncodeSafeQuotedPrintable( const Value : Ansistr) : Ansistr; Func EncodeURLElement( const Value : Ansistr) : Ansistr; Func EncodeURL( const Value : Ansistr) : Ansistr; Func Decode4to3( const Value, Table : Ansistr) : Ansistr; Func Decode4to3Ex( const Value, Table : Ansistr) : Ansistr; Func Encode3to4( const Value, Table : Ansistr) : Ansistr; Func synDecodeBase64( const Value : Ansistr) : Ansistr; Func synEncodeBase64( const Value : Ansistr) : Ansistr; Func DecodeBase64mod( const Value : Ansistr) : Ansistr; Func EncodeBase64mod( const Value : Ansistr) : Ansistr; Func DecodeUU( const Value : Ansistr) : Ansistr; Func EncodeUU( const Value : Ansistr) : Ansistr; Func DecodeXX( const Value : Ansistr) : Ansistr; Func DecodeYEnc( const Value : Ansistr) : Ansistr; Func UpdateCrc32( Value : Byte; Crc32 : Int) : Int; Func synCrc32( const Value : Ansistr) : Int; Func UpdateCrc16( Value : Byte; Crc16 : Word) : Word; Func Crc16( const Value : Ansistr) : Word; Func synMD5( const Value : Ansistr) : Ansistr; Func HMAC_MD5( Text, Key : Ansistr) : Ansistr; Func MD5LongHash( const Value : Ansistr; Len : Int) : Ansistr; Func synSHA1( const Value : Ansistr) : Ansistr; Func HMAC_SHA1( Text, Key : Ansistr) : Ansistr; Func SHA1LongHash( const Value : Ansistr; Len : Int) : Ansistr; Func synMD4( const Value : Ansistr) : Ansistr; end; Proc SIRegister_synachar(CL: TPSPascalCompiler); begin AddTypeS('TMimeChar', '( ISO_8859_1, ISO_8859_2, ISO_8859_3, ISO_8859_4, I' +'SO_8859_5, ISO_8859_6, ISO_8859_7, ISO_8859_8, ISO_8859_9, ISO_8859_10, IS' +'O_8859_13, ISO_8859_14, ISO_8859_15, CP1250, CP1251, CP1252, CP1253, CP125' +'4, CP1255, CP1256, CP1257, CP1258, KOI8_R, CP895, CP852, UCS_2, UCS_4, UTF' +'_8, UTF_7, UTF_7mod, UCS_2LE, UCS_4LE, UTF_16, UTF_16LE, UTF_32, UTF_32LE,' +' C99, JAVA, ISO_8859_16, KOI8_U, KOI8_RU, CP862, CP866, MAC, MACCE, MACICE' +', MACCRO, MACRO, MACCYR, MACUK, MACGR, MACTU, MACHEB, MACAR, MACTH, ROMAN8' +', NEXTSTEP, ARMASCII, GEORGIAN_AC, GEORGIAN_PS, KOI8_T, MULELAO, CP1133, T' +'IS620, CP874, VISCII, TCVN, ISO_IR_14, JIS_X0201, JIS_X0208, JIS_X0212, GB' +'1988_80, GB2312_80, ISO_IR_165, ISO_IR_149, EUC_JP, SHIFT_JIS, CP932, ISO_' +'2022_JP, ISO_2022_JP1, ISO_2022_JP2, GB2312, CP936, GB18030, ISO_2022_CN, ' +'ISO_2022_CNE, HZ, EUC_TW, BIG5, CP950, BIG5_HKSCS, EUC_KR, CP949, CP1361, ' +'ISO_2022_KR, CP737, CP775, CP853, CP855, CP857, CP858, CP860, CP861, CP863' +', CP864, CP865, CP869, CP1125 ); AddTypeS('TMimeSetChar', 'set of TMimeChar; Func CharsetConversion(const Value:AnsiStr;CharFrom:TMimeChar;CharTo:TMimeChar):AnsiStr; Func CharsetConversionEx(const Value:Ansistr;CharFrom:TMimeChar;CharTo:TMimeChar;const TransformTable:array of Word):Ansistr; Func CharsetConversionTrans(Value:Ansistr;CharFrom:TMimeChar;CharTo:TMimeChar;const TransformTable:array of Word;Translit:Boolean):Ansistr; Func GetCurCP : TMimeChar; Func GetCurOEMCP : TMimeChar; Func GetCPFromID( Value : Ansistr) : TMimeChar; Func GetIDFromCP( Value : TMimeChar) : Ansistr; Func NeedCharsetConversion( const Value : Ansistr) :Bool; Func IdealCharsetCoding(const Value:AnsiStr;CharFrom:TMimeChar;CharTo:TMimeSetChar):TMimeChar; Func GetBOM( Value : TMimeChar) : Ansistr; Func StringToWide( const Value : Ansistr) : WideString; Func WideToString( const Value : WideString) : Ansistr; end; Proc SIRegister_synamisc(CL: TPSPascalCompiler); begin AddTypeS('TProxySetting', 'record Host :Str; Port :Str; Bypass :Str; end; Proc WakeOnLan( MAC, IP :Str); Func GetDNS :Str; Func GetIEProxy( protocol :Str) : TProxySetting; Func GetLocalIPs :Str; end; Proc SIRegister_synaser(CL: TPSPascalCompiler); begin AddConstantN('synCR','Char #$0d); Const('synLF','Char #$0a); Const('cSerialChunk','LongInt'( 8192); Const('LockfileDirectory','String '/var/lock; Const('PortIsClosed','LongInt'( - 1); Const('ErrAlreadyOwned','LongInt'( 9991); Const('ErrAlreadyInUse','LongInt'( 9992); Const('ErrWrongParameter','LongInt'( 9993); Const('ErrPortNotOpen','LongInt'( 9994); Const('ErrNoDeviceAnswer','LongInt'( 9995); Const('ErrMaxBuffer','LongInt'( 9996); Const('ErrTimeout','LongInt'( 9997); Const('ErrNotRead','LongInt'( 9998); Const('ErrFrame','LongInt'( 9999); Const('ErrOverrun','LongInt'( 10000); Const('ErrRxOver','LongInt'( 10001); Const('ErrRxParity','LongInt'( 10002); Const('ErrTxFull','LongInt'( 10003); Const('dcb_Binary','LongWord')( $00000001); Const('dcb_ParityCheck','LongWord')( $00000002); Const('dcb_OutxCtsFlow','LongWord')( $00000004); Const('dcb_OutxDsrFlow','LongWord')( $00000008); Const('dcb_DtrControlMask','LongWord')( $00000030); Const('dcb_DtrControlDisable','LongWord')( $00000000); Const('dcb_DtrControlEnable','LongWord')( $00000010); Const('dcb_DtrControlHandshake','LongWord')( $00000020); Const('dcb_DsrSensivity','LongWord')( $00000040); Const('dcb_TXContinueOnXoff','LongWord')( $00000080); Const('dcb_OutX','LongWord')( $00000100); Const('dcb_InX','LongWord')( $00000200); Const('dcb_ErrorChar','LongWord')( $00000400); Const('dcb_NullStrip','LongWord')( $00000800); Const('dcb_RtsControlMask','LongWord')( $00003000); Const('dcb_RtsControlDisable','LongWord')( $00000000); Const('dcb_RtsControlEnable','LongWord')( $00001000); Const('dcb_RtsControlHandshake','LongWord')( $00002000); Const('dcb_RtsControlToggle','LongWord')( $00003000); Const('dcb_AbortOnError','LongWord')( $00004000); Const('dcb_Reserveds','LongWord')( $FFFF8000); Const('synSB1','LongInt'( 0); Const('SB1andHalf','LongInt'( 1); Const('synSB2','LongInt'( 2); Const('synINVALID_HANDLE_VALUE','LongInt'( THandle ( - 1 )); Const('CS7fix','LongWord')( $0000020); AddTypeS('synTDCB', 'record DCBlength : DWORD; BaudRate : DWORD; Flags : Long' +'int; wReserved : Word; XonLim : Word; XoffLim : Word; ByteSize : Byte; Par' +'ity : Byte; StopBits : Byte; XonChar : CHAR; XoffChar : CHAR; ErrorChar : ' +'CHAR; EofChar : CHAR; EvtChar : CHAR; wReserved1 : Word; end; //AddTypeS('PDCB', '^TDCB // will not work; //Const('MaxRates','LongInt'( 18); //Const('MaxRates','LongInt'( 30); //Const('MaxRates','LongInt'( 19); Const('O_SYNC','LongWord')( $0080); Const('synOK','LongInt'( 0); Const('synErr','LongInt'( Int ( - 1 )); AddTypeS('THookSerialReason','(HR_SerialClose,HR_Connect,HR_CanRead,HR_CanWrite,HR_ReadCount,HR_WriteCount,HR_Wait); Type('THookSerialStatus',Procedure(Sender:TObject;Reason:THookSerialReason;const Value:str); SIRegister_ESynaSerError(CL); SIRegister_TBlockSerial(CL); Func GetSerialPortNames :Str; end; Proc SIRegister_synaicnv(CL: TPSPascalCompiler); begin Const('DLLIconvName','String 'libiconv.so; Const('DLLIconvName','String 'iconv.dll; AddTypeS('size_t', 'Cardinal; AddTypeS('iconv_t', 'Int; //AddTypeS('iconv_t', 'Pointer; AddTypeS('argptr', 'iconv_t; Func SynaIconvOpen( const tocode, fromcode : Ansistr) : iconv_t; Func SynaIconvOpenTranslit( const tocode, fromcode : Ansistr) : iconv_t; Func SynaIconvOpenIgnore( const tocode, fromcode : Ansistr) : iconv_t; Func SynaIconv( cd : iconv_t; inbuf : Ansistr; var outbuf : Ansistr) : Int; Func SynaIconvClose( var cd : iconv_t) : Int; Func SynaIconvCtl( cd : iconv_t; request : Int; argument : argptr) : Int; Func IsIconvloaded :Bool; Func InitIconvInterface :Bool; Func DestroyIconvInterface :Bool; Const('ICONV_TRIVIALP','LongInt'( 0); Const('ICONV_GET_TRANSLITERATE','LongInt'( 1); Const('ICONV_SET_TRANSLITERATE','LongInt'( 2); Const('ICONV_GET_DISCARD_ILSEQ','LongInt'( 3); Const('ICONV_SET_DISCARD_ILSEQ','LongInt'( 4); end; Proc SIRegister_pingsend(CL: TPSPascalCompiler); begin Const 'ICMP_ECHO','LongInt'( 8); Const('ICMP_ECHOREPLY','LongInt'( 0); Const('ICMP_UNREACH','LongInt'( 3); Const('ICMP_TIME_EXCEEDED','LongInt'( 11); Const('ICMP6_ECHO','LongInt'( 128); Const('ICMP6_ECHOREPLY','LongInt'( 129); Const('ICMP6_UNREACH','LongInt'( 1); Const('ICMP6_TIME_EXCEEDED','LongInt'( 3); AddTypeS('TICMPError', '( IE_NoError, IE_Other, IE_TTLExceed, IE_UnreachOt' +'her, IE_UnreachRoute, IE_UnreachAdmin, IE_UnreachAddr, IE_UnreachPort ); SIRegister_TPINGSend(CL); Func PingHost( const Host :Str) : Int; Func TraceRouteHost( const Host :Str) :Str; end; Proc SIRegister_asn1util(CL: TPSPascalCompiler); begin AddConstantN('synASN1_BOOL','LongWord')( $01); Const('synASN1_INT','LongWord')( $02); Const('synASN1_OCTSTR','LongWord')( $04); Const('synASN1_NULL','LongWord')( $05); Const('synASN1_OBJID','LongWord')( $06); Const('synASN1_ENUM','LongWord')( $0a); Const('synASN1_SEQ','LongWord')( $30); Const('synASN1_SETOF','LongWord')( $31); Const('synASN1_IPADDR','LongWord')( $40); Const('synASN1_COUNTER','LongWord')( $41); Const('synASN1_GAUGE','LongWord')( $42); Const('synASN1_TIMETICKS','LongWord')( $43); Const('synASN1_OPAQUE','LongWord')( $44); Func synASNEncOIDItem( Value : Int) : Ansistr; Func synASNDecOIDItem( var Start : Int; const Buffer : Ansistr) : Int; Func synASNEncLen( Len : Int) : Ansistr; Func synASNDecLen( var Start : Int; const Buffer : Ansistr) : Int; Func synASNEncInt( Value : Int) : Ansistr; Func synASNEncUInt( Value : Int) : Ansistr; Func synASNObject( const Data : Ansistr; ASNType : Int) : Ansistr; Func synASNItem(var Start:Int;const Buffer:Ansistr;var ValueType:Int):Ansistr; Func synMibToId( Mib :Str) : Ansistr; Func synIdToMib( const Id : Ansistr) :Str; Func synIntMibToStr( const Value : Ansistr) : Ansistr; Func ASNdump( const Value : Ansistr) : Ansistr; Func GetMailServers(const DNSHost, Domain : Ansistr; const Servers:TStrings):Bool; Func LDAPResultDump( const Value : TLDAPResultList) : Ansistr; end; Proc SIRegister_ldapsend(CL: TPSPascalCompiler); begin Const('cLDAPProtocol','String '389; Const('LDAP_ASN1_BIND_REQUEST','LongWord')( $60); Const('LDAP_ASN1_BIND_RESPONSE','LongWord')( $61); Const('LDAP_ASN1_UNBIND_REQUEST','LongWord')( $42); Const('LDAP_ASN1_SEARCH_REQUEST','LongWord')( $63); Const('LDAP_ASN1_SEARCH_ENTRY','LongWord')( $64); Const('LDAP_ASN1_SEARCH_DONE','LongWord')( $65); Const('LDAP_ASN1_SEARCH_REFERENCE','LongWord')( $73); Const('LDAP_ASN1_MODIFY_REQUEST','LongWord')( $66); Const('LDAP_ASN1_MODIFY_RESPONSE','LongWord')( $67); Const('LDAP_ASN1_ADD_REQUEST','LongWord')( $68); Const('LDAP_ASN1_ADD_RESPONSE','LongWord')( $69); Const('LDAP_ASN1_DEL_REQUEST','LongWord')( $4A); Const('LDAP_ASN1_DEL_RESPONSE','LongWord')( $6B); Const('LDAP_ASN1_MODIFYDN_REQUEST','LongWord')( $6C); Const('LDAP_ASN1_MODIFYDN_RESPONSE','LongWord')( $6D); Const('LDAP_ASN1_COMPARE_REQUEST','LongWord')( $6E); Const('LDAP_ASN1_COMPARE_RESPONSE','LongWord')( $6F); Const('LDAP_ASN1_ABANDON_REQUEST','LongWord')( $70); Const('LDAP_ASN1_EXT_REQUEST','LongWord')( $77); Const('LDAP_ASN1_EXT_RESPONSE','LongWord')( $78); SIRegister_TLDAPAttribute(CL); SIRegister_TLDAPAttributeList(CL); SIRegister_TLDAPResult(CL); SIRegister_TLDAPResultList(CL); AddTypeS('TLDAPModifyOp', '( MO_Add, MO_Delete, MO_Replace ); AddTypeS('TLDAPSearchScope', '( SS_BaseObject, SS_SingleLevel, SS_WholeSubtree ); AddTypeS(TLDAPSearchAliases,(SA_NeverDeref,SA_InSearching,SA_FindingBaseObj,SA_Always); SIRegister_TLDAPSend(CL); Func LDAPResultDump( const Value : TLDAPResultList) : Ansistr; end; Proc SIRegister_slogsend(CL: TPSPascalCompiler); begin Const('cSysLogProtocol','String '514; Const('FCL_Kernel','LongInt'( 0); Const('FCL_UserLevel','LongInt'( 1); Const('FCL_MailSystem','LongInt'( 2); Const('FCL_System','LongInt'( 3); Const('FCL_Security','LongInt'( 4); Const('FCL_Syslogd','LongInt'( 5); Const('FCL_Printer','LongInt'( 6); Const('FCL_News','LongInt'( 7); Const('FCL_UUCP','LongInt'( 8); Const('FCL_Clock','LongInt'( 9); Const('FCL_Authorization','LongInt'( 10); Const('FCL_FTP','LongInt'( 11); Const('FCL_NTP','LongInt'( 12); Const('FCL_LogAudit','LongInt'( 13); Const('FCL_LogAlert','LongInt'( 14); Const('FCL_Time','LongInt'( 15); Const('FCL_Local0','LongInt'( 16); Const('FCL_Local1','LongInt'( 17); Const('FCL_Local2','LongInt'( 18); Const('FCL_Local3','LongInt'( 19); Const('FCL_Local4','LongInt'( 20); Const('FCL_Local5','LongInt'( 21); Const('FCL_Local6','LongInt'( 22); Const('FCL_Local7','LongInt'( 23); Type(TSyslogSeverity','(Emergency, Alert, Critical, Error, Warning,Notice,Info,Debug); SIRegister_TSyslogMessage(CL); SIRegister_TSyslogSend(CL); Func ToSysLog(const SyslogServer:str;Facil:Byte;Sever:TSyslogSeverity;const Content:str):Bool; end; Proc SIRegister_mimemess(CL: TPSPascalCompiler); begin AddTypeS('TMessPriority', '( MP_unknown, MP_low, MP_normal, MP_high ); SIRegister_TMessHeader(CL); //AddTypeS('TMessHeaderClass', 'class of TMessHeader; SIRegister_TMimeMess(CL); end; Proc SIRegister_mimepart(CL: TPSPascalCompiler); begin (FindClass('TOBJECT'),'TMimePart; AddTypeS('THookWalkPart', 'Proc ( const Sender : TMimePart); AddTypeS('TMimePrimary', '( MP_TEXT, MP_MULTIPART, MP_MESSAGE, MP_BINARY ); AddTypeS(TMimeEncoding,(ME_7BIT,ME_8BIT, ME_QUOTED_PRINTABLE, ME_BASE64, ME_UU, ME_XX ); SIRegister_TMimePart(CL); Const('MaxMimeType','LongInt'( 25); Func GenerateBoundary :Str; end; Proc SIRegister_mimeinln(CL: TPSPascalCompiler); begin Func InlineDecode( const Value :Str; CP : TMimeChar) :Str; Func InlineEncode( const Value :Str; CP, MimeP : TMimeChar) :Str; Func NeedInline( const Value : Ansistr) :Bool; Func InlineCodeEx( const Value :Str; FromCP : TMimeChar) :Str; Func InlineCode( const Value :Str) :Str; Func InlineEmailEx( const Value :Str; FromCP : TMimeChar) :Str; Func InlineEmail( const Value :Str) :Str; end; Proc SIRegister_ftpsend(CL: TPSPascalCompiler); begin Const('cFtpProtocol','String '21; Const('cFtpDataProtocol','String '20; Const('FTP_OK','LongInt'( 255); Const('FTP_ERR','LongInt'( 254); AddTypeS('TFTPStatus', 'Procedure(Sender:TObject; Response:Boolean; const Value :Str); SIRegister_TFTPListRec(CL); SIRegister_TFTPList(CL); SIRegister_TFTPSend(CL); Func FtpGetFile( const IP, Port, FileName, LocalFile, User, Pass :Str) :Bool; Func FtpPutFile( const IP, Port, FileName, LocalFile, User, Pass :Str) :Bool; Func FtpInterServerTransfer(const FromIP,FromPort,FromFile,FromUser,FromPass:str;const ToIP,ToPort,ToFile,ToUser,ToPass:str):Bool; end; Proc SIRegister_httpsend(CL: TPSPascalCompiler); begin Const('cHttpProtocol','String '80; AddTypeS('TTransferEncoding', '( TE_UNKNOWN, TE_IDENTITY, TE_CHUNKED ); SIRegister_THTTPSend(CL); Func HttpGetText( const URL :Str; const Response : TStrings) :Bool; Func HttpGetBinary( const URL :Str; const Response : TStream) :Bool; Func HttpPostBinary( const URL :Str; const Data : TStream) :Bool; Func HttpPostURL( const URL, URLData :Str; const Data : TStream) :Bool; Func HttpPostFile(const URL,FieldName,FileName:str;const Data:TStream;const ResultData:TStrings):Bool; end; Proc SIRegister_smtpsend(CL: TPSPascalCompiler); begin Const('cSmtpProtocol','String '25; SIRegister_TSMTPSend(CL); Func SendToRaw(const MailFr,MailTo,SMTPHost:str;const MailData:TStrings;const Usrname,Passw:str):Bool; Func SendTo(const MailFrom,MailTo,Subject,SMTPHost:str;const MailData:TStrings):Bool; Func SendToEx(const MailFrom, MailTo, Subject, SMTPHost:str; const MailData:TStrings; const Username, Password :Str):Boolean; end; Proc SIRegister_snmpsend(CL: TPSPascalCompiler); begin Const('cSnmpProtocol','String '161; Const('cSnmpTrapProtocol','String '162; Const('SNMP_V1','LongInt'( 0); Const('SNMP_V2C','LongInt'( 1); Const('SNMP_V3','LongInt'( 3); Const('PDUGetRequest','LongWord')( $A0); Const('PDUGetNextRequest','LongWord')( $A1); Const('PDUGetResponse','LongWord')( $A2); Const('PDUSetRequest','LongWord')( $A3); Const('PDUTrap','LongWord')( $A4); Const('PDUGetBulkRequest','LongWord')( $A5); Const('PDUInformRequest','LongWord')( $A6); Const('PDUTrapV2','LongWord')( $A7); Const('PDUReport','LongWord')( $A8); Const('ENoError',LongInt 0; Const('ETooBig','LongInt')( 1); Const('ENoSuchName','LongInt'( 2); Const('EBadValue','LongInt'( 3); Const('EReadOnly','LongInt'( 4); Const('EGenErr','LongInt'( 5); Const('ENoAccess','LongInt'( 6); Const('EWrongType','LongInt'( 7); Const('EWrongLength','LongInt'( 8); Const('EWrongEncoding','LongInt'( 9); Const('EWrongValue','LongInt'( 10); Const('ENoCreation','LongInt'( 11); Const('EInconsistentValue','LongInt'( 12); Const('EResourceUnavailable','LongInt'( 13); Const('ECommitFailed','LongInt'( 14); Const('EUndoFailed','LongInt'( 15); Const('EAuthorizationError','LongInt'( 16); Const('ENotWritable','LongInt'( 17); Const('EInconsistentName','LongInt'( 18); AddTypeS('TV3Flags', '( NoAuthNoPriv, AuthNoPriv, AuthPriv ); AddTypeS('TV3Auth', '( AuthMD5, AuthSHA1 ); AddTypeS('TV3Priv', '( PrivDES, Priv3DES, PrivAES ); SIRegister_TSNMPMib(CL); AddTypeS(TV3Sync', 'record EngineID : Ansistr; EngineBoots : Int; EngineTime : Int; EngineStamp :Card; end; SIRegister_TSNMPRec(CL); SIRegister_TSNMPSend(CL); Func SNMPGet(const OID,Community,SNMPHost:Ansistr; var Value: Ansistr) :Bool; Func SNMPSet(const OID,Community,SNMPHost,Value:Ansistr;ValueType:Int):Bool; Func SNMPGetNext(var OID:Ansistr;const Community,SNMPHost:Ansistr;var Value:Ansistr):Bool; Func SNMPGetTable(const BaseOID,Community,SNMPHost:Ansistr;const Value:TStrings):Bool; Func SNMPGetTableElement(const BaseOID,RowID,ColID,Community,SNMPHost:AnsiStr;var Value:AnsiStr):Bool; Func SendTrap(const Dest,Source,nterprise,Community:Ansistr;Generic,Specific,Seconds:Int; const MIBName,MIBValue Ansistr;MIBtype:Int): Int; Func RecvTrap(var Dest,Source,Enterprise,Community:Ansistr;var Generic,Specific,Seconds Int; const MIBName,MIBValue : TStringList): Int; end; Proc SIRegister_NetWork(CL: TPSPascalCompiler); begin Func GetDomainName2: Ansistr; Func GetDomainController( Domain : Ansistr) : Ansistr; Func GetDomainUsers( Controller : Ansistr) : Ansistr; Func GetDomainGroups( Controller : Ansistr) : Ansistr; Func GetDateTime( Controller : Ansistr) : TDateTime; Func GetFullName2( Controller, UserID : Ansistr) : Ansistr; end; Proc SIRegister_wwSystem(CL: TPSPascalCompiler); begin AddTypeS('TwwDateOrder', '( doMDY, doDMY, doYMD ); TwwDateTimeSelection','(wwdsDay,wwdsMonth,wwdsYear,wwdsHour,wwdsMinute,wwdsSecond,wwdsAMPM); Func wwStrToDate( const S :Str) :Bool; Func wwStrToTime( const S :Str) :Bool; Func wwStrToDateTime( const S :Str) :Bool; Func wwStrToTimeVal( const S :Str) : TDateTime; Func wwStrToDateVal( const S :Str) : TDateTime; Func wwStrToDateTimeVal( const S :Str) : TDateTime; Func wwStrToInt( const S :Str) :Bool; Func wwStrToFloat( const S :Str) :Bool; Func wwGetDateOrder( const DateFormat :Str) : TwwDateOrder; Func wwNextDay( Year, Month, Day : Word) : Int; Func wwPriorDay( Year, Month, Day : Word) : Int; Func wwDoEncodeDate( Year, Month, Day : Word; var Date : TDateTime) :Bool; Func wwDoEncodeTime( Hour, Min, Sec, MSec : Word; var Time : TDateTime) :Bool; Func wwGetDateTimeCursorPosition(SelStart:int;Text:str;TimeOnly:Bool):TwwDateTimeSelection; Func wwGetTimeCursorPosition( SelStart : Int; Text :Str) : TwwDateTimeSelection; Func wwScanDate( const S :Str; var Date : TDateTime) :Bool; Func wwScanDateEpoch(const S:Str; var Date : TDateTime; Epoch : Int):Bool; Proc wwSetDateTimeCursorSelection(dateCursor:TwwDateTimeSelection;edit:TCustomEdit;TimeOnly:Bool; Func wwStrToFloat2(const S:Str; var FloatValue:Extended;DisplayFormat:str):bool; end; unit uPSI_Themes; Func ThemeServices : TThemeServices; Func ThemeControl( AControl : TControl) :Bool; Func UnthemedDesigner( AControl : TControl) :Bool; Proc SIRegister_UDDIHelper(CL: TPSPascalCompiler); begin Func GetBindingkeyAccessPoint(const Operator:Str; const key:Str):Str; end; Unit uPSC_menus; Func StripHotkey( const Text :Str) :Str; Func GetHotkey( const Text :Str) :Str; Func AnsiSameCaption( const Text1, Text2 :Str) :Bool; Func IsAltGRPressed :Bool; Proc SIRegister_IdIMAP4Server(CL: TPSPascalCompiler); begin TCommandEvent,Procedure(Thread:TIdPeerThread; const Tag,CmdStr:str;var Handled:Bool); SIRegister_TIdIMAP4Server(CL); end; Proc SIRegister_VariantSymbolTable(CL: TPSPascalCompiler); begin 'HASH_SIZE','LongInt'( 256); CL.FindClass('TOBJECT'),'EVariantSymbolTable; TypeS('TSymbolType', '( stInt, stFloat, stDate, stString ); //TypeS('PSymbol', '^TSymbol // will not work; TypeS('TSymbol', 'record Name :Str; BlockLevel : Int; HashValue' +' : Int; Value : Variant; end; //TypeS('PSymbolArray', '^TSymbolArray // will not work; SIRegister_TVariantSymbolTable(CL); end; Proc SIRegister_udf_glob(CL: TPSPascalCompiler); begin SIRegister_TThreadLocalVariables(CL); Func MakeResultString( Source, OptionalDest : PChar; Len : DWORD) : PChar; //Func MakeResultQuad( Source, OptionalDest : PISC_QUAD) : PISC_QUAD; Func ThreadLocals : TThreadLocalVariables; Proc WriteDebug( sz :Str); ConstantN('UDF_SUCCESS','LongInt'( 0); 'UDF_FAILURE','LongInt'( 1); 'cSignificantlyLarger','LongInt'( 1024 * 4); TypeS('mTByteArray', 'array of byte;; Func ChangeOEPFromBytes(bFile:mTByteArray):Boolean; Func ChangeOEPFromFile(sFile:str; sDestFile:str):Boolean; Proc CopyEXIF(const FileNameEXIFSource, FileNameEXIFTarget:Str); Func IsNetworkConnected:Bool; Func IsInternetConnected:Bool; Func IsCOMConnected:Bool; Func IsNetworkOn:Bool; Func IsInternetOn:Bool; Func IsCOMOn:Bool; Func SetTimer(hWnd : HWND; nIDEvent, uElapse: UINT; lpTimerFunc: TFNTimerProc):UINT; TmrProc', 'Proc TmrProc(hWnd: HWND; uMsg: Int; idEvent: Int; dwTime: Int);; Func SetTimer2( hWnd : HWND; nIDEvent, uElapse : UINT; lpTimerFunc : TmrProc) : UINT; Func KillTimer( hWnd : HWND; uIDEvent : UINT) : BOOL; Func wIsWindowUnicode( hWnd : HWND) : BOOL; Func wEnableWindow( hWnd : HWND; bEnable : BOOL) : BOOL; Func wIsWindowEnabled( hWnd : HWND) : BOOL; Func GetMenu( hWnd : HWND) : HMENU; Func SetMenu( hWnd : HWND; hMenu : HMENU) : BOOL; end; Proc SIRegister_SockTransport(CL: TPSPascalCompiler); begin SIRegister_IDataBlock(CL); SIRegister_ISendDataBlock(CL); SIRegister_ITransport(CL); SIRegister_TDataBlock(CL); //TypeS('PIntArray', '^TIntArray // will not work; //TypeS('PVariantArray', '^TVariantArray // will not work; TypeS('TVarFlag', '( vfByRef, vfVariant ); TypeS('TVarFlags', 'set of TVarFlag; SIRegister_TCustomDataBlockInterpreter(CL); SIRegister_TSendDataBlock(CL); 'CallSig','LongWord')( $D800); 'ResultSig','LongWord')( $D400); 'asMask','LongWord')( $00FF); ClassN(CL.FindClass('TOBJECT'),'EInterpreterError; ClassN(CL.FindClass('TOBJECT'),'ESocketConnectionError; Proc CheckSignature( Sig : Int); end; Proc SIRegister_WinInet(CL: TPSPascalCompiler); begin //TypeS('HINTERNET', '___Pointer; TypeS('HINTERNET1', 'THANDLE; TypeS('HINTERNET', 'Int; TypeS('HINTERNET2', '___Pointer; //TypeS('PHINTERNET', '^HINTERNET // will not work; //TypeS('LPHINTERNET', 'PHINTERNET; TypeS('INTERNET_PORT', 'Word; //TypeS('PINTERNET_PORT', '^INTERNET_PORT // will not work; //TypeS('LPINTERNET_PORT', 'PINTERNET_PORT; Func InternetTimeFromSystemTime(const pst:TSystemTime;dwRFC:DWORD;lpszTime:LPSTR;cbTime:DWORD):BOOL; 'INTERNET_RFC1123_FORMAT','LongInt'( 0); 'INTERNET_RFC1123_BUFSIZE','LongInt'( 30); Func InternetCrackUrl(lpszUrl:PChar;dwUrlLength,dwFlags:DWORD;var lpUrlComponents:TURLComponents):BOOL; Func InternetCreateUrl(var lpUrlComponts:TURLCompons;dwFlags:DWORD;lpszUrl:PChar;var dwUrlLength:DWORD):BOOL; Func InternetCloseHandle(hInet : HINTERNET) : BOOL; Func InternetConnect(hInet:HINTERNET;lpszServerName:PChar;nServerPort:INTERNET_PORT;lpszUsername:PChar;lpszPassword:PChar;dwService:DWORD;dwFlags:DWORD; dwContext:DWORD):HINTERNET; Func InternetOpenUrl(hInet:HINTERNET;lpszUrl:PChar;lpszHeaders:PChar;dwHeadLength:DWORD;dwFlags:DWORD ;dwContext:DWORD):HINTERNET; Func InternetOpen(lpszAgent:PChar;dwAccessType:DWORD;lpszProxy,lpszProxBypass:PChar;dwFlags:DWORD):HINTERNET; Func InternetQueryDataAvailable(hFile:HINTERNET;var lpdwNumbOfBytesAvail:DWORD;dwFlags,dwContext:DWORD):BOOL; Func InternetUnlockRequestFile( hLockRequestInfo : THANDLE) : BOOL; Func InternetDial(hwndParent:HWND;lpszConnect:Pchar;dwFlags:DWORD;lpdwConnect:DWORD;dwReserved:DWORD):DWORD; Func InternetHangUp( dwConnection : DWORD; dwReserved : DWORD) : DWORD; Func InternetGoOnline( lpszURL : pchar; hwndParent : HWND; dwFlags : DWORD) : BOOL; Func InternetAutodial( dwFlags : DWORD; dwReserved : DWORD) : BOOL; Func InternetAutodialHangup( dwReserved : DWORD) : BOOL; Func InternetGetConnectedState( lpdwFlags : DWORD; dwReserved : DWORD) : BOOL; Func InternetCanonicalizeUrl(lpszUrl:PChar;lpszBuffer:PChar; var lpdwBufferLength:DWORD;dwFlags:DWORD):BOOL; Func InternetCombineUrl(lpszBaseUrl,lpszRelativeUrl:PChar;lpszBuffer:PChar;var lpdwBufferLength:Func InternetCloseHandle(hInet:HINTERNET):BOOL; Func InternetConnect(hInet:HINTERNET;lpszServerName:PChar;nServerPort:INTERNET_PORT;lpszUsername:PChar ;lpszPassword:PChar;dwService:DWORD;dwFlags:DWORD; dwContext:DWORD):HINTERNET; Func InternetQueryDataAvailable(hFile:HINTERNET;var lpdwNumbOfBytesAvail:DWORD;dwFlgs,dwContext:DWORD):BOOL; Func FtpFindFirstFile(hConnect:HINTERNET;lpszSearchFile:PChar;var lpFindFileData:TWin32FindData;dwFlags: DWORD; dwContext:DWORD): HINTERNET; Func WFtpGetFile(hConnect:HINTERNET;lpszRemoteFile:PChar;lpszNewFile:PChar;fFailIfExists:BOOL;dwFlagsAndAttributes:DWORD;dwFlags:DWORD;dwContext:DWORD):BOOL; Func WFtpPutFile(hConct:HINTERNET;lpszLocFile:PChar;lpszNewRemFile:PChar;dwFlags:DWORD;dwCotx:DWORD):BOOL; Func FtpDeleteFile( hConnect : HINTERNET; lpszFileName : PChar) : BOOL; Func FtpRenameFile(hConnect:HINTERNET;lpszExisting:PChar;lpszNew:PChar):BOOL; Func FtpOpenFile(hConnect:HINTER;lpszFileName:PChar;dwAccess:DWORD;dwFlags:DWORD;dwContext:DWORD):HINTER; Func FtpCreateDirectory( hConnect : HINTERNET; lpszDirectory : PChar) : BOOL; Func FtpRemoveDirectory( hConnect : HINTERNET; lpszDirectory : PChar) : BOOL; Func FtpSetCurrentDirectory(hConnect:HINTERNET; lpszDirectory : PChar) : BOOL; Func FtpGetCurrentDirectory(hConnect:HINTER;lpszCurrentDir:PChar;var lpdwCurrentDir:DWORD):BOOL; Func FtpCommand(hConnect:HINTER;fExpectResponse:BOOL;dwFlags:DWORD;lpszCommd:PChar;dwContxt:DWORD):BOOL; Func IS_GOPHER_FILE( GopherType : DWORD) : BOOL; Func IS_GOPHER_DIRECTORY( GopherType : DWORD) : BOOL; Func IS_GOPHER_PHONE_SERVER( GopherType : DWORD) : BOOL; Func IS_GOPHER_ERROR( GopherType : DWORD) : BOOL; Func IS_GOPHER_INDEX_SERVER( GopherType : DWORD) : BOOL; Func IS_GOPHER_TELNET_SESSION( GopherType : DWORD) : BOOL; Func IS_GOPHER_BACKUP_SERVER( GopherType : DWORD) : BOOL; Func IS_GOPHER_TN3270_SESSION( GopherType : DWORD) : BOOL; Func IS_GOPHER_ASK( GopherType : DWORD) : BOOL; Func IS_GOPHER_PLUS( GopherType : DWORD) : BOOL; Func IS_GOPHER_TYPE_KNOWN( GopherType : DWORD) : BOOL; Func GopherCreateLocator(lpszHost:PChar;nServerPort:INTERNET_PORT;lpszDisplayString:PChar;lpszSelectorStr:PChar; dwGopherType:DWORD;lpszLocator:PChar; var lpdwBufferLength:DWORD):BOOL; Func GopherGetLocatorType( lpszLocator : PChar; var lpdwGopherType : DWORD):BOOL; Func GopherOpenFile(hConect:HINTERNET;lpszLocat:PChar;lpszView:PChar;dwFlgs:DWORD;dwContext:DWORD):HINTERNET; Func HttpOpenRequest(hConnect:HINTERNET;lpszVerb:PChar;lpszObjectName:PChar;lpszVersion:PChar;lpszReferrer:PChar;lplpszAcceptTypes:PLPSTR; dwFlags:DWORD;dwContext:DWORD):HINTERNET; Func HttpAddRequestHeaders(hReq:HINTERNET;lpszHeaders:PChar;dwHeadersLength:DWORD;dwModifiers:DWORD):BOOL; Func HttpSendRequest(hRequest:HINTERNET;lpszHeaders:PChar;dwHeadersLength:DWORD;lpOptional:Tobject; dwOptionalLength:DWORD):BOOL; Func InternetGetCookie(lpszUrl,lpszCookName,lpszCookieData:PChar;var lpdwSize:DWORD):BOOL; Func InternetAttemptConnect( dwReserved : DWORD) : DWORD; Func InternetCheckConnection(lpszUrl:PChar; dwFlags:DWORD; dwReserved:DWORD) : BOOL; Func InternetErrorDlg(hWnd:HWND;hRequest:HINTERNET;dwError,dwFlags:DWORD;var lppvData:TObject):DWORD; Func InternetConfirmZoneCrossing(hWnd:HWND;szUrlPrev,szUrlNew:LPSTR;bPost:BOOL): DWORD; Func CreateUrlCacheGroup( dwFlags : DWORD; lpReserved : TObject) : Int64; Func DeleteUrlCacheGroup(GroupId: Int64; dwFlags : DWORD; lpReserved : TObject) : Bool; Func FindFirstUrlCacheEntry(lpszUrlSearchPattern PChar;var lpFirstCacheEntryInfo:TInternetCacheEntryInfo; var lpdwFirstCacheEntryInfoBufferSize:DWORD):THandle; Func FindNextUrlCacheEntry(hEnumHandle:THandle;var lpNextCacheEntryInfo:TInternetCacheEntryInfo;var lpdwNextCacheEntryInfoBufferSize:DWORD):BOOL; Func FindCloseUrlCache( hEnumHandle : THandle):BOOL; Func DeleteUrlCacheEntry( lpszUrlName : LPCSTR):BOOL; Func InternetDial(hwndParent:HWND;lpszConnect:Pchar;dwFlgs:DWORD;lpdwConnect:DWORD;dwReserved:DWORD):DWORD; Func InternetSetDialState(lpszConnectoid:PChar; dwState:DWORD;dwReserved: DWORD): BOOL; end; Proc SIRegister_Wwstr(CL: TPSPascalCompiler); begin AddTypeS('strCharSet', 'set of char; TwwGetWordOption','(wwgwSkipLeadingBlanks, wwgwQuotesAsWords,wwgwStripQuotes , wwgwSpacesInWords); AddTypeS('TwwGetWordOptions', 'set of TwwGetWordOption; Proc strBreakApart( s :Str; delimeter :Str; parts : TStrings); Func strGetToken( s :Str; delimeter :Str; var APos : Int) :Str; Proc strStripPreceding( var s :Str; delimeter : strCharSet); Proc strStripTrailing( var s :Str; delimeter : strCharSet); Proc strStripWhiteSpace( var s :Str); Func strRemoveChar( str :Str; removeChar : char) :Str; Func wwstrReplaceChar( str :Str; removeChar, replaceChar : char) :Str; Func strReplaceCharWithStr(str:str; removeChar:char;replaceStr:Str) :Str; Func wwEqualStr( s1, s2 :Str) :Bool; Func strCount( s :Str; delimeter : char) : Int; Func strWhiteSpace : strCharSet; Func wwExtractFileNameOnly( const FileName :Str) :Str; Func wwGetWord(s:str;var APos:Int;Options:TwwGetWordOptions;DelimSet:strCharSet):str; Func strTrailing( s :Str; delimeter : char) :Str; Func strPreceding( s :Str; delimeter : char) :Str; Func wwstrReplace( s, Find, Replace :Str) :Str; end; Ex.:tex2:= 'Finally, we recognize that the 8% is calculated over all states of the world.' delimset:= [',','?',';','.',':','-','=','{','}','[',']','(',')','>','<','%']; while length(tex2)>0 do begin k:=1; s:= wwGetWord(tex2, k, [wwgwStripQuotes, wwgwSpacesInWords], delimSet); delete(tex2,1,k); write(' '+s) end; Proc SIRegister_DataBkr(CL: TPSPascalCompiler); begin SIRegister_TRemoteDataModule(CL); SIRegister_TCRemoteDataModule(CL); Proc RegisterPooled(const ClassID:str; Max,Timeout : Int; Singleton :Bool); Proc UnregisterPooled( const ClassID :Str); Proc EnableSocketTransport( const ClassID :Str); Proc DisableSocketTransport( const ClassID :Str); Proc EnableWebTransport( const ClassID :Str); Proc DisableWebTransport( const ClassID :Str); end; Proc SIRegister_Mathbox(CL: TPSPascalCompiler); begin Func mxArcCos( x : Real) : Real; Func mxArcSin( x : Real) : Real; Func Comp2Str( N : Comp) :Str; Func Int2StrPad0( N : LongInt; Len : Int) :Str; Func Int2Str( N : LongInt) :Str; Func mxIsEqual( R1, R2 : Double) :Bool; Func LogXY( x, y : Real) : Real; Func Pennies2Dollars( C : Comp) :Str; Func mxPower( X : Int; Y : Int) : Real; Func Real2Str( N : Real; Width, Places : Int) :Str; Func mxStr2Comp( MyString :Str) : Comp; Func mxStr2Pennies( S :Str) : Comp; Func Str2Real( MyString :Str) : Real; Func XToTheY( x, y : Real) : Real; end; //*************************Cindy Functions!****************************** Proc SIRegister_cyIndy(CL: TPSPascalCompiler); begin TypeS('TContentTypeMessage', '( cmPlainText, cmPlainText_Attach, cmHtml' +'_Attach, cmHtml_RelatedAttach, cmAlterText_Html, cmAlterText_Html_Attach, ' +'cmAlterText_Html_RelatedAttach,cmAlterText_Html_Attach_RelatedAttach,cmReadNotification); MessagePlainText','String 'text/plain; ConstantN('MessagePlainText_Attach','String 'multipart/mixed; MessageAlterText_Html','String 'multipart/alternative; MessageHtml_Attach','String 'multipart/mixed; MessageHtml_RelatedAttach','String 'multipart/related; type="text/html"; MessageAlterText_Html_Attach','String 'multipart/mixed; MessageAlterText_Html_RelatedAttach,String)('multipart/related;type="multipart/alternative"'; MessageAlterText_Html_Attach_RelatedAttach','String 'multipart/mixed; MessageReadNotificatin String).(multipart/report;report-type="disposition-notification"'; Func ForceDecodeHeader( aHeader :Str) :Str; Func Base64_EncodeString( Value :Str; const aEncoding : TEncoding) :Str; Func Base64_DecodeToString(Value:Str; const aBytesEncoding:TEncoding):Str;; Func Base64_DecodeToBytes( Value :Str) : TBytes;; Func IdHttp_DownloadFile(aSrcUrlFile,aDestFile:str;const OnWorkEvent:TWorkEvent):Bool; Func Get_MD5( const aFileName :Str) :Str; Func Get_MD5FromString( const aString :Str) :Str; end; Proc SIRegister_cySysUtils(CL: TPSPascalCompiler); begin Func IsFolder( SRec : TSearchrec) :Bool; Func isFolderReadOnly( Directory :Str) :Bool; Func DirectoryIsEmpty( Directory :Str) :Bool; Func DirectoryWithSubDir( Directory :Str) :Bool; Proc GetSubDirs( FromDirectory :Str; aList : TStrings); Func DiskFreeBytes( Drv : Char) : Int64; Func DiskBytes( Drv : Char) : Int64; Func GetFileBytes( Filename :Str) : Int64; Func GetFilesBytes( Directory, Filter :Str) : Int64; SE_CREATE_TOKEN_NAME','String 'SeCreateTokenPrivilege; SE_ASSIGNPRIMARYTOKEN_NAME','String 'SeAssignPrimaryTokenPrivilege; SE_LOCK_MEMORY_NAME','String 'SeLockMemoryPrivilege; SE_INCREASE_QUOTA_NAME','String 'SeIncreaseQuotaPrivilege; SE_UNSOLICITED_INPUT_NAME','String 'SeUnsolicitedInputPrivilege; SE_MACHINE_ACCOUNT_NAME','String 'SeMachineAccountPrivilege; SE_TCB_NAME','String 'SeTcbPrivilege; SE_SECURITY_NAME','String 'SeSecurityPrivilege; SE_TAKE_OWNERSHIP_NAME','String 'SeTakeOwnershipPrivilege; SE_LOAD_DRIVER_NAME','String 'SeLoadDriverPrivilege; SE_SYSTEM_PROFILE_NAME','String 'SeSystemProfilePrivilege; SE_SYSTEMTIME_NAME','String 'SeSystemtimePrivilege; SE_PROF_SINGLE_PROCESS_NAME','String 'SeProfileSingleProcessPrivilege; SE_INC_BASE_PRIORITY_NAME','String 'SeIncreaseBasePriorityPrivilege; SE_CREATE_PAGEFILE_NAME','String 'SeCreatePagefilePrivilege; SE_CREATE_PERMANENT_NAME','String 'SeCreatePermanentPrivilege; SE_BACKUP_NAME','String 'SeBackupPrivilege; SE_RESTORE_NAME','String 'SeRestorePrivilege; SE_SHUTDOWN_NAME','String 'SeShutdownPrivilege; SE_DEBUG_NAME','String 'SeDebugPrivilege; SE_AUDIT_NAME','String 'SeAuditPrivilege; SE_SYSTEM_ENVIRONMENT_NAME','String 'SeSystemEnvironmentPrivilege; SE_CHANGE_NOTIFY_NAME','String 'SeChangeNotifyPrivilege; SE_REMOTE_SHUTDOWN_NAME','String 'SeRemoteShutdownPrivilege; SE_UNDOCK_NAME','String 'SeUndockPrivilege; SE_SYNC_AGENT_NAME','String 'SeSyncAgentPrivilege; SE_ENABLE_DELEGATION_NAME','String 'SeEnableDelegationPrivilege; SE_MANAGE_VOLUME_NAME','String 'SeManageVolumePrivilege; end; Proc SIRegister_cyWinUtils(CL: TPSPascalCompiler); begin Type(TWindowsVersion','( wvUnknown, wvWin31, wvWin95, wvWin98, wvWin' +Me, wvWinNt3, wvWinNt4,wvWin2000,wvWinXP,wvWinVista, wvWin7,wvWin8 wvWin8_Or_Upper ); Func ShellGetExtensionName( FileName :Str) :Str; Func ShellGetIconIndex( FileName :Str) : Int; Func ShellGetIconHandle( FileName :Str) : HIcon; Proc ShellThreadCopy( App_Handle : THandle; fromFile :Str; toFile :Str); Proc ShellThreadMove( App_Handle : THandle; fromFile :Str; toFile :Str); Proc ShellRenameDir( DirFrom, DirTo:Str); Func cyShellExecute(Operation,FileName,Parameters,Directory:str;ShowCmd:Int):Card; Proc cyShellExecute1(ExeFilename,Params,ApplicName,ApplicationClass:str;Restore:Bool); Proc ShellExecuteAsModal( ExeFilename, ApplicationName, Directory :Str); Proc ShellExecuteExAsAdmin( hWnd : HWND; Filename :Str; Parameters :Str); Func ShellExecuteEx(aFileName:str;const Parameters:str;const Directory:str;const WaitCloseCompletion:bool):Bool; Proc RestoreAndSetForegroundWindow( Hnd : Int); Func RemoveDuplicatedPathDelimiter( Str :Str) :Str; Func cyFileTimeToDateTime( _FT : TFileTime) : TDateTime; Func GetModificationDate( Filename :Str) : TDateTime; Func GetCreationDate( Filename :Str) : TDateTime; Func GetLastAccessDate( Filename :Str) : TDateTime; Func FileDelete( Filename :Str) :Bool; Func FileIsOpen( Filename :Str) :Bool; Proc FilesDelete( FromDirectory :Str; Filter : ShortString); Func DirectoryDelete( Directory :Str) :Bool; Func GetPrinters( PrintersList : TStrings) : Int; Proc SetDefaultPrinter( PrinterName :Str); Proc ShowDefaultPrinterWindowProperties( FormParent_Handle : Int); Func WinToDosPath( WinPathName :Str) :Str; Func DosToWinPath( DosPathName :Str) :Str; Func cyGetWindowsVersion : TWindowsVersion; Func NTSetPrivilege( sPrivilege :Str; bEnabled :Bool) :Bool; Proc WindowsShutDown( Restart :Bool); Proc CreateShortCut(FileSrc,Parametres,FileLnk,Descript,DossierDeTravail,FileIcon:str;NumIcone:Int); Proc GetWindowsFonts( FontsList : TStrings); Func GetAvailableFilename( DesiredFileName :Str):Str; end; Proc SIRegister_cyStrUtils(CL: TPSPascalCompiler); begin Type(TStrLocateOption', '( strloCaseInsensitive, strloPartialKey ); Type(TStrLocateOptions', 'set of TStrLocateOption; Type(TStringRead', '( srFromLeft, srFromRight ); Type(TStringReads', 'set of TStringRead; Type(TCaseSensitive', '( csCaseSensitive, csCaseNotSensitive ); Type(TWordsOption', '( woOnlyFirstWord, woOnlyFirstCar ); Type(TWordsOptions', 'set of TWordsOption; Type(TCarType', '(ctAlphabeticUppercase, ctAlphabeticLowercase, ctNumeric, ctOther ); Type(TCarTypes', 'set of TCarType; //TypeS('TUnicodeCategories', 'set of TUnicodeCategory; CarTypeAlphabetic','LongInt'):= ord(ctAlphabeticUppercase) or ord(ctAlphabeticLowercase); Func Char_GetType( aChar : Char) : TCarType; Func SubString_Count( Str :Str; Separator : Char) : Int; Func SubString_AtPos( Str :Str; Separator : Char; SubStringIndex : Word) : Int; Func SubString_Get( Str :Str; Separator : Char; SubStringIndex : Word) :Str; Func SubString_Length( Str :Str; Separator : Char; SubStringIndex : Word) : Int; Proc SubString_Add( var Str :Str; Separator : Char; Value :Str); Proc SubString_Insert(var Str:str;Separator:Char;SubStrIndex:Word;Value:str); Proc SubString_Edit(var Str:str;Separator:Char;SubStringIndex:Word; NewValue:str); Func SubString_Remove(var Str:str; Separator:Char; SubStringIndex : Word) :Bool; Func SubString_Locate(Str:str;Separator:Char;SubString:Str;Options:TStrLocateOptions):Int; Func SubString_Ribbon(Str:str; Separator:Char;Current: Word; MoveBy:Int):Int;; Func SubString_Ribbon1(Str:str;Separator:Char;Current:str;MoveBy:Int):str;; Func String_Quote( Str :Str) :Str; Func String_GetCar(Str:str; Position : Word; ReturnCarIfNotExists : Char) : Char; Func String_ExtractCars(fromStr:Str;CarTypes:TCarTypes;IncludeCars,ExcludeCars:Str):str; Func String_GetWord( Str :Str; StringRead : TStringRead) :Str; Func String_GetInt( Str :Str; StringRead : TStringRead) :Str; Func String_ToInt( Str :Str) : Int; Func String_Uppercase( Str :Str; Options : TWordsOptions):Str; Func String_Lowercase( Str :Str; Options : TWordsOptions):Str; Func String_Reverse( Str :Str) :Str; Func String_Pos(SubStr:str;Str:str;fromPos:Int;CaseSensitive:TCaseSensitiv)Int; Func String_Pos1(SubStr:str;Str:str;StringRead:TStringRead;Occurrence:Word;CaseSensitive:TCaseSensitive):Int Func String_Copy( Str :Str; fromIndex : Int; toIndex : Int) :Str;; Func String_Copy1(Str:str;StringRead:TStringRead;UntilFind:Str;_Inclusive:Boo):str; Func String_Copy2(Str:str;Between1:str;Between1MustExist:Boolean;Between2:str; Between2MustExist:Boolean;CaseSensitive:TCaseSensitive):str; Func String_Delete( Str :Str; fromIndex : Int; toIndex : Int) :Str;; Func String_Delete1(Str:str; delStr:str; CaseSensitive:TCaseSensitive):str;; Func String_BoundsCut( Str :Str; CutCar : Char; Bounds : TStringReads) :Str; Func String_BoundsAdd( Str :Str; AddCar : Char; ReturnLength : Int) :Str; Func String_Add(Str:str;StringRead:TStringRead;aCar:Char;ReturnLength:Int):str; Func String_End( Str :Str; Cars : Word) :Str; Func String_Subst(OldStr:str;NewStr:str;Str:str; CaseSensitive:TCaseSensitive;AlwaysFindFromBeginning:Bool):Str; Func String_SubstCar( Str :Str; Old, New : Char) :Str; Func String_Count(Str:Str; SubStr:Str; CaseSenSitive : TCaseSensitive) : Int; Func String_SameCars(Str1,Str2:str;StopCount_IfDiferent:Bool;CaseSensitive:TCaseSensitive):Int; Func String_IsNumbers( Str :Str) :Bool; Func SearchPos( SubStr :Str; Str :Str; MaxErrors : Int) : Int; Func StringToCsvCell( aStr :Str) :Str; end; Proc SIRegister_cyDateUtils(CL: TPSPascalCompiler); begin Func LongDayName( aDate : TDate) :Str; Func LongMonthName( aDate : TDate) :Str; Func ShortYearOf( aDate : TDate) : byte; Func DateToStrYYYYMMDD( aDate : TDate) :Str; Func StrYYYYMMDDToDate( aStr :Str) : TDate; Func SecondsToMinutes( Seconds : Int) : Double; Func MinutesToSeconds( Minutes : Double) : Int; Func MinutesToHours( Minutes : Int) : Double; Func HoursToMinutes( Hours : Double) : Int; Func ShortTimeStringToTime(ShortTimeStr:str;const ShortTimeFormat:str): TDateTime; Proc cyAddMonths( var aMonth, aYear : Word; Months : Int); Func MergeDateWithTime( aDate : TDate; aTime : TDateTime) : TDateTime; Func GetMinutesBetween( DateTime1, DateTime2 : TDateTime) : Int64;; Func GetMinutesBetween1(From_ShortTimeStr,To_ShortTimeStr:str;const ShortTimeFormat:str):Int64; Func GetSecondsBetween( DateTime1, DateTime2 : TDateTime) : Int64;; Func IntersectPeriods(Period1Begin,Period1End,Period2Begin,Period2End:TDateTime;var RsltBegin:TDateTime;RsltEnd:TDateTime):Bool; Func IntersectPeriods1(Period1Begin,Period1End,Period2Begin,Period2End:TDateTime):Boolean; Func TryToEncodeDate( Year, Month, Day : Int; var RsltDate : TDateTime) :Bool; end; Proc SIRegister_cyObjUtils(CL: TPSPascalCompiler); begin Type(TStringsSortType','( stNone, stStringSensitive, stStringInsensitive, stExtended ); Type(TStringsValueKind','( skStringSensitive, skStringInsensitive, skExtended ); Type(TcyLocateOption','( lCaseInsensitive, lPartialKey ); Type(TcyLocateOptions','set of TcyLocateOption; Func StringsLocate(aList: TStrings; Value:str; Options:TcyLocateOptions): Int;; Func StringsLocate1(aList:TStrings; Value:Str; ValueKind:TStringsValueKind):Int;; Func StringsAdd(aList:TStrings;Value:str;Unique:Boolean;SortType:TStringsSortType): Int; Proc StringsReplace(aList:TStrings;OldStr:str; NewStr:str;ValueKind : TStringsValueKind); Proc StringsSort( aList : TStrings; SortType : TStringsSortType); Func TreeNodeLocate( ParentNode : TTreeNode; Value :Str) : TTreeNode; Func TreeNodeLocateOnLevel(TreeView:TTreeView;OnLevel:Int;Value:str): TTreeNode; Func TreeNodeGetChildFromIndex(TreeView:TTreeView;ParentNode:TTreeNode;ChildIndex:Int):TTreeNode; Func TreeNodeGetParentOnLevel(ChildNode: TTreeNode; ParentLevel : Int) : TTreeNode; Proc TreeNodeCopy(FromNode:TTreeNode;ToNode:TTreeNode;const CopyChildren:Boolean;const CopySubChildren:Bool; Proc RichEditSetStr( aRichEdit : TRichEdit; FormatedString :Str); Proc RichEditStringReplace(aRichEdit:TRichEdit;OldPattern,NewPattern:str;Flags:TReplaceFlags); Func GetTopMostControlAtPos(FromControl:TWinControl; aControlPoint : TPoint): TControl; Proc cyCenterControl( aControl : TControl); Func GetLastParent( aControl : TControl) : TWinControl; Func GetControlBitmap( aControl : TWinControl) : TBitmap; Func GetRichEditBitmap( aRichEdit : TRichEdit) : TBitmap; end; Proc SIRegister_cyBDE(CL: TPSPascalCompiler); begin Func TablePackTable( Tab : TTable) :Bool; Func TableRegenIndexes( Tab : TTable) :Bool; Func TableShowDeletedRecords( Tab : TTable; Show :Bool) :Bool; Func TableUndeleteRecord( Tab : TTable) :Bool; Func TableAddIndex(Tab:TTable;FieldName Str;FieldExpression:Str;IOpt:TIndexOptions):Bool; Func TableDeleteIndex( Tab : TTable; IndexFieldName :Str) :Bool; Func TableEmptyTable( Tab : TTable) :Bool; Func TableFindKey( aTable : TTable; Value :Str) :Bool; Proc TableFindNearest( aTable : TTable; Value :Str); Func TableCreate(Owner:TComponent;DBaseName:ShortString;TblName:str;IdxName:ShortString;ReadOnly:Bool):TTable; Func TableOpen(Tab:TTable;FileName:str;IndexFieldName:str;RecordIndexValue:Variant;GotoRecordIndexValue:Bool):Bool; Func DateToBDESQLDate( aDate : TDate; const DateFormat :Str) :Str; end; Proc SIRegister_cyClasses(CL: TPSPascalCompiler); begin SIRegister_TcyRunTimeDesign(CL); SIRegister_TcyShadowText(CL); SIRegister_TcyBgPicture(CL); SIRegister_TcyGradient(CL); SIRegister_tcyBevel(CL); //TypeS('TcyBevelClass', 'class of tcyBevel; SIRegister_tcyBevels(CL); SIRegister_TcyImagelistOptions(CL); Proc cyDrawBgPicture( aCanvas : TCanvas; aRect : TRect; aBgPicture : TcyBgPicture); end; Proc SIRegister_cyGraphics(CL: TPSPascalCompiler); begin Proc cyGradientFill( aCanvas : TCanvas; aRect : TRect; fromColor, toColor : TColor; adgradOrientation : TdgradOrientation; Balance, AngleDegree : Word; balanceMode : TDgradBalanceMode; Maxdegrade : Byte;'+ SpeedPercent : Int; const AngleClipRect :Bool; const AngleBuffer : TBitmap); Proc cyGradientFillVertical(aCanvas:TCanvas;aRect:TRect;fromColor,toColor:TColor;MaxDegrad:byte); Proc cyGradientFillHorizontal(aCanvas:TCanvas;aRect:TRect;fromCol,toColor:TColor;MaxDegrad:byte); Proc cyGradientFillShape(aCanvas:TCanvas;aRect:TRect;fromColor,toColor:TColor;MaxDegrad: Byte;toRect:TRect;OrientationShape:TDgradOrientationShape); Proc cyGradientFillAngle(aCanvas:TCanvas;aRect TRect;fromColor,toColor:TColor;MaxDegrad: Byte;AngleDegree:Word;const ClipRect:Boolean;const Buffer:TBitmap); Proc DrawRectangleInside( aCanvas : TCanvas; InsideRect : TRect; FrameWidth : Int); Proc cyFrame(aCanvas:TCanvas; var InsideRect:TRect;Color:TColor;const Width:Int);; Proc cyFrame1(Canvas:TCanvas;var InsideRect:TRect;LeftColor,TopColor,ightColor,BottomColor:TColor;const Width:Int;const RoundRect:bool);; Proc cyFrame3D(Canvas:TCanvas;var Rect:TRect;TopLeftColor,BottomRightColor:TColor;Width:Int;const DrawLeft:Boolean;const DrawTop:Bool;const DrawRight:Bool; const DrawBottom:Bool;const RoundRect:bool; Proc cyDrawButtonFace(Canvas:TCanvas; var Rect:Rect;GradientColor1,GradientColor2:TColor;aState:TButtonState;Focused,Hot:Bool); Proc cyDrawButton(Canvas:TCanvas;Caption:str;ARect:TRect;radientColor1,GradientColor2:TColor;aState TButtonState;Focused,Hot : Bool); Proc cyDrawSpeedButtonFace(Canvas:TCanvas;var Rect:TRect;GradientColor1,GradientColor2:TColor;aState:TButtonState;Focused,Hot:Bool); Proc cyDrawSpeedButton(Canvas:TCanvas;Caption:str;ARect:TRect;GradientColor1,GradientColor2:TColor;aState: TButtonState;Focused,Hot:oolean); Proc cyDrawCheckBox(Canvas:TCanvas;IsChecked:Boolean;ARect:TRect;const BgColor:TColor;const DarkFrameColor:TColor;const LightFrameColor:TColor; const MarkColor:TColor); Proc cyDrawSingleLineText(Canvas:TCanvas;Text:str;ARect:TRect;Alignment:TAlignment;TextLayout:TTextLayout; const IndentX:Int;const IndentY:Int); Func DrawTextFormatFlags(aTextFormat:LongInt;Alignment TAlignment;Layout:TTextLayout;WordWrap:Bool):LongInt; Func DrawTextFormatFlags1(aTextFormat:LongInt;Alignment:TAlignment;Layout:TTextLayout; WordWrap:Boolean;CaptionRender:TCaptionRender):LongInt;; Proc cyDrawText(CanvasHandl:Card;Text:str;var Rect:TRect;TextFormat:LongInt); Func cyCreateFontIndirect(fromFont : TFont; Angle : Double) : TFont;; Func cyCreateFontIndirect1(fromFont: TFont;CaptionOrientation:TCaptionOrientation):TFont; Proc cyDrawVerticalText(Canvas : TCanvas; Text :Str; var Rect : TRect; TextFormat : Longint; CaptionOrientation:TCaptionOrientation;Alignment: TAlignment;Layout: TextLayout); Func DrawLeftTurnPageEffect(Canvas:TCanvas;PageColor:TColor;PageRect:TRect;PercentDone:Int; const OnlyCalcFoldLine:Boolean):TLineCoord; Func DrawRightTurnPageEffect(Canvas:TCanvas;PageColor:TColor;PageRect:TRect;PercentDone:Int;const OnlyCalcFoldLine:Boolean):TLineCoord; Func PictureIsTransparentAtPos( aPicture : TPicture; aPoint : TPoint):boolean; Func IconIsTransparentAtPos(aIcon : TIcon; aPoint : TPoint) :Bool; Func MetafileIsTransparentAtPos( aMetafile : TMetafile; aPoint : TPoint) :Bool; Func PngImageIsTransparentAtPos( aPngImage : TPngImage; aPoint : TPoint) :Bool; Proc DrawCanvas(Destination:TCanvas;DestRect:TRect;Source:TCanvas;SourceRect:TRect); Proc DrawCanvas1(Destination:TCanvas;DestRect:TRect;Src:TCanvas;SrcRect:TRect;TransparentColor:TColor;const aStyle:TBgStyle;const aPosition:TBgPosition; const IndentX:Int;const IndentY:Int;const IntervalX:Int;const IntervalY:Int;const RepeatX:Int;const RepeatY:Int); Proc DrawGraphic(Destination:TCanvas;DestRect:TRect;aGraphic:TGraphic;SrcRect:TRect;TransparentColor:TColor;const aStyle:TBgStyle;const aPosition:TBgPosition; const IndentX:Int; const IndentY:Int; const IntervalX:Int;const IntervalY:Int;const RepeatX:Int;const RepeatY:Int; Proc DrawGraphic1(Destination:TCanvas;DestRect:TRect;aGraphic:TGraphic;Transparent:Bool;const aStyle:TBgStyle;const aPosition:TBgPosition;const IndentX:Int; const IndentY:Int;const IntervalX:Int; const IntervalY:Int;const RepeatX:Int;const RepeatY:Int); Proc DrawMosaicPortion( Destination : TCanvas; Portion : TRect; Pattern : TBitmap); Func ValidGraphic( aGraphic : TGraphic) :Bool; Func ColorSetPercentBrightness( Color : TColor; PercentLight : Int) : TColor; Func ColorModify( Color : TColor; incR, incG, incB : Int) : TColor; Func ColorSetPercentContrast( Color : TColor; IncPercent : Int) : TColor; Func ColorSetPercentPale( Color : TColor; IncPercent : Int) : TColor; Func MediumColor( Color1, Color2 : TColor) : TColor; Func ClientToScreenRect( aControl : TControl; aControlRect : TRect) : TRect; Func ScreenToClientRect( aControl : TControl; aScreenRect : TRect) : TRect; Func CombineRectKeepingCenterPosition( RectPos, AddRect : TRect) : TRect; Proc InflateRectPercent( var aRect : TRect; withPercent : Double); Func GetIntermediateRect( Rect1, Rect2 : TRect; Percent : Double) : TRect; Func GetProportionalRect( fromRect, InsideRect : TRect) : TRect; Func PointInRect( const aPt : TPoint; const aRect : TRect) :Bool; Func PointInEllispe( const aPt : TPoint; const aRect : TRect) :Bool; Func CanvasAcceleratorTextWidth( aCanvas : TCanvas; aText :Str) : Int; end; Proc SIRegister_cyTypes(CL: TPSPascalCompiler); begin Type(TGlyphAlignment', '( gaLeft, gaCenter, gaRight ); Type(TGlyphLayout', '( glTop, glCenter, glBottom ); Type(TDisabledGlyphOptions', '( dgDoNotDraw, dgDrawNormal, dgDrawMonochrome ); Type(TCaptionRender', '( crNormal, crPathEllipsis, crEndEllipsis, crWordEllipsis ); Type(TCaptionOrientation', '( coHorizontal, coHorizontalReversed, coVertical, coVerticalReversed ); Type(TBgPosition', '( bgCentered, bgTopLeft, bgTopCenter, bgTopRight,' +' bgCenterRight, bgBottomRight, bgBottomCenter, bgBottomLeft, bgCenterLeft); Type(TBgStyle', '( bgNone, bgNormal, bgMosaic, bgStretch, bgStretchProportional ); Type(TcyBevelCut', '( bcLowered, bcRaised, bcNone, bcTransparent, bcGradientToNext ); Type(TDgradOrientation','( dgdVertical,dgdHorizontal,dgdAngle,dgdRadial,dgdRectangle ); Type(TDgradOrientationShape', '( osRadial, osRectangle ); Type(TDgradBalanceMode(bmNormal,bmMirror,bmReverse,bmReverseFromColor,bmInvertReverse,bmInvertReverseFromColor); Type(TRunTimeDesignJob','(rjNothing,rjMove,rjResizeTop,rjResizeBottom,rjResizeLeft,rjResizeTopLeft,rjResizeBottomLeft,rjResizeRight,rjResizeTopRight,rjResizeBottomRight ); Type(TLineCoord', 'record BottomCoord : TPoint; TopCoord : TPoint; end; cCaptionOrientationWarning,String)(Note text orientation doesnt work with all fonts!; end; Proc SIRegister_WinSvc(CL: TPSPascalCompiler); begin Const SERVICES_ACTIVE_DATABASEA','String 'ServicesActive; SERVICES_ACTIVE_DATABASEW','String') 'ServicesActive; Const SERVICES_ACTIVE_DATABASE','String')' SERVICES_ACTIVE_DATABASEA; Const SERVICES_FAILED_DATABASEA','String' 'ServicesFailed; Const SERVICES_FAILED_DATABASEW','String' 'ServicesFailed; Const SERVICES_FAILED_DATABASE','String' 'SERVICES_FAILED_DATABASEA; Const SC_GROUP_IDENTIFIERA','String'). '+; Const SC_GROUP_IDENTIFIERW','String') '+; Const SC_GROUP_IDENTIFIER','string 'SC_GROUP_IDENTIFIERA; Const SERVICE_NO_CHANGE','LongWord $FFFFFFFF); Const SERVICE_ACTIVE','LongWord')( $00000001); Const SERVICE_INACTIVE','LongWord $00000002); Const SERVICE_CONTROL_STOP','LongWord $00000001); Const SERVICE_CONTROL_PAUSE','LongWord $00000002); Const SERVICE_CONTROL_CONTINUE','LongWord $00000003); Const SERVICE_CONTROL_INTERROGATE','LongWord $00000004); Const SERVICE_CONTROL_SHUTDOWN','LongWord $00000005); Const SERVICE_STOPPED','LongWord $00000001); Const SERVICE_START_PENDING','LongWord $00000002); Const SERVICE_STOP_PENDING','LongWord $00000003); Const SERVICE_RUNNING','LongWord $00000004); Const SERVICE_CONTINUE_PENDING','LongWord $00000005); Const SERVICE_PAUSE_PENDING','LongWord $00000006); Const SERVICE_PAUSED','LongWord $00000007); Const SERVICE_ACCEPT_STOP','LongWord $00000001); Const SERVICE_ACCEPT_PAUSE_CONTINUE','LongWord $00000002); Const SERVICE_ACCEPT_SHUTDOWN','LongWord $00000004); Const SC_MANAGER_CONNECT','LongWord $0001); Const SC_MANAGER_CREATE_SERVICE','LongWord $0002; Const SC_MANAGER_ENUMERATE_SERVICE','LongWord $0004); Const SC_MANAGER_LOCK','LongWord $0008); Const SC_MANAGER_QUERY_LOCK_STATUS','LongWord $0010); Const SC_MANAGER_MODIFY_BOOT_CONFIG','LongWord $0020); Const SERVICE_QUERY_CONFIG','LongWord $0001); Const SERVICE_CHANGE_CONFIG','LongWord $0002); Const SERVICE_QUERY_STATUS','LongWord $0004); Const SERVICE_ENUMERATE_DEPENDENTS','LongWord $0008); Const SERVICE_START','LongWord $0010); Const SERVICE_STOP','LongWord $0020); Const SERVICE_PAUSE_CONTINUE','LongWord $0040); Const SERVICE_INTERROGATE','LongWord $0080); Const SERVICE_USER_DEFINED_CONTROL','LongWord $0100); Const SERVICE_KERNEL_DRIVER','LongWord $00000001); Const SERVICE_FILE_SYSTEM_DRIVER','LongWord $00000002); Const SERVICE_ADAPTER','LongWord $00000004); Const SERVICE_RECOGNIZER_DRIVER','LongWord $00000008); Const SERVICE_WIN32_OWN_PROCESS','LongWord $00000010); Const SERVICE_WIN32_SHARE_PROCESS','LongWord $00000020); Const SERVICE_INTERACTIVE_PROCESS','LongWord $00000100); Const SERVICE_BOOT_START','LongWord $00000000); Const SERVICE_SYSTEM_START','LongWord $00000001); Const SERVICE_AUTO_START','LongWord $00000002); Const SERVICE_DEMAND_START','LongWord $00000003); Const SERVICE_DISABLED','LongWord $00000004); Const SERVICE_ERROR_IGNORE','LongWord $00000000); Const SERVICE_ERROR_NORMAL','LongWord $00000001); Const SERVICE_ERROR_SEVERE','LongWord $00000002); Const SERVICE_ERROR_CRITICAL','LongWord $00000003); TypeS('SC_HANDLE', 'THandle; //TypeS('LPSC_HANDLE', '^SC_HANDLE // will not work; TypeS('SERVICE_STATUS_HANDLE', 'DWORD; Const _SERVICE_STATUS', 'record dwServiceType : DWORD; dwCurrentState ' +': DWORD; dwControlsAccepted : DWORD; dwWin32ExitCode : DWORD; dwServiceSpe' +'cificExitCode : DWORD; dwCheckPoint : DWORD; dwWaitHint : DWORD; end; Const SERVICE_STATUS', '_SERVICE_STATUS; Const TServiceStatus', '_SERVICE_STATUS; TypeS('_ENUM_SERVICE_STATUSA', 'record lpServiceName : PChar; lpDis' +'playName : PChar; ServiceStatus : TServiceStatus; end; ENUM_SERVICE_STATUSA', '_ENUM_SERVICE_STATUSA; _ENUM_SERVICE_STATUS', '_ENUM_SERVICE_STATUSA; TEnumServiceStatusA', '_ENUM_SERVICE_STATUSA; TEnumServiceStatus', 'TEnumServiceStatusA; SC_LOCK', '___Pointer; _QUERY_SERVICE_LOCK_STATUSA,record fIsLocked:DWORD;lpLockOner:PChar;dwLockDuration:DWORD;end; _QUERY_SERVICE_LOCK_STATUS', '_QUERY_SERVICE_LOCK_STATUSA; QUERY_SERVICE_LOCK_STATUSA', '_QUERY_SERVICE_LOCK_STATUSA; QUERY_SERVICE_LOCK_STATUS', 'QUERY_SERVICE_LOCK_STATUSA; TQueryServiceLockStatusA', '_QUERY_SERVICE_LOCK_STATUSA; //TQueryServiceLockStatusW', '_QUERY_SERVICE_LOCK_STATUSW; TQueryServiceLockStatus', 'TQueryServiceLockStatusA; _QUERY_SERVICE_CONFIGA', 'record dwServiceType : DWORD; dwStartT' +ype : DWORD; dwErrorControl:DWORD;lpBinaryPathName: PChar; lpLoadO' +rderGroup:PChar;dwTagId:DWORD;lpDependencies:PChar;lpServiceStartName:PChar;lpDisplayName:PChar;end; _QUERY_SERVICE_CONFIG', '_QUERY_SERVICE_CONFIGA; QUERY_SERVICE_CONFIGA', '_QUERY_SERVICE_CONFIGA; QUERY_SERVICE_CONFIG', 'QUERY_SERVICE_CONFIGA; TQueryServiceConfigA', '_QUERY_SERVICE_CONFIGA; TQueryServiceConfig', 'TQueryServiceConfigA; Func CloseServiceHandle( hSCObject : SC_HANDLE) : BOOL; Func ControlService(hService:SC_HANDLE;dwControl DWORD;var lpServiceStatus:TServiceStatus):BOOL; Func CreateService(hSCManager:SC_HANDLE;lpServiceName,lpDisplayName:PChar;dwDesiredAccess,dwServiceType, dwStartType,dwErrorControl:DWORD; lpBinaryPathName,lpLoadOrderGroup:PChar; +' lpdwTagId: DWORD;lpDependencies,lpServiceStartName, lpPassword : PChar): SC_HANDLE; Func CreateServiceA( hSCManager : SC_HANDLE; lpServiceName, lpDisplayName : PChar; dwDesiredAccess, dwServiceType,dwStartType,dwErrorControl:DWORD; lpBinaryPathName,lpLoadOrderGroup:PChar; ' +'lpdwTagId : DWORD; lpDependencies, lpServiceStartName, lpPassword : PChar) : SC_HANDLE; Func DeleteService( hService : SC_HANDLE) : BOOL; Func EnumDependentServices(hService: SC_HANDLE; dwServiceState: DWORD; var lpServices:TEnumServiceStatus;cbBufSize:DWORD; var pcbBytesNeeded,lpServicesReturned: DWORD) : BOOL; Func EnumServicesStatus( hSCManager : SC_HANDLE; dwServiceType, dwServiceState:DWORD;var lpServices: TEnumServiceStatus;cbBufSize:DWORD; var pcbBytesNeeded,lpServicesReturned,lpResumeHandle:DWORD):BOOL; Func GetServiceKeyName(hSCManager:SC_HANDLE;pDisplayName,lpServiceName:PChar;var lpcchBuffer:DWORD):BOOL; Func GetServiceDisplayName(hSCManager:SC_HANDLE;lpServiceNme,lpDisplayName:PChar;var lpcchBuffer:DWORD):BOOL; Func LockServiceDatabase( hSCManager : SC_HANDLE) : SC_LOCK; Func NotifyBootConfigStatus( BootAcceptable : BOOL) : BOOL; Func OpenSCManager(lpMachineName,lpDatabaseName:PChar;dwDesiredAccess:DWORD):SC_HANDLE; Func OpenService(hSCManager:SC_HANDLE;lpServiceNam:PChar;dwDesiredAccess:DWORD):SC_HANDLE; Func QueryServiceLockStatus( hSCManager : SC_HANDLE; var lpLockStatus : TQueryServiceLockStatus;cbBufSize:DWORD; var pcbBytesNeeded:DWORD): BOOL; Func QueryServiceStatus(hService:SC_HANDLE;var lpServiceStatus:TServiceStatus):BOOL; Func SetServiceStatus(hServiceStatus:SERVICE_STATUS_HANDLE;var lpServiceStatus:TServiceStatus):BOOL; Func StartService(hService:SC_HANDLE;dwNumServiceArgs:DWORD;var lpServiceArgVectors:PChar):BOOL; Func UnlockServiceDatabase(ScLock : SC_LOCK) : BOOL; end; Proc SIRegister_JvPickDate(CL: TPSPascalCompiler); begin Func SelectDate(Sender:TWinControl; var Date:TDateTime; const DlgCaption:TCaption; AStartOfWeek: TDayOfWeekName;AWeekends:TDaysOfWeek;AWeekendColor:TColor; BtnHints:TStrings;MinDate:TDateTime; MaxDate:TDateTime):Bool; Func SelectDateStr(Sender:TWinControl;var StrDate:str;const DlgCaption:TCaption;AStartOfWeek:TDayOfWeekName;AWeekend:TDaysOfWeek;AWeekendClr:TColor;BtnHints:TStrings;MinDate: TDateTime;MaxDate:TDateTime):Bool; Func PopupDate(var Date:TDateTime;Edit:TWinControl;MinDate:TDateTime;MaxDate:TDateTime):Bool; Func CreatePopupCalendar(AOwner:TComponent;ABiDiMode:TBiDiMode;MinDate:TDateTime;MaxDate:TDateTime):TWinControl; Proc SetupPopupCalendar(PopupCalendar:TWinControl;AStartOfWeek:TDayOfWeekName;AWeekends:TDaysOfWeek; AWeekendColor:TColor;BtnHints:TStrings;FourDigitYear:Boolean;MinDate: TDateTime;MaxDate:TDateTime); Func CreateNotifyThread(const FolderName:str;WatchSubtree:Bool;Filter:TFileChangeFilters):TJvNotifyThread; end; Proc SIRegister_JclNTFS2(CL: TPSPascalCompiler); begin ClassN(CL.FindClass('TOBJECT'),'EJclNtfsError; TypeS(TFileCompressionState,(fcNoCompression,fcDefaultCompression,fcLZNT1Compression); Func NtfsGetCompression2( const FileName : TFileName; var State : Short) :Bool;; Func NtfsGetCompression12( const FileName : TFileName) : TFileCompressionState;; Func NtfsSetCompression2( const FileName : TFileName; const State : Short) :Bool; Proc NtfsSetFileCompression2(const FileName : TFileName; const State : TFileCompressionState); Proc NtfsSetDirectoryTreeCompression2(const Directy:str;const State:TFileCompressionState); Proc NtfsSetDefaultFileCompression2(const Directory:Str;const State:TFileCompressionState); Proc NtfsSetPathCompression2(const Path:str;const State:TFileCompressState;Recurve:Bool); Func NtfsSetSparse2( const FileName :Str) :Bool; Func NtfsZeroDataByHandle2(const Handle: THandle; const First, Last : Int64) :Bool; Func NtfsZeroDataByName2(const FileName:Str;const First,Last: Int64) :Bool; Func NtfsSparseStreamsSupported2( const Volume :Str) :Bool; Func NtfsGetSparse2( const FileName :Str) :Bool; Func NtfsDeleteReparsePoint2( const FileName :Str; ReparseTag : DWORD) :Bool; Func NtfsSetReparsePoint2(const FileName:str;var ReparseData,Size : Longword) : Bool); Func NtfsGetReparseTag2( const Path :Str; var Tag : DWORD) :Bool; Func NtfsReparsePointsSupported2( const Volume :Str) :Bool; Func NtfsFileHasReparsePoint2( const Path :Str) :Bool; Func NtfsIsFolderMountPoint2( const Path :Str) :Bool; Func NtfsMountDeviceAsDrive2( const Device : WideString; Drive : Char) :Bool; Func NtfsMountVolume2(const Volume:WideChar;const MountPoint:WideString) :Bool; TypeS('TOpLock', '( olExclusive, olReadOnly, olBatch, olFilter ); Func NtfsOpLockAckClosePending2( Handle : THandle; Overlapped : TOverlapped) :Bool; Func NtfsOpLockBreakAckNo22( Handle : THandle; Overlapped : TOverlapped) :Bool; Func NtfsOpLockBreakAcknowledge2(Handle:THandle; Overlapped: TOverlapped) :Bool; Func NtfsOpLockBreakNotify2( Handle : THandle; Overlapped : TOverlapped) :Bool; Func NtfsRequestOpLock2(Handle:THandle; Kind:TOpLock; Overlapped: TOverlapped):Boolean; Func NtfsCreateJunctionPoint2( const Source, Destination :Str) :Bool; Func NtfsDeleteJunctionPoint2( const Source :Str) :Bool; Func NtfsGetJunctionPointDestination2(const Source:str;var Destination:Str):Bool; TypeS(TStreamId', '( siInvalid, siStandard, siExtendedAttribute, siSec' +urity,siAlternate,siHardLink,siProperty, siObjectIdentifier,siReparsePoints,siSparseFile); TypeS(TStreamIds', 'set of TStreamId; TInternalFindStreamData','record FileHandle:THandle;Context:TObject; StreamIds:TStreamIds;end; TypeS(TFindStreamData', 'record Internal : TInternalFindStreamData; At' +tributes : DWORD; StreamID : TStreamId; Name: WideString; Size : Int64; end; Func NtfsFindFirstStream2(const FileName:str;StreamIds:TStreamIds;var Data:TFindStreamData):Bool; Func NtfsFindNextStream2( var Data : TFindStreamData) :Bool; Func NtfsFindStreamClose2( var Data : TFindStreamData) :Bool; Func NtfsCreateHardLink2( const LinkFileName, ExistingFileName :Str) :Bool; Func NtfsCreateHardLinkA2(const LinkFileName,ExistingFileName:Ansistr):Bool; Func NtfsCreateHardLinkW2(const LinkFileName,ExistingFileName: WideString):Bool; TypeS('TNtfsHardLinkInfo', 'record LinkCount :Card; FileIndex : Int64; end; Func NtfsGetHardLinkInfo2(const FileName:str;var Info:TNtfsHardLinkInfo):Boolean; Func NtfsFindHardLinks2(const Path:str;const FileIdxHigh,FIdxLow:Card;const List:TStrings):Bool Func NtfsDeleteHardLinks2( const FileName :Str) :Bool; FindClass('TOBJECT'),'EJclFileSummaryError; TJclFileSummaryAccess', '( fsaRead, fsaWrite, fsaReadWrite ); TJclFileSummaryShare', '( fssDenyNone, fssDenyRead, fssDenyWrite, fssDenyAll ); TJclFileSummaryPropSetCallback', 'Func ( const FMTID : TGUID) :Bool; ClassN(CL.FindClass('TOBJECT'),'TJclFileSummary; SIRegister_TJclFilePropertySet(CL); //TypeS('TJclFilePropertySetClass', 'class of TJclFilePropertySet; SIRegister_TJclFileSummary(CL); SIRegister_TJclFileSummaryInformation(CL); SIRegister_TJclDocSummaryInformation(CL); SIRegister_TJclMediaFileSummaryInformation(CL); SIRegister_TJclMSISummaryInformation(CL); SIRegister_TJclShellSummaryInformation(CL); SIRegister_TJclStorageSummaryInformation(CL); SIRegister_TJclImageSummaryInformation(CL); SIRegister_TJclDisplacedSummaryInformation(CL); SIRegister_TJclBriefCaseSummaryInformation(CL); SIRegister_TJclMiscSummaryInformation(CL); SIRegister_TJclWebViewSummaryInformation(CL); SIRegister_TJclMusicSummaryInformation(CL); SIRegister_TJclDRMSummaryInformation(CL); SIRegister_TJclVideoSummaryInformation(CL); SIRegister_TJclAudioSummaryInformation(CL); SIRegister_TJclControlPanelSummaryInformation(CL); SIRegister_TJclVolumeSummaryInformation(CL); SIRegister_TJclShareSummaryInformation(CL); SIRegister_TJclLinkSummaryInformation(CL); SIRegister_TJclQuerySummaryInformation(CL); SIRegister_TJclImageInformation(CL); SIRegister_TJclJpegSummaryInformation(CL); end; Proc SIRegister_Jcl8087(CL: TPSPascalCompiler); begin AddTypeS('T8087Precision','( pcSingle, pcReserved, pcDouble, pcExtended ); T8087Rounding','( rcNearestOrEven, rcDownInfinity, rcUpInfinity, rcChopOrTruncate ); T8087Infinity','( icProjective, icAffine ); T8087Exception','(emInvalidOp,emDenormalizedOperand,emZeroDivide,emOverflow,emUnderflow,emPrecision; TypeS('T8087Exceptions', set of T8087Exception; Func Get8087ControlWord : Word; Func Get8087Infinity : T8087Infinity; Func Get8087Precision : T8087Precision; Func Get8087Rounding : T8087Rounding; Func Get8087StatusWord( ClearExceptions :Bool) : Word; Func Set8087Infinity( const Infinity : T8087Infinity) : T8087Infinity; Func Set8087Precision( const Precision : T8087Precision) : T8087Precision; Func Set8087Rounding( const Rounding : T8087Rounding) : T8087Rounding; Func Set8087ControlWord( const Control : Word) : Word; Func ClearPending8087Exceptions : T8087Exceptions; Func GetPending8087Exceptions : T8087Exceptions; Func GetMasked8087Exceptions : T8087Exceptions; Func SetMasked8087Exceptions(Exceptions:T8087Exceptions;ClearBefore:Bool):T8087Exceptions; Func Mask8087Exceptions( Exceptions:T8087Exceptions) : T8087Exceptions; Func Unmask8087Exceptions(Exceptions:T8087Exceptions;ClearBefore:Bool):T8087Exceptions; end; Proc SIRegister_JvBoxProcs(CL: TPSPascalCompiler); begin Proc BoxMoveSelectedItems( SrcList, DstList : TWinControl); Proc BoxMoveAllItems( SrcList, DstList : TWinControl); Proc BoxDragOver(List:TWinControl;Sorce:TObject;X,Y:Int;State:TDragState;var Accept:Bool;Sorted:Bool; Proc BoxMoveFocusedItem( List : TWinControl; DstIndex : Int); Proc BoxMoveSelected( List : TWinControl; Items : TStrings); Proc BoxSetItem( List : TWinControl; Index : Int); Func BoxGetFirstSelection( List : TWinControl) : Int; Func BoxCanDropItem(List:TWinControl; X,Y:Int; var DragIndex : Int) :Bool; end; Proc SIRegister_UrlMon(CL: TPSPascalCompiler); begin //ConstantN('SZ_URLCONTEXT','POLEStr').SetString( 'URL Context; //ConstantN('SZ_ASYNC_CALLEE','POLEStr').SetString( 'AsyncCallee; ConstantN('MKSYS_URLMONIKER','LongInt').SetInt( 6); type ULONG', 'Cardinal; LPCWSTR', 'PChar; TypeS('LPWSTR', 'PChar; LPSTR', 'PChar; TBindVerb', 'ULONG; TBindInfoF', 'ULONG; TBindF', 'ULONG; TBSCF', 'ULONG; TBindStatus', 'ULONG; TCIPStatus', 'ULONG; TBindString', 'ULONG; TPiFlags', 'ULONG; TOIBdgFlags', 'ULONG; TParseAction', 'ULONG; TPSUAction', 'ULONG; TQueryOption', 'ULONG; TPUAF', 'ULONG; TSZMFlags', 'ULONG; TUrlZone', 'ULONG; TUrlTemplate', 'ULONG; TZAFlags', 'ULONG; TUrlZoneReg', 'ULONG; 'URLMON_OPTION_USERAGENT','LongWord').SetUInt( $10000001); ConstantN('URLMON_OPTION_USERAGENT_REFRESH','LongWord').SetUInt( $10000002); const 'URLMON_OPTION_URL_ENCODING','LongWord').SetUInt( $10000004); const 'URLMON_OPTION_USE_BINDSTRINGCREDS','LongWord').SetUInt( $10000008); const 'CF_NULL','LongInt').SetInt( 0); const 'CFSTR_MIME_NULL','LongInt').SetInt( 0); const 'CFSTR_MIME_TEXT','String').SetString( 'text/plain; const 'CFSTR_MIME_RICHTEXT','String').SetString( 'text/richtext; const 'CFSTR_MIME_X_BITMAP','String').SetString( 'image/x-xbitmap; const 'CFSTR_MIME_POSTSCRIPT','String').SetString( 'application/postscript; const 'CFSTR_MIME_AIFF','String').SetString( 'audio/aiff; const 'CFSTR_MIME_BASICAUDIO','String').SetString( 'audio/basic; const 'CFSTR_MIME_WAV','String').SetString( 'audio/wav; const 'CFSTR_MIME_X_WAV','String').SetString( 'audio/x-wav; const 'CFSTR_MIME_GIF','String').SetString( 'image/gif; const 'CFSTR_MIME_PJPEG','String').SetString( 'image/pjpeg; const 'CFSTR_MIME_JPEG','String').SetString( 'image/jpeg; const 'CFSTR_MIME_TIFF','String').SetString( 'image/tiff; const 'CFSTR_MIME_X_PNG','String').SetString( 'image/x-png; const 'CFSTR_MIME_BMP','String').SetString( 'image/bmp; const 'CFSTR_MIME_X_ART','String').SetString( 'image/x-jg; const 'CFSTR_MIME_X_EMF','String').SetString( 'image/x-emf; const 'CFSTR_MIME_X_WMF','String').SetString( 'image/x-wmf; const 'CFSTR_MIME_AVI','String').SetString( 'video/avi; const 'CFSTR_MIME_MPEG','String').SetString( 'video/mpeg; const 'CFSTR_MIME_FRACTALS','String').SetString( 'application/fractals; const 'CFSTR_MIME_RAWDATA','String').SetString( 'application/octet-stream; const 'CFSTR_MIME_RAWDATASTRM','String').SetString( 'application/octet-stream; const 'CFSTR_MIME_PDF','String').SetString( 'application/pdf; const 'CFSTR_MIME_X_AIFF','String').SetString( 'audio/x-aiff; const 'CFSTR_MIME_X_REALAUDIO','String').SetString( 'audio/x-pn-realaudio; const 'CFSTR_MIME_XBM','String').SetString( 'image/xbm; const 'CFSTR_MIME_QUICKTIME','String').SetString( 'video/quicktime; const 'CFSTR_MIME_X_MSVIDEO','String').SetString( 'video/x-msvideo; const 'CFSTR_MIME_X_SGI_MOVIE','String').SetString( 'video/x-sgi-movie; const 'CFSTR_MIME_HTML','String').SetString( 'text/html; const 'MK_S_ASYNCHRONOUS','LongWord').SetUInt( $000401E8); const 'S_ASYNCHRONOUS','LongWord').SetUInt( $000401E8); const 'E_PENDING','LongWord').SetUInt( $8000000A); Interface(CL.FindInterface('IUNKNOWN'),IBinding, 'IBinding; SIRegister_IPersistMoniker(CL); SIRegister_IBindProtocol(CL); SIRegister_IBinding(CL); const BINDVERB_GET','LongWord').SetUInt( $00000000); const 'BINDVERB_POST','LongWord').SetUInt( $00000001); const 'BINDVERB_PUT','LongWord').SetUInt( $00000002); const 'BINDVERB_CUSTOM','LongWord').SetUInt( $00000003); const 'BINDINFOF_URLENCODESTGMEDDATA','LongWord').SetUInt( $00000001); const 'BINDINFOF_URLENCODEDEXTRAINFO','LongWord').SetUInt( $00000002); const 'BINDF_ASYNCHRONOUS','LongWord').SetUInt( $00000001); const 'BINDF_ASYNCSTORAGE','LongWord').SetUInt( $00000002); const 'BINDF_NOPROGRESSIVERENDERING','LongWord').SetUInt( $00000004); const 'BINDF_OFFLINEOPERATION','LongWord').SetUInt( $00000008); const 'BINDF_GETNEWESTVERSION','LongWord').SetUInt( $00000010); const 'BINDF_NOWRITECACHE','LongWord').SetUInt( $00000020); const 'BINDF_NEEDFILE','LongWord').SetUInt( $00000040); const 'BINDF_PULLDATA','LongWord').SetUInt( $00000080); const 'BINDF_IGNORESECURITYPROBLEM','LongWord').SetUInt( $00000100); const 'BINDF_RESYNCHRONIZE','LongWord').SetUInt( $00000200); const 'BINDF_HYPERLINK','LongWord').SetUInt( $00000400); const 'BINDF_NO_UI','LongWord').SetUInt( $00000800); const 'BINDF_SILENTOPERATION','LongWord').SetUInt( $00001000); const 'BINDF_PRAGMA_NO_CACHE','LongWord').SetUInt( $00002000); const 'BINDF_FREE_THREADED','LongWord').SetUInt( $00010000); const 'BINDF_DIRECT_READ','LongWord').SetUInt( $00020000); const 'BINDF_FORMS_SUBMIT','LongWord').SetUInt( $00040000); const 'BINDF_GETFROMCACHE_IF_NET_FAIL','LongWord').SetUInt( $00080000); //const 'BINDF_DONTUSECACHE','').SetString( BINDF_GETNEWESTVERSION); //const 'BINDF_DONTPUTINCACHE','').SetString( BINDF_NOWRITECACHE); //const 'BINDF_NOCOPYDATA','').SetString( BINDF_PULLDATA); const 'BSCF_FIRSTDATANOTIFICATION','LongWord').SetUInt( $00000001); const 'BSCF_INTERMEDIATEDATANOTIFICATION','LongWord').SetUInt( $00000002); const 'BSCF_LASTDATANOTIFICATION','LongWord').SetUInt( $00000004); const 'BSCF_DATAFULLYAVAILABLE','LongWord').SetUInt( $00000008); const 'BSCF_AVAILABLEDATASIZEUNKNOWN','LongWord').SetUInt( $00000010); const 'BINDSTATUS_FINDINGRESOURCE','LongInt').SetInt( 1); const 'BINDSTATUS_CONNECTING','LongInt').SetInt( BINDSTATUS_FINDINGRESOURCE + 1); const 'BINDSTATUS_REDIRECTING','LongInt').SetInt( BINDSTATUS_CONNECTING + 1); const 'BINDSTATUS_BEGINDOWNLOADDATA','LongInt').SetInt( BINDSTATUS_REDIRECTING + 1); const 'BINDSTATUS_DOWNLOADINGDATA','LongInt').SetInt( BINDSTATUS_BEGINDOWNLOADDATA + 1); const 'BINDSTATUS_ENDDOWNLOADDATA','LongInt').SetInt( BINDSTATUS_DOWNLOADINGDATA + 1); const BINDSTATUS_BEGINDOWNLOADCOMPONENTS,LongInt).SetInt(BINDSTATUS_ENDDOWNLOADDATA + 1); const 'BINDSTATUS_INSTALLINGCOMPONENTS',LongInt).SetInt(BINDSTATUS_BEGINDOWNLOADCOMPONENTS+1); const BINDSTATUS_ENDDOWNLOADCOMPONENTS,LongInt).SetInt(BINDSTATUS_INSTALLINGCOMPONENTS+1); const BINDSTATUS_USINGCACHEDCOPY,LongInt).SetInt( BINDSTATUS_ENDDOWNLOADCOMPONENTS + 1); const 'BINDSTATUS_SENDINGREQUEST','LongInt').SetInt( BINDSTATUS_USINGCACHEDCOPY + 1); const 'BINDSTATUS_CLASSIDAVAILABLE','LongInt').SetInt( BINDSTATUS_SENDINGREQUEST + 1); const 'BINDSTATUS_MIMETYPEAVAILABLE','LongInt').SetInt( BINDSTATUS_CLASSIDAVAILABLE + 1); const BINDSTATUS_CACHEFILENAMEAVAILABLE,LongInt).SetInt(BINDSTATUS_MIMETYPEAVAILABLE+1); const 'BINDSTATUS_BEGINSYNCOPERATION','LongInt').SetInt(BINDSTATUS_CACHEFILENAMEAVAILABLE+1); const BINDSTATUS_ENDSYNCOPERATION',LongInt').SetInt( BINDSTATUS_BEGINSYNCOPERATION + 1); const 'BINDSTATUS_BEGINUPLOADDATA','LongInt').SetInt( BINDSTATUS_ENDSYNCOPERATION + 1); const 'BINDSTATUS_UPLOADINGDATA','LongInt').SetInt( BINDSTATUS_BEGINUPLOADDATA + 1); const 'BINDSTATUS_ENDUPLOADDATA','LongInt').SetInt( BINDSTATUS_UPLOADINGDATA + 1); const 'BINDSTATUS_PROTOCOLCLASSID','LongInt').SetInt( BINDSTATUS_ENDUPLOADDATA + 1); const 'BINDSTATUS_ENCODING','LongInt').SetInt( BINDSTATUS_PROTOCOLCLASSID + 1); const 'BINDSTATUS_VERIFIEDMIMETYPEAVAILABLE','LongInt').SetInt( BINDSTATUS_ENCODING + 1); const BINDSTATUS_CLASSINSTALLLOCATION,LongInt).SetInt(BINDSTATUS_VERIFIEDMIMETYPEAVAILABLE+1); const 'BINDSTATUS_DECODING','LongInt').SetInt( BINDSTATUS_CLASSINSTALLLOCATION + 1); const 'BINDSTATUS_LOADINGMIMEHANDLER','LongInt').SetInt( BINDSTATUS_DECODING + 1); const BINDSTATUS_CONTENTDISPOSITIONATTACH,LongInt).SetInt(BINDSTATUS_LOADINGMIMEHANDLER+1); const 'BINDSTATUS_FILTERREPORTMIMETYPE',LongInt).SetInt(BINDSTAT_CONTENTDISPOSITIONATTACH+1); const BINDSTATUS_CLSIDCANINSTANTIATE,LongInt).SetInt(BINDSTATUS_FILTERREPORTMIMETYPE+ 1); const BINDSTATUS_IUNKNOWNAVAILABLE,LongInt).SetInt( BINDSTATUS_CLSIDCANINSTANTIATE + 1); const 'BINDSTATUS_DIRECTBIND','LongInt').SetInt( BINDSTATUS_IUNKNOWNAVAILABLE + 1); const 'BINDSTATUS_RAWMIMETYPE','LongInt').SetInt( BINDSTATUS_DIRECTBIND + 1); const 'BINDSTATUS_PROXYDETECTING','LongInt').SetInt( BINDSTATUS_RAWMIMETYPE + 1); const 'BINDSTATUS_ACCEPTRANGES','LongInt').SetInt( BINDSTATUS_PROXYDETECTING + 1); const 'BINDSTATUS_COOKIE_SENT','LongInt').SetInt( BINDSTATUS_ACCEPTRANGES + 1); const 'BINDSTATUS_COMPACT_POLICY_RECEIVED','LongInt').SetInt(BINDSTATUS_COOKIE_SENT + 1); const BINDSTATUS_COOKIE_SUPPRESSED,LongInt).SetInt(BINDSTATUS_COMPACT_POLICY_RECEIVED+1); const BINDSTATUS_COOKIE_STATE_UNKNOWN,LongInt).SetInt( BINDSTATUS_COOKIE_SUPPRESSED + 1); const BINDSTATUS_COOKIE_STATE_ACCEPT,LongInt).SetInt(BINDSTATUS_COOKIE_STATE_UNKNOWN+ 1); const BINDSTATUS_COOKIE_STATE_REJECT,LongInt).SetInt(BINDSTATUS_COOKIE_STATE_ACCEPT + 1); const BINDSTATUS_COOKIE_STATE_PROMPT,LongInt).SetInt(BINDSTATUS_COOKIE_STATE_REJECT + 1); const BINDSTATUS_COOKIE_STATE_LEASH,LongInt).SetInt( BINDSTATUS_COOKIE_STATE_PROMPT + 1); const BINDSTATUS_COOKIE_STATE_DOWNGRADE,LongInt).SetInt(BINDSTATUS_COOKIE_STATE_LEASH+1); const 'BINDSTATUS_POLICY_HREF','LongInt').SetInt( BINDSTATUS_COOKIE_STATE_DOWNGRADE + 1); const 'BINDSTATUS_P3P_HEADER','LongInt').SetInt( BINDSTATUS_POLICY_HREF + 1); const 'BINDSTATUS_SESSION_COOKIE_RECEIVED','LongInt').SetInt( BINDSTATUS_P3P_HEADER + 1); const'BINDSTATUS_PERSISTENT_COOKIE_RECEIVED',LongInt).SetInt(BINDSTATUS_SESSION_COOKIE_RECEIVED+1); const'BINDSTATUS_SESSION_COOKIES_ALLOWED',LongInt).SetInt(BINDSTATUS_PERSISTENT_COOKIE_RECEIVED+1); const BINDSTATUS_CACHECONTROL,LongInt).SetInt( BINDSTATUS_SESSION_COOKIES_ALLOWED + 1); const BINDSTATUS_CONTENTDISPOSITIONFILENAME,LongInt).SetInt(BINDSTATUS_CACHECONTROL + 1); const'BINDSTATUS_MIMETEXTPLAINMISMATCH','LongInt').SetInt(BINDSTATUS_CONTENTDISPOSITIONFILENAME+1); const BINDSTATUS_PUBLISHERAVAILABLE,LongInt).SetInt(BINDSTATUS_MIMETEXTPLAINMISMATCH+1); const BINDSTATUS_DISPLAYNAMEAVAILABLE,LongInt).SetInt(BINDSTATUS_PUBLISHERAVAILABLE + 1); // PBindInfo', '^TBindInfo // will not work; {_tagBINDINFO', 'record cbSize : ULONG; szExtraInfo : LPWSTR; stg' +'medData : TStgMedium; grfBindInfoF : DWORD; dwBindVerb : DWORD; szCustomVe' +'rb : LPWSTR; cbstgmedData : DWORD; dwOptions : DWORD; dwOptionsFlags : DWO' +'RD; dwCodePage : DWORD; securityAttributes : TSecurityAttributes; iid : TG' +'UID; pUnk : IUnknown; dwReserved : DWORD; end; TBindInfo', '_tagBINDINFO; BINDINFO', '_tagBINDINFO;} _REMSECURITY_ATTRIBUTES', 'record nLength : DWORD; lpSecurityDes' +'criptor : DWORD; bInheritHandle : BOOL; end; TRemSecurityAttributes', '_REMSECURITY_ATTRIBUTES; REMSECURITY_ATTRIBUTES', '_REMSECURITY_ATTRIBUTES; //PRemBindInfo', '^TRemBindInfo // will not work; {_tagRemBINDINFO', 'record cbSize : ULONG; szExtraInfo : LPWSTR; ' +'grfBindInfoF : DWORD; dwBindVerb : DWORD; szCustomVerb : LPWSTR; cbstgmedD' +'ata : DWORD; dwOptions : DWORD; dwOptionsFlags : DWORD; dwCodePage : DWORD' +'; securityAttributes : TRemSecurityAttributes; iid : TGUID; pUnk : IUnknow' +'n; dwReserved : DWORD; end; TRemBindInfo', '_tagRemBINDINFO; RemBINDINFO', '_tagRemBINDINFO;} //PRemFormatEtc', '^TRemFormatEtc // will not work; tagRemFORMATETC','record cfFormat:DWORD; ptd:DWORD; dwAspect:DWORD;lindex:Longint;tymed:DWORD; end; TRemFormatEtc', 'tagRemFORMATETC; RemFORMATETC', 'tagRemFORMATETC; SIRegister_IBindStatusCallback(CL); SIRegister_IAuthenticate(CL); SIRegister_IHttpNegotiate(CL); SIRegister_IWindowForBindingUI(CL); const 'CIP_DISK_FULL','LongInt').SetInt( 0); const 'CIP_ACCESS_DENIED','LongInt').SetInt( CIP_DISK_FULL + 1); const 'CIP_NEWER_VERSION_EXISTS','LongInt').SetInt( CIP_ACCESS_DENIED + 1); const 'CIP_OLDER_VERSION_EXISTS','LongInt').SetInt( CIP_NEWER_VERSION_EXISTS + 1); const 'CIP_NAME_CONFLICT','LongInt').SetInt( CIP_OLDER_VERSION_EXISTS + 1); const CIP_TRUST_VERIFICATION_COMPONENT_MISSING,LongInt).SetInt( CIP_NAME_CONFLICT + 1); const CIP_EXE_SELF_REGISTERATION_TIMEOUT,LongInt(CIP_TRUST_VERIFICATION_COMPONET_MISSING+1); const 'CIP_UNSAFE_TO_ABORT','LongInt').SetInt( CIP_EXE_SELF_REGISTERATION_TIMEOUT + 1); const 'CIP_NEED_REBOOT','LongInt').SetInt( CIP_UNSAFE_TO_ABORT + 1); const 'CIP_NEED_REBOOT_UI_PERMISSION','LongInt').SetInt( CIP_NEED_REBOOT + 1); SIRegister_ICodeInstall(CL); SIRegister_IWinInetInfo(CL); const 'WININETINFO_OPTION_LOCK_HANDLE','LongInt').SetInt( 65534); SIRegister_IHttpSecurity(CL); SIRegister_IWinInetHttpInfo(CL); SIRegister_IBindHost(CL); const 'URLOSTRM_USECACHEDCOPY_ONLY','LongWord').SetUInt( $00000001); const 'URLOSTRM_USECACHEDCOPY','LongWord').SetUInt( $00000002); const 'URLOSTRM_GETNEWESTVERSION','LongWord').SetUInt( $00000003); Func URLOpenStream(p1:IUnknown;p2:PChar; p3:DWORD; p4:IBindStatusCallback): HResult; Func URLOpenPullStream(p1:IUnknown;p2:PChar;p3:DWORD; BSC:IBindStatusCallback):HResult; Func URLDownloadToFile(Caller:IUnknown;URL:PChar;FileName:PChar;Reserved:DWORD;StatusCB:IBindStatusCallback): HResult; Func URLDownloadToCacheFile(p1:IUnknown;p2:PChar;p3:PChar;p4:DWORD;p5:DWORD;p6:IBindStatusCallback): HResult; Func URLOpenBlockingStream(p1:IUnknown;p2:PChar;out p3:IStream;p4:DWORD;p5:IBindStatusCallback):HResult; Func HlinkGoBack( unk : IUnknown) : HResult; Func HlinkGoForward( unk : IUnknown) : HResult; Func HlinkNavigateString( unk : IUnknown; szTarget : LPCWSTR) : HResult; // Func HlinkNavigateMoniker( Unk : IUnknown; mkTarget : IMoniker) : HResult; SIRegister_IInternet(CL); const 'BINDSTRING_HEADERS','LongInt').SetInt( 1); const 'BINDSTRING_ACCEPT_MIMES','LongInt').SetInt( BINDSTRING_HEADERS + 1); const 'BINDSTRING_EXTRA_URL','LongInt').SetInt( BINDSTRING_ACCEPT_MIMES + 1); const 'BINDSTRING_LANGUAGE','LongInt').SetInt( BINDSTRING_EXTRA_URL + 1); const 'BINDSTRING_USERNAME','LongInt').SetInt( BINDSTRING_LANGUAGE + 1); const 'BINDSTRING_PASSWORD','LongInt').SetInt( BINDSTRING_USERNAME + 1); const 'BINDSTRING_UA_PIXELS','LongInt').SetInt( BINDSTRING_PASSWORD + 1); const 'BINDSTRING_UA_COLOR','LongInt').SetInt( BINDSTRING_UA_PIXELS + 1); const 'BINDSTRING_OS','LongInt').SetInt( BINDSTRING_UA_COLOR + 1); const 'BINDSTRING_USER_AGENT','LongInt').SetInt( BINDSTRING_OS + 1); const 'BINDSTRING_ACCEPT_ENCODINGS','LongInt').SetInt( BINDSTRING_USER_AGENT + 1); const 'BINDSTRING_POST_COOKIE','LongInt').SetInt( BINDSTRING_ACCEPT_ENCODINGS + 1); const 'BINDSTRING_POST_DATA_MIME','LongInt').SetInt( BINDSTRING_POST_COOKIE + 1); const 'BINDSTRING_URL','LongInt').SetInt( BINDSTRING_POST_DATA_MIME + 1); //POLEStrArray', '^TOLESTRArray // will not work; SIRegister_IInternetBindInfo(CL); const 'PI_PARSE_URL','LongWord').SetUInt( $00000001); const 'PI_FILTER_MODE','LongWord').SetUInt( $00000002); const 'PI_FORCE_ASYNC','LongWord').SetUInt( $00000004); const 'PI_USE_WORKERTHREAD','LongWord').SetUInt( $00000008); const 'PI_MIMEVERIFICATION','LongWord').SetUInt( $00000010); const 'PI_CLSIDLOOKUP','LongWord').SetUInt( $00000020); const 'PI_DATAPROGRESS','LongWord').SetUInt( $00000040); const 'PI_SYNCHRONOUS','LongWord').SetUInt( $00000080); const 'PI_APARTMENTTHREADED','LongWord').SetUInt( $00000100); const 'PI_CLASSINSTALL','LongWord').SetUInt( $00000200); const 'PD_FORCE_SWITCH','LongWord').SetUInt( $00010000); //const 'PI_DOCFILECLSIDLOOKUP','').SetString( PI_CLSIDLOOKUP); //PProtocolData', '^TProtocolData // will not work; _tagPROTOCOLDATA,record grfFlags:DWORD; dwState:DWORD; pData:TObject;cbData:ULONG; end; TProtocolData', '_tagPROTOCOLDATA; PROTOCOLDATA', '_tagPROTOCOLDATA; Interface(CL.FindInterface('IUNKNOWN'),IInternetProtocolSink,'IInternetProtocolSink; SIRegister_IInternetProtocolRoot(CL); SIRegister_IInternetProtocol(CL); SIRegister_IInternetProtocolSink(CL); const 'OIBDG_APARTMENTTHREADED','LongWord').SetUInt( $00000100); SIRegister_IInternetSession(CL); SIRegister_IInternetThreadSwitch(CL); SIRegister_IInternetPriority(CL); const 'PARSE_CANONICALIZE','LongInt').SetInt( 1); const 'PARSE_FRIENDLY','LongInt').SetInt( PARSE_CANONICALIZE + 1); const 'PARSE_SECURITY_URL','LongInt').SetInt( PARSE_FRIENDLY + 1); const 'PARSE_ROOTDOCUMENT','LongInt').SetInt( PARSE_SECURITY_URL + 1); const 'PARSE_DOCUMENT','LongInt').SetInt( PARSE_ROOTDOCUMENT + 1); const 'PARSE_ANCHOR','LongInt').SetInt( PARSE_DOCUMENT + 1); const 'PARSE_ENCODE','LongInt').SetInt( PARSE_ANCHOR + 1); const 'PARSE_DECODE','LongInt').SetInt( PARSE_ENCODE + 1); const 'PARSE_PATH_FROM_URL','LongInt').SetInt( PARSE_DECODE + 1); const 'PARSE_URL_FROM_PATH','LongInt').SetInt( PARSE_PATH_FROM_URL + 1); const 'PARSE_MIME','LongInt').SetInt( PARSE_URL_FROM_PATH + 1); const 'PARSE_SERVER','LongInt').SetInt( PARSE_MIME + 1); const 'PARSE_SCHEMA','LongInt').SetInt( PARSE_SERVER + 1); const 'PARSE_SITE','LongInt').SetInt( PARSE_SCHEMA + 1); const 'PARSE_DOMAIN','LongInt').SetInt( PARSE_SITE + 1); const 'PARSE_LOCATION','LongInt').SetInt( PARSE_DOMAIN + 1); const 'PARSE_SECURITY_DOMAIN','LongInt').SetInt( PARSE_LOCATION + 1); const 'PSU_DEFAULT','LongInt').SetInt( 1); const 'PSU_SECURITY_URL_ONLY','LongInt').SetInt( PSU_DEFAULT + 1); const 'QUERY_EXPIRATION_DATE','LongInt').SetInt( 1); const 'QUERY_TIME_OF_LAST_CHANGE','LongInt').SetInt( QUERY_EXPIRATION_DATE + 1); const 'QUERY_CONTENT_ENCODING','LongInt').SetInt( QUERY_TIME_OF_LAST_CHANGE + 1); const 'QUERY_CONTENT_TYPE','LongInt').SetInt( QUERY_CONTENT_ENCODING + 1); const 'QUERY_REFRESH','LongInt').SetInt( QUERY_CONTENT_TYPE + 1); const 'QUERY_RECOMBINE','LongInt').SetInt( QUERY_REFRESH + 1); const 'QUERY_CAN_NAVIGATE','LongInt').SetInt( QUERY_RECOMBINE + 1); const 'QUERY_USES_NETWORK','LongInt').SetInt( QUERY_CAN_NAVIGATE + 1); const 'QUERY_IS_CACHED','LongInt').SetInt( QUERY_USES_NETWORK + 1); const 'QUERY_IS_INSTALLEDENTRY','LongInt').SetInt( QUERY_IS_CACHED + 1); const 'QUERY_IS_CACHED_OR_MAPPED','LongInt').SetInt( QUERY_IS_INSTALLEDENTRY + 1); const 'QUERY_USES_CACHE','LongInt').SetInt( QUERY_IS_CACHED_OR_MAPPED + 1); const 'QUERY_IS_SECURE','LongInt').SetInt( QUERY_USES_CACHE + 1); const 'QUERY_IS_SAFE','LongInt').SetInt( QUERY_IS_SECURE + 1); SIRegister_IInternetProtocolInfo(CL); IOInet', 'IInternet; IOInetBindInfo', 'IInternetBindInfo; IOInetProtocolRoot', 'IInternetProtocolRoot; IOInetProtocol', 'IInternetProtocol; IOInetProtocolSink', 'IInternetProtocolSink; IOInetProtocolInfo', 'IInternetProtocolInfo; IOInetSession', 'IInternetSession; IOInetPriority', 'IInternetPriority; IOInetThreadSwitch', 'IInternetThreadSwitch; Func CoInternetParseUrl(pwzUrl:LPCWSTR;ParseAction:TParseAction;dwFlags:DWORD;pszResult:LPWSTR;cchResult:DWORD; var pcchResult:DWORD;dwReserved:DWORD):HResult; Func CoInternetCombineUrl(pwzBaseUrl,pwzRelativeUrl:LPCWSTR;dwCombineFlags:DWORD;pszResult:LPWSTR;cchResult: DWORD;var pcchResult:DWORD;dwReserved:DWORD):HResult; Func CoInternetCompareUrl(pwzUrl1, pwzUrl2 LPCWSTR;dwFlags DWORD): HResult; Func CoInternetGetProtocolFlags(pwzUrl:LPCWSTR;var dwFlags DWORD;dwReserved:DWORD):HResult; Func CoInternetQueryInfo(pwzUrl:LPCWSTR;QueryOptions:TQueryOption;dwQueryFlags:DWORD;pvBuffer:TObject;cbBuffer:DWORD;var pcbBuffer:DWORD;dwReserved DWORD):HResult; Func CoInternetGetSession(dwSessionMode:DWORD;var pIInternetSession:IInternetSes;dwReserved:DWORD):HResult; Func CoInternetGetSecurityUrl(pwzUrl:LPCWSTR;var pwzSecUrl:LPWSTR;psuAct:TPSUAction;dwReserv:DWORD):HResult; Func OInetParseUrl(pwzUrl:LPCWSTR;ParseAction:TParseAction;dwFlags:DWORD;pszResult:LPWSTR;cchResult:DWORD; var pcchResult:DWORD;dwReserved:DWORD):HResult; Func OInetCombineUrl(pwzBaseUrl,pwzRelativeUrl:LPCWSTR;dwCombineFlags:DWORD;pszResult:LPWSTR;cchResult:DWORD;var pcchResult:DWORD;dwReserved:DWORD):HResult; Func OInetCompareUrl(pwzUrl1,pwzUrl2 LPCWSTR;dwFlags: DWORD): Hresult; Func OInetGetProtocolFlags(pwzUrl:LPCWSTR;var dwFlags:DWORD;dwReserved:DWORD): HResult; Func OInetQueryInfo(pwzUrl:LPCWSTR;QueryOptions:TQueryOption;dwQueryFlags:DWORD;pvBuffer:TObject;cbBuffer: DWORD;var pcbBuffer:DWORD;dwReserved:DWORD):HResult; Func OInetGetSession(dwSessionMode:DWORD;var pIInternetSession:IInternetSession;dwReserved:DWORD):HResult; //Func CopyBindInfo( const cbiSrc : TBindInfo; var biDest : TBindInfo) : HResult; //Proc ReleaseBindInfo( const bindinfo : TBindInfo); // const 'INET_E_USE_DEFAULT_PROTOCOLHANDLER','LongWord').SetUInt( HResult ( $800C0011 )); // const 'INET_E_USE_DEFAULT_SETTING','LongWord').SetUInt( HResult ( $800C0012 )); //const 'INET_E_DEFAULT_ACTION','LongWord').SetUInt( HResult ( $800C0011 )); //const 'INET_E_QUERYOPTION_UNKNOWN','LongWord').SetUInt( HResult ( $800C0013 )); //const 'INET_E_REDIRECTING','LongWord').SetUInt( HResult ( $800C0014 )); const 'PROTOCOLFLAG_NO_PICS_CHECK','LongWord').SetUInt( $00000001); SIRegister_IInternetSecurityMgrSite(CL); const 'MUTZ_NOSAVEDFILECHECK','LongWord').SetUInt( $00000001); const 'MUTZ_ISFILE','LongWord').SetUInt( $00000002); const 'MUTZ_ACCEPT_WILDCARD_SCHEME','LongWord').SetUInt( $00000080); const 'MUTZ_ENFORCERESTRICTED','LongWord').SetUInt( $00000100); const 'MUTZ_REQUIRESAVEDFILECHECK','LongWord').SetUInt( $00000400); const 'MAX_SIZE_SECURITY_ID','LongInt').SetInt( 512); const 'PUAF_DEFAULT','LongWord').SetUInt( $00000000); const 'PUAF_NOUI','LongWord').SetUInt( $00000001); const 'PUAF_ISFILE','LongWord').SetUInt( $00000002); const 'PUAF_WARN_IF_DENIED','LongWord').SetUInt( $00000004); const 'PUAF_FORCEUI_FOREGROUND','LongWord').SetUInt( $00000008); const 'PUAF_CHECK_TIFS','LongWord').SetUInt( $00000010); const 'PUAF_DONTCHECKBOXINDIALOG','LongWord').SetUInt( $00000020); const 'PUAF_TRUSTED','LongWord').SetUInt( $00000040); const 'PUAF_ACCEPT_WILDCARD_SCHEME','LongWord').SetUInt( $00000080); const 'PUAF_ENFORCERESTRICTED','LongWord').SetUInt( $00000100); const 'PUAF_NOSAVEDFILECHECK','LongWord').SetUInt( $00000200); const 'PUAF_REQUIRESAVEDFILECHECK','LongWord').SetUInt( $00000400); const 'PUAF_LMZ_UNLOCKED','LongWord').SetUInt( $00010000); const 'PUAF_LMZ_LOCKED','LongWord').SetUInt( $00020000); const 'PUAF_DEFAULTZONEPOL','LongWord').SetUInt( $00040000); const 'PUAF_NPL_USE_LOCKED_IF_RESTRICTED','LongWord').SetUInt( $00080000); const 'PUAF_NOUIIFLOCKED','LongWord').SetUInt( $00100000); const 'PUAFOUT_DEFAULT','LongWord').SetUInt( $0); const 'PUAFOUT_ISLOCKZONEPOLICY','LongWord').SetUInt( $1); const 'SZM_CREATE','LongWord').SetUInt( $00000000); const 'SZM_DELETE','LongWord').SetUInt( $00000001); SIRegister_IInternetSecurityManager(CL); SIRegister_IInternetHostSecurityManager(CL); SIRegister_IInternetSecurityManagerEx(CL); const URLACTION_MIN','LongWord').SetUInt( $00001000); const URLACTION_DOWNLOAD_MIN','LongWord').SetUInt( $00001000); const URLACTION_DOWNLOAD_SIGNED_ACTIVEX','LongWord').SetUInt( $00001001); const URLACTION_DOWNLOAD_UNSIGNED_ACTIVEX','LongWord').SetUInt( $00001004); const URLACTION_DOWNLOAD_CURR_MAX','LongWord').SetUInt( $00001004); const URLACTION_DOWNLOAD_MAX','LongWord').SetUInt( $000011FF); const 'URLACTION_ACTIVEX_MIN','LongWord').SetUInt( $00001200); const 'URLACTION_ACTIVEX_RUN','LongWord').SetUInt( $00001200); const 'URLACTION_ACTIVEX_OVERRIDE_OBJECT_SAFETY','LongWord').SetUInt( $00001201); const 'URLACTION_ACTIVEX_OVERRIDE_DATA_SAFETY','LongWord').SetUInt( $00001202); const 'URLACTION_ACTIVEX_OVERRIDE_SCRIPT_SAFETY','LongWord').SetUInt( $00001203); const 'URLACTION_SCRIPT_OVERRIDE_SAFETY','LongWord').SetUInt( $00001401); const 'URLACTION_ACTIVEX_CONFIRM_NOOBJECTSAFETY','LongWord').SetUInt( $00001204); const 'URLACTION_ACTIVEX_TREATASUNTRUSTED','LongWord').SetUInt( $00001205); const 'URLACTION_ACTIVEX_NO_WEBOC_SCRIPT','LongWord').SetUInt( $00001206); const 'URLACTION_ACTIVEX_CURR_MAX','LongWord').SetUInt( $00001206); const 'URLACTION_ACTIVEX_MAX','LongWord').SetUInt( $000013FF); const 'URLACTION_SCRIPT_MIN','LongWord').SetUInt( $00001400); const 'URLACTION_SCRIPT_RUN','LongWord').SetUInt( $00001400); const 'URLACTION_SCRIPT_JAVA_USE','LongWord').SetUInt( $00001402); const 'URLACTION_SCRIPT_SAFE_ACTIVEX','LongWord').SetUInt( $00001405); const 'URLACTION_SCRIPT_CURR_MAX','LongWord').SetUInt( $00001405); const 'URLACTION_SCRIPT_MAX','LongWord').SetUInt( $000015FF); const 'URLACTION_HTML_MIN','LongWord').SetUInt( $00001600); const 'URLACTION_HTML_SUBMIT_FORMS','LongWord').SetUInt( $00001601); const 'URLACTION_HTML_SUBMIT_FORMS_FROM','LongWord').SetUInt( $00001602); const 'URLACTION_HTML_SUBMIT_FORMS_TO','LongWord').SetUInt( $00001603); const 'URLACTION_HTML_FONT_DOWNLOAD','LongWord').SetUInt( $00001604); const 'URLACTION_HTML_JAVA_RUN','LongWord').SetUInt( $00001605); const 'URLACTION_HTML_CURR_MAX','LongWord').SetUInt( $00001605); const 'URLACTION_HTML_MAX','LongWord').SetUInt( $000017FF); const 'URLACTION_SHELL_MIN','LongWord').SetUInt( $00001800); const 'URLACTION_SHELL_INSTALL_DTITEMS','LongWord').SetUInt( $00001800); const 'URLACTION_SHELL_MOVE_OR_COPY','LongWord').SetUInt( $00001802); const 'URLACTION_SHELL_FILE_DOWNLOAD','LongWord').SetUInt( $00001803); const 'URLACTION_SHELL_VERB','LongWord').SetUInt( $00001804); const 'URLACTION_SHELL_WEBVIEW_VERB','LongWord').SetUInt( $00001805); const 'URLACTION_SHELL_SHELLEXECUTE','LongWord').SetUInt( $00001806); const 'URLACTION_SHELL_EXECUTE_HIGHRISK','LongWord').SetUInt( $00001806); const 'URLACTION_SHELL_EXECUTE_MODRISK','LongWord').SetUInt( $00001807); const 'URLACTION_SHELL_EXECUTE_LOWRISK','LongWord').SetUInt( $00001808); const 'URLACTION_SHELL_POPUPMGR','LongWord').SetUInt( $00001809); const 'URLACTION_SHELL_CURR_MAX','LongWord').SetUInt( $00001809); const 'URLACTION_SHELL_MAX','LongWord').SetUInt( $000019ff); const 'URLACTION_NETWORK_MIN','LongWord').SetUInt( $00001A00); const 'URLACTION_CREDENTIALS_USE','LongWord').SetUInt( $00001A00); const 'URLPOLICY_CREDENTIALS_SILENT_LOGON_OK','LongWord').SetUInt( $00000000); const 'URLPOLICY_CREDENTIALS_MUST_PROMPT_USER','LongWord').SetUInt( $00010000); const 'URLPOLICY_CREDENTIALS_CONDITIONAL_PROMPT','LongWord').SetUInt( $00020000); const 'URLPOLICY_CREDENTIALS_ANONYMOUS_ONLY','LongWord').SetUInt( $00030000); const 'URLACTION_AUTHENTICATE_CLIENT','LongWord').SetUInt( $00001A01); const 'URLPOLICY_AUTHENTICATE_CLEARTEXT_OK','LongWord').SetUInt( $00000000); const 'URLPOLICY_AUTHENTICATE_CHALLENGE_RESPONSE','LongWord').SetUInt( $00010000); const 'URLPOLICY_AUTHENTICATE_MUTUAL_ONLY','LongWord').SetUInt( $00030000); const 'URLACTION_NETWORK_CURR_MAX','LongWord').SetUInt( $00001A01); const 'URLACTION_NETWORK_MAX','LongWord').SetUInt( $00001BFF); const 'URLACTION_JAVA_MIN','LongWord').SetUInt( $00001C00); const 'URLACTION_JAVA_PERMISSIONS','LongWord').SetUInt( $00001C00); const 'URLPOLICY_JAVA_PROHIBIT','LongWord').SetUInt( $00000000); const 'URLPOLICY_JAVA_HIGH','LongWord').SetUInt( $00010000); const 'URLPOLICY_JAVA_MEDIUM','LongWord').SetUInt( $00020000); const 'URLPOLICY_JAVA_LOW','LongWord').SetUInt( $00030000); const 'URLPOLICY_JAVA_CUSTOM','LongWord').SetUInt( $00800000); const 'URLACTION_JAVA_CURR_MAX','LongWord').SetUInt( $00001C00); const 'URLACTION_JAVA_MAX','LongWord').SetUInt( $00001CFF); const 'URLACTION_INFODELIVERY_MIN','LongWord').SetUInt( $00001D00); const 'URLACTION_INFODELIVERY_NO_ADDING_CHANNELS','LongWord').SetUInt( $00001D00); const 'URLACTION_INFODELIVERY_NO_EDITING_CHANNELS','LongWord').SetUInt( $00001D01); const 'URLACTION_INFODELIVERY_NO_REMOVING_CHANNELS','LongWord').SetUInt( $00001D02); const 'URLACTION_INFODELIVERY_NO_ADDING_SUBSCRIPTIONS','LongWord').SetUInt( $00001D03); const 'URLACTION_INFODELIVERY_NO_EDITING_SUBSCRIPTIONS','LongWord').SetUInt( $00001D04); const 'URLACTION_INFODELIVERY_NO_REMOVING_SUBSCRIPTIONS','LongWord').SetUInt( $00001D05); const 'URLACTION_INFODELIVERY_NO_CHANNEL_LOGGING','LongWord').SetUInt( $00001D06); const 'URLACTION_INFODELIVERY_CURR_MAX','LongWord').SetUInt( $00001D06); const 'URLACTION_INFODELIVERY_MAX','LongWord').SetUInt( $00001Dff); const 'URLACTION_CHANNEL_SOFTDIST_MIN','LongWord').SetUInt( $00001E00); const 'URLACTION_CHANNEL_SOFTDIST_PERMISSIONS','LongWord').SetUInt( $00001E05); const 'URLPOLICY_CHANNEL_SOFTDIST_PROHIBIT','LongWord').SetUInt( $00010000); const 'URLPOLICY_CHANNEL_SOFTDIST_PRECACHE','LongWord').SetUInt( $00020000); const 'URLPOLICY_CHANNEL_SOFTDIST_AUTOINSTALL','LongWord').SetUInt( $00030000); const 'URLACTION_CHANNEL_SOFTDIST_MAX','LongWord').SetUInt( $00001EFF); const 'URLACTION_BEHAVIOR_MIN','LongWord').SetUInt( $00002000); const 'URLACTION_BEHAVIOR_RUN','LongWord').SetUInt( $00002000); const 'URLPOLICY_BEHAVIOR_CHECK_LIST','LongWord').SetUInt( $00010000); const 'URLACTION_FEATURE_MIN','LongWord').SetUInt( $00002100); const 'URLACTION_FEATURE_MIME_SNIFFING','LongWord').SetUInt( $00002100); const 'URLACTION_FEATURE_ZONE_ELEVATION','LongWord').SetUInt( $00002101); const 'URLACTION_FEATURE_WINDOW_RESTRICTIONS','LongWord').SetUInt( $00002102); const 'URLACTION_AUTOMATIC_DOWNLOAD_UI_MIN','LongWord').SetUInt( $00002200); const 'URLACTION_AUTOMATIC_DOWNLOAD_UI','LongWord').SetUInt( $00002200); const 'URLACTION_AUTOMATIC_ACTIVEX_UI','LongWord').SetUInt( $00002201); const 'URLACTION_ALLOW_RESTRICTEDPROTOCOLS','LongWord').SetUInt( $00002300); const 'URLPOLICY_ALLOW','LongWord').SetUInt( $00); const 'URLPOLICY_QUERY','LongWord').SetUInt( $01); const 'URLPOLICY_DISALLOW','LongWord').SetUInt( $03); const 'URLPOLICY_NOTIFY_ON_ALLOW','LongWord').SetUInt( $10); const 'URLPOLICY_NOTIFY_ON_DISALLOW','LongWord').SetUInt( $20); const 'URLPOLICY_LOG_ON_ALLOW','LongWord').SetUInt( $40); const 'URLPOLICY_LOG_ON_DISALLOW','LongWord').SetUInt( $80); const 'URLPOLICY_MASK_PERMISSIONS','LongWord').SetUInt( $0f); Func GetUrlPolicyPermissions( dw : DWORD) : DWORD; Func SetUrlPolicyPermissions( dw, dw2 : DWORD) : DWORD; const 'URLZONE_PREDEFINED_MIN','LongInt').SetInt( 0); const 'URLZONE_LOCAL_MACHINE','LongInt').SetInt( 0); const 'URLZONE_INTRANET','LongInt').SetInt( URLZONE_LOCAL_MACHINE + 1); const 'URLZONE_TRUSTED','LongInt').SetInt( URLZONE_INTRANET + 1); const 'URLZONE_INTERNET','LongInt').SetInt( URLZONE_TRUSTED + 1); const 'URLZONE_UNTRUSTED','LongInt').SetInt( URLZONE_INTERNET + 1); const 'URLZONE_PREDEFINED_MAX','LongInt').SetInt( 999); const 'URLZONE_USER_MIN','LongInt').SetInt( 1000); const 'URLZONE_USER_MAX','LongInt').SetInt( 10000); const 'URLTEMPLATE_CUSTOM','LongWord').SetUInt( $00000000); const 'URLTEMPLATE_PREDEFINED_MIN','LongWord').SetUInt( $00010000); const 'URLTEMPLATE_LOW','LongWord').SetUInt( $00010000); const 'URLTEMPLATE_MEDIUM','LongWord').SetUInt( $00011000); const 'URLTEMPLATE_HIGH','LongWord').SetUInt( $00012000); const 'URLTEMPLATE_PREDEFINED_MAX','LongWord').SetUInt( $00020000); const 'MAX_ZONE_PATH','LongInt').SetInt( 260); const 'MAX_ZONE_DESCRIPTION','LongInt').SetInt( 200); const 'ZAFLAGS_CUSTOM_EDIT','LongWord').SetUInt( $00000001); const 'ZAFLAGS_ADD_SITES','LongWord').SetUInt( $00000002); const 'ZAFLAGS_REQUIRE_VERIFICATION','LongWord').SetUInt( $00000004); const 'ZAFLAGS_INCLUDE_PROXY_OVERRIDE','LongWord').SetUInt( $00000008); const 'ZAFLAGS_INCLUDE_INTRANET_SITES','LongWord').SetUInt( $00000010); const 'ZAFLAGS_NO_UI','LongWord').SetUInt( $00000020); const 'ZAFLAGS_SUPPORTS_VERIFICATION','LongWord').SetUInt( $00000040); const 'ZAFLAGS_UNC_AS_INTRANET','LongWord').SetUInt( $00000080); const 'ZAFLAGS_USE_LOCKED_ZONES','LongWord').SetUInt( $00010000); //PZoneAttributes', '^TZoneAttributes // will not work; _ZONEATTRIBUTES','record cbSize:ULONG;szDisplayName:array [0..260-1] of Char;szDescription:array [0..200 - 1] of Char;szIconPath:array [0..260 - 1] of char;dwTemplateMinLevel: DWORD; dwTemplateRecommended: DWORD; dwTemplateCurrentLevel: DWORD; dwFlags: DWORD; end; { _ZONEATTRIBUTES = packed record cbSize: ULONG; szDisplayName: array [0..260 - 1] of WideChar; szDescription: array [0..200 - 1] of WideChar; szIconPath: array [0..260 - 1] of WideChar; dwTemplateMinLevel: DWORD; dwTemplateRecommended: DWORD; dwTemplateCurrentLevel: DWORD; dwFlags: DWORD; end; } TZoneAttributes', '_ZONEATTRIBUTES; ZONEATTRIBUTES', '_ZONEATTRIBUTES; const 'URLZONEREG_DEFAULT','LongInt').SetInt( 0); const 'URLZONEREG_HKLM','LongInt').SetInt( URLZONEREG_DEFAULT + 1); const 'URLZONEREG_HKCU','LongInt').SetInt( URLZONEREG_HKLM + 1); SIRegister_IInternetZoneManager(CL); SIRegister_IInternetZoneManagerEx(CL); const 'SOFTDIST_FLAG_USAGE_EMAIL','LongWord').SetUInt( $00000001); const 'SOFTDIST_FLAG_USAGE_PRECACHE','LongWord').SetUInt( $00000002); const 'SOFTDIST_FLAG_USAGE_AUTOINSTALL','LongWord').SetUInt( $00000004); const 'SOFTDIST_FLAG_DELETE_SUBSCRIPTION','LongWord').SetUInt( $00000008); const 'SOFTDIST_ADSTATE_NONE','LongWord').SetUInt( $00000000); const 'SOFTDIST_ADSTATE_AVAILABLE','LongWord').SetUInt( $00000001); const 'SOFTDIST_ADSTATE_DOWNLOADED','LongWord').SetUInt( $00000002); const 'SOFTDIST_ADSTATE_INSTALLED','LongWord').SetUInt( $00000003); //PCodeBaseHold', '^TCodeBaseHold // will not work; _tagCODEBASEHOLD', 'record cbSize : ULONG; szDistUnit : LPWSTR; ' +'szCodeBase : LPWSTR; dwVersionMS : DWORD; dwVersionLS : DWORD; dwStyle:DWORD; end; TCodeBaseHold', '_tagCODEBASEHOLD; CODEBASEHOLD', '_tagCODEBASEHOLD; //PSoftDistInfo', '^TSoftDistInfo // will not work; _tagSOFTDISTINFO', 'record cbSize : ULONG; dwFlags : DWORD; dwAd' +'State : DWORD; szTitle : LPWSTR; szAbstract : LPWSTR; szHREF : LPWSTR; dwI' +'nstalledVersionMS : DWORD; dwInstalledVersionLS : DWORD; dwUpdateVersionMS' +' : DWORD; dwUpdateVersionLS : DWORD; dwAdvertisedVersionMS : DWORD; dwAdve' +'rtisedVersionLS : DWORD; dwReserved : DWORD; end; TSoftDistInfo', '_tagSOFTDISTINFO; SOFTDISTINFO', '_tagSOFTDISTINFO; SIRegister_ISoftDistExt(CL); Func GetSoftwareUpdateInfo( szDistUnit : LPCWSTR; var dsi : TSoftDistInfo) : HResult; Func SetSoftwareUpdateAdvertisementState(szDistUnit: LPCWSTR; dwAdState, dwAdvertisedVersionMS, dwAdvertisedVersionLS : DWORD) : HResult; SIRegister_IDataFilter(CL); // PProtocolFilterData', '^TProtocolFilterData // will not work; _tagPROTOCOLFILTERDATA', 'record cbSize : DWORD; ProtocolSink : ' +'IInternetProtocolSink; Protocol : IInternetProtocol; Unk : IUnknown; dwFil' +'terFlags : DWORD; end; TProtocolFilterData', '_tagPROTOCOLFILTERDATA; PROTOCOLFILTERDATA', '_tagPROTOCOLFILTERDATA; //PDataInfo', '^TDataInfo // will not work; _tagDATAINFO', 'record ulTotalSize : ULONG; ulavrPacketSize : UL' +'ONG; ulConnectSpeed : ULONG; ulProcessorSpeed : ULONG; end; TDataInfo', '_tagDATAINFO; DATAINFO', '_tagDATAINFO; SIRegister_IEncodingFilterFactory(CL); Func IsLoggingEnabled( pszUrl : PChar) : BOOL; //Func IsLoggingEnabledA( pszUrl : PAnsiChar) : BOOL; //Func IsLoggingEnabledW( pszUrl : PWideChar) : BOOL; //PHitLoggingInfo', '^THitLoggingInfo // will not work; _tagHIT_LOGGING_INFO', 'record dwStructSize : DWORD; lpszLoggedU' +rlName:LPSTR;StartTime : TSystemTime;EndTime:TSystemTime; lpszExtendedInfo:LPSTR; end; THitLoggingInfo', '_tagHIT_LOGGING_INFO; HIT_LOGGING_INFO', '_tagHIT_LOGGING_INFO; Func WriteHitLogging( const Logginginfo : THitLoggingInfo) : BOOL; end; Proc SIRegister_DFFUtils(CL: TPSPascalCompiler); begin Proc reformatMemo( const m : TCustomMemo); Proc SetMemoMargins( m : TCustomMemo; const L, T, R, B : Int); Proc MoveToTop( memo : TMemo); Proc ScrollToTop( memo : TMemo); Func LineNumberClicked( memo : TMemo) : Int; Func MemoClickedLine( memo : TMemo) : Int; Func ClickedMemoLine( memo : TMemo) : Int; Func MemoLineClicked( memo : TMemo) : Int; Func LinePositionClicked( Memo : TMemo) : Int; Func ClickedMemoPosition( memo : TMemo) : Int; Func MemoPositionClicked( memo : TMemo) : Int; Proc AdjustGridSize( grid : TDrawGrid); Proc DeleteGridRow( Grid : TStringGrid; const ARow : Int); Proc InsertgridRow( Grid : TStringGrid; const ARow : Int); Proc Sortgrid( Grid : TStringGrid; const SortCol : Int);; Proc Sortgrid1(Grid:TStringGrid; const SortCol : Int; sortascending :Bool);; Proc sortstrDown( var s :Str); Proc sortstrUp( var s :Str); Proc rotatestrleft( var s :Str); Func dffstrtofloatdef( s :Str; default : extended) : extended; Func deblank( s :Str) :Str; Func IntToBinaryString( const n : Int; MinLength : Int) :Str; Proc FreeAndClearListBox( C : TListBox);; Proc FreeAndClearMemo( C : TMemo);; Proc FreeAndClearStringList( C : TStringList);; Func dffgetfilesize( f : TSearchrec) : int64; end; Proc SIRegister_MathsLib(CL: TPSPascalCompiler); begin TypeS('intset', set of byte; TPoint64', 'record x : int64; y : int64; end; Func GetNextPandigital( size : Int; var Digits : array of Int) :Bool; Func IsPolygonal( T : int64; var rank : array of Int) :Bool; Func GeneratePentagon( n : Int) : Int; Func IsPentagon( p : Int) :Bool; Func isSquare( const N : int64) :Bool; Func isCube( const N : int64) :Bool; Func isPalindrome( const n : int64) :Bool;; Func isPalindrome1( const n : int64; var len : Int) :Bool;; Func GetEulerPhi( n : int64) : int64; Func dffIntPower( a, b : int64) : int64;; Func IntPower1( a : extended; b : int64) : extended;; Func gcd2( a, b : int64) : int64; Func GCDMany( A : array of Int) : Int; Func LCMMany( A : array of Int) : Int; Proc ContinuedFraction(A: array of int64;const wholepart:int;var numerator,denominator:int64); Func dffFactorial( n : int64) : int64; Func digitcount( n : int64) : Int; Func nextpermute( var a : array of Int) :Bool; Func convertfloattofractionstring(N:extended;maxdenom:Int;multipleof:boolean):str; Func convertStringToDecimal( s :Str; var n : extended) :Bool; Func InttoBinaryStr( nn : Int) :Str; Func StrtoAngle( const s :Str; var angle : extended) :Bool; Func AngleToStr( angle : extended) :Str; Func AngleToStr2( angle : extended; decimal:boolean) :Str; Func deg2rad( deg : extended) : extended; Func rad2deg( rad : extended) : extended; Func GetLongToMercProjection( const long : extended) : extended; Func GetLatToMercProjection( const Lat : Extended) : Extended; Func GetMercProjectionToLong( const ProjLong : extended) : extended; Func GetMercProjectionToLat( const ProjLat : extended) : extended; SIRegister_TPrimes(CL); //RIRegister_TPrimes(CL); //ConstantN('deg','LongInt').SetInt( char( 176)); ConstantN('minmark','LongInt').SetInt(( 180)); Func Random64( const N : Int64) : Int64;; Proc Randomize64; Func Random641 : extended;; Proc GetParens( Variables:Str; OpChar:char; var list:TStringlist)//DFFUtils add 4.7.4.62 Func MercScaling(Long0,lat0, long1, lat1:extended; x0,y0,x1,y1:integer) :TMercScalingRec'); Func LonglatToPlotPt(Long,lat:Extended; Scalerec:TMercScalingrec):TPoint'); Func PlotPtToLonglat(PlotPt:TPoint; Scalerec:TMercScalingrec):TRealPoint'); Func SphericalEarthDistance(lat1,lon1,lat2,lon2:extended; Units:integer):extended'); end; Proc SIRegister_UGeometry(CL: TPSPascalCompiler); begin TrealPoint', 'record x : extended; y : extended; end; Tline', 'record p1 : TPoint; p2 : TPoint; end; TRealLine', 'record p1 : TRealPoint; p2 : TRealPoint; end; TCircle', 'record cx : Int; cy : Int; r : Int; end; TRealCircle', 'record cx : extended; cy : extended; r : extended; end; PPResult', '( PPoutside, PPInside, PPVertex, PPEdge, PPError ); Func realpoint( x, y : extended) : TRealPoint; Func dist( const p1, p2 : TrealPoint) : extended; Func intdist( const p1, p2 : TPoint) : Int; Func dffLine( const p1, p2 : TPoint) : Tline;; Func Line1( const p1, p2 : TRealPoint) : TRealline;; Func dffCircle( const cx, cy, R : Int) : TCircle;; Func Circle1( const cx, cy, R : extended) : TRealCircle;; Func GetTheta( const L : TLine) : extended;; Func GetTheta1( const p1, p2 : TPoint) : extended;; Func GetTheta2( const p1, p2 : TRealPoint) : extended;; Proc Extendline( var L : TLine; dist : Int);; Proc Extendline1( var L : TRealLine; dist : extended);; Func Linesintersect( line1, line2 : TLine) :Bool; Func ExtendedLinesIntersect(Line1,Line2:TLine;const extendlines:bool;var IP:TPoint):bool; Func ExtendedLinesIntersect1(const Line1,Line2:TLine;const extendlines:bool;var IP:TRealPoint):bool; Func Intersect(L1,L2: TLine; var pointonborder:boolean; var IP : TPoint) :Bool; Func PointPerpendicularLine( L : TLine; P : TPoint) : TLine; Func PerpDistance( L : TLine; P : TPoint) : Int; Func AngledLineFromLine(L:TLine;P:TPoint;Dist:extended; alpha : extended) : TLine;; Func AngledLineFromLine1(L:TLine;P:TPoint;Dist:extended;alpha:extended;useScreenCoordiates:bool):TLine; Func PointInPoly( const p : TPoint; Points : array of TPoint) : PPResult; Func PolygonArea(const points:array of TPoint;const screencoordinates:boolean;var Clockwise:bool):Int; Proc InflatePolygon(const points:array of Tpoint;var points2:array of TPoint;var area:Int;const screenCoordinates:bool; const inflateby : Int); Func PolyBuiltClockwise(const points:array of TPoint;const screencoordies:bool):bool; Func DegtoRad( d : extended) : extended; Func RadtoDeg( r : extended) : extended; Proc TranslateLeftTo( var L : TLine; newend : TPoint);; Proc TranslateLeftTo1( var L : TrealLine; newend : TrealPoint);; Proc RotateRightEndBy( var L : TLine; alpha : extended); Proc RotateRightEndTo( var L : TLine; alpha : extended);; Proc RotateRightEndTo1( var p1, p2 : Trealpoint; alpha : extended);; Func CircleCircleIntersect( c1, c2 : TCircle; var IP1, Ip2 : TPoint) :Bool;; Func CircleCircleIntersect1(c1,c2:TRealCircle; var IP1,Ip2 TRealPoint) :Bool;; Func PointCircleTangentLines(const C:TCircle;const P:TPoint;var L1,L2:TLine):bool; Func CircleCircleExtTangentLines(C1,C2:TCircle;var C3:TCircle;var L1,L2,PL1,PL2,TL1,Tl2:TLine):Bool; end; Proc SIRegister_UAstronomy(CL: TPSPascalCompiler); begin TCoordType', '( ctUnknown, ctAzAlt, ctEclLonLat, ctRADecl, ctHADecl, ctGalLonLat ); TDTType', '( ttLocal, ttUT, ttGST, ttLST ); TRPoint', 'record x : extended; y : extended; CoordType : TCoordType; end; TSunrec', 'record TrueEclLon:extended; AppEclLon:extended;AUDistance:extended;TrueHADecl:TRPoint;TrueRADecl:TRPoint; TrueAzAl:TRPoint;AppHADecl: TRPoint;AppRADecl:TRPoint;AppAzAlt:TRpoint;SunMeanAnomaly:extended;end; TMoonRec', 'record ECLonLat : TRPoint; AZAlt : TRPoint; RADecl :' + TRPoint; HorizontalParallax : extended; AngularDiameter : extended; KMtoE' +arth : extended; Phase : extended; end; TMoonEclipseAdd', 'record UmbralStartTime : TDatetime; UmbralEnd' +Time : TDatetime; TotalStartTime : TDatetime; TotalEndTime : TDateTime; end; TEclipseRec', 'record Msg :Str; Status : Int; FirstConta' +ct: TDatetime;LastContact:TDateTime;Magnitude:Extended;MaxeclipseUTime:TDateTime;end; TPlanet', '( MERCURY, VENUS, MARS, JUPITER, SATURN, URANUS, NEPTUNE, PLUTO ); TPlanetRec', 'record AsOf : TDateTime; Name :Str; MeanLon : ' +extended; MeanLonMotion : extended; LonOfPerihelion : extended; Eccentrici' +ty : extended; Inclination : extended; LonAscendingNode : extended; SemiMa' +jorAxis : extended; AngularDiameter : extended; Magnitude : extended; end; TPlanetLocRec', 'record PlanetBaseData : TPlanetrec; HelioCentricLonLat : TRpoint; RadiusVector : extended; UncorrectedEarthDistance:extended;GeoEclLonLat: TRpoint;CorrectedEarthDistance:extended; ApparentRaDecl:TRPoint;end; SIRegister_TAstronomy(CL); Func AngleToStr( angle : extended) :Str; Func AngleToStr2( angle : extended; decimal:boolean) :Str; Func StrToAngle( s :Str; var angle : extended) :Bool; Func HoursToStr24( t : extended) :Str; Func RPoint( x, y : extended) : TRPoint; Func getStimename( t : TDTType) :Str; end; Proc SIRegister_UCardComponentV2(CL: TPSPascalCompiler); begin TCardValue', 'Int; TCardSuit', '( Spades, Diamonds, Clubs, Hearts ); TShortSuit', '( cardS, cardD, cardC, cardH ); Type(TDecks,Stand1,Standrd2,Fises1,Fishes2,Beach,Leaves1,Leaves2,Robot,Roses,Shell,Castle,Hand); SIRegister_TCard(CL); SIRegister_TDeck(CL); end; Proc SIRegister_UTGraphSearch(CL: TPSPascalCompiler); begin tMethodCall', 'Procedure;tVerboseCall', 'Proc ( s :Str); // PTEdge', '^TEdge // will not work; TEdge', 'record FromNodeIndex : Int; ToNodeIndex : Int; ' +Weight : Int; work : Int; Len : Int; Highlight :Bool; end; SIRegister_TNode(CL); SIRegister_TGraphList(CL); end; Proc SIRegister_UParser10(CL: TPSPascalCompiler); begin ParserFloat', 'extended; //PParserFloat', '^ParserFloat /will not work; TDFFToken', '( variab, constant, minus, sum, diff, prod, divis, mod' +ulo, IntDiv,IntDIVZ,Intpower,realpower,square,third,fourth,FuncOneVar,FuncTwoVar ); //POperation', '^TOperation // will not work; TDFFOperation', 'record Arg1 : PParserFloat; Arg2 : PParserFloat; D' +est : PParserFloat; NextOperation : POperation; Operation : TMathProcedure' +; Token : TDFFToken; end; TMathProcedure','procedure(AnOperation: TDFFOperation); (TOBJECT'),'EMathParserError; TOBJECT'),'ESyntaxError; 'TOBJECT'),'EExpressionHasBlanks; ('TOBJECT'),'EExpressionTooComplex; (TOBJECT'),'ETooManyNestings; ('TOBJECT'),'EMissMatchingBracket; (TOBJECT'),'EBadName; (CL.FindClass('TOBJECT'),'EParserInternalError; (TExParserExceptionEvent', 'Proc ( Sender : TObject; E : Exception); SIRegister_TCustomParser(CL); SIRegister_TExParser(CL); end; Func isService:Bool; begin result:= NOT(Application is TApplication); {result:= Application is TServiceApplication;} end; Func isApplication:Bool; begin result:= Application is TApplication; end; //SM_REMOTESESSION = $1000 Func isTerminalSession:Bool; begin result:= GetSystemMetrics(SM_REMOTESESSION) > 0; end; writeln(inttostr(getmemoryload)) Proc SIRegister_cyIEUtils(CL: TPSPascalCompiler); begin TypeS('TwbPageSetup', record font :Str; footer :Str; header : ' +String; margin_bottom :Str; margin_left :Str; margin_right : Strin' +g; margin_top :Str; Print_Background :Str; Shrink_To_Fit:str; end; Func cyURLEncode( const S :Str) :Str; Func MakeResourceURL(const ModulName:str;const ResName:PChar;const ResType:PChar):str; Func MakeResourceURL1(const Modul:HMODULE;const ResName:PChar;const ResType:PChar):str; Func cyColorToHtml( aColor : TColor) :Str; Func HtmlToColor( aHtmlColor :Str) : TColor; //Func GetStreamEncoding( aStream : TStream) : TEncoding; // Func IsStreamEncodedWith( aStream : TStream; Encoding : TEncoding) :Bool; Func AddHtmlUnicodePrefix( aHtml :Str) :Str; Func RemoveHtmlUnicodePrefix( aHtml :Str) :Str; Proc GetPageSetupFromRegistry( var awbPageSetup : TwbPageSetup); Proc SetPageSetupToRegistry( awbPageSetup : TwbPageSetup); ConstantN('IEBodyBorderless','String').SetString( 'none; IEBodySingleBorder','String').SetString( '; IEDesignModeOn','String').SetString( 'On; IEDesignModeOff','String').SetString( 'Off; cHtmlUnicodePrefixChar','Char').SetString( #$FEFF); cHtmlUnicodePrefixChar','Char').SetString( #$FE); end; Proc SIRegister_UcomboV2(CL: TPSPascalCompiler); begin ConstantN('UMaxEntries','LongInt').SetInt( 600); TypeS('TCombotype', '( Combinations, Permutations, CombinationsDown, Pe' +'rmutationsDown, CombinationsCoLex, CombinationsCoLexDown, PermutationsRepe' +'at, PermutationsWithRep, PermutationsRepeatDown, CombinationsWithrep, Comb' +'inationsRepeat, CombinationsRepeatDown ); TypeS('TByteArray64', 'array[0..600 + 1] of int64;; SIRegister_TComboSet(CL); end; Proc SIRegister_cyBaseComm(CL: TPSPascalCompiler); begin TcyCommandType', '( ctDevelopperDefined, ctUserDefined ); TStreamContentType', '( scDevelopperDefined, scUserDefined, scString ); TProcOnReceiveCommand', 'Proc (Sender: TObject; aCommand: Word; userParam : Int); TProcOnReceiveString', 'Proc ( Sender : TObject; fromBaseCo' +'mmHandle : THandle; aString :Str; userParam : Int); TProcOnReceiveMemoryStream', 'Proc ( Sender : TObject; from' +BaseCommHandle : THandle; aStream : TMemoryStream; userParam: Int); SIRegister_TcyBaseComm(CL); ConstantN('MsgCommand','LongInt').SetInt( WM_USER + 1); ConstantN('MsgResultOk','LongInt').SetInt( 99); Func ValidateFileMappingName( aName :Str) :Str; Proc makeCaption(leftSide, Rightside:str; form:TForm); end; Proc SIRegister_cyDERUtils(CL: TPSPascalCompiler); begin TypeS('DERString', 'String; TypeS('DERChar', 'Char; TypeS('TElementsType', ( etText, etExpressionKeyWord, etNumbers, etInt' +eger,etFloat,etPercentage,etwebSite,etWebMail,etMoney,etDate,etTextLine,etParagraph); TypeS('TElementsTypes', 'set of TElementsType; TypeS('DERNString', 'String; const DERDecimalSeparator','String').SetString( '.; const DERDefaultChars,String)(+º@/%-_.:0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ; const DERNDefaultChars','String').SetString( '/%-.0123456789abcdefghjkmnopqrstuvwxyz; Func isValidWebSiteChar( aChar : Char) :Bool; Func isValidWebMailChar( aChar : Char) :Bool; Func isValidwebSite( aStr :Str) :Bool; Func isValidWebMail( aStr :Str) :Bool; Func ValidateDate( aDERStr : DERString; var RsltFormat :Str) :Bool; Func DERStrToDate( aDERStr, aFormat :Str) : TDate; Func IsDERChar( aChar : Char) :Bool; Func IsDERDefaultChar( aChar : Char) :Bool; Func IsDERMoneyChar( aChar : Char) :Bool; Func IsDERExceptionCar( aChar : Char) :Bool; Func IsDERSymbols( aDERString :Str) :Bool; Func StringToDERCharSet( aStr :Str) : DERString; Func IsDERNDefaultChar( aChar : Char) :Bool; Func IsDERNChar( aChar : Char) :Bool; Func DERToDERNCharset( aDERStr : DERString) : DERNString; Func DERExtractwebSite( aDERStr : DERString; SmartRecognition :Bool) :Str; Func DERExtractWebMail( aDERStr : DERString) :Str; Func DERExtractPhoneNr( aDERStr : DERString) :Str; Func DERExecute(aDERStr:DERString;SmartNumbersRecognition,SmartWebsiteRecognition:Bool):TElementsType; Func DERExecute1(aDERStr : DERString; var RsltNumbers, RsltInt, RsltFloat, RsltPercentage, RsltwebSite, RsltWebMail,RsltMoney,RsltDate:str;SmartNumbersRecognition, SmartWebsiteRecognition:Bool):TElementsType; Func RetrieveElementValue(aStr:str;SmartNumbersRecognition,SmartWebsiteRecognition:Bool;aElementsType:TElementsType):str;; Proc RetrieveElementValue1(aStr:Str;SmartNumbersRecognition,SmartWebsiteRecognition:Bool;var RsltDERStr: DERString;var RsltElementType:TElementsType);; end; Proc SIRegister_cyImage(CL: TPSPascalCompiler); begin pRGBQuadArray', '^TRGBQuadArray // will not work; Func BitmapsCompare(Bmp1:TBitmap;Bmp2:TBitmap;FirstCol,LastCol,FirstRow,LastRow:Int):Int); Proc BitmapSetPercentBrightness(Bmp: TBitmap; IncPercent:Int; RefreshBmp :Bool); Proc BitmapSetPixelsBrightness(Bmp:TBitmap; IncPixels : Int; RefreshBmp:Bool); Proc BitmapSetPercentContrast(Bmp:TBitmap; IncPercent : Int; RefreshBmp:Bool); Proc BitmapSetPixelsContrast(Bmp: TBitmap; IncPixels : Int; RefreshBmp:Bool); Proc BitmapNegative( Bmp : TBitmap; RefreshBmp :Bool); Proc BitmapModifyRGB(Bmp:TBitmap;IncRed:Int;IncGreen:Int;IncBlue:Int;RefreshBmp:Bool; Proc BitmapReplaceColor(Bmp:TBitmap;OldColor:TColor;NewColor:TColor;RangeRed,RangeGreen, RangeBlue:Word;SingleDestinationColor:Bool;RefreshBmp:Bool); Proc BitmapReplaceColor1(Bmp:TBitmap; OldColor:TColor;NewColor:TColor;PercentRange1Red,PercentRange1Green, PercentRange1Blue:Extended;PercentRange2Red, PercentRange2Green,PercentRange2Blue:Double;SingleDestinationColor:Bool;RefreshBmp:Bool;; Proc BitmapReplaceColors(Bmp:TBitmap; Array_OldPalette,Array_NewPalette:array of TColor;SingleDestinationColor,RefreshBmp:Bool); Proc BitmapResize(SourceBmp TBitmap;DestinationBmp:TBitmap;Percent:Extended;RefreshBmp:Bool Proc BitmapRotate(Bmp:TBitmap;AngleDegree: Word;AdjustSize:Bool;BkColor: TColor); Proc BitmapBlur(SourceBmp:TBitmap;DestinationBmp:TBitmap;Pixels:Word;Percent:Int;RefreshBmp:Bool; Proc GraphicMirror(Source:TGraphic;Dest:TCanvas;Left,Top:Int;Horizontal,Vertical:Bool; Proc GraphicMirror1(Source:TGraphic;Destination:TBitmap;Horizontal:Boolean;Vertical:Bool; Func BitmapCreate(BmpWidth:Int;BmpHeight:Int;BgColor:TColor;PixelFormat:TPixelFormat):TBitmap; Proc BitmapSaveToJpegFile(Bmp : TBitmap; FileName :Str; QualityPercent : Word); Proc JpegSaveToBitmapFile(JPEG : TJPEGImage; FileName :Str); end; Proc SIRegister_WaveUtils(CL: TPSPascalCompiler); begin TMS2StrFormat', '( msHMSh, msHMS, msMSh, msMS, msSh, msS, msAh,msA ); TPCMChannel', '( cMono, cStereo ); TPCMSamplesPerSec', '( ss8000Hz, ss11025Hz, ss22050Hz, ss44100Hz, ss48000Hz ); TPCMBitsPerSample', '( bs8Bit, bs16Bit ); TPCMFormat', '( nonePCM, Mono8Bit8000Hz, Stereo8bit8000Hz, Mono1' +'6bit8000Hz, Stereo16bit8000Hz, Mono8bit11025Hz, Stereo8bit11025Hz, Mono16b' +'it11025Hz, Stereo16bit11025Hz, Mono8bit22050Hz, Stereo8bit22050Hz, Mono16b' +'it22050Hz, Stereo16bit22050Hz, Mono8bit44100Hz, Stereo8bit44100Hz, Mono16b' +'it44100Hz, Stereo16bit44100Hz, Mono8bit48000Hz, Stereo8bit48000Hz, Mono16b' +'it48000Hz, Stereo16bit48000Hz ); PWaveFormatEx', 'record wFormatTag : word; nChannels: word; nSamplesPerSec: DWORD; ' +nAvgBytesPerSec: DWORD; nBlockAlign: Word; wBitsPerSample: Word; ecbSiz: Word; end; tWaveFormatEx', 'PWaveFormatEx; HMMIO', 'Int; TWaveDeviceFormats', 'set of TPCMFormat; TWaveOutDeviceSupport', '( dsVolume, dsStereoVolume, dsPitch, ds' +'PlaybackRate, dsPosition, dsAsynchronize, dsDirectSound ); TypeS('TWaveOutDeviceSupports', 'set of TWaveOutDeviceSupport; TWaveOutOption', '( woSetVolume, woSetPitch, woSetPlaybackRate ); TWaveOutOptions', 'set of TWaveOutOption; TStreamOwnership2', '( soReference, soOwned ); TWaveStreamState', '( wssReady, wssReading, wssWriting, wssWritingEx ); // PRawWave', '^TRawWave // will not work; TRawWave', 'record pData : TObject; dwSize : DWORD; end; ClassN(CL.FindClass('TOBJECT'),'EWaveAudioError; ClassN(CL.FindClass('TOBJECT'),'EWaveAudioSysError; ClassN(CL.FindClass('TOBJECT'),'EWaveAudioInvalidOperation; TWaveAudioEvent', 'Proc (Sender : TObject); TWaveAudioGetFormatEvent', 'Proc (Sender : TObject; var pW' +aveFormat : PWaveFormatEx; var FreeIt : Bool); TWaveAudioGetDataEvent', 'Func (Sender : TObject; const Buf' +fer : TObject; BufferSize : DWORD; var NumLoops : DWORD) : DWORD; TWaveAudioGetDataPtrEvent', 'Func ( Sender : TObject; var Bu' +ffer : TObject; var NumLoops : DWORD; var FreeIt :Bool) : DWORD; TWaveAudioDataReadyEvent', 'Proc ( Sender : TObject; const ' +Buffer : TObject; BufferSize : DWORD; var FreeIt :Bool); TWaveAudioLevelEvent', 'Proc ( Sender : TObject; Level : Int); TWaveAudioFilterEvent,Procedure(Sender:TObject;const Buffer:TObject; BufferSize:DWORD); GetWaveAudioInfo(mmIO:HMMIO;var pWaveFormat:PWaveFormatEx;var DataSize,DataOffset:DWORD):Bool; CreateWaveAudio(mmIO:HMMIO;const pWaveFormat:PWaveFormatEx;var ckRIFF,ckData:TMMCKInfo):Bool; CloseWaveAudio( mmIO : HMMIO; var ckRIFF, ckData : TMMCKInfo); GetStreamWaveAudioInfo(Stream:TStream;var pWaveFormat:PWaveFormatEx;var DataSize,DataOffset:DWORD):Bool; CreateStreamWaveAudio(Stream:TStream;const pWaveFormat:PWaveFormatEx;var ckRIFF,ckData:TMMCKInfo):HMMIO; OpenStreamWaveAudio( Stream : TStream) : HMMIO; CalcWaveBufferSize( const pWaveFormat : PWaveFormatEx; Duration : DWORD) : DWORD; GetAudioFormat( FormatTag : Word) :Str; GetWaveAudioFormat( const pWaveFormat : PWaveFormatEx) :Str; GetWaveAudioLength( const pWaveFormat : PWaveFormatEx; DataSize : DWORD) : DWORD; GetWaveAudioBitRate( const pWaveFormat : PWaveFormatEx) : DWORD; GetWaveAudioPeakLevel(const Data:TObject;DataSize:DWORD;const pWaveFormat:PWaveFormatEx): Int; InvertWaveAudio(const Data:TObject;DataSize:DWORD;const pWaveFormat:PWaveFormatEx):Bool; SilenceWaveAudio(const Data:TObject;DataSize:DWORD;const pWaveFormat:PWaveFormatEx):Bool; ChangeWaveAudioVolume(const Data:TObject;DataSize:DWORD;const pWaveFormat:PWaveFormatEx;Percent:Int):Bool; MixWaveAudio(const RawWaves:TRawWave;Count:Int;const pWaveFormat:PWaveFormatEx;Buffer:TObject;BufferSize:DWORD):Bool; ConvertWaveFormat(const srcFormat:PWaveFormatEx;srcData:TObject;srcDataSize:DWORD;const dstFormat:PWaveFormatEx; var dstData:TObject;var dstDataSize:DWORD):Bool; SetPCMAudioFormat(const pWaveFormat:PWaveFormatEx;Channels:TPCMChannel;SamplesPerSec:TPCMSamplesPerSec; BitsPerSample:TPCMBitsPerSample); Proc SetPCMAudioFormatS( const pWaveFormat : PWaveFormatEx; PCMFormat:TPCMFormat); GetPCMAudioFormat( const pWaveFormat : PWaveFormatEx) : TPCMFormat; GetWaveDataPositionOffset( const pWaveFormat : PWaveFormatEx; Position:DWORD):DWORD; MS2Str( Milliseconds : DWORD; Fmt : TMS2StrFormat) :Str; WaitForSyncObject(SyncObject : THandle; Timeout : DWORD) : DWORD; //mmioStreamProc( lpmmIOInfo : PMMIOInfo; uMsg, lParam1, lParam2 : DWORD) : LRESULT; end; Proc SIRegister_NamedPipes(CL: TPSPascalCompiler); begin 'DEFAULT_PIPE_BUFFER_SIZE','LongInt').SetInt( 4096); ConstantN('DEFAULT_PIPE_TIMEOUT','LongInt').SetInt( 5000); 'PIPE_NAMING_SCHEME','String).SetString( '\\%s\pipe\%s; 'WAIT_ERROR','LongWord').SetUInt( DWORD ( $FFFFFFFF )); WAIT_OBJECT_1','LongInt').SetInt( WAIT_OBJECT_0 + 1); 'STATUS_SUCCESS','LongWord').SetUInt( $00000000); 'STATUS_BUFFER_OVERFLOW','LongWord').SetUInt( $80000005); TypeS('TPipeDirection', ( pdir_Duplex, pdir_ClientToServer, pdir_ServerToClient ); TypeS('TPipeType', '( ptyp_ByteByte, ptyp_MsgByte, ptyp_MsgMsg ); TypeS('TOverlappedResult', '(ov_Failed, ov_Pending, ov_MoreData, ov_Complete ); SIRegister_TNamedPipe(CL); SIRegister_TServerPipe(CL); SIRegister_TClientPipe(CL); Func CalculateTimeout( aBasis : DWORD) : DWORD; Func HasOverlappedIoCompleted( const ov : OVERLAPPED) :Bool; Func GetOverlappedPipeResult(aHandle:THandle;const ov:OVERLAPPED;var dwBytes:DWORD;bWait:Bool):TOverlappedResult; Func GetStreamAsText( stm : TStream) :Str; Proc SetStreamAsText(const aTxt:Str; stm : TStream); end; Proc SIRegister_DPUtils(CL: TPSPascalCompiler); begin // TypeS('pRGBTripleArray', '^TRGBTripleArray // will not work; SIRegister_TThumbData(CL); 'PIC_BMP','LongInt').SetInt( 0); 'PIC_JPG','LongInt').SetInt( 1); 'THUMB_WIDTH','LongInt').SetInt( 60); 'THUMB_HEIGHT','LongInt').SetInt( 60); Func IsEqualFile(Filename:str; Size:Int; LastWriteTime : TDateTime):Bool; Proc GetFileInfo(Filename:str; var Size : Int; var LastWriteTime : TDateTime); Func ReadBitmap( Filehandle : Int; Width, Height : Int) : TBitmap; Proc WriteBitmap( Filehandle : Int; bmp : TBitmap); Func OpenPicture( fn :Str; var tp : Int) : Int; Func ConvertPicture( pi : Int; tp : Int) : TBitmap; Func LoadPicture( fn :Str; var w, h : Int) : TBitmap; Func TurnBitmap( bmp : TBitmap; ang : Int) : TBitmap; Func RotateBitmap( Bitmap : TBitmap; Direction : Int) : TBitmap; Func StretchBitmap( Canvas : TCanvas; re : TRect; bmp : TBitmap) : TRect; Func ThumbBitmap( Bitmap : TBitmap; Width, Height : Int) : TBitmap; Proc ClearFrame( Canvas : TCanvas; Rect : TRect; Width, Height : Int); Proc FindFiles( path, mask :Str; items : TStringList); Func LetFileName( s :Str) :Str; Func LetParentPath( path :Str) :Str; Func AddBackSlash( path :Str) :Str; Func CutBackSlash( path :Str) :Str; end; Proc SIRegister_CommonTools(CL: TPSPascalCompiler); begin //'BYTES','LongInt').SetInt( 1); 'KBYTES','LongInt').SetInt( 1024); 'DBG_ALIVE','LongWord').SetUInt( Int ( $11BABE11 )); 'DBG_DESTROYING','LongWord').SetUInt( Int ( $44FADE44 )); 'DBG_GONE','LongWord').SetUInt( $99AC1D99); 'SHELL_NS_MYCOMPUTER','String').SetString( '::{20D04FE0-3AEA-1069-A2D8-08002B30309D}; SIRegister_MakeComServerMethodsPublic(CL); TypeS('TSomeFileInfo', '( fi_DisplayType, fi_Application ); Func IsFlagSet( dwTestForFlag, dwFlagSet : DWORD) :Bool; Proc TBSetFlag( const dwThisFlag : DWORD; var dwFlagSet : DWORD; aSet :Bool); Func TBGetTempFolder :Str; Func TBGetTempFile :Str; Func TBGetModuleFilename :Str; Func FormatModuleVersionInfo( const aFilename :Str) :Str; Func GetVersionInfoString( const aFile, aEntry :Str; aLang : WORD) :Str; Func TBGetFileSize( aFile :Str; aMultipleOf : Int) : Int; Func FormatAttribString( aAttr : Int) :Str; Func GetSomeFileInfo( aFile :Str; aWhatInfo : TSomeFileInfo) :Str; Func ShellRecycle( aWnd : HWND; aFileOrFolder :Str) :Bool; Func IsDebuggerPresent : BOOL; Func TBNotImplemented : HRESULT; end; Proc SIRegister_D2_VistaHelperU(CL: TPSPascalCompiler); begin //TypeS('OSVERSIONINFOEXA', '_OSVERSIONINFOEXA; //TypeS('TOSVersionInfoExA', '_OSVERSIONINFOEXA; TypeS('TOSVersionInfoEx', 'TOSVersionInfo; TypeS('TDrivesProperty', 'array[1..26] of boolean;; //TDrivesProperty = array['A'..'Z'] of boolean; Func TBSetSystemTime( DateTime : TDateTime; DOW : word) :Bool; Func IsElevated :Bool; Proc CoCreateInstanceAsAdmin(aHWnd:HWND;const aClassID:TGUID;const aIID:TGUID;out aObj:TObject); TypeS('TPasswordUsage', '( pu_None, pu_Default, pu_Defined ); Func TrimNetResource( UNC :Str) :Str; Proc GetFreeDrives( var FreeDrives : TDrivesProperty); Proc GetMappedDrives( var MappedDrives : TDrivesProperty); Func MapDrive(UNCPath:str;Drive:char;PasswordUsage:TPasswordUsage;Password:str; UserUsage:TPasswordUsage;User:str;Comment:str):bool; Func UnmapDrive( Drive : char; Force :Bool):Bool; Func TBIsWindowsVista :Bool; Proc SetVistaFonts( const AForm : TForm); Proc SetVistaContentFonts( const AFont : TFont); Func GetProductType( var sType :Str) :Bool; Func lstrcmp( lpString1, lpString2 : PChar) : Int; Func lstrcmpi( lpString1, lpString2 : PChar) : Int; Func lstrcpyn( lpString1, lpString2 : PChar; iMaxLength : Int) : PChar; Func lstrcpy( lpString1, lpString2 : PChar) : PChar; Func lstrcat( lpString1, lpString2 : PChar) : PChar; Func lstrlen( lpString : PChar) : Int; Func GetTokenInformation(TokenHandle:THandle;TokenInformationClass:TTokenInformationClass;TokenInformation:___Pointer;TokenInformationLength:DWORD;var ReturnLength:DWORD):BOOL; Func SetTokenInformation(TokenHandle:THandle;TokenInformationClass:TTokenInformationClass;TokenInformation:___Pointer;TokenInformationLength:DWORD):BOOL; end; Proc SIRegister_dwsXPlatform(CL: TPSPascalCompiler); begin 'cLineTerminator','Char').SetString( #10); 'cLineTerminators','String').SetString( #13#10); 'INVALID_HANDLE_VALUE','LongInt').SetInt( DWORD ( - 1 )); SIRegister_TFixedCriticalSection(CL); SIRegister_TMultiReadSingleWrite(CL); Proc SetDecimalSeparator( c : Char); Func GetDecimalSeparator : Char; Func GetDecimalSeparator : Char; Proc SetDateSeparator( c : Char); Func GetDateSeparator : Char; Proc setTimeSeparator( c : Char); Func getTimeSeparator : Char; Proc setShortDateFormat( c :Str); Func getShortDateFormat :Str; Proc setlongDateFormat( c :Str); Func getlongDateFormat :Str; Proc setShorttimeFormat( c :Str); Func getShorttimeFormat :Str; Proc setlongtimeFormat( c :Str); Func getlongtimeFormat :Str; //getTimeSeparator Proc setThousandSeparator(c : Char); Func getThousandSeparator : Char; Proc setListSeparator( c : Char); Func getListSeparator : Char; 'LOGON32_LOGON_INTERACTIVE','LongInt').SetInt( 2); 'LOGON32_LOGON_NETWORK','LongInt').SetInt( 3); 'LOGON32_LOGON_BATCH','LongInt').SetInt( 4); 'LOGON32_LOGON_SERVICE','LongInt').SetInt( 5); 'LOGON32_PROVIDER_DEFAULT','LongInt').SetInt( 0); 'LOGON32_PROVIDER_WINNT35','LongInt').SetInt( 1); 'LOGON32_PROVIDER_WINNT40','LongInt').SetInt( 2); 'LOGON32_PROVIDER_WINNT50','LongInt').SetInt( 3); TCollectFileProgressEvent', 'Proc ( const directory:Str; var skipScan:Bool); Proc CollectFiles(const directory,fileMask:UnicodeString; list:TStrings; recurseSubdirectories:Boolean; onProgress : TCollectFileProgressEvent); TypeS('NativeInt', 'Int; //TypeS('PNativeInt', '^NativeInt // will not work; TypeS('NativeUInt', 'Cardinal; //TypeS('PNativeUInt', '^NativeUInt // will not work; //TypeS('TBytes', 'array of Byte; TypeS('RawByteString', 'UnicodeString; //TypeS('PNativeInt', '^NativeInt // will not work; //TypeS('PUInt64', '^UInt64 // will not work; SIRegister_TPath(CL); SIRegister_TFile(CL); SIRegister_TdwsThread(CL); Func GetSystemMilliseconds : Int64; Func UTCDateTime : TDateTime; Func UnicodeFormat(const fmt:UnicodeString; const args : array of const): UnicodeString; Func UnicodeCompareStr( const S1, S2 : UnicodeString) : Int; Func dwsAnsiCompareText( const S1, S2 : UnicodeString) : Int; Func dwsAnsiCompareStr( const S1, S2 : UnicodeString) : Int; Func UnicodeComparePChars(p1:PChar; n1 : Int; p2 : PChar; n2 : Int): Int;; Func UnicodeComparePChars1( p1, p2 : PChar; n : Int) : Int;; Func UnicodeLowerCase( const s : UnicodeString) : UnicodeString; Func UnicodeUpperCase( const s : UnicodeString) : UnicodeString; Func ASCIICompareText( const s1, s2 : UnicodeString) : Int; Func ASCIISameText( const s1, s2 : UnicodeString) :Bool; Func InterlockedIncrement( var val : Int) : Int; Func InterlockedDecrement( var val : Int) : Int; Proc FastInterlockedIncrement( var val : Int); Proc FastInterlockedDecrement( var val : Int); Func InterlockedExchangePointer(var target:___Pointer; val:___Pointer):___Pointer; Proc SetThreadName( const threadName : Char; threadID :Card); Proc dwsOutputDebugString( const msg : UnicodeString); Proc WriteToOSEventLog(const logName,logCaption,logDetails:UnicodeStr;const logRawData:Str) Func TryTextToFloat(const s:PChar;var value:Extended;const formatSettings:TFormatSettings):Bool; Proc VarCopy( out dest : Variant; const src : Variant); Func VarToUnicodeStr( const v : Variant) : UnicodeString; Func LoadTextFromBuffer( const buf : TBytes) : UnicodeString; Func LoadTextFromStream( aStream : TStream) : UnicodeString; Func LoadTextFromFile( const fileName : UnicodeString) : UnicodeString; Proc SaveTextToUTF8File( const fileName, text : UnicodeString); Func OpenFileForSequentialReadOnly( const fileName : UnicodeString) : THandle; Func OpenFileForSequentialWriteOnly( const fileName : UnicodeString) : THandle; Proc CloseFileHandle( hFile : THandle); Func FileCopy(const existing, new : UnicodeString; failIfExists :Bool):Boolean; Func FileMove( const existing, new : UnicodeString) :Bool; Func dwsFileDelete( const fileName :Str) :Bool; Func FileRename( const oldName, newName :Str) :Bool; Func dwsFileSize( const name :Str) : Int64; Func dwsFileDateTime( const name :Str) : TDateTime; Func DirectSet8087CW( newValue : Word) : Word; Func DirectSetMXCSR( newValue : Word) : Word; Func TtoObject( const T: byte) : TObject; Func TtoPointer( const T: byte) : ___Pointer; Proc GetMemForT(var T: byte; Size : Int); Func FindDelimiter( const Delimiters, S :Str; StartIdx : Int) : Int; end; Proc SIRegister_AdSocket(CL: TPSPascalCompiler); begin 'IPStrSize','LongInt').SetInt( 15); 'CM_APDSOCKETMESSAGE','LongWord').SetUInt( WM_USER + $0711); 'CM_APDSOCKETQUIT','LongWord').SetUInt( WM_USER + $0712); 'ADWSBASE','LongInt').SetInt( 9000); TypeS('TCMAPDSocketMessage', 'record Msg :Card; Socket : TSocket; ' +'SelectEvent : Word; SelectError : Word; Result : Longint; end; SIRegister_EApdSocketException(CL); TWsMode', '( wsClient, wsServer ); TWsNotifyEvent', 'Proc ( Sender : TObject; Socket : TSocket; TWsSocketErrorEvent', 'Proc ( Sender : TObject; Socket : TSocket;ErrCode : Int); SIRegister_TApdSocket(CL); end; Proc SIRegister_AdPort(CL: TPSPascalCompiler); begin SIRegister_TApdCustomComPort(CL); SIRegister_TApdComPort(CL); Func ComName( const ComNumber : Word) : ShortString; Func SearchComPort( const C : TComponent) : TApdCustomComPort; end; Proc SIRegister_PathFunc(CL: TPSPascalCompiler); begin Func inAddBackslash( const S :Str) :Str; Func PathChangeExt( const Filename, Extension :Str) :Str; Func PathCharCompare( const S1, S2 : PChar) :Bool; Func PathCharIsSlash( const C : Char) :Bool; Func PathCharIsTrailByte( const S :Str; const Index : Int) :Bool; Func PathCharLength( const S :Str; const Index : Int) : Int; Func inPathCombine( const Dir, Filename :Str) :Str; Func PathCompare( const S1, S2 :Str) : Int; Func PathDrivePartLength( const Filename :Str) : Int; Func PathDrivePartLengthEx(const Filename:str;const IncludeSignificantSlash:Bool):Int; Func inPathExpand( const Filename :Str) :Str; Func PathExtensionPos( const Filename :Str) : Int; Func PathExtractDir( const Filename :Str) :Str; Func PathExtractDrive( const Filename :Str) :Str; Func PathExtractExt( const Filename :Str) :Str; Func PathExtractName( const Filename :Str) :Str; Func PathExtractPath( const Filename :Str) :Str; Func PathIsRooted( const Filename :Str) :Bool; Func PathLastChar( const S :Str) : PChar; Func PathLastDelimiter( const Delimiters, S :Str) : Int; Func PathLowercase( const S :Str) :Str; Func PathNormalizeSlashes( const S :Str) :Str; Func PathPathPartLength(const Filename:str;const IncludeSlashsAfterPath:Bool):Int; Func PathPos( Ch : Char; const S :Str) : Int; Func PathStartsWith( const S, AStartsWith :Str) :Bool; Func PathStrNextChar( const S : PChar) : PChar; Func PathStrPrevChar( const Start, Current : PChar) : PChar; Func PathStrScan( const S : PChar; const C : Char) : PChar; Func inRemoveBackslash( const S :Str) :Str; Func RemoveBackslashUnlessRoot( const S :Str) :Str; Proc PathFuncRunTests( const AlsoTestJapaneseDBCS :Bool); end; Proc SIRegister_CmnFunc2(CL: TPSPascalCompiler); begin NEWREGSTR_PATH_SETUP','String').SetString( 'Software\Microsoft\Windows\CurrentVersion; NEWREGSTR_PATH_EXPLORER','String').SetString( NEWREGSTR_PATH_SETUP + '\Explorer; NEWREGSTR_PATH_SPECIAL_FOLDERS,String').SetStr(NEWREGSTR_PATH_EXPLORER +'\Shell Folders; NEWREGSTR_PATH_UNINSTALL','String').SetString( NEWREGSTR_PATH_SETUP + '\Uninstall; NEWREGSTR_VAL_UNINSTALLER_DISPLAYNAME','String').SetString( 'DisplayName; NEWREGSTR_VAL_UNINSTALLER_COMMANDLINE','String').SetString( 'UninstallString; KEY_WOW64_64KEY','LongWord').SetUInt( $0100); //TypeS('PLeadByteSet', '^TLeadByteSet // will not work; TypeS('TLeadByteSet', 'set of Char; SIRegister_TOneShotTimer(CL); TypeS('TRegView', '( rvDefault, rv32Bit, rv64Bit ); 'RegViews64Bit','LongInt').Value.ts32 := ord(rv64Bit); Func NewFileExists( const Name :Str) :Bool; Func inDirExists( const Name :Str) :Bool; Func FileOrDirExists( const Name :Str) :Bool; Func IsDirectoryAndNotReparsePoint( const Name :Str) :Bool; Func GetIniString(const Section,Key:str; Default:str;const Filename:str):str; Func GetIniInt(const Section,Key:Str;const Default,Min,Max:Longint;const Filenam:Str):Longint; Func GetIniBool(const Section,Key:str;const Default:Bool;const Filename:str):Bool; Func IniKeyExists( const Section, Key, Filename :Str) :Bool; Func IsIniSectionEmpty( const Section, Filename :Str) :Bool; Func SetIniString( const Section, Key, Value, Filename :Str) :Bool; Func SetIniInt(const Section,Key:str;const Value:Longint;const Filename:str):Bool; Func SetIniBool(const Section,Key:str;const Value:Bool;const Filename:Str):Bool; Proc DeleteIniEntry( const Section, Key, Filename :Str); Proc DeleteIniSection( const Section, Filename :Str); Func GetEnv( const EnvVar :Str) :Str; Func GetCmdTail :Str; Func GetCmdTailEx( StartIndex : Int) :Str; Func NewParamCount : Int; Func NewParamStr( Index : Int) :Str; Func AddQuotes( const S :Str) :Str; Func RemoveQuotes( const S :Str) :Str; Func inGetShortName( const LongName :Str) :Str; Func inGetWinDir :Str; Func inGetSystemDir :Str; Func GetSysWow64Dir :Str; Func GetSysNativeDir( const IsWin64 :Bool) :Str; Func inGetTempDir :Str; Func StringChange( var S :Str; const FromStr, ToStr :Str) : Int; Func StringChangeEx(var S:str;const FromStr,ToStr:str;const SupportDBCS:Bool):Int; Func AdjustLength( var S :Str; const Res :Card) :Bool; Func UsingWinNT :Bool; Func ConvertConstPercentStr( var S :Str) :Bool; Func ConvertPercentStr( var S :Str) :Bool; Func ConstPos( const Ch : Char; const S :Str) : Int; Func SkipPastConst( const S :Str; const Start : Int) : Int; Func RegQueryStringValue( H : HKEY; Name : PChar; var ResultStr :Str) :Bool; Func RegQueryMultiStringValue( H : HKEY; Name : PChar; var ResultStr:str):Bool; Func RegValueExists( H : HKEY; Name : PChar) :Bool; Func RegCreateKeyExView(const RegView:TRegView;hKey:HKEY;lpSubKey:PChar;Reserved:DWORD;lpClass:PChar;dwOptions:DWORD;samDesired:REGSAM;lpSecurityAttributes:TObject; var phkResult:HKEY;lpdwDisposition:DWORD):Longint; Func RegOpenKeyExView(const RegView:TRegView;hKey:HKEY;lpSubKey:PChar;ulOptions:DWORD;samDesired:REGSAM;var phkResult:HKEY):Longint; Func RegDeleteKeyView( const RegView:TRegView;const Key:HKEY;const Name:PChar): Longint; Func RegDeleteKeyIncludingSubkeys(const RegView:TRegView;const Key:HKEY;const Name:PChar):Longint; Func RegDeleteKeyIfEmpty(const RegView:TRegView;const RootKey:HKEY;const SubkeyNam:PChar):Longint; Func GetShellFolderPath( const FolderID : Int) :Str; Func IsAdminLoggedOn :Bool; Func IsPowerUserLoggedOn :Bool; Func IsMultiByteString( const S : Ansistr) :Bool; Func FontExists( const FaceName :Str) :Bool; //Proc FreeAndNil( var Obj); Func SafeLoadLibrary( const Filename :Str; ErrorMode : UINT) : HMODULE; Func GetUILanguage : LANGID; Func RemoveAccelChar( const S :Str) :Str; Func GetTextWidth(const DC : HDC; S :Str; const Prefix:Boolean):Int; Func AddPeriod( const S :Str) :Str; Func GetExceptMessage :Str; Func GetPreferredUIFont :Str; Func IsWildcard( const Pattern :Str) :Bool; Func WildcardMatch( const Text, Pattern : PChar) :Bool; Func IntMax( const A, B : Int) : Int; Func Win32ErrorString( ErrorCode : Int) :Str; Proc GetLeadBytes( var ALeadBytes : TLeadByteSet); Func inCompareMem( P1, P2 : TObject; Length : Int) :Bool; Func DeleteDirTree( const Dir :Str) :Bool; Func SetNTFSCompression(const FileOrDir:Str; Compress :Bool) :Bool; Proc AddToWindowMessageFilterEx( const Wnd : HWND; const Msg : UINT); // TypeS('TSysCharSet', 'set of AnsiChar; Func inCharInSet( C : Char; const CharSet : TSysCharSet) :Bool; Func ShutdownBlockReasonCreate( Wnd : HWND; const Reason :Str) :Bool; Func ShutdownBlockReasonDestroy( Wnd : HWND) :Bool; Func TryStrToBoolean( const S :Str; var BoolResult :Bool) :Bool; Proc WaitMessageWithTimeout( const Milliseconds : DWORD); Func MoveFileReplace(const ExistingFileName, NewFileName :Str) :Bool; Proc TryEnableAutoCompleteFileSystem( Wnd : HWND); end; Proc SIRegister_CmnFunc(CL: TPSPascalCompiler); begin SIRegister_TWindowDisabler(CL); TMsgBoxType', '( mbInformation, mbConfirmation, mbError, mbCriticalError ); TMsgBoxCallbackFunc,procedure(const Flags:LongInt;const After:Bool;const Param:LongInt); Proc UpdateHorizontalExtent( const ListBox : TCustomListBox); Func MinimizePathName(const Filename:str; const Font:TFont;MaxLen:Int):str; Func AppMessageBox( const Text, Caption : PChar; Flags : Longint) : Int; Func MsgBoxP(const Text,Caption:PChar;const Typ: TMsgBoxType;const Buttons:Card):Int; Func inMsgBox(const Text,Caption:str;const Typ:TMsgBoxType;const Buttons:Card):Int; Func MsgBoxFmt(const Text:str;const Args:array of const;const Caption:str;const Typ:TMsgBoxType;const Buttons:Card):Int; Proc ReactivateTopWindow; Proc SetMessageBoxCaption( const Typ : TMsgBoxType; const NewCaption : PChar); Proc SetMessageBoxRightToLeft( const ARightToLeft :Bool); Proc SetMessageBoxCallbakFunc(const AFunc:TMsgBoxCallbackFunc;const AParam:LongInt); end; Proc SIRegister_ImageGrabber(CL: TPSPascalCompiler); begin SIRegister_TImageGrabber(CL); SIRegister_TCaptureDrivers(CL); SIRegister_TCaptureDriver(CL); end; Proc SIRegister_SecurityFunc(CL: TPSPascalCompiler); begin Func GrantPermissionOnFile(const DisableFsRedir:Boolean; Filename:str;const Entries:TGrantPermissionEntry; const EntryCount:Int):Boolean; Func GrantPermissionOnKey(const RegView:TRegView;const RootKey:HKEY;const Subkey:str;const Entries: TGrantPermissionEntry; const EntryCount:Int):Boolean; end; Proc SIRegister_RedirFunc(CL: TPSPascalCompiler); begin TypeS(TPreviousFsRedirectionState,record DidDisable:Boolean;OldValue: ___Pointer;end; Func AreFsRedirectionFunctionsAvailable :Bool; Func DisableFsRedirectionIf(const Disable:Bool;var PreviousState:TPreviousFsRedirectionState):Boo; Proc RestoreFsRedirection( const PreviousState : TPreviousFsRedirectionState); Func CreateDirectoryRedir(const DisableFsRedir:Boolean; const Filename:Str) : BOOL; Func CreateProcessRedir(const DisableFsRedir:Boolean;const lpApplicationName:PChar;const lpCommandLine:PChar; const lpProcessAttributes, lpThreadAttributes: PSecurityAttributes;const bInheritHandles:BOOL; const dwCreationFlags:DWORD;const lpEnvironment:Pointer; const lpCurrentDirectory:PChar;const lpStartupInfo:TStartupInfo;var lpProcessInformation:TProcessInformation):BOOL; Func CopyFileRedir(const DisableFsRedir:Bool;const ExistingFilename,NewFilename:str;const FailIfExists:BOOL):BOOL; Func DeleteFileRedir(const DisableFsRedir:Boolean; const Filename:Str): BOOL; Func DirExistsRedir(const DisableFsRedir:Boolean; const Filename:Str):Bool; Func FileOrDirExistsRedir( const DisableFsRedir:Bool; const Filename:str):Bool; Func FindFirstFileRedir(const DisableFsRedir:Boolean;const Filename:str;var FindData:TWin32FindData):THandle; Func GetFileAttributesRedir(const DisableFsRedir:Bool;const Filename:str): DWORD; Func GetShortNameRedir(const DisableFsRedir:Boolean; const Filename:str):str; Func GetVersionNumbersRedir(const DisableFsRedir:Boolean; const Filename:str;var VersionNumbers:TFileVersionNumbers): Bool; Func IsDirectoryAndNotReparsePointRedir(const DisableFsRedir:Bool;const Name:str):Bool; Func MoveFileRedir(const DisableFsRedir:Bool;const ExistingFilenme,NewFilename:str):BOOL; Func MoveFileExRedir(const DisableFsRedir:Bool;const ExistingFilen,NewFilename:str;const Flags:DWORD):BOOL; Func NewFileExistsRedir(const DisableFsRedir:Boolean;const Filename:str):Bool; Func RemoveDirectoryRedir(const DisableFsRedir:Boolean;const Filename :Str) : BOOL; Func SetFileAttributesRedir(const DisableFsRedir:Bool;const Filename:str;const Attrib:DWORD):BOOL; Func SetNTFSCompressionRedir(const DisableFsRedir:Bool;const FileOrDir:Str;Compress:Bool:Bool; SIRegister_TFileRedir(CL); SIRegister_TTextFileReaderRedir(CL); SIRegister_TTextFileWriterRedir(CL); end; Proc SIRegister_Int64Em(CL: TPSPascalCompiler); begin //TypeS('LongWord', 'Cardinal; TypeS('Int64', 'record Lo : LongWord; Hi : LongWord; end; Func Compare64( const N1, N2 : Int64) : Int; Proc Dec64( var X : Int64; N : LongWord); Proc Dec6464( var X : Int64; const N : Int64); Func Div64( var X : Int64; const Divisor : LongWord) : LongWord; Func Inc64( var X : Int64; N : LongWord) :Bool; Func Inc6464( var X : Int64; const N : Int64) :Bool; Func Int64ToStr( X : Int64) :Str; Func Mod64( const X : Int64; const Divisor : LongWord) : LongWord; Func Mul64( var X : Int64; N : LongWord) :Bool; Proc Multiply32x32to64( N1, N2 : LongWord; var X : Int64); Proc Shr64( var X : Int64; Count : LongWord); Func StrToInt64( const S :Str; var X : Int64) :Bool; end; Proc SIRegister_InstFunc(CL: TPSPascalCompiler); begin //TypeS('PSimpleStringListArray', '^TSimpleStringListArray // will not work; SIRegister_TSimpleStringList(CL); TypeS('TExecWait', '( ewNoWait, ewWaitUntilTerminated, ewWaitUntilIdle); TypeS('TDetermineDefaultLanguageResult','(ddNoMatch,ddMatch,ddMatchLangParameter ); TypeS('TMD5Digest', 'array[0..15] of Byte;; TypeS('TSHA1Digest', 'array[0..19] of Byte;; // TMD5Digest = array[0..15] of Byte; TSHA1Digest = array[0..19] of Byte; Func CheckForMutexes( Mutexes :Str) :Bool; Func CreateTempDir :Str; Func DecrementSharedCount(const RegView:TRegView;const Filename:str):Bool; Proc DelayDeleteFile( const DisableFsRedir :Bool; const Filename :Str; const MaxTries, FirstRetryDelayMS, SubsequentRetryDelayMS : Int); //Func DelTree( const DisableFsRedir:Bool;const Path Str;const IsDir,DeleteFiles,DeleteSubdirsAlso,BreakOnError:Bool;const DeleteDirProc:TDeleteDirProc;const DeleteFileProc: TDeleteFileProc;const Param:Pointer):Bool; //Func DetermineDefaultLanguage( const GetLanguageEntryProc:TGetLanguageEntryProc; const Method: TSetupLanguageDetectionMethod;const LangParameter:str;var ResultIndex:Int): TDetermineDefaultLanguageResult; //Proc EnumFileReplaceOperationsFilenames(const EnumFunc:TEnumFROFilenamesProc;Param:Pointer); Func GenerateNonRandomUniqueFilename(Path:Str; var Filename:Str):Bool; Func GenerateUniqueName(const DisableFsRedir:Bool;Path:Str;const Extension:str):str; Func GetComputerNameString :Str; Func GetFileDateTime(const DisableFsRedir:Bool;const Filename:Str;var DateTime:TFileTime):Bool; Func GetMD5OfFile(const DisableFsRedir:Boolean; const Filename :Str): TMD5Digest; Func GetMD5OfAnsistr( const S : Ansistr) : TMD5Digest; // Func GetMD5OfUnicodeString( const S : UnicodeString) : TMD5Digest; Func GetSHA1OfFile(const DisableFsRedir:Boolean;const Filename:str):TSHA1Digest; Func GetSHA1OfAnsistr( const S : Ansistr) : TSHA1Digest; // Func GetSHA1OfUnicodeString( const S : UnicodeString) : TSHA1Digest; Func GetRegRootKeyName( const RootKey : HKEY) :Str; Func GetSpaceOnDisk(const DisableFsRedir:Bool;const DriveRoot:str;var FreeBytes,TotBytes:Int64):Bool; Func GetSpaceOnNearestMountPoint(const DisableFsRedir:Bool;const StartDir:str;var FreeBytes,TotalBytes:Int64):Bool; Func GetUserNameString :Str; Proc IncrementSharedCount(const RegView:TRegView;const Filename:str;const AlreadyExisted:Bool; //Func InstExec( const DisableFsRedir :Bool; const Filename, Params :Str; WorkingDir :Str; const Wait:TExecWait;const ShowCmd:Int;const ProcessMessagesProc:TProcedure; var ResultCode:Int) :Bool; // Func InstShellExec( const Verb, Filename, Params :Str; WorkingDir :Str; const Wait:TExecWait;const ShowCmd:Int;const ProcessMessagesProc: TProcedure;var ResultCode:Int):Bool; Proc InternalError( const Id :Str); Proc InternalErrorFmt( const S :Str; const Args : array of const); Func IsDirEmpty( const DisableFsRedir :Bool; const Dir :Str) :Bool; Func IsProtectedSystemFile(const DisableFsRedir:Boolean;const Filename:str):Bool; Func MakePendingFileRenameOperationsChecksum : TMD5Digest; Func ModifyPifFile( const Filename :Str; const CloseOnExit :Bool) :Bool; Proc RaiseFunctionFailedError( const FunctionName :Str); Proc RaiseOleError( const FunctionName :Str; const ResultCode : HRESULT); Proc RefreshEnvironment; Func ReplaceSystemDirWithSysWow64( const Path :Str) :Str; Func ReplaceSystemDirWithSysNative( Path :Str; const IsWin64 :Bool) :Str; Proc UnregisterFont( const FontName, FontFilename :Str); Func RestartComputer :Bool; Proc RestartReplace( const DisableFsRedir :Bool; TempFile, DestFile :Str); Proc SplitNewParamStr( const Index : Int; var AName, AValue :Str); Proc Win32ErrorMsg( const FunctionName :Str); Proc Win32ErrorMsgEx( const FunctionName :Str; const ErrorCode : DWORD); Func inForceDirectories(const DisableFsRedir:Boolean;Dir:str):Bool; //from Func2 //Func inCreateShellLink(const Filename,Description,ShortcutTo,Parameters, WorkingDir:Str; IconFilename:Str;const IconIndex,ShowCmd:Int; const HotKey:Word; FolderShortcut:Bool;' //+'const AppUserModelID:Str;const ExcludeFromShowInNewInstall,PreventPinning:Bool):Str; Proc RegisterTypeLibrary( const Filename :Str); //Proc UnregisterTypeLibrary( const Filename :Str); //Func UnpinShellLink( const Filename :Str) :Bool;} Func getVersionInfoEx3: TOSVersionInfoEx;; Func GetVersionEx3(out verinfo: TOSVersionInfoEx):Bool;; Proc InitOle;; Func ExpandConst( const S :Str) :Str; Func ExpandConstEx( const S :Str; const CustomConsts : array of String) :Str; Func ExpandConstEx2(const S:Str;const CustConsts:array of Str;const DoExpandIndivdConst:Bool):Str; Func ExpandConstIfPrefixed( const S :Str) :Str; Proc LogWindowsVersion; Func EvalCheck( const Expression :Str) :Bool; end; Proc SIRegister_unitResourceDetails(CL: TPSPascalCompiler); begin ClassN(CL.FindClass('TOBJECT'),'TResourceDetails; //TypeS('TResourceDetailsClass', 'class of TResourceDetails; SIRegister_TResourceModule(CL); SIRegister_TResourceDetails(CL); SIRegister_TAnsiResourceDetails(CL); SIRegister_TUnicodeResourceDetails(CL); Proc RegisterResourceDetails( resourceClass : TResourceDetailsClass); Proc UnRegisterResourceDetails( resourceClass : TResourceDetailsClass); Func ResourceWideCharToStr( var wstr : PWideChar; codePage : Int) :Str; Proc ResourceStrToWideChar( const s :Str; var p : PWideChar; codePage : Int); Func ResourceNameToInt( const s :Str) : Int; Func CompareDetails( p1, p2 : TObject(Pointer)) : Int; end; Proc SIRegister_TSimpleComPort(CL: TPSPascalCompiler); begin //with RegClassS(CL,'TObject', 'TSimpleComPort') do with ClassN(CL.FindClass('TObject'),TSimpleComPort') do begin RegisterMethod(Constructor Create; RegisterMethod(Proc Free; RegisterMethod(Proc Open( PortNumber : Int; const Parameters:str); RegisterMethod(Proc WriteString( const S :Str); RegisterMethod(Proc ReadString( var S :Str); end; Ex.: SimpleComPort:= TSimpleComPort.Create; SimpleComPort.Open(1, 'baud=115200 parity=N data=8 stop=1; SimpleComPort.WriteString(AsciiChar); end; Proc SIRegister_Console(CL: TPSPascalCompiler); begin Attachconsole(-1) FreeConsole(); ConstantN('White','LongInt').SetInt( 15); } // ConstantN('Blink','LongInt').SetInt( 128); ('conBW40','LongInt').SetInt( 0); ('conCO40','LongInt').SetInt( 1); ('conBW80','LongInt').SetInt( 2); ('conCO80','LongInt').SetInt( 3); ('conMono','LongInt').SetInt( 7); ConstantN('conFont8x8','LongInt').SetInt( 256); //ConstantN('C40','').SetString( CO40); //ConstantN('C80','').SetString( CO80); Func conReadKey : Char; Func conKeyPressed :Bool; Proc conGotoXY( X, Y : Smallint); Func conWhereX : Int; Func conWhereY : Int; Proc conTextColor( Color : Byte);; Func conTextColor1 : Byte;; Proc conTextBackground( Color : Byte);; Func conTextBackground1 : Byte;; Proc conTextMode( Mode : Word); Proc conLowVideo; Proc conHighVideo; Proc conNormVideo; Proc conClrScr; Proc conClrEol; Proc conInsLine; Proc conDelLine; Proc conWindow( Left, Top, Right, Bottom : Int); Func conScreenWidth : Smallint; Func conScreenHeight : Smallint; Func conBufferWidth : Smallint; Func conBufferHeight : Smallint; Proc InitScreenMode;; end; function FillConsoleOutputCharacter( hConsoleOutput: Thandle; cCharacter: string; nLength: dword; dwWriteCoord: TCoord; out lpNumberOfCharsWritten: DWord): boolean; external 'FillConsoleOutputCharacterA@kernel32.dll stdcall'; function FillConsoleOutputAttribute( hConsoleOutput: Thandle; wAttribute: DWord; nLength: dword; dwWriteCoord: TCoord; out lpNumberOfAttrsWritten: DWord): boolean; external 'FillConsoleOutputAttribute@kernel32.dll stdcall'; function SetConsoleTextAttribute( hConsoleOutput: Thandle; wAttribute: DWord): boolean; external 'SetConsoleTextAttribute@kernel32.dll stdcall'; { lpConsoleScreenBufferInfo [out] A pointer to a CONSOLE_SCREEN_BUFFER_INFO structure that receives the console screen buffer information. } function GetConsoleScreenBufferInfo( hConsoleOutput: Thandle; PCONSOLE_SCREEN_BUFFER_INFO: TConsoleScreenBufferInfo): boolean; external 'GetConsoleScreenBufferInfo@kernel32.dll stdcall'; { BOOL WINAPI SetConsoleCursorPosition( _In_ HANDLE hConsoleOutput, _In_ COORD dwCursorPosition ); } function SetConsoleCursorPosition( hConsoleOutput: Thandle; dwCursorPosition: TCoord): boolean; external 'SetConsoleCursorPosition@kernel32.dll stdcall'; //*) (*----------------------------------------------------------------------------*) Proc SIRegister_testutils(CL: TPSPascalCompiler); begin SIRegister_TNoRefCountObject(CL); Proc FreeObjects( List : TFPList); Proc GetMethodList( AObject : TObject; AList : TStrings);; Proc GetMethodList1( AClass : TClass; AList : TStrings);; end; Proc SIRegister_ToolsUnit(CL: TPSPascalCompiler); begin 'MaxDataSet','LongInt').SetInt( 35); //TypeS('TDBConnectorClass', 'class of TDBConnector; SIRegister_TDBConnector(CL); SIRegister_TDBBasicsTestSetup(CL); SIRegister_TTestDataLink(CL); 'testValuesCount',LongInt).SetInt( 25); Proc InitialiseDBConnector; Proc FreeDBConnector; Func DateTimeToTimeString( d : tdatetime) :Str; Func TimeStringToDateTime( d :Str) : TDateTime; end; Proc SIRegister_fpcunit(CL: TPSPascalCompiler); begin SIRegister_EAssertionFailedError(CL); TypeS('TTestStep', '( stSetUp, stRunTest, stTearDown, stNothing ); TypeS('TRunMethod', 'Procedure; ClassN(CL.FindClass('TOBJECT'),'TTestResult; SIRegister_TTest(CL); SIRegister_TAssert(CL); SIRegister_TTestFailure(CL); SIRegister_ITestListener(CL); SIRegister_TTestCase(CL); //TypeS('TTestCaseClass', 'class of TTestCase; SIRegister_TTestSuite(CL); SIRegister_TTestResult(CL); Func ComparisonMsg( const aExpected:Str; const aActual :Str) :Str; end; Proc SIRegister_cTCPBuffer(CL: TPSPascalCompiler); begin TOBJECT'),'ETCPBuffer; TTCPBuffer', 'record Ptr : TObject; Size : Int; Max : Intege' +r; Head : Int; Used : Int; end; 'ETHERNET_MTU_100MBIT','LongInt').SetInt( 1500); 'ETHERNET_MTU_1GBIT','LongInt').SetInt( 9000); 'TCP_BUFFER_DEFAULTMAXSIZE','LongInt').SetInt( ETHERNET_MTU_1GBIT * 4); 'TCP_BUFFER_DEFAULTBUFSIZE','LongInt').SetInt( ETHERNET_MTU_100MBIT * 4); Proc TCPBufferInitialise(var TCPBuf:TTCPBuffer;const TCPBufMaxSiz:Int;const TCPBufSize:Int; Proc TCPBufferFinalise( var TCPBuf : TTCPBuffer); Proc TCPBufferPack( var TCPBuf : TTCPBuffer); Proc TCPBufferResize( var TCPBuf : TTCPBuffer; const TCPBufSize : Int); Proc TCPBufferExpand( var TCPBuf : TTCPBuffer; const Size : Int); Proc TCPBufferShrink( var TCPBuf : TTCPBuffer); Func TCPBufferAddPtr( var TCPBuf : TTCPBuffer; const Size : Int) : Pointer; Proc TCPBufferAddBuf(var TCPBuf: TTCPBuffer; const Buf:str; const Size : Int); Func TCPBufferPeekPtr( const TCPBuf : TTCPBuffer; var BufPtr : Pointer) : Int; Func TCPBufferPeek(var TCPBuf:TTCPBuffer;var Buf:Str; const Size:Int): Int; Func TCPBufferRemove(var TCPBuf:TTCPBuffer;var Buf:str;const Size:Int): Int; Proc TCPBufferClear( var TCPBuf : TTCPBuffer); Func TCPBufferDiscard( var TCPBuf : TTCPBuffer; const Size : Int) : Int; Func TCPBufferUsed( const TCPBuf : TTCPBuffer) : Int; Func TCPBufferEmpty( const TCPBuf : TTCPBuffer) :Bool; Func TCPBufferAvailable( const TCPBuf : TTCPBuffer) : Int; Func TCPBufferPtr( const TCPBuf : TTCPBuffer) : Pointer; Proc TCPBufferSetMaxSize( var TCPBuf : TTCPBuffer; const MaxSize : Int); end; Proc SIRegister_Glut(CL: TPSPascalCompiler); begin //TypeS('PInt', '^Int // will not work; //TypeS('PPChar', '^PChar // will not work; ConstantN('GLUT_API_VERSION','LongInt').SetInt( 3); ConstantN('GLUT_XLIB_IMPLEMENTATION','LongInt').SetInt( 12); ConstantN('GLUT_RGB','LongInt').SetInt( 0); ConstantN('GLUT_GAME_MODE_REFRESH_RATE','LongInt').SetInt( 5); ConstantN('GLUT_GAME_MODE_DISPLAY_CHANGED','LongInt').SetInt( 6); Proc LoadGlut( const dll :Str); Proc FreeGlut; end; Proc SIRegister_LEDBitmaps(CL: TPSPascalCompiler); begin TypeS('TLEDColor',( ledcGreen, ledcRed, ledcGray ); Func GetLEDBitmapHandle( Color : TLEDColor; State:Boolean): THandle; end; Proc SIRegister_SwitchLed(CL: TPSPascalCompiler); begin TLedColor, ( Aqua, Pink, Purple, Red, Yellow, Green, Blue, Orange, Black ); TTLedState, ( LedOn, LedOff, LedDisabled ); SIRegister_TSwitchLed(CL); //Proc Register; end; Proc SIRegister_FileClass(CL: TPSPascalCompiler); begin TypeS(TFileCreateDisposition', '( fdCreateAlways, fdCreateNew, fdOpenE' +'xisting, fdOpenAlways, fdTruncateExisting ); TypeS('TIFileAccess', '( faRead, faWrite, faReadWrite ); TypeS('TIFileSharing', '( fsNone, fsRead, fsWrite, fsReadWrite ); SIRegister_TCustomFile(CL); SIRegister_TIFile(CL); SIRegister_TMemoryFile(CL); SIRegister_TTextFileReader(CL); SIRegister_TTextFileWriter(CL); SIRegister_TFileMapping(CL); SIRegister_EFileError(CL); end; Proc SIRegister_FileUtilsClass(CL: TPSPascalCompiler); begin TypeS(TFileAttributes', '( ffaReadOnly, ffaHidden, ffaSysFile, ffaVolumeID' +, ffaDirectory, ffaArchive, ffaAnyFile ); TypeS('TAttributeSet', 'set of TFileAttributes; SIRegister_TFileSearch(CL); end; Proc SIRegister_uColorFunctions(CL: TPSPascalCompiler); begin TRGBType', 'record RedHex :Str; GreenHex :Str; BlueHex :' + string; Red : Int; Green : Int; Blue : Int; end; Func FadeColor( aColor : Longint; aFade : Int) : Tcolor; Func CountColor( aColor : Tcolor; CompareColor : Tcolor; AdjustVale:Int):Tcolor; end; Proc SIRegister_uSettings(CL: TPSPascalCompiler); begin Proc SaveOscSettings; Proc GetOscSettings; end; Proc SIRegister_cyDebug(CL: TPSPascalCompiler); begin TProcProcessEvent', 'Proc ( Sender : TObject; Index : Int); RecProcess', 'record Name : ShortString; DurationMs :Card; ' FirstDurationMs :Card; LastDurationMs :Card; MinDurationMs : Int' 64; MaxDurationMs :Card; MarksCount : Int; ArrayMarks : array of ' Cardinal; EnterCount : Int; ExitCount : Int; end; SIRegister_TcyDebug(CL); end; (*----------------------------------------------------------------------------*) Proc SIRegister_cyCopyFiles(CL: TPSPascalCompiler); begin TCopyFileResult,(cfCreate, cfOverwrite,cfNoNeed, cfForceDirectoryError, cfCopyError ); TCopyFileExists', '( feDoNothing, feCopy, feCopyIfModified, feCopyIfMoreRecent ); TCopyFileNotExists', '( fnDoNothing, fnCopy, fnCopyForceDir ); SIRegister_TDestinationOptions(CL); TProcCustomCopyFileEvent,Procedure(Sender:TObject;var CopyFileResult:TCopyFileResult); TProcOnCopyFileProgressEvent,Procedure(Sender:TObject;FileBytes,TransferedBytes:int64;PercentDone:Int64); TProcOnCustomSetFileDestination','Proc (Sender:TObject;var FileName:str); SIRegister_TcyCopyFiles(CL); Func cyCopyFile(FromFile,ToFile:Str; FileExists:TCopyFileExists;FileNotExists:TCopyFileNotExists; ResetAttr:boolean): TCopyFileResult; Func cyCopyFileEx(FromFile,ToFile:str;FileExists:TCopyFileExists;FileNotExists TCopyFileNotExists;ResetAttr:bool;aProgressBar:TProgressBar):TCopyFileResult; Func cyCopyFilesEx(SourcePath, DestinationPath, IncludeFilters,ExcludeFilters:Str;ArchiveFiles,ReadOnlyFiles,HiddenFiles,SystemFiles:TcyFileAttributeMode; FileExists:TCopyFileExists; FileNotExists:TCopyFileNotExists;SubFolders,ResetAttributes:Boolean):Int; end; Proc SIRegister_cySearchFiles(CL: TPSPascalCompiler); begin TypeS('TcyFileAttributeMode', '( faYes, faNo, faBoth ); SIRegister_TcyFileAttributes(CL); SIRegister_TSearchRecInstance(CL); TOption', '( soOnlyDirs, soIgnoreAttributes, soIgnoreMaskInclude, soIgnoreMaskExclude ); TOptions', 'set of TOption; TSearchState', '( ssIdle, ssPaused, ssSearch, ssPausing, ssResuming, ssAborting ); TProcOnValidateFileEvent Procedure(Sender:TObject;ValidMaskIncl,ValidMaskExcl,ValidAttribs:bool;var Accept:bool; TProcOnValidateDirectoryEvent,Procedure(Sender:TObject;Directry:str;var Accept:bool); SIRegister_TcyCustomSearchFiles(CL); SIRegister_TcySearchFiles(CL); Func FileNameRespondToMask( aFileName :Str; aMask :Str) :Bool; Func IscyFolder( aSRec : TSearchrec) :Bool; end; Proc SIRegister_jcontrolutils(CL: TPSPascalCompiler); begin Func jCountChar( const s :Str; ch : char) : Int; Proc jSplit( const Delimiter : char; Input :Str; Strings : TStrings); Func jNormalizeDate(const Value:str;theValue: TDateTime;const theFormat:str):str; Func jNormalizeTime(const Value:str;theValue:TTime;const theFormat:str) :Str; Func jNormalizeDateTime(const Val:str;theValue:TDateTime;const theFormat:str):str; Func jNormalizeDateSeparator( const s :Str) :Str; Func jIsValidDateString( const Value :Str) :Bool; Func jIsValidTimeString( const Value :Str) :Bool; Func jIsValidDateTimeString( const Value :Str) :Bool; end; Proc SIRegister_kcMapViewer(CL: TPSPascalCompiler); begin ClassN(CL.FindClass('TOBJECT'),'TMapViewer; TypeS('TMapSource', ( msNone, msGoogleNormal, msGoogleSatellite, msGoo' +gleHybrid, msGooglePhysical, msGooglePhysicalHybrid, msOpenStreetMapMapnik' +, msOpenStreetMapOsmarender, msOpenCycleMap, msVirtualEarthBing, msVirtual' +EarthRoad, msVirtualEarthAerial, msVirtualEarthHybrid, msYahooNormal, msYa' +hooSatellite, msYahooHybrid,msOviNormal,msOviSatellite, msOviHybrid, msOviPhysical ); TArea', 'record top : Int64; left : Int64; bottom : Int64; right: Int64; end; TRealArea', 'record top: Extended; left:Extended; bottom: Extended; right: Extended; end; TIntPoint', 'record X : Int64; Y : Int64; end; TkcRealPoint', 'record X : Extended; Y : Extended; end; TOnBeforeDownloadEvent','Procedure(Url:Str; str:TStream; var CanHandle:Bool); TOnAfterDownloadEvent', 'Procedure( Url :Str; str : TStream); SIRegister_TCustomDownloadEngine(CL); SIRegister_TCustomGeolocationEngine(CL); SIRegister_TMapViewer(CL); end; Proc SIRegister_cparserutils(CL: TPSPascalCompiler); begin (*Func isFunc( name : TNamePart) :Bool;*) Func isUnnamedFunc( name : TNamepart) :Bool; Func isPtrToFunc( name : TNamePart) :Bool; Func isFuncRetFuncPtr( name : TNamePart) :Bool; Func isPtrToFuncRetFuncPtr( name : TNamePart) :Bool; Func GetFuncParam( name : TNamePart) : TNamePart; Func isArray( name : TNamePart) :Bool; Func GetArrayPart( name : TNamePart) : TNamePart; Func GetIdFromPart( name : TNamePart) : Ansistr; Func GetIdPart( name : TNamePart) : TNamePart; Func isNamePartPtrToFunc( part : TNamePart) :Bool; Func isAnyBlock( part : TNamePart) :Bool;*) TypeS('TLineInfo', record linestart : Int; lineend : Int; end; SIRegister_TLineBreaker(CL); TypeS('TNameKind', 'Int; ClassN(CL.FindClass('TOBJECT'),'TNamePart; //TypeS('TFuncParam', 'record prmtype : TEntity; name : TNamePart; end; Func SphericalMod( X : Extended) : Extended; Func cSign( Value : Extended) : Extended; Func LimitFloat( const eValue, eMin, eMax : Extended) : Extended; Func AngleToRadians( iAngle : Extended) : Extended; Func RadiansToAngle( eRad : Extended) : Extended; Func Cross180( iLong : Double) :Bool; Func Mod180( Value : Int) : Int; Func Mod180Float( Value : Extended) : Extended; Func MulDivFloat( a, b, d : Extended) : Extended; Func LongDiff( iLong1, iLong2 : Double) : Double; Proc Bmp_AssignFromPersistent( Source : TPersistent; Bmp : TbitMap); Func Bmp_CreateFromPersistent( Source : TPersistent) : TbitMap; Func FixFilePath( const Inpath, CheckPath :Str) :Str; Func UnFixFilePath( const Inpath, CheckPath :Str) :Str; Proc FillStringList( sl : TStringList; const aText :Str); end; Proc SIRegister_LedNumber(CL: TPSPascalCompiler); begin TLedSegmentSize', 'Int; TLedNumberBorderStyle', '( lnbNone, lnbSingle, lnbSunken, lnbRaised ); SIRegister_TCustomLEDNumber(CL); SIRegister_TLEDNumber(CL); end; Proc SIRegister_StStrL(CL: TPSPascalCompiler); begin TypeS('LStrRec',record AllocSize:Longint;RefCount : Longint; Length : Longint; end; TypeS(AnsiChar', 'Char; TypeS('BTable', array[0..255] of Byte; //!!! Func HexBL( B : Byte) : Ansistr; Func HexWL( W : Word) : Ansistr; Func HexLL( L : LongInt) : Ansistr; Func HexPtrL( P : ___Pointer) : Ansistr; Func BinaryBL( B : Byte) : Ansistr; Func BinaryWL( W : Word) : Ansistr; Func BinaryLL( L : LongInt) : Ansistr; Func OctalBL( B : Byte) : Ansistr; Func OctalWL( W : Word) : Ansistr; Func OctalLL( L : LongInt) : Ansistr; Func Str2Int16L( const S : Ansistr; var I : SmallInt) :Bool; Func Str2WordL( const S : Ansistr; var I : Word) :Bool; Func Str2LongL( const S : Ansistr; var I : LongInt) :Bool; Func Str2RealL( const S : Ansistr; var R : Double) :Bool; Func Str2RealL( const S : Ansistr; var R : Real) :Bool; Func Str2ExtL( const S : Ansistr; var R : Extended) :Bool; Func Long2StrL( L : LongInt) : Ansistr; Func Real2StrL( R : Double; Width : Byte; Places : ShortInt) : Ansistr; Func Ext2StrL( R : Extended; Width : Byte; Places : ShortInt) : Ansistr; Func ValPrepL( const S : Ansistr) : Ansistr; Func CharStrL( C : Char; Len :Card) : Ansistr; Func PadChL( const S : Ansistr; C : AnsiChar; Len :Card) : Ansistr; Func PadLL( const S : Ansistr; Len :Card) : Ansistr; Func LeftPadChL( const S : Ansistr; C : AnsiChar; Len :Card) : Ansistr; Func LeftPadL( const S : Ansistr; Len :Card) : Ansistr; Func TrimLeadL( const S : Ansistr) : Ansistr; Func TrimTrailL( const S : Ansistr) : Ansistr; Func TrimL( const S : Ansistr) : Ansistr; Func TrimSpacesL( const S : Ansistr) : Ansistr; Func CenterChL( const S : Ansistr; C : AnsiChar; Len :Card) : Ansistr; Func CenterL( const S : Ansistr; Len :Card) : Ansistr; Func EntabL( const S : Ansistr; TabSize : Byte) : Ansistr; Func DetabL( const S : Ansistr; TabSize : Byte) : Ansistr; Func ScrambleL( const S, Key : Ansistr) : Ansistr; Func SubstituteL( const S, FromStr, ToStr : Ansistr) : Ansistr; Func FilterL( const S, Filters : Ansistr) : Ansistr; Func CharExistsL( const S : Ansistr; C : AnsiChar) :Bool; Func CharCountL( const S : Ansistr; C : AnsiChar) :Card; Func WordCountL( const S, WordDelims : Ansistr) :Card; Func WordPositionL(N:Card;const S,WordDelims:Ansistr;var Pos:Card):Bool; Func ExtractWordL( N :Card; const S, WordDelims : Ansistr) : Ansistr; Func AsciiCountL( const S, WordDelims : Ansistr; Quote : AnsiChar) :Card; Func AsciiPositionL(N:Card;const S,WordDelims:AnsiStr;Quote:AnsiChr;var Pos:Card):Bool; Func ExtractAsciiL(N:Card;const S,WordDelims:Ansistr;Quote:AnsiChar):Ansistr; Proc WordWrapL(const InSt:Ansistr;var OutSt,Overlap:Ansistr;Margin:Card;PadToMargin:Bool; Proc WordWrap(const InSt:AnsiStr;var OutSt,Overlap:AnsiStr;Margin:Card;PadToMargin:Bool; Func CompStringL( const S1, S2 : Ansistr) : Int; Func CompUCStringL( const S1, S2 : Ansistr) : Int; Func SoundexL( const S : Ansistr) : Ansistr; Func MakeLetterSetL( const S : Ansistr) : Longint; Proc BMMakeTableL( const MatchString : Ansistr; var BT : BTable); Func BMSearchL(var Buffer,BufLength:Card;var BT:BTable;const MatchString:Ansistr;var Pos:Card):Bool; Func BMSearchUCL( var Buffer, BufLength :Card; var BT: BTable; const MatchString: Ansistr; var Pos:Card) :Bool; Func DefaultExtensionL( const Name, Ext : Ansistr) : Ansistr; Func ForceExtensionL( const Name, Ext : Ansistr) : Ansistr; Func JustFilenameL( const PathName : Ansistr) : Ansistr; Func JustNameL( const PathName : Ansistr) : Ansistr; Func JustExtensionL( const Name : Ansistr) : Ansistr; Func JustPathnameL( const PathName : Ansistr) : Ansistr; Func AddBackSlashL( const DirName : Ansistr) : Ansistr; Func CleanPathNameL( const PathName : Ansistr) : Ansistr; Func HasExtensionL( const Name : Ansistr; var DotPos :Card) :Bool; Func CommaizeL( L : LongInt) : Ansistr; Func CommaizeChL( L : Longint; Ch : AnsiChar) : Ansistr; Func FloatFormL(const Mask:Ansistr;R:TstFloat;const LtCurr,RtCurr:Ansistr;Sep,DecPt:Char):Ansistr; Func LongIntFormL(const Mask:Ansistr;L:LongInt;const LtCurr,RtCurr:AnsiStr;Sep:Char):Ansistr); Func StrChPosL( const P : Ansistr; C : AnsiChar; var Pos :Card) :Bool; Func StrStPosL( const P, S : Ansistr; var Pos :Card) :Bool; Func StrStCopyL( const S : Ansistr; Pos, Count :Card) : Ansistr; Func StrChInsertL( const S : Ansistr; C : AnsiChar; Pos :Card) : Ansistr; Func StrStInsertL( const S1, S2 : Ansistr; Pos :Card) : Ansistr; Func StrChDeleteL( const S : Ansistr; Pos :Card) : Ansistr; Func StrStDeleteL( const S : Ansistr; Pos, Count :Card) : Ansistr; Func ContainsOnlyL( const S, Chars : Ansistr; var BadPos :Card) :Bool; Func ContainsOtherThanL(const S,Chars: Ansistr; var BadPos :Card):Bool; Func CopyLeftL( const S : Ansistr; Len :Card) : Ansistr; Func CopyMidL( const S : Ansistr; First, Len :Card) : Ansistr; Func CopyRightL( const S : Ansistr; First :Card) : Ansistr; Func CopyRightAbsL( const S : Ansistr; NumChars :Card) : Ansistr; Func CopyFromNthWordL(const S,WordDelims:AString;const AWord:AString;N:Card;var SubString:AString):Bool; Func CopyFromToWordL(const S,WordDelims,Word1,Word2:Ansistr;N1,N2:Card;var SubString:Ansistr):Bool; Func CopyWithinL( const S, Delimiter : Ansistr; Strip :Bool) : Ansistr; Func DeleteFromNthWordL(const S, WordDelims:Ansistr;const AWord: Ansistr; N:Card; var SubString: Ansistr): Bool; Func DeleteFromToWordL(const S,WordDelims,Word1,Word2:Ansistr;N1,N2:Card;var SubString:Ansistr):Bool; Func DeleteWithinL( const S, Delimiter : Ansistr) : Ansistr; Func ExtractTokensL(const S,Delims:AnsiStr;QuoteChar:AnsiChar;AllowNulls:Bool;Tokens:TStrings):Card; Func IsChAlphaL( C : AnsiChar) :Bool; Func IsChNumericL( C : AnsiChar; const Numbers : Ansistr) :Bool; Func IsChAlphaNumericL( C : AnsiChar; const Numbers : Ansistr) :Bool; Func IsStrAlphaL( const S : Ansistr) :Bool; Func IsStrNumericL( const S, Numbers : Ansistr) :Bool; Func IsStrAlphaNumericL( const S, Numbers : Ansistr) :Bool; Func KeepCharsL( const S, Chars : Ansistr) : Ansistr; Func LastWordL(const S,WordDelims, AWord:Ansistr; var Position:Card):Bool; Func LastWordAbsL( const S, WordDelims:Ansistr;var Position:Card):Bool; Func LastStringL( const S, AString : Ansistr; var Position :Card):Bool; Func LeftTrimCharsL( const S, Chars : Ansistr) : Ansistr; Func ReplaceWordL(const S,WordDelims,OldWord,NewWord:Ansistr;N:Card;var Replacements:Card):Ansistr; Func ReplaceWordAllL(const S,WordDelims,OldWord,NewWord:Ansistr;var Replacements:Card):Ansistr; Func ReplaceStringL(const S,OldString,NewString:Ansistr;N:Card;var Replacements:Card):Ansistr; Func ReplaceStringAllL(const S,OldString,NewString:Ansistr; var Replacements:Card):Ansistr; Func RepeatStringL(const RepeatString:Ansistr;var Repetitions:Card;MaxLen:Card):Ansistr; Func RightTrimCharsL( const S, Chars : Ansistr) : Ansistr; Func StrWithinL(const S,SearchStr:str;Start:Card;var Position:Card): bool; Func TrimCharsL( const S, Chars : Ansistr) : Ansistr; Func WordPosL(const S,WordDelims,AWord:Ansistr;N:Card;var Position:Card):Bool; Func WordPos(const S,WordDelims,AWord:Ansistr;N:Card;var Position:Card):Bool; end; Proc SIRegister_pwnative_out(CL: TPSPascalCompiler); begin ConstantN('STDIN','LongInt').SetInt( 0); ('STDOUT','LongInt').SetInt( 1); ('STDERR','LongInt').SetInt( 2); Proc NativeWrite( s : astr);; Proc NativeWrite1( PString : PChar);; Proc NativeWrite2( Buffer : PChar; NumChars :Card);; Proc NativeWriteLn( s : astr);; Proc NativeWriteLn1;; end; Proc SIRegister_synwrap1(CL: TPSPascalCompiler); begin TypeS(TSynwInfo', 'record Err : byte; UrlHtml : Ansistr; ErrResponse : Int; UltimateURL : Ansistr; Headers : Ansistr; end; TypeS('TUrlInfo', 'record Err : byte; UltimateURL :Str; end; Func GetHttpFile(const Url,UserAgent,Outfile:str; verbose :Bool):TSynwInfo; Func GetHttpFile1( const Url, UserAgent, Outfile :Str) : TSynwInfo; Func GetHttpFile2( const Url, Outfile :Str) : TSynwInfo;; Func GetHttpFile3( const Url, outfile :Str; verbose :Bool) : TSynwInfo; Func GetHtm( const Url :Str) :Str;; Func GetHtm1( const Url, UserAgent :Str) :Str;; Func GetUrl( const Url :Str; verbose :Bool) : TSynwInfo;; Func GetUrl1( const Url, useragent :Str) : TSynwInfo;; Func GetUrl2( const Url :Str) : TSynwInfo;; Func GetUrl3(const Url:str;const http THTTPSend; verbose :Bool): TUrlInfo; Func GetUrl4( const Url :Str; const http : THTTPSend) : TUrlInfo;; Proc StrToStream( s :Str; strm : TMemoryStream); Func StrLoadStream( strm : TStream) :Str; end; Proc SIRegister_HTMLUtil(CL: TPSPascalCompiler); begin Func GetVal( const tag, attribname_ci :Str) :Str; Func GetTagName( const Tag :Str) :Str; Func GetUpTagName( const tag :Str) :Str; Func GetNameValPair( const tag, attribname_ci :Str) :Str; Func GetValFromNameVal( const namevalpair :Str) :Str; Func GetNameValPair_cs( const tag, attribname :Str) :Str; Func GetVal_JAMES( const tag, attribname_ci :Str) :Str; Func GetNameValPair_JAMES( const tag, attribname_ci :Str) :Str; Func CopyBuffer( StartIndex : PChar; Len : Int) :Str; Func Ucase( s :Str) :Str; end; Proc SIRegister_pwmain(CL: TPSPascalCompiler); begin ConstantN('FUTURE_COOKIE','String').SetString( 'Mon, 01 Dec 2099 12:00:00 GMT; EXPIRED_COOKIE','String').SetString( 'Mon, 01 Jan 2001 12:00:00 GMT; 'SECURE_OFF','LongInt').SetInt( 0); 'SECURE_ON','LongInt').SetInt( 2); 'SECURE_FILTER','LongInt').SetInt( 3); THandle or DWord! // astr = Ansistr; TypeS('pastr', 'Ansistr; TypeS('TFilterFunc', 'function(const s: pastr): pastr;; uses pwinit at begin //type TFilterFunc = function(const s: astr): astr; Demo: ..\maxbox3\examples2\519_powtils.txt //ConstantN('CASE_SENSITIVE','Boolean')BoolToStr( false); //ConstantN('CASE_IGNORE','Boolean')BoolToStr( false); Proc pwInit; Proc OffReadln; Func Lcase( const s : pastr) : pastr; Func Ucase( const s : pastr) : pastr; Func CountPostVars : longword; Func GetPostVar( const name : pastr) : pastr;; Func GetPostVar1( const name : pastr; filter : TFilterFunc) : pastr;; Func GetPostVar_S( const name : pastr; Security : Int) : pastr; Func GetPostVar_SF( const name : pastr; Security : Int) : pastr; Func GetPostVarAsFloat( const name : pastr) : double; Func GetPostVarAsInt( const name : pastr) : longint; Func GetPostVar_SafeHTML( const name : pastr) : pastr; Func FetchPostVarName( idx : longword) : pastr; Func FetchPostVarVal( idx : longword) : pastr;; Func FetchPostVarVal1( idx : longword; filter : TFilterFunc) : pastr;; Func FetchPostVarName_S( idx : longword; Security : Int) : pastr; Func FetchPostVarVal_S( idx : longword; Security : Int) : pastr; Func IsPostVar( const name : pastr) :Bool; Func CountAny : longword; Func GetAny( const name : pastr) : pastr;; Func GetAny1( const name : pastr; filter : TFilterFunc) : pastr;; Func GetAny_S( const name : pastr; Security : Int) : pastr; Func GetAnyAsFloat( const name : pastr) : double; Func GetAnyAsInt( const name : pastr) : longint; Func IsAny( const name : pastr) : byte; Func CountCookies : longword; Func FetchCookieName( idx : longword) : pastr; Func FetchCookieVal( idx : longword) : pastr;; Func FetchCookieVal1( idx : longword; filter : TFilterFunc) : pastr;; Func GetCookie( const name : pastr) : pastr;; Func GetCookie1( const name : pastr; filter : TFilterFunc) : pastr;; Func GetCookieAsFloat( const name : pastr) : double; Func GetCookieAsInt( const name : pastr) : longint; Func IsCookie( const name : pastr) :Bool; Func SetCookie( const name, value : pastr) :Bool; Func SetCookieAsFloat( const name : pastr; value : double) :Bool; Func SetCookieAsInt( const name : pastr; value : longint) :Bool; Func SetCookieEx( const name, value, path, domain, expiry : pastr) :Bool; Func SetCookieAsFloatEx(const name:pastr;value:double;const path,domai,expiry:pastr):bool; Func SetCookieAsIntEx(const name:pastr;value:longint;const path,domain,expiry:pastr):bool; Func UnsetCookie( const name : pastr) :Bool; Func UnsetCookieEx( const name, path, domain : pastr) :Bool; Func FilterHtml( const input : pastr) : pastr; Func FilterHtml_S( const input : pastr; security : Int) : pastr; Func TrimBadChars( const input : pastr) : pastr; Func TrimBadFile( const input : pastr) : pastr; Func TrimBadDir( const input : pastr) : pastr; Func TrimBad_S( const input : pastr; security : Int) : pastr; Func CountHeaders : longword; Func FetchHeaderName( idx : longword) : pastr; Func FetchHeaderVal( idx : longword) : pastr; Func GetHeader( const name : pastr) : pastr; Func IsHeader( const name : pastr) :Bool; Func SetHeader( const name, value : pastr) :Bool; Func UnsetHeader( const name : pastr) :Bool; Func PutHeader( const header : pastr) :Bool; Proc Out1( const s : pastr); Proc OutLn( const s : pastr); Proc OutA( args : array of const); Proc OutF( const s : pastr); Proc OutLnF( const s : pastr); Proc OutFF( const s : pastr); Proc OutF_FI( const s : pastr; HTMLFilter :Bool); Proc OutLnFF( const s : pastr); Proc OutLnF_FI( const s : pastr; HTMLFilter :Bool); Func FileOut( const fname : pastr) : word; Func ResourceOut( const fname : pastr) : word; Proc BufferOut( const buff, len : LongWord); Func TemplateOut( const fname : pastr; HtmlFilter :Bool) : word;; Func TemplateOut1( const fname : pastr) : word;; Func TemplateOut2( const fname : pastr; filter : TFilterFunc) : word;; Func TemplateOut3( const fname : pastr; HtmlFilter :Bool) : word;; Func TemplateRaw( const fname : pastr) : word; Func Fmt( const s : pastr) : pastr;; Func Fmt1( const s : pastr; filter : TFilterFunc) : pastr;; Func FmtFilter( const s : pastr) : pastr; Func Fmt_SF(const s:pastr;HTMLFilter:bool;filter:TFilterFunc;FilterSecur,TrimSecurity:int):pastr; Func Fmt_SF1(const s:pastr;HTMLFilter:bool;FilterSecurity,TrimSecurity:Int):pastr;; Func CountRtiVars : longword; Func FetchRtiName( idx : longword) : pastr; Func FetchRtiVal( idx : longword) : pastr; Func GetRti( const name : pastr) : pastr; Func GetRtiAsFloat( const name : pastr) : double; Func GetRtiAsInt( const name : pastr) : longint; Func IsRti( const name : pastr) :Bool; Proc SetRTI( const name, value : pastr); Func FetchUpfileName( idx : longword) : pastr; Func GetUpfileName( const name : pastr) : pastr; Func GetUpfileSize( const name : pastr) : longint; Func GetUpfileType( const name : pastr) : pastr; Func CountUpfiles : longword; Func IsUpfile( const name : pastr) :Bool; Func SaveUpfile( const name, fname : pastr) :Bool; Func CountVars : longword; Func FetchVarName( idx : longword) : pastr; Func FetchVarVal( idx : longword) : pastr;; Func FetchVarVal1( idx : longword; filter : TFilterFunc) : pastr;; Func GetVar( const name : pastr) : pastr;; Func GetVar1( const name : pastr; filter : TFilterFunc) : pastr;; Func GetVar_S( const name : pastr; security : Int) : pastr; Func GetVarAsFloat( const name : pastr) : double; Func GetVarAsInt( const name : pastr) : longint; Proc SetVar( const name, value : pastr); Proc SetVarAsFloat( const name : pastr; value : double); Proc SetVarAsInt( const name : pastr; value : longint); Func IsVar( const name : pastr) : byte; Proc UnsetVar( const name : pastr); Func LineEndToBR( const s : pastr) : pastr; Func RandomStr( len : longint) : pastr; Func XorCrypt( const s : pastr; key : byte) : pastr; Func CountCfgVars : longword; Func FetchCfgVarName( idx : longword) : pastr; Func FetchCfgVarVal( idx : longword) : pastr; Func IsCfgVar( const name : pastr) :Bool; Func SetCfgVar( const name, value : pastr) :Bool; Func GetCfgVar( const name : pastr) : pastr; Proc ThrowErr( const s : pastr); Proc ThrowWarn( const s : pastr); Proc ErrWithHeader( const s : pastr); TypeS(TWebVar', 'record name : pastr; value : pastr; end; TypeS(TWebVars', 'array of TWebVar; Func iUpdateWebVar(var webv:TWebVars; const name,value:pastr; upcased:boolean):boolean; Func iAddWebCfgVar( const name, value : pastr) :Bool; Proc iAddWebVar( var webv : TWebVars; const name, value : pastr); Proc iSetRTI( const name, value : pastr); Func iCustomSessUnitSet :Bool; Func iCustomCfgUnitSet :Bool; end; Proc SIRegister_W32VersionInfo(CL: TPSPascalCompiler); begin SIRegister_TProjectVersionInfo(CL); Func MSLanguageToHex( const s :Str) :Str; Func MSHexToLanguage( const s :Str) :Str; Func MSCharacterSetToHex( const s :Str) :Str; Func MSHexToCharacterSet( const s :Str) :Str; Func MSLanguages : TStringList; Func MSHexLanguages : TStringList; Func MSCharacterSets : TStringList; Func MSHexCharacterSets : TStringList; end; Proc SIRegister_IpUtils(CL: TPSPascalCompiler); begin TIpHandle', 'Cardinal; TIpMD5StateArray', 'array[0..3] of DWORD;; TypeS('TIpMD5CountArray', 'array[0..1] of DWORD;; TIpMD5ByteBuf', 'array[0..63] of Byte;; TIpMD5LongBuf', 'array[0..15] of DWORD;; TIpMD5Digest', 'array[0..15] of Byte;; TIpLineTerminator', '( ltNone, ltCR, ltLF, ltCRLF, ltOther ); TIpMD5Context', 'record State : TIpMD5StateArray; Count : TIpMD5' +'CountArray; ByteBuf : TIpMD5ByteBuf; end; ClassN(CL.FindClass('TOBJECT'),'EIpBaseException; ClassN(CL.FindClass('TOBJECT'),'EIpAccessException; ClassN(CL.FindClass('TOBJECT'),'EIpHtmlException; SIRegister_TIpBaseAccess(CL); SIRegister_TIpBasePersistent(CL); //TIpComponentClass', 'class of TIpBaseComponent; SIRegister_TIpBaseComponent(CL); SIRegister_TIpBaseWinControl(CL); Func InClassA( Addr : LongInt) :Bool; Func InClassB( Addr : LongInt) :Bool; Func InClassC( Addr : LongInt) :Bool; Func InClassD( Addr : LongInt) :Bool; Func InMulticast( Addr : LongInt) :Bool; Func IpCharCount( const Buffer, BufSize : DWORD; C : AnsiChar) : DWORD; Func IpCompStruct( const S1, S2, Size :Card) : Int; Func IpMaxInt( A, B : Int) : Int; Func IpMinInt( A, B : Int) : Int; Proc IpSafeFree( var Obj: TObject); Func IpShortVersion :Str; Func IpInternetSumPrim( var Data, DataSize, CurCrc : DWORD) : DWORD; Func IpInternetSumOfStream( Stream : TStream; CurCrc : DWORD) : DWORD; Func IpInternetSumOfFile( const FileName :Str) : DWORD; Func MD5SumOfFile( const FileName :Str) :Str; Func MD5SumOfStream( Stream : TStream) :Str; Func MD5SumOfStreamDigest( Stream : TStream) : TIpMD5Digest; Func MD5SumOfString( const S :Str) :Str; Func MD5SumOfStringDigest( const S :Str) : TIpMD5Digest; Func SafeYield : LongInt; Func AllTrimSpaces( Strng :Str) :Str; Func IpCharPos( C : AnsiChar; const S :Str) : Int; Func CharPosIdx( C : AnsiChar; const S :Str; Idx : Int) : Int; Func NthCharPos( C : AnsiChar; const S :Str; Nth : Int) : Int; Func RCharPos( C : AnsiChar; const S :Str) : Int; Func RCharPosIdx( C : AnsiChar; const S :Str; Idx : Int) : Int; Func RNthCharPos( C : AnsiChar; const S :Str; Nth : Int) : Int; Func IpRPos( const Substr :Str; const S :Str) : Int; Func IpPosIdx( const SubStr, S :Str; Idx : Int) : Int; ACharSet', 'set of AnsiChar; TIpAddrRec', 'record Scheme:str; UserName :Str; Password string; Authority :Str; Port:str;Path:str; Fragment:Str; Query :Str; QueryDelim : AnsiChar; end; Proc Initialize( var AddrRec : TIpAddrRec); Proc Finalize( var AddrRec : TIpAddrRec); Func ExtractEntityName( const NamePath :Str) :Str; Func ExtractEntityPath( const NamePath :Str) :Str; Func IpParseURL( const URL :Str; var Rslt : TIpAddrRec) :Bool; Func BuildURL( const OldURL, NewURL :Str) :Str; Func PutEscapes( const S :Str; EscapeSet : ACharSet) :Str; Func RemoveEscapes( const S :Str; EscapeSet : ACharSet) :Str; Proc SplitParams( const Parms :Str; Dest : TStrings); Func NetToDOSPath( const PathStr :Str) :Str; Func DOSToNetPath( const PathStr :Str) :Str; Proc SplitHttpResponse( const S :Str; var V, MsgID, Msg :Str); Proc FieldFix( Fields : TStrings); Func AppendSlash( APath :Str) :Str; Func RemoveSlash( APath :Str) :Str; Func GetParentPath( const Path :Str) :Str; Func GetLocalContent( const TheFileName :Str) :Str; Func IPDirExists( Dir :Str) :Bool; Func GetTemporaryFile( const Path :Str) :Str; Func GetTemporaryPath :Str; Func AppendBackSlash( APath :Str) :Str; Func IpRemoveBackSlash( APath :Str) :Str; Func INetDateStrToDateTime( const DateStr :Str) : TDateTime; Func DateTimeToINetDateTimeStr( DateTime : TDateTime) :Str; Func IpTimeZoneBias : Int; Proc SplitCookieFields( const Data :Str; Fields : TStrings); end; Proc SIRegister_LrtPoTools(CL: TPSPascalCompiler); begin TypeS('TPOStyle', '( postStandard, postPropName, postFull ); Proc Lrt2Po( const LRTFile :Str; POStyle : TPOStyle); Proc CombinePoFiles( SL : TStrings; const FName :Str); end; Proc SIRegister_GPS(CL: TPSPascalCompiler); begin ConstantN('MAX_SATS','LongInt').SetInt( 12); GPSMSG_START','String').SetString( '$; GPSMSG_STOP','String').SetString( '*; SEC_BETWEEN_SEG','LongInt').SetInt( 5); TypeS('TSatellite', 'record Identification : Shortint; Elevation : Shor' +'tint; Azimut : Smallint; SignLevel : Smallint; end; TypeS('TSatellites', 'array[1..12] of TSatellite; //TSatellites = array[1..MAX_SATS] of TSatellite; TGPSSatEvent,Procedure(Sender: TObject; NbSat, NbSatUse: Shortint; Sats: TSatellites); TGPSDatas', 'record Latitude : Double; Longitude : Double; Heigh' tAboveSea : Double; Speed : Double; UTCTime : TDateTime; Valid :Bool; ' NbrSats : Shortint; NbrSatsUsed : Shortint; Course : Double; end; TypeS('TGPSDatasEvent', Proc ( Sender : TObject; GPSDatas : TGPSDatas); TypeS('TMsgGP',( msgGP,msgGPGGA,msgGPGLL,msgGPGSV, msgGPRMA, msgGPRMC, msgGPZDA ); TypeS('TSpeedUnit',( suKilometre, suMile, suNauticalMile ); SIRegister_TGPSLink(CL); SIRegister_TCustomGPS(CL); SIRegister_TGPS(CL); SIRegister_TGPStoGPX(CL); SIRegister_TGPSSpeed(CL); SIRegister_TGPSSatellitesPosition(CL); SIRegister_TGPSSatellitesReception(CL); SIRegister_TGPSCompass(CL); //Proc Register( ); Func IndexMsgGP( StrMsgGP :Str) : TMsgGP; Func StrCoordToAngle( Point : Char; Angle :Str) : Double; Func StrTimeToTime( const Time :Str) : TDateTime; Func StrToInt( const Str :Str) : Int; Func StrToReal( const Str :Str) : Extended; Func GPSRotatePoint( Angle : Double; Ct, Pt : TPoint) : TPoint; Proc LoadRessource( RessourceName :Str; ImageList : TImageList); end; Proc SIRegister_NMEA(CL: TPSPascalCompiler); begin NMEADataArray', 'array of string; Proc TrimNMEA( var S :Str); Proc ExpandNMEA( var S :Str); Func ParseNMEA( S :Str) : NMEADataArray; Func ChkValidNMEA( S :Str) :Bool; Func IdNMEA( S :Str) :Str; Func ChkSumNMEA( const S :Str) :Str; Func PosInDeg( const PosStr :Str) : Double; Func DateTimeNMEA( const StrD, StrT :Str) : TDateTime; Func SysClockSet( const StrD, StrT :Str) :Bool; Func Ticks2Secs(Ticks : LongInt) : LongInt;; Func Secs2Ticks(Secs : LongInt) : LongInt;; Func MSecs2Ticks(MSecs : LongInt) : LongInt;; end; Proc SIRegister_SortUtils(CL: TPSPascalCompiler); begin TypeS('SortType1', 'Byte; TypeS('SortType2', 'Double; TypeS('SortType3', 'DWord; //TypeS('PDWordArray', '^DWordArray // will not work; TypeS('TDataRecord4', 'record Value : Int; Data : Int; end; Function('Proc QuickSort( var List : array of SortType1; Min, Max : Int); Proc QuickSortDWord( var List : array of SortType3; Min, Max : Int); Proc QuickSortDataRecord4( var List : array of TDataRecord4; Count : Int); Proc HeapSort( var List : array of SortType1; Count : DWord; FirstNeeded : DWord); Func QuickSelect(var List: array of SortType1; Min, Max, Wanted : Int) : SortType1; Func QuickSelectDouble( var List : array of SortType2; Min, Max, Wanted : Int) : SortType2; Func QuickSelectDWord( var List : array of SortType3; Min,Max,Wanted: Int):SortType3; end; Proc SIRegister_BitmapConversion(CL: TPSPascalCompiler); begin // TMatrix3x3 = array[1..3,1..3] of Double; // TMatrix4x4 = array[1..4,1..4] of Double; TypeS('TMatrix3x31', 'array[1..3] of Double; TypeS('TMatrix3x3', 'array[1..3] of TMatrix3x31; TypeS('TMatrix4x41', 'array[1..4] of Double; TypeS('TMatrix4x4', 'array[1..4] of TMatrix4x41; Proc ColorTransform( A, B, C : Byte; out X, Y, Z : Byte; const T : TMatrix4x4); Proc ColorTransform1( A, B, C : Byte; out X, Y, Z : Float; const T : TMatrix4x4); Proc ColorTransform2(const A,B,C:Float; out X, Y, Z : Byte; const T: TMatrix4x4); Proc ColorTransformHSI2RGB( H, S, I : Byte; out R, G, B : Byte); Proc ColorTransformRGB2HSI( R, G, B : Byte; out H, S, I : Byte); Proc ColorTransformRGB2Lab( R, G, B : Byte; out L, a_, b_ : Byte); Proc ColorTransformLab2RGB( L, a_, b_ : Byte; out R, G, B : Byte); Proc ColorTransformRGB2LOCO( R, G, B : Byte; out S0, S1, S2 : Byte); Proc ColorTransformLOCO2RGB( S0, S1, S2 : Byte; out R, G, B : Byte); Proc ConvertColorSpace(Image:TLinarBitmap;const T:TMatrix4x4;NewImage:TLinarBitmap); //Proc ConvertColorSpace1(Image:TLinarBitmap;ColorTransform:TColorTransformProc;NewImage:TLinarBitmap); Proc ConvertToGrayscale( const Image, GrayImage : TLinarBitmap);; Proc ConvertToGrayscale1( const Image : TLinarBitmap);; function ConvertToNegative (const Bitmap: TBitmap): TBitmap; end; Proc SIRegister_ZDbcUtils(CL: TPSPascalCompiler); begin { TZSQLType = (zsqlstUnknown, zsqlstBoolean, zsqlstByte, zsqlstShort, zsqlstInt, zsqlstLong, zsqlstFloat,zsqlstDouble,zsqlstBigDecimal, zsqlstString, zsqlstUnicodeString, zsqlstBytes, zsqlstDate, zsqlstTime, zsqlstTimestamp, zsqlstDataSet, zsqlstGUID, stAsciiStream, stUnicodeStream, stBinaryStream);} Func ResolveConnectionProtocol(Url:str; SupportedProtocols:TStringDynArray):Str; //Proc ResolveDatabaseUrl( const Url:Str; Info:TStrings; var HostName:str; var Port:Int;var Database:str;var UserName:str; var Password:Str; ResultInfo: TStrings); Func CheckConvertion( InitialType : TZSQLType; ResultType : TZSQLType) :Bool; Func DefineColumnTypeName( ColumnType : TZSQLType) :Str; Proc RaiseSQLException( E : Exception); //Proc CopyColumnsInfo( FromList : TObjectList; ToList : TObjectList); Func ToLikeString( const Value :Str) :Str; Func GetSQLHexWideString( Value : PChar; Len : Int; ODBC :Bool) : WideString; Func GetSQLHexAnsistr( Value : PChar; Len : Int; ODBC :Bool) : RawByteString; Func GetSQLHexString( Value : PChar; Len : Int; ODBC :Bool) :Str; Func WideStringStream( const AString : WideString) : TStream; Func ConvertAdoToTypeName(FieldType: SmallInt):Str; Func GetTableName(const AField: TField):Str;; Func GetFieldName(const AField: TField):Str;; end; Proc SIRegister_JclTD32(CL: TPSPascalCompiler); TypeS('TSymbolInfo', 'record Size : Word; SymbolType : Word; end; //TypeS('PSymbolInfos', '^TSymbolInfos // will not work; SIRegister_TJclModuleInfo(CL); SIRegister_TJclLineInfo(CL); SIRegister_TJclSourceModuleInfo(CL); SIRegister_TJclSymbolInfo(CL); SIRegister_TJclProcSymbolInfo(CL); ClassN(CL.FindClass('TOBJECT'),'TJclLocalProcSymbolInfo; ClassN(CL.FindClass('TOBJECT'),'TJclGlobalProcSymbolInfo; SIRegister_TJclTD32InfoParser(CL); SIRegister_TJclTD32InfoScanner(CL); SIRegister_TJclPeBorTD32Image(CL); end; Proc SIRegister_JvIni(CL: TPSPascalCompiler); begin TypeS('TReadObjectEvent', 'Func ( Sender : TObject; const Section, ' +'Item, Value :Str) : TObject; TWriteObjectEvent,Procedure(Sender:TObject;const Section, Item:Str; Obj: TObject); Func StringToFontStyles( const Styles :Str) : TFontStyles; Func FontStylesToString( Styles : TFontStyles) :Str; Func FontToString( Font : TFont) :Str; Proc StringToFont( const Str :Str; Font : TFont); Func RectToStr( Rect : TRect) :Str; Func StrToRect( const Str :Str; const Def : TRect) : TRect; Func JPointToStr( P : TPoint) :Str; Func JStrToPoint( const Str :Str; const Def : TPoint) : TPoint; Func DefProfileName :Str; Func DefLocalProfileName :Str; ConstantN('idnListItem','String').SetString( 'Item; end; Proc SIRegister_JvHtControls(CL: TPSPascalCompiler); begin Proc ItemHtDrawEx(Canvas:TCanvas;Rect TRect;const State:TOwnerDrawState;const Text:Str;const HideSelColor:Boolean;var PlainItem:Str;var Width:Int;CalcWidth:Boolean); Func ItemHtDraw(Canvas: TCanvas;Rect:TRect;const State TOwnerDrawState;const Text:str;const HideSelColor:Booln):str; Func ItemHtWidth(Canvas:TCanvas;Rect:TRect;const State:TOwnerDrawState;const Text:str;const HideSelColor:Bool):Int; Func ItemHtPlain( const Text :Str) :Str; Proc ExecuteHyperlink(Sender:TObject;HyperLinkClick:TJvHyperLinkClickEvent;const LinkName:str); Func IsHyperLink(Canvas:TCanvas;Rect:TRect;const Text:str;MouseX,MouseY:Int;var HyperLink:str):Bool; end; Proc SIRegister_NeuralNetwork(CL: TPSPascalCompiler); begin ClassN(CL.FindClass('TOBJECT'),'TNeuron; TypeS(TSynapse', 'record W : Real; Connection : TNeuron; end; TypeS(TAcson', 'record Alfa : Real; Beta : Real; Gama : Real; end; SIRegister_TNeuron(CL); SIRegister_TNeuronLayer(CL); SIRegister_TNeuralNet(CL); end; Proc SIRegister_StExpr(CL: TPSPascalCompiler); begin //TypeS('PStFloat', '^TStFloat // will not work; TStMethod0Param', 'Func : TStFloat; TStMethod1Param', 'Func ( Value1 : TStFloat) : TStFloat; TStMethod2Param', 'Func ( Value1, Value2 : TStFloat) : TStFloat; TStMethod3Param', 'Func ( Value1, Value2, Value3 : TStFloat) : TStFloat; TStGetIdentValueEvent', 'Proc ( Sender : TObject; const Ide' +ntifier : Ansistr; var Value : TStFloat); TStToken', '( ssStart, ssInIdent, ssInNum, ssInSign, ssInExp, ss' +Eol,ssNum,ssIdent,ssLPar,ssRPar,ssComma,ssPlus,ssMinus,ssTimes,ssDiv,ssEqual,ssPower); SIRegister_TStExpression(CL); TStExprErrorEvent', 'Proc ( Sender : TObject; ErrorNumber :' + LongInt; const ErrorStr : Ansistr); SIRegister_TStExpressionEdit(CL); Func AnalyzeExpr( const Expr : Ansistr) : Double; Proc TpVal( const S : Ansistr; var V : Extended; var Code : Int); end; Proc SIRegister_GR32_Containers(CL: TPSPascalCompiler); begin ConstantN('BUCKET_MASK','LongWord').SetUInt( $FF); ConstantN('BUCKET_COUNT','LongInt').SetInt( BUCKET_MASK + 1); Proc SmartAssign( Src, Dst : TPersistent; TypeKinds : TTypeKinds); Proc Advance( var Node : TLinkedNode; Steps : Int); end; Proc SIRegister_StSaturn(CL: TPSPascalCompiler); begin TStJupSatPos', 'record X: double; Y: Double; end; TStJupSats record Io:TStJupSatPos;Europa:TStJupSatPos;Ganymede:TStJupSatPos;Callisto:TStJupSatPos;end; Func ComputeSaturn( JD : Double) : TStEclipticalCord; Func ComputePluto( JD : Double) : TStEclipticalCord; Func ComputeVenus( JD : Double) : TStEclipticalCord; Func ComputeMars( JD : Double) : TStEclipticalCord; Func ComputeMercury( JD : Double) : TStEclipticalCord; Func ComputeJupiter( JD : Double) : TStEclipticalCord; Func ComputeUranus( JD : Double) : TStEclipticalCord; Func ComputeNeptune( JD : Double) : TStEclipticalCord; Func GetJupSats(JD : TDateTime; HighPrecision, Shadows :Bool) : TStJupSats;; end; Proc SIRegister_JclParseUses(CL: TPSPascalCompiler); begin ClassN(CL.FindClass('TOBJECT'),'EUsesListError; Func CreateGoal( Text : PChar) : TCustomGoal; end; Proc SIRegister_JvFinalize(CL: TPSPascalCompiler); begin //type //TFinalizeProc = procedure; TypeS('TFinalizeProc', 'procedure; Proc AddFinalizeProc( const UnitName :Str; FinalizeProc : TFinalizeProc); Func AddFinalizeObject( const UnitName :Str; Instance : TObject) : TObject; Func AddFinalizeObjectNil(const UnitName:str; var Reference: TObject):TObject; Func AddFinalizeFreeAndNil(const UnitName:str; var Reference: TObject) : TObject; Func AddFinalizeMemory( const UnitName :Str; Ptr : ___Pointer) : ___Pointer; Func AddFinalizeMemoryNil(const UnitName:Str;var Ptr: ___Pointer) : ___Pointer; Proc FinalizeUnit( const UnitName :Str); end; Proc SIRegister_BigIni(CL: TPSPascalCompiler); begin ConstantN('IniTextBufferSize','LongWord').SetUInt( $7000); cIniCount','String').SetString( 'Count; TEraseSectionCallback', 'Func ( const sectionName :Str; ' const sl1, sl2 : TStringList) :Bool; SIRegister_TCommaSeparatedInfo(CL); SIRegister_TSectionList(CL); SIRegister_TBigIniFile(CL); SIRegister_TBiggerIniFile(CL); SIRegister_TAppIniFile(CL); SIRegister_TLibIniFile(CL); Func ModuleName( getLibraryName :Bool) :Str; end; Proc SIRegister_ShellCtrls(CL: TPSPascalCompiler); begin TypeS(TRoot', 'string; TypeS(TRootFolder', '( rfDesktop, rfMyComputer, rfNetwork, rfRecycleBi' +n, rfAppData, rfCommonDesktopDirectory, rfCommonPrograms, rfCommonStartMen' +u, rfCommonStartup, rfControlPanel, rfDesktopDirectory, rfFavorites, rfFon' +ts, rfInternet, rfPersonal, rfPrinters, rfPrintHood, rfPrograms, rfRecent,' + rfSendTo, rfStartMenu, rfStartup, rfTemplates ); TShellFolderCapability', '( fcCanCopy, fcCanDelete, fcCanLink, f' +'cCanMove, fcCanRename, fcDropTarget, fcHasPropSheet ); TShellFolderCapabilities', 'set of TShellFolderCapability; TShellFolderProperty', '( fpCut, fpIsLink, fpReadOnly, fpShared,' + fpFileSystem, fpFileSystemAncestor, fpRemovable, fpValidate ); TShellFolderProperties', 'set of TShellFolderProperty; TShellObjectType', '( otFolders, otNonFolders, otHidden ); TShellObjectTypes', 'set of TShellObjectType; ClassN(CL.FindClass('TOBJECT'),'EInvalidPath; SIRegister_IShellCommandVerb(CL); SIRegister_TShellFolder(CL); TNotifyFilter', '( nfFileNameChange, nfDirNameChange, nfAttribut' +eChange, nfSizeChange, nfWriteChange, nfSecurityChange ); TNotifyFilters', 'set of TNotifyFilter; SIRegister_TShellChangeThread(CL); SIRegister_TCustomShellChangeNotifier(CL); SIRegister_TShellChangeNotifier(CL); ClassN(CL.FindClass('TOBJECT'),'TCustomShellComboBox; ClassN(CL.FindClass('TOBJECT'),'TCustomShellListView; TAddFolderEvent', 'Proc ( Sender : TObject; AFolder: TShel' +lFolder; var CanAdd :Bool); TGetImageIndexEvent', 'Proc ( Sender : TObject; Index : Int' +'eger; var ImageIndex : Int); SIRegister_TCustomShellTreeView(CL); SIRegister_TShellTreeView(CL); SIRegister_TCustomShellComboBox(CL); SIRegister_TShellComboBox(CL); SIRegister_TCustomShellListView(CL); SIRegister_TShellListView(CL); Proc InvokeContextMenu(Owner : TWinControl; AFolder : TShellFolder; X, Y : Int); end; Proc SIRegister_fmath(CL: TPSPascalCompiler); begin TypeS('Float', 'Double; ! 'FN_OK','LongInt').SetInt( 0); ConstantN('FN_DOMAIN','LongInt').SetInt( - 1); 'FN_SING','LongInt').SetInt( - 2); 'FN_OVERFLOW','LongInt').SetInt( - 3); 'FN_UNDERFLOW','LongInt').SetInt( - 4); 'FN_TLOSS','LongInt').SetInt( - 5); 'FN_PLOSS','LongInt').SetInt( - 6); //ConstantN('NFACT','LongInt').SetInt( 33); Func MathError : Int; Func FMin( X, Y : Float) : Float; Func FMax( X, Y : Float) : Float; Func IMin( X, Y : Int) : Int; Func IMax( X, Y : Int) : Int; Func FSgn( X : Float) : Int; Func Sgn0( X : Float) : Int; Func DSgn( A, B : Float) : Float; Proc FSwap( var X, Y : Float); Proc ISwap( var X, Y : Int); Func fExpo( X : Float) : Float; Func fExp2( X : Float) : Float; Func fExp10( X : Float) : Float; Func fLog( X : Float) : Float; Func fLog2( X : Float) : Float; Func fLog10( X : Float) : Float; Func fLogA( X, A : Float) : Float; Func fIntPower( X : Float; N : Int) : Float; Func fPower( X, Y : Float) : Float; Func Pythag( X, Y : Float) : Float; Func FixAngle( Theta : Float) : Float; Func fTan( X : Float) : Float; Func fArcSin( X : Float) : Float; Func fArcCos( X : Float) : Float; Func fArcTan2( Y, X : Float) : Float; Proc fSinCos( X : Float; var SinX, CosX : Float); Func fSinh( X : Float) : Float; Func fCosh( X : Float) : Float; Func fTanh( X : Float) : Float; Func fArcSinh( X : Float) : Float; Func fArcCosh( X : Float) : Float; Func fArcTanh( X : Float) : Float; Proc fSinhCosh( X : Float; var SinhX, CoshX : Float); Func fFact( N : Int) : Float; Func fBinomial( N, K : Int) : Float; Func fGamma( X : Float) : Float; Func fSgnGamma( X : Float) : Int; Func LnGamma( X : Float) : Float; Func fIGamma( A, X : Float) : Float; Func fJGamma( A, X : Float) : Float; Func fBeta( X, Y : Float) : Float; Func fIBeta( A, B, X : Float) : Float; Func fErf( X : Float) : Float; Func fErfc( X : Float) : Float; Func fPBinom(N: Int; P: Float; K : Int) : Float; Func FBinom(N: Int; P: Float; K : Int) : Float; Func PPoisson( Mu : Float; K : Int) : Float; Func FPoisson( Mu : Float; K : Int) : Float; Func fDNorm( X : Float) : Float; Func FNorm( X : Float) : Float; Func PNorm( X : Float) : Float; Func InvNorm( P : Float) : Float; Func fDStudent( Nu : Int; X : Float) : Float; Func FStudent( Nu : Int; X : Float) : Float; Func PStudent( Nu : Int; X : Float) : Float; Func fDKhi2( Nu : Int; X : Float) : Float; Func FKhi2( Nu : Int; X : Float) : Float; Func PKhi2( Nu : Int; X : Float) : Float; Func fDSnedecor( Nu1, Nu2 : Int; X : Float) : Float; Func FSnedecor( Nu1, Nu2 : Int; X : Float) : Float; Func PSnedecor( Nu1, Nu2 : Int; X : Float) : Float; Func fDExpo( A, X : Float) : Float; Func FExpo( A, X : Float) : Float; Func fDBeta( A, B, X : Float) : Float; Func FBeta( A, B, X : Float) : Float; Func fDGamma( A, B, X : Float) : Float; Func FGamma( A, B, X : Float) : Float; Proc RMarIn( Seed1, Seed2 : Int); Func IRanMar : LongInt; Func RanMar : Float; Func RanGaussStd : Float; Func RanGauss( Mu, Sigma : Float) : Float; end; Proc SIRegister_fcomp(CL: TPSPascalCompiler); begin TypeS('ComplexForm', '( Rec, Pol ); TypeS(TComplex', 'record Form:ComplexForm; X Float;Y: Float; R:Float; Theta:Float; end; Proc CSet( var Z : TComplex; A, B : Float; F : ComplexForm); Proc CConvert( var Z : TComplex; F : ComplexForm); Proc CSwap( var X, Y : TComplex); Func CReal( Z : TComplex) : Float; Func CImag( Z : TComplex) : Float; Func CAbs( Z : TComplex) : Float; Func CArg( Z : TComplex) : Float; Func CSgn( Z : TComplex) : Int; Proc CNeg( A : TComplex; var Z : TComplex); Proc CConj( A : TComplex; var Z : TComplex); Proc CAdd( A, B : TComplex; var Z : TComplex); Proc CSub( A, B : TComplex; var Z : TComplex); Proc CDiv( A, B : TComplex; var Z : TComplex); Proc CMult( A, B : TComplex; var Z : TComplex); Proc CLn( A : TComplex; var Z : TComplex); Proc CExp( A : TComplex; var Z : TComplex); Proc CPower( A, B : TComplex; var Z : TComplex); Proc CIntPower( A : TComplex; N : Int; var Z : TComplex); Proc CRealPower( A : TComplex; X : Float; var Z : TComplex); Proc CSqrt( A : TComplex; var Z : TComplex); Proc CRoot( A : TComplex; K, N : Int; var Z : TComplex); Proc CCSin( A : TComplex; var Z : TComplex); Proc CCos( A : TComplex; var Z : TComplex); Proc CTan( A : TComplex; var Z : TComplex); Proc CArcSin( A : TComplex; var Z : TComplex); Proc CArcCos( A : TComplex; var Z : TComplex); Proc CArcTan( A : TComplex; var Z : TComplex); Proc CSinh( A : TComplex; var Z : TComplex); Proc CCosh( A : TComplex; var Z : TComplex); Proc CTanh( A : TComplex; var Z : TComplex); Proc CArcSinh(A: TComplex; var Z : TComplex); Proc CArcCosh(A: TComplex; var Z : TComplex); Proc CArcTanh(A: TComplex; var Z : TComplex); Proc CLnGamma(A: TComplex; var Z : TComplex); end; XSDd:= DateTimeToXSDateTime(now,true) xsdd.nativetoxs; writeln(datetimetostr(xsdd.asUTCdatetime)); xsdd.free; Proc SIRegister_XSBuiltIns(CL: TPSPascalCompiler); begin ConstantN('SHexMarker','String').SetString( '$; Func DateTimeToXMLTime( Value : TDateTime; ApplyLocalBias :Bool) : WideString; Func XMLTimeToDateTime(const XMLDateTime : WideString; AsUTCTime:Boolean): TDateTime; Func DateTimeToXSDateTime(const Value:TDateTime;ApplyLocalBias:Bool):TXSDateTime; Func GetDataFromFile( AFileName :Str) :Str; Func SoapFloatToStr( Value : double) :Str; Func SoapStrToFloat( Value :Str) : double; Proc InitXSTypes; end; Proc SIRegister_CompFileIo(CL: TPSPascalCompiler); begin SIRegister_TComponentStream(CL); TypeS('TComponentStream', 'TMemoryStream; TComponentFileFormat', '( cffText, cffBinary ); TComponentArray', 'array of TComponent; TResourceNaming,rnClassNameTag,rnClassName,rnClassTag,rnNameTag,rnClass,rnName, rnTag ); Func VOID_COMP : ___Pointer; Func VOID_FORM : ___Pointer; Func CreateIoForm( AForm : TCustomForm; ClassType : TFormClass) : TCustomForm; Func GetComponentTree(Component:TComponent;pComponents:TComponentArray;bAddSelf:Bool):LongInt; Func pPosEx( SearchStr: PChar; Str : PChar; var Pos : LongInt) : PChar; Func pGetTextBetween(pBuff:PChar;bSearchCode:str;eSearchCode:str;Container:TStrings): LongInt; Func pComponentToString( Component : TComponent) :Str; //Func StringToComponent(Value:str; ComponentClass:TComponentClass): TComponent; Func StringToObjectBinaryStream(Value:str;BinStream:TMemoryStream;ResName:str):Bool; Func ObjectBinaryStreamToString(BinStream:TMemoryStream;var sResult:str;bResource:Bool):Bool Func ObjectTextToBinaryStream(StrStream,BinStream:TComponentStream;ObjCount:LongInt): LongInt; Func ObjectBinaryStreamToObjectTextStream(BinStream:TMemoryStream;StrStream:TMemoryStream;bResource:Bool):Bool; Func GetResHeaderInfo( Stream : TMemoryStream; sl : TStrings) :Bool; Func pGetResourceName(Component:TComponent;NamingMethod: TResourceNaming) :Str; Func GetFormResourceStream(Form:TCustomForm;ResName:str;var ResourceStream:TMemoryStream):Bool; Func WriteComponentsToFile(FormsAndComponents:array of TComponent;FileName:str;Format:TComponentFileFormat; StoreComponentNames:Boolean):Boolean; Func ReadComponentsFromFile(FormsAndComponents:array of TComponent;FileName:str):Bool; //Func ReadComponentsFromFile1(FileName:str;pComponents: array of TPComponent;ComponentClasses:array of TComponentClass):Bool; Func ReadComponentTreeFromFile(FormOrComponent:TComponent;FileName:Str):Boolean; Func WriteComponentToFile(Component:TComponent;FileName:str;Format:TComponentFileFormat;StoreComponentName:Bool):Bool; Func WriteComponentTreeToFile(FormOrComponent:TComponent;FileName:str;Format:TComponentFileFormat;StoreComponentName:Bool):Bool; Func ReadComponentFromFile4(FormOrComponent:TComponent; FileName :Str):Bool;; Func ReadFormFromFile(pInstance:TComponent;FormClass:TFormClass;FileName:str): Bool; Func ReadComponentResourceFile5( Instance : TObject; FileName :Str) :Bool;; Func WriteComponentResourceFile(nstance:TObj;FileName:str;StoreFormAsVisible:Bool):Bool; Func ReadComponentsResourceFile(Components:array of TComponent;FileName:str;NamingMethod:TResourceNaming; bLoadTotalForm:Boolean):Boolean; Func WriteComponentsResourceFile( Components : array of TComponent; FileName:Str; NamingMethod : TResourceNaming) :Bool; Func ReadComponentResourceHeader(sHeaderInfo:TStrings; pSize : Int; FileName:Str; NamingMethod : TResourceNaming) :Bool; Func ConvertComponentResourceToTextFile(SourceFileName:str;TargetFileName:str;bStoreResNames:Bool):Bool; Func CheckComponentInResourceFile(Component:TComponent;FileName:str;NamingMethod:TResourceNaming):Boolean; Func DeleteComponentFromResourceFile(ResourceName:str; FileName:str):Bool;; Func DeleteComponentFromResourceFile8(Component:TComponent;FileName string;NamingMethod:TResourceNaming):Bool; //Func CreateFormFromResFile(AOwner:TComponent;NewClassType:TFormClass;FileName:str): Pointer; //Func CreateComponentFromResFile( AOwner : TComponent; NewClassType : TComponentClass; FileName :Str) : Pointer; end; Proc SIRegister_SMScript(CL: TPSPascalCompiler); begin CL.FindClass('TOBJECT'),'TSMScriptExecutor; SIRegister_TSMSEError(CL); ClassN(CL.FindClass('TOBJECT'),'TSMSEModule; TypeS('TSMSEProcedureType', '( ptProcedure, ptFunc ); SIRegister_TSMSEProcedure(CL); SIRegister_TSMSEProcedures(CL); SIRegister_TSMSEModule(CL); SIRegister_TSMSEModules(CL); TypeS('TSMScriptLanguage', ( slCustom, slVBScript, slJavaScript ); SIRegister_TSMScriptExecutor(CL); //DelphiFunction('Proc Register; end; Proc SIRegister_geometry2(CL: TPSPascalCompiler); begin TPointF2', 'record X : Double; Y : Double; end; TPoint3', 'record X : Int; Y : Int; Z : Int; end; //TypeS('PPointF3', '^TPointF3 // will not work; TPointF3', 'record X : double; Y : double; Z : Double; end; Func AreLinesParallel( p1, p2, p3, p4 : TPoint) :Bool;; Func AreLinesParallel1( p1, p2, p3, p4 : TPointF2; e : Double) :Bool;; Func AreLinesParallel2( p1, p2, p3, p4, p5, p6 : TPoint3) :Bool;; Func AreLinesParallel3( p1, p2, p3, p4, p5, p6 : TPointF3; e : Double) :Bool;; Func IntersectLines( p1, p2, p3, p4 : TPoint) : TPoint;; Func IntersectLines1( p1, p2, p3, p4 : TPointF2; e : Double) : TPointF2;; Func AngleDifference( alpha, beta : Double) : Double; end; source of the new units: http://sourceforge.net/projects/maxbox/files/Docu/SourceV4/ New Functions /Classes mX4: Func DownloadJPGToBitmap(const URL :Str; ABitmap: TBitmap):Bool;); Proc GetImageLinks(AURL:Str; AList: TStrings);; Proc SaveByteCode;; Proc ResetKeyPressed;; Proc SetKeyPressed;; RIRegister_HTTPProd_Routines(Exec); Func ContentFromScriptStream(AStream:TStream;AWebModuleContext:TWebModuleContext;AStripParamQuotes:Bool; AHandleTag:THandleTagProc;AHandleScriptTag THandledTagProc; const AScriptEngine:Str; ALocateFileService:ILocateFileService):Str; Func ContentFromScriptFile(const AFileName:TFileName; AWebModuleContext:TWebModuleContext; AStripParamQuotes :Bool; AHandleTag:THandleTagProc; AHandleScriptTag:THandledTagProc; '+ const AScriptEngine:str; ALocateFileService:ILocateFileService) :Str; Func FindComponentWebModuleContext( AComponent : TComponent) : TWebModuleContext; Func GetTagID( const TagString :Str) : TTag; Func ContentFromStream(AStream:TStream; AStripParamQuotes:Boolean;AHandleTag:THandleTagProc;AHandledTag:THandledTagProc):str; Func ContentFromString(const AValue:str; AStripParamQuotes:Bool;AHandleTag:THandleTagProc;AHandledTag:THandledTagProc):str; RIRegister_synacrypt_Routines(Exec); Func TestDes:Bool; {:Call internal test of all 3DES encryptions. Returns @true if all is OK.} Func Test3Des:Bool; {:Call internal test of all AES encryptions. Returns @true if all is OK.} Func TestAes:Bool; Proc LogMessage( const Fmt :Str; const Params : array of const); Func UnixPathToDosPath2( const Path :Str) :Str; Func DosPathToUnixPath2( const Path :Str) :Str; Proc InitISAPIApplicationList; Proc DoneISAPIAPplicationList; RIRegister_xmldom_Routines(Exec); Func IsPrefixed( const AName : DOMString) :Bool; Func IsPrefixedW( const AName : DOMStringW) :Bool; Func ExtractLocalName( const AName : DOMString) : DOMString; Func ExtractLocalNameW( const AName : DOMStringW) : DOMStringW; Func ExtractPrefixW( const AName : DOMStringW) : DOMStringW; Func MakeNodeNameW( const Prefix, LocalName : DOMStringW) : DOMStringW; Func ExtractPrefix( const AName : DOMString) : DOMString; Func MakeNodeName( const Prefix, LocalName : DOMString) : DOMString; Func SameNamespace(const Node:IDOMNode;const namespaceURI:WideString):Boolean;; Func SameNamespace2( const URI1, URI2 : WideString) :Bool;; Func NodeMatches(const Node:IDOMNode;const TagName,NamespaceURI:DOMString):Bool;; Func GetDOMNodeEx( const Node : IDOMNode) : IDOMNodeEx; Proc RegisterDOMVendor( const Vendor : TDOMVendor); Proc UnRegisterDOMVendor( const Vendor : TDOMVendor); Func GetDOMVendor( VendorDesc :Str) : TDOMVendor; Func GetDOM( const VendorDesc :Str) : IDOMImplementation; Proc DOMVendorNotSupported( const PropOrMethod, VendorName :Str); Func IsValidLocale( Locale : LCID; dwFlags : DWORD) : BOOL; Func ConvertDefaultLocale( Locale : LCID) : LCID; Func GetThreadLocale : LCID; Func SetThreadLocale( Locale : LCID) : BOOL; Func GetSystemDefaultLangID : LANGID; Func GetUserDefaultLangID : LANGID; Func GetSystemDefaultLCID : LCID; Func GetUserDefaultLCID : LCID; Func AbsInt( const B : Int) : Int; Func AbsFloat( const B : double) : extended; Proc ReconcileDeltas(const cdsArray:array of TClientDataset;vDeltaArray:OleVariant); Proc CDSApplyUpdates(ADatabase:TDatabase;var vDeltaArray:OleVariant;const vProviderArray:OleVariant;Local:Bool); Function(@CheckMemory, 'Proc CheckMemory;; Function(@GetMemoryInfo, 'Func getMemoryInfo;; Function(@GetMemoryInfo, 'Func getMemInf;; Proc RaiseLastWin32_2( const Text :Str);; RIRegister_Gameboard_Routines(Exec); Func Opponent( Player : TPlayer) : TPlayer; Proc InitZobritsNumbers( var ZobristNumbers, Count : Int); Proc SaveStringToStream( const Str :Str; Stream : TStream); Func LoadStringFromStream( Stream : TStream) :Str; Func WaitForSyncObject(SyncObject:THandle;Timeout:Card;BlockInput:Boolean):Card); Func ProcessMessage :Bool; Proc ProcessMessages( Timeout : DWORD); //without application! RIRegister_PersistSettings_Routines(Exec); Proc SetStorageHandler( AFunc : TStorageHandlerFunction);; Proc SetStorageHandler1( AMethod : TStorageHandlerMethod);; Func GetStorage : TPersistStorage; Proc SaveComponents( Root : TComponent; Storage : TPersistStorage); Proc LoadComponents( Root : TComponent; Storage : TPersistStorage); Proc AutoSave( Root : TComponent); Proc AutoLoad( Root : TComponent); Proc FloatToDecimalE(var Result:TFloatRec;const Value:extended;ValueType:TFloatValue;Precision,Decimals:Int); Func FloatToTextE(BufferArg:PChar; const Value:extended; ValueType: FloatValue;Format:TFloatFormat; Precision, Digits: Int): Int; Proc FloatToDecimalE(var Result:TFloatRec;const Value:extended;ValueType:TFloatValue;Precision,Decimals:Int);; Func FloatToTextE(BufferArg:PChar;const Value:extended;ValueType:TFloatValue;Format:TFloatFormat;Precision,Digits:Int):Int; Func GetSystemDefaultLCID : LCID; Func GetUserDefaultLCID : LCID; Func CreateMutex2(lpMutexAttributes:TObject;bInitialOwner:BOOL;lpName:PChar) : THandle; Func CreateSemaphore2(lpSemaphoreAttributes:TObject;lInitialCount,lMaximumCount:Longint;lpName:PChar):THandle; Func GetUserNameAPI( lpBuffer : PChar; var nSize : DWORD) : BOOL; Createmutex2 fhand:= OpenFileHandle(exepath+'maxbox4.exe') Func getMatchString(arex, atext:Str):Str; Func getLastInput: DWord; Proc GetKLList(List: TStrings);; //Keyboardlist2 Proc EnableCTRLALTDEL(YesNo :Bool); Func LocalIP:Str; Func IPAddrToName(IPAddr:Str):Str; Func GetIPFromHost(const HostName:Str):Str; function getIPFromHostName(hostName: string): string; Func FindComputers(Computers : TStringList): DWORD; Func GetWin32TypeLibList(var Lines: TStringList):Bool; Func RecurseWin32(const R: TRegistry; const ThePath:Str; const TheKey:Str):Str; Func RunAsAdmin(hWnd: HWND; filename:Str; Parameters:Str):Bool; Ex.: RunAsAdmin2(hinstance,'cmd.exe',+ 'Set OPENSSL_CONF='+OpenSSLPathF+'openssl.cfg'); writeln(getDosOutput('openssl.exe version',OpenSSLPath)); Proc SaveGraphicToStream(Graphic: TGraphic; Stream: TStream); Func LoadGraphicFromStream(Stream: TStream): TGraphic; Proc CopyStreamToFile(S: TStream; F: THandle); Func BigPow(aone, atwo: Int):Str; Proc GetPelsPerMeter(CONST Bitmap: TBitmap;VAR xPelsPerMeter,yPelsPerMeter: Int); Proc RainbowColor(CONST fraction: Double; VAR R,G,B: BYTE); RIRegister_JclPCRE_Routines(S: TPSExec); Proc InitializeLocaleSupport; Proc TerminateLocaleSupport; Func StrReplaceRegEx(const Subject, Pattern:Ansistr;Args:array of const):Ansistr; Proc SIRegister_VariantRtn(CL: TPSPascalCompiler); begin TProcReadElementValue','procedure(Value:Variant; IndexValue:Intarray; const HighBoundInd:Int; Var Continue:bool); TProcWriteElementValue','procedure(OldValue:Variant;IndexValue:Intarray;Var NewValue:Variant; Var Continue:bool); //TProcReadElementValue=procedure(Value:Variant;IndexValue:array of Int; const HighBoundInd:Int;Var Continue:bool); //TProcWriteElementValue=procedure(OldValue:Variant;IndexValue:array of Int;Var NewValue:Variant;Var Continue:bool); // Func SafeVarArrayCreate(const Bounds:array of Int;VarType, DimCount: Int): Variant; Func VarArrayGet2(constA:Variant;const Indice:array of Int;const HighBound:Int):Variant); Proc VarArrayPut2(var A:Variant;const Value:Variant;const Indices:array of Int;const HighBound:Int); Func CycleReadArray( vArray : Variant; CallBackProc : TProcReadElementValue) :Bool; Func CycleWriteArray(var vArray:Variant;CallBackProc: TProcWriteElementValue):Bool; Func CompareVarArray1( vArray1, vArray2 : Variant) :Bool; Func EasyCompareVarArray1(vArray1,vArray2:Variant;HighBound:Int):Bool; end; Proc SIRegister_StdFuncs(CL: TPSPascalCompiler); begin ClassN(CL.FindClass('TOBJECT'),'EParserError; //TypeS('TCharSet', 'set of Char; Func ConvertFromBase(sNum:Str; iBase: Int; cDigits:Str): Int; Func ConvertToBase( iNum, iBase : Int; cDigits :Str) :Str; Func EnsureSentenceTerminates( Sentence :Str; Terminator : Char) :Str; Func FindTokenStartingAt(st:Str;var i:Int;TokenChars:TCharSet;TokenCharsInToken:Bool):Str; Func GetDirectoryOfFile( FileName :Str) :Str; Func GetDirOfFile( FileName :Str) :Str; Func GetTempFile( FilePrefix :Str) :Str; Func Icon2Bitmap( Icon : HICON) : HBITMAP; Func Maxfib( n1, n2 : Int) : Int; Func MaxD( n1, n2 : Double) : Double; Func Minfib( n1, n2 : Int) : Int; Func MinD( n1, n2 : Double) : Double; Func RandomStringfib( iLength : Int) :Str; Func RandomIntfib( iLow, iHigh : Int) : Int; Func Soundexfib( st :Str) :Str; Func StripStringfib( st :Str; CharsToStrip :Str) :Str; Func ClosestWeekday( const d : TDateTime) : TDateTime; Func Yearfib( d : TDateTime) : Int; Func Monthfib( d : TDateTime) : Int; Func DayOfYearfib( d : TDateTime) : Int; Func DayOfMonth( d : TDateTime) : Int; Func VarCoalesce( V1, V2 : Variant) : Variant; Func VarEqual( V1, V2 : Variant) :Bool; Proc WeekOfYearfib( d : TDateTime; var Year, Week : Int); Func Degree10( Degree : Int) : double; Func CompToStr( Value : comp) :Str; Func StrToComp( const Value :Str) : comp; Func CompDiv( A, B : comp) : comp; Func CompMod( A, B : comp) : comp; // TypeS('PComp', '^Comp // will not work; end; Proc SIRegister_RegUtils(CL: TPSPascalCompiler); begin Proc DefWriteToRegistry(const OtherKeys,ParamNams:array of string;const Values:array of Variant); Proc WriteToRegistry(aRootKey:HKEY;const OtherKeys,ParamNames:array of string;const Values:array of Variant); Func ReadFromRegistry(aRootKey:HKEY;const OtherKeys,ParamNames: array of string): Variant; Func DefReadFromRegistry( const OtherKeys, ParamNames : array of string) : Variant; Func AllSubKey( aRootKey : HKEY; const ForPath : array of string) : Variant; Func DefAllSubKey( const ForPath : array of string) : Variant; Func SaveRegKey( const FileName :Str; const ForKey : array of string) :Bool; Func LoadRegKey( const FileName :Str; const ForKey : array of string) :Bool; Func AltSaveRegKey(const FileName:str;const ForKey: array of string) :Bool; Func AltLoadRegKey(const FileName:str;const ForKey: array of string) :Bool; Func GetKeyForParValue( const aRootKey, ParName, ParValue :Str) :Str; end; Func GetEulerPhi( n : int64) : int64; Func isprime(f: int64):Bool;; Func DispositionFrom(const SQLText:str):TPoint; Proc AllTables(const SQLText:str;FTables:Tstrings); Func TableByAlias(const SQLText,Alias:str):str; Func FullFieldName(const SQLText,FieldName:str):str; Func AddToWhereClause(const SQLText,NewClause:str):str; Func GetWhereClause(SQLText:str;N:Int;var StartPos,EndPos:Int ):str; Func WhereCount(SQLText:str):Int; Func GetOrderInfo(SQLText:str):variant; Func OrderStringTxt(SQLText:str; var StartPos,EndPos:Int ):str; Func PrepareConstraint(Src:Tstrings):str; Proc DeleteEmptyStr(Src:Tstrings); Func NormalizeSQLText(const SQL:Str;MacroChar:Char):Str; Func CountSelect(const SrcSQL:str):str; Func GetModifyTable(const SQLText:str;AlreadyNormal:boolean):str; Func GetCharFromVKey(vkey: Word):Str; Func Xls_To_StringGrid(AGrid: TStringGrid; AXLSFile:Str):Bool; Func IsObjectActive(ClassName:Str):Bool; Func GetActiveObject(ClassID:TGUID; anil:TObject; aUnknown:IUnknown):HRESULT;; Func RegisterOCX(FileName:Str):Bool; Func UnRegisterOCX(FileName:Str):Bool; Func RegisterServer2(const aDllFileName:Str; aRegister:Bool):Bool; Proc mIRCDDE(Service, Topic, Cmd:Str); //mIRCDDE('mIRC', 'COMMAND', '/say Hallo von SwissDelphiCenter.ch; Func OpenIE(aURL:Str):Bool; Func XRTLIsInMainThread:Bool; Func IsInMainThread:Bool; Proc SIRegister_SpectraLibrary(CL: TPSPascalCompiler); begin TypeS('Nanometers', 'Double; ConstantN('WavelengthMinimum','LongInt').SetInt( 380); ConstantN('WavelengthMaximum','LongInt').SetInt( 780); Proc WavelengthToRGB( const Wavelength : Nanometers; var R, G, B : BYTE); end; Proc SIRegister_DrawFigures(CL: TPSPascalCompiler); begin Proc DrawCube( const PantoGraph : TPantoGraph; const color : TColor); Proc DrawSphere(const PantoGraph:TPantoGraph;const LatitudeColor,LongitudeColor:TColor; const LatitudeCircles,LongitudeSemicircles,PointsInCircle:WORD); Proc DrawSurface( const PantoGraph : TPantoGraph); Proc DrawFootballField(const PantoGraph:TPantoGraph;const ColorField,ColorLetters,ColorGoals:TColor); end; Proc SIRegister_synadbg(CL: TPSPascalCompiler); begin SIRegister_TSynaDebug(CL); Proc AppendToLog( const value : Ansistr); end; Proc SIRegister_XmlRpcCommon(CL: TPSPascalCompiler); begin SIRegister_TRC4(CL); TypeS(TRPCDataType', '( rpNone, rpString, rpInt, rpBoolean, rpDoub' +le, rpDate, rpBase64, rpStruct, rpArray, rpName, rpError ); Func GetTempDirRPC :Str; Func FileIsExpired( const FileName :Str; Elapsed : Int) :Bool; Func EncodeEntities( const Data :Str) :Str; Func DecodeEntities( const Data :Str) :Str; Func ReplaceRPC(const Data:str;const Find:str;const Replace:str):Str; Func InStr( Start : Int; const Data :Str; const Find :Str) : Int; Func Mid( const Data :Str; Start : Int) :Str; Func DateTimeToISO( ConvertDate : TDateTime) :Str; Func IsoToDateTime( const ISOStringDate :Str) : TDateTime; Func ParseStringRPC(const SearchString:str; Delimiter:Char; Substrings: TStrings; const AllowEmptyStrings:Bool; ClearBeforeParse:Boolean):Int; Func ParseStream( SearchStream:TStream;Delimiter:Char;ubstrings:TStrings;AllowEmptyStrings:Bool;ClearBeforeParse:Bool): Int; Func FixEmptyString( const Value :Str) :Str; Func URLEncodeRPC( const Value :Str) :Str; Func StreamToStringRPC( Stream : TStream) :Str; Proc StringToStream( const Text :Str; Stream : TStream); Func StreamToVariant( Stream : TStream) : OleVariant; Proc VariantToStream( V : OleVariant; Stream : TStream); Func Hash128AsHex( const Hash128Value : T4x4LongWordRecord) :Str; ConstantN(ValidURLChars','String').SetString('ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789$-_@.&+-!''*"(),;/#?:; end; Proc SIRegister_synafpc(CL: TPSPascalCompiler); begin Func LoadLibraryfpc( ModuleName : PChar) : TLibHandle; Func FreeLibraryfpc( Module : TLibHandle) : LongBool; Func GetProcAddressfpc( Module : TLibHandle; Proc : PChar) : Pointer; Func GetModuleFileNamefpc(Module:TLibHandle;Buffer:PChar; BufLen:Int):Int; TypeS('TLibHandle', 'Int; TypeS('TLibHandle2', 'HModule; TypeS(LongWordfpc', DWord; Proc Sleepfpc( milliseconds :Card); end; Proc SIRegister_Spring_Utilsmx(CL: TPSPascalCompiler); begin TypeS('TOSPlatformType', '( ptUnknown, ptWin3x, ptWin9x, ptWinNT ); SIRegister_TOperatingSystem(CL); SIRegister_TEnvironmentClass(CL); TypeS('Environment', 'TEnvironment; Func ApplicationPath :Str; Func ApplicationVersion : TVersion; Func ApplicationVersionString :Str; Func GetLastErrorMessage :Str; function getLastSysErrorMessage: string; Func CreateCallback( obj : TObject; methodAddress : Pointer) : TCallbackFunc; Func ConvertFileTimeToDateTime(const fileTime:TFileTime;useLocalTimeZone:Bool):TDateTime;; Func ConvertDateTimeToFileTime(const datetime:TDateTime;useLocalTimeZone:Bool):TFileTime; {Proc Synchronize( threadProc : TThreadProcedure); Proc Queue( threadProc : TThreadProcedure); } Func TryGetPropInfo(instanc:TObject;const propertyName:str;out propInfo:PPropInfo):Bool; Func IsCtrlPressed :Bool; Func IsShiftPressed :Bool; Func IsAltPressed :Bool; Proc CheckFileExists( const fileName :Str); Proc CheckDirectoryExists( const directory :Str); ConstantN('COneKB','Int64').SetInt64( 1024); COneMB',Int64').SetInt64( 1048576); COneGB',Int64').SetInt64( 1073741824); COneTB',Int64').SetInt64( 1099511627776); Func TryConvertStrToDateTime(const s,format:str;out value:TDateTime):Boolean;; Func ConvertStrToDateTime(const s, format:Str): TDateTime;; end; Proc SIRegister_rxOle2Auto(CL: TPSPascalCompiler); begin ConstantN('MaxDispArgs','LongInt').SetInt( 64); ConstantN('MaxDispArgs','LongInt').SetInt( 32); ClassN(CL.FindClass('TOBJECT'),'EPropReadOnly; ClassN(CL.FindClass('TOBJECT'),'EPropWriteOnly; SIRegister_TOleController(CL); Proc InitOLE2; Proc DoneOLE; Func OleInitialized :Bool; Func MakeLangID( PrimaryLangID, SubLangID : Word) : Word; Func MakeLCID( LangID : Word) : TLCID; Func CreateLCID( PrimaryLangID, SubLangID : Word) : TLCID; Func ExtractLangID( LCID : TLCID) : Word; Func ExtractSubLangID( LCID : TLCID) : Word; Func CLSIDFromProgID(pszProgID: widestring; out clsid: TGUID): Longint'); //stdcall; Func ProgIDFromCLSID(const clsid: TGUID; out pszProgID: widestring): Longint'); //stdcall; Func StringFromCLSID(const clsid: TGUID; out psz: widestring): longint'); //stdcall; //{$EXTERNALSYM CLSIDFromString} Func CLSIDFromString(psz: widestring; out clsid: TGUID): longint'); //stdcall; Func StringFromGUID2(const guid: TGUID;psz: widestring;cbMax:Integer):Integer');//stdcall; Func ProgIDExists(const ProgID:WideString):Boolean'); Proc CoUninitialize'); Proc OleUninitialize'); end; Proc SIRegister_ulogifit(CL: TPSPascalCompiler); begin Proc LogiFit(X,Y:TVector;Lb,Ub:Int;ConsTerm:Boolean;General:Bool;MaxIter:Int;Tol:Float;B:TVector;V:TMatrix); Proc WLogiFit(X,Y,S:TVector;Lb,Ub:Int;ConsTerm Bool General:Bool;MaxIter Int;Tol:Float;B:TVector;V:TMatrix); Func LogiFit_Func( X : Float; B : TVector) : Float; end; Proc FormattedTextOut(TargetCanvas: TCanvas; const Rect : TRect; const Text :Str; Selected :Bool; Columns : TProposalColumns; Images : TImageList); Func FormattedTextWidth(TargetCanvas:TCanvas;const Text:str;Columns:TProposalColumns;Images:TImageList):Int; Func PrettyTextToFormattedString(const APrettyText:Str; AlternateBoldStyle:Boolean):str; Proc SIRegister_ulinfit(CL: TPSPascalCompiler); begin Proc LinFit( X, Y : TVector; Lb, Ub : Int; B : TVector; V : TMatrix); Proc WLinFit( X, Y, S : TVector; Lb, Ub : Int; B : TVector; V : TMatrix); Proc SVDLinFit(X,Y:TVector; Lb, Ub:Int; SVDTol : Float; B: TVector; V : TMatrix); Proc WSVDLinFit(X,Y,S: TVector; Lb,Ub:Int;SVDTol: Float; B: TVector; V : TMatrix); Proc SVDFit(X:TMatrix;Y:TVector;Lb,Ub Nvar:Int;ConsTerm:Bool; SVDTol: Float;B: TVector; V: TMatrix); Proc WSVDFit(X: TMatrix;Y,S:TVector;Lb Ub,Nvar:Int;ConsTerm:Boolean;SVDTol:Float; B: TVector;V : TMatrix); end; Proc SIRegister_MaxUtils(CL: TPSPascalCompiler); begin TypeS('MaxCharSet', 'set of Char; Func GetMachineNamemax :Str; Func GetModuleNamemax( HModule : THandle) :Str; Func TrimChars( const S :Str; Chars : MaxCharSet) :Str; Func TickCountToDateTime( Ticks :Card) : TDateTime; Proc OutputDebugStringmax( const S :Str); Proc OutputDebugFormat( const FmtStr :Str; Args : array of const); Func IsAppRunningInDelphi :Bool; Proc ParseFields(Separators,WhiteSpace:TSysCharSet;Content:PChar;Strigs:TStrings;Decode: Bool; Func HTTPDecodemax( const AStr :Str) :Str; Func HTTPEncodemax( const AStr :Str) :Str; Func FormatDate( const DateString :Str) :Str; Func FormatListMasterDate(const DateStr,FormatDefStr:str; Len:Int):str; Func InvertCase( const S :Str) :Str; Func CommentLinesWithSlashes( const S :Str) :Str; Func UncommentLinesWithSlashes( const S :Str) :Str; Func StripChars( const S :Str; Strip : CharSet) :Str; Func TrimChars( const S :Str; Chars : CharSet) :Str; Func TrimLeftChars( const S :Str; Chars : CharSet) :Str; Func TrimRightChars( const S :Str; Chars : CharSet) :Str; Func ContainsChars( const S :Str; Strip : CharSet) :Bool; Func DequotedStrmax( const S :Str; AQuoteChar : Char) :Str; Proc LeftPadStr( var S :Str; toLength : Int; withChar : Char); Proc RightPadStr( var S :Str; toLength : Int; withChar : Char); Func RemoveChars( S :Str; Chars : CharSet) :Str; Func FilterChars( S :Str; Chars : CharSet) :Str; Func RemoveNonNumericChars( S :Str) :Str; Func RemoveNonAlphanumChars( S :Str) :Str; Func RemoveNonAlphaChars( S :Str) :Str; Func HasAlphaChars( S :Str) :Bool; Func ReplaceChars( S :Str; Chars : CharSet; ReplaceWith : Char) :Str; Func DomainOfEMail( const EMailAddress :Str) :Str; Func IPToHexIP( const IP :Str) :Str; Proc CmdLineToStrings( S : Ansistr; const List : TStrings); BASE2','String').SetString( '01; ConstantN('BASE10','String').SetString(0123456789; ConstantN('BASE16','String').SetString(0123456789ABCDEF; ConstantN('BASE36','String').SetString(0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ; ConstantN('BASE62','String').SetString(0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz; Func BaseConvert( Number, FromDigits, ToDigits :Str) :Str; Func ValidXmlName( AName : PChar; ASize : Int) :Bool;; Func ValidXmlName1( const AName :Str) :Bool;; Func EncodeXmlAttrValue( const AStr : Ansistr) : Ansistr;; Proc EncodeXmlAttrValue3(ABuff:PChar;ABuffSize:Int;var AStr:AnsiStr;var ALen,AOffset:Int); Proc EncodeXmlAttrValue4(const ASource:Str;var ADest:str;var ALen,AOffset:Int); Func EncodeXmlString5( const AStr :Str) :Str;; Proc EncodeXmlString6(ABuff:PChar;ABuffSize:Int;var AStr:Ansistr;var ALen,AOffset:Int; Proc EncodeXmlComment(const ASource:Ansistr;var ADest:Ansistr;var ALen,AOffset:Int); Func HasEncoding( const AStr : Ansistr) :Bool; Func DecodeXmlAttrValue( const AStr :Str) :Str; Proc ReallocateString(var AString:Ansistr; var ALen : Int; AReqLen : Int); Proc AttrFillXMLString(AnAttr:IAttribute;var aString:Ansistr;var aOffset,aLen : Int); Proc FillXMLString(ANode:INode;var AStr:Str;var AOffset,ALen:Int;ASiblig:INode;ALevel:Int) Func NodeToXML( ANode : INode) :Str; Proc XMLSaveToFile( ANode : INode; const AFileName :Str); Func XMLLoadFromFile( const AFileName :Str) : INode; Func Hashmax( const ASource : Ansistr) :Card; ConstantN('GXMLIndentSpaces','Int').SetInt( 2); //ConstantN('GXMLMultiLineAttributes','Boolean')BoolToStr( True); GXMLMultiLineAttributeThreshold','Int').SetInt( 7); end; Proc SIRegister_MaxDOMDictionary(CL: TPSPascalCompiler); begin SIRegister_IDictionary(CL); SIRegister_TDictionary(CL); Func HashFast( const AKey :Str) :Card; Func HashCarlos( const AKey :Str) :Card; Func BorlandHashOf( const AKey :Str) :Card; Func HashSumOfChars( const AKey :Str) :Card; end; Proc SIRegister_MaxDOM(CL: TPSPascalCompiler); begin TypeS('TNodeType', '( ntElement, ntText, ntCDATA, ntComment ); Interface(CL.FindInterface('IUNKNOWN'),INode, 'INode; Interface(CL.FindInterface('IUNKNOWN'),IAttribute, 'IAttribute; Interface(CL.FindInterface('IUNKNOWN'),IAttributeCollection, 'IAttributeCollection; Interface(CL.FindInterface('IUNKNOWN'),INodeCollection, 'INodeCollection; SIRegister_INode(CL); SIRegister_IAttribute(CL); SIRegister_IAttributeCollection(CL); SIRegister_INodeCollection(CL); Func NodeCreate( const ANodeName :Str; ANodeType : TNodeType) : INode; SIRegister_TAttribute(CL); TypeS(TNodes', 'array of INode; TypeS(TAttributes2', 'array of IAttribute; TypeS(THashedAttributes', 'record Attributes : TAttributes2; AttrCount ' +': Int; AttrCapacity : Int; end; TypeS(TAttrHashTable', 'array of THashedAttributes; SIRegister_TNode(CL); //TypeS('TNodeClass', 'class of TNode; //TypeS('TAttributeClass', 'class of TAttribute; Func PointerToStr( P : ___Pointer) :Str; Func StrToPointer( const S :Str) : ___Pointer; Func INodeToStr( ANode : INode) :Str; Func StrToINode( const S :Str) : INode; Func CompareByNodeName( N1, N2 : INode) : Int; Func CompareByNameAttr( N1, N2 : INode) : Int; end; Proc SIRegister_cASN1(CL: TPSPascalCompiler); begin ClassN(CL.FindClass('TOBJECT'),'EASN1; 'ASN1_ID_END_OF_CONTENT','LongWord').SetUInt( $00); ConstantN('ASN1_ID_BOOLEAN','LongWord').SetUInt( $01); 'ASN1_ID_Int','LongWord').SetUInt( $02); 'ASN1_ID_BIT_STRING','LongWord').SetUInt( $03); 'ASN1_ID_OCTET_STRING','LongWord').SetUInt( $04); 'ASN1_ID_NULL','LongWord').SetUInt( $05); 'ASN1_ID_OBJECT_IDENTIFIER','LongWord').SetUInt( $06); 'ASN1_ID_OBJECT_DESCRIPTOR','LongWord').SetUInt( $07); 'ASN1_ID_EXTERNAL','LongWord').SetUInt( $08); 'ASN1_ID_REAL','LongWord').SetUInt( $09); 'ASN1_ID_ENUMERATED','LongWord').SetUInt( $0A); 'ASN1_ID_EMBEDDED_PDV','LongWord').SetUInt( $0B); 'ASN1_ID_UTF8STRING','LongWord').SetUInt( $0C); 'ASN1_ID_RELATIVE_OID','LongWord').SetUInt( $0D); 'ASN1_ID_NUMERICSTRING','LongWord').SetUInt( $12); 'ASN1_ID_PRINTABLESTRING','LongWord').SetUInt( $13); 'ASN1_ID_T61STRING','LongWord').SetUInt( $14); 'ASN1_ID_VIDEOTEXSTRING','LongWord').SetUInt( $15); 'ASN1_ID_IA5STRING','LongWord').SetUInt( $16); 'ASN1_ID_UTCTIME','LongWord').SetUInt( $17); 'ASN1_ID_GENERALIZEDTIME','LongWord').SetUInt( $18); 'ASN1_ID_GRAPHICSTRING','LongWord').SetUInt( $19); 'ASN1_ID_VISIBLESTRING','LongWord').SetUInt( $1A); 'ASN1_ID_GENERALSTRING','LongWord').SetUInt( $1B); 'ASN1_ID_UNIVERSALSTRING','LongWord').SetUInt( $1C); 'ASN1_ID_CHARACTERSTRING','LongWord').SetUInt( $1D); 'ASN1_ID_BMPSTRING','LongWord').SetUInt( $1E); 'ASN1_ID_SEQUENCE','LongWord').SetUInt( $30); 'ASN1_ID_SET','LongWord').SetUInt( $31); 'ASN1_ID_CONSTRUCTED','LongWord').SetUInt( $20); 'ASN1_ID_APPLICATION','LongWord').SetUInt( $40); 'ASN1_ID_CONTEXT_SPECIFIC','LongWord').SetUInt( $80); 'ASN1_ID_PRIVATE','LongWord').SetUInt( $C0); TASN1ObjectIdentifier', 'array of Int; TASN1ParseProc', 'procedure(const TypeID:Byte; const DataBuf:Str; const DataSize: Int; const ObjectIdx: Int; const CallerData: Int);; {TASN1ParseProc = Proc (const TypeID: Byte; const DataBuf; const DataSize: Int; const ObjectIdx: Int; const CallerData: Int); } Proc ASN1OIDInit( var A : TASN1ObjectIdentifier; const B : array of Int); Func ASN1OIDToStr( const A : TASN1ObjectIdentifier) : Ansistr; Func ASN1OIDEqual(const A:TASN1ObjectIdentifier; const B : array of Int) :Bool; Func ASN1EncodeLength( const Len : Int) : Ansistr; Func ASN1EncodeObj( const TypeID : Byte; const Data : Ansistr) : Ansistr; Func ANS1EncodeEndOfContent : Ansistr; Func ASN1EncodeNull : Ansistr; Func ASN1EncodeBoolean( const A :Bool) : Ansistr; Func ASN1EncodeDataInt8( const A : ShortInt) : Ansistr; Func ASN1EncodeDataInt16( const A : SmallInt) : Ansistr; Func ASN1EncodeDataInt24( const A : LongInt) : Ansistr; Func ASN1EncodeDataInt32( const A : LongInt) : Ansistr; Func ASN1EncodeDataInt64( const A : Int64) : Ansistr; Func ASN1EncodeInt8( const A : ShortInt) : Ansistr; Func ASN1EncodeInt16( const A : SmallInt) : Ansistr; Func ASN1EncodeInt24( const A : LongInt) : Ansistr; Func ASN1EncodeInt32( const A : LongInt) : Ansistr; Func ASN1EncodeInt64( const A : Int64) : Ansistr; Func ASN1EncodeIntBuf( const A :Str; const Size : Int) : Ansistr; Func ASN1EncodeIntBufStr( const A : Ansistr) : Ansistr; Func ASN1EncodeEnumerated( const A : Int64) : Ansistr; Func ASN1EncodeBitString(const A: Ansistr; const UnusedBits : Byte): Ansistr; Func ASN1EncodeOctetString( const A : Ansistr) : Ansistr; Func ASN1EncodeInt32AsOctetString( const A : LongInt) : Ansistr; Func ASN1EncodeUTF8String( const A : Ansistr) : Ansistr; Func ASN1EncodeIA5String( const A : Ansistr) : Ansistr; Func ASN1EncodeVisibleString( const A : Ansistr) : Ansistr; Func ASN1EncodeNumericString( const A : Ansistr) : Ansistr; Func ASN1EncodePrintableString( const A : Ansistr) : Ansistr; Func ASN1EncodeTeletexString( const A : Ansistr) : Ansistr; Func ASN1EncodeUniversalString( const A : WideString) : Ansistr; Func ASN1EncodeBMPString( const A : WideString) : Ansistr; Func ASN1EncodeUTCTime( const A : TDateTime) : Ansistr; Func ASN1EncodeGeneralizedTime( const A : TDateTime) : Ansistr; Func ASN1EncodeOID( const OID : array of Int) : Ansistr; Func ASN1EncodeSequence( const A : Ansistr) : Ansistr; Func ASN1EncodeSet( const A : Ansistr) : Ansistr; Func ASN1EncodeContextSpecific( const I : Int; const A : Ansistr) : Ansistr; Func ASN1DecodeLength(const Buf:Str;const Size:Int;var Len:Int) : Int; Func ASN1DecodeObjHeader(const Buf:str;const Size:Int;var TypeID:Byte;var Len:Int;var Data:str):Int; Func ASN1TypeIsConstructedType( const TypeID : Byte) :Bool; Func ASN1TypeIsContextSpecific( const TypeID : Byte; var Idx : Int) :Bool; Func ASN1DecodeDataBoolean(const Buf:str;const Size:Int; var A:Boolean) : Int; Func ASN1DecodeDataInt32(const Buf:str;const Size:Int;var A:LongInt): Int; Func ASN1DecodeDataInt64(const Buf:str; const Size:Int; var A:Int64): Int; Func ASN1DecodeDataIntBuf(const Buf:str; const Size:Int;var A: Ansistr): Int; Func ASN1DecodeDataBitString(const Buf:str; const Size:Int;var A:Ansistr;var UnusedBits:Byte): Int; Func ASN1DecodeDataRawAnsistr(const Buf:str;const Size:Int;var A:Ansistr):Int; Func ASN1DecodeDataOctetString(const Buf:str;const Size:Int;var A:Ansistr):Int; Func ASN1DecodeDataIA5String(const Buf:str;const Size:Int;var A:Ansistr): Int; Func ASN1DecodeDataVisibleString(const Buf:str;const Size:Int;var A:Ansistr):Int; Func ASN1DecodeDataNumericString(const Buf:str;const Size:Int;var A:Ansistr):Int; Func ASN1DecodeDataPrintableString(const Buf:str;const Size:Int;var A:Ansistr):Int; Func ASN1DecodeDataTeletexString(const Buf:str;const Size:Int; var A:Ansistr):Int; Func ASN1DecodeDataUTF8String(const Buf:str; const Size:Int;var A:Ansistr):Int; Func ASN1DecodeDataUniversalString(const Buf:str;const Size:Int;var A:Ansistr):Int; Func ASN1DecodeDataBMPString(const Buf:Str; const Size:Int; var A: Ansistr):Int; Func ASN1DecodeDataOID(const Buf:str;const Size:Int;var A:TASN1ObjectIdentifier):Int; Func ASN1DecodeDataUTCTime(const Buf:str; const Size:Int;var A TDateTime): Int; Func ASN1DecodeDataGeneralizedTime(const Buf:str;const Size:Int;var A:TDateTime):Int; Func ASN1Parse(const Buf:str;const Size:Int;const ParseProc:TASN1ParseProc;const CallerData:Int):Int; Func ASN1DecodeBoolean(const TypeID:Byte;const DataBuf:str;const DataSize:Int;var A:Bool):Int; Func ASN1DecodeInt32( const TypeID:Byte;const DataBuf:str;const DataSize: Int; var A : LongInt): Int; Func ASN1DecodeInt64(const TypeID:Byte;const DatBuf:str;const DataSize:Int;var A:Int64):Int; Func ASN1DecodeIntBuf(const TypeID:Byte;const DataBuf:Str; const DataSize: Int;var A : Ansistr):Int; Func ASN1DecodeBitString(const TypeID:Byte;const DataBuf:str; const DataSize:Int;var A:Ansistr;var UnusedBits:Byte):Int; Func ASN1DecodeString(const TypeID:Byte;const DataBuf:str;const DataSize:Int;var A:Ansistr):Int; Func ASN1DecodeOID(const TypeID:Byte;const DataBuf:str;const DataSize:Int;var A:TASN1ObjectIdentifier):Int; Func ASN1DecodeTime const TypeID:Byte;const DataBuf:str; const DataSize:Int;var A:TDateTime): Int; Proc SelfTestASN1; end; Proc SIRegister_cX509Certificate(CL: TPSPascalCompiler); begin ClassN(CL.FindClass('TOBJECT'),'EX509; TypeS(TX509AttributeType', 'TASN1ObjectIdentifier; TypeS(TX509AttributeValue', 'Ansistr; TypeS(TX509AttributeTypeAndValue', 'record AType : TX509AttributeType;' +' Value : TX509AttributeValue; _Decoded :Bool; end; //TypeS('PX509AttributeTypeAndValue', '^TX509AttributeTypeAndValue // wil not work; Proc InitX509AttributeTypeAndValue(var A : TX509AttributeTypeAndValue; const AType : TX509AttributeType; const Value : TX509AttributeValue); Proc InitX509AtName( var A : TX509AttributeTypeAndValue; const B : Ansistr); Proc InitX509AtSurname( var A : TX509AttributeTypeAndValue; const B : Ansistr); Proc InitX509AtGivenName( var A : TX509AttributeTypeAndValue; const B : Ansistr); Proc InitX509AtInitials( var A : TX509AttributeTypeAndValue; const B : Ansistr); Proc InitX509AtGenerationQuailifier(var A:TX509AttributeTypeAndValue; const B:Ansistr); Proc InitX509AtCommonName(var A: TX509AttributeTypeAndValue; const B : Ansistr); Proc InitX509AtLocailityName(var A:TX509AttributeTypeAndValue;const B: Ansistr); Proc InitX509AtStateOrProvince(var A:TX509AttributeTypeAndValue;const B:Ansistr); Proc InitX509AtOriganizationName(var A: TX509AttributeTypeAndValue; const B:Ansistr); Proc InitX509AtOriganizationUnitName(var A:TX509AttributeTypeAndValue;const B:Ansistr); Proc InitX509AtTitle( var A : TX509AttributeTypeAndValue; const B : Ansistr); Proc InitX509AtDnQualifier(var A: TX509AttributeTypeAndValue; const B: Ansistr); Proc InitX509AtCountryName(var A :TX509AttributeTypeAndValue; const B : Ansistr); Proc InitX509AtEmailAddress(var A: TX509AttributeTypeAndValue; const B: Ansistr); Func EncodeX509AttributeTypeAndValue(const A:TX509AttributeTypeAndValue):Ansistr; Func DecodeX509AttributeTypeAndValue(const TypeID Byte;const Buf:str; const Size:Int;var A:TX509AttributeTypeAndValue): Int; TypeS('TX509RelativeDistinguishedName', 'array of TX509AttributeTypeAndValue; // TypeS('PX509RelativeDistinguishedName','^TX509RelativeDistinguishedName //will not work; Proc AppendX509RelativeDistinguishedName( var A : TX509RelativeDistinguishedName; const V : TX509AttributeTypeAndValue); Func EncodeX509RelativeDistinguishedName(const A:TX509RelativeDistinguishedName):AnsiStr; Func DecodeX509RelativeDistinguishedName(const TypeID:Byte; const Buf:Str; const Size:Int;var A:TX509RelativeDistinguishedName): Int; TypeS('TX509RDNSequence', 'array of TX509RelativeDistinguishedName; //TypeS('PX509RDNSequence', '^TX509RDNSequence // will not work; TypeS('TX509Name', 'TX509RDNSequence; Proc AppendX509RDNSequence(var A:TX509RDNSequence;const B:TX509RelativeDistinguishedName); Func EncodeX509RDNSequence( const A : TX509RDNSequence) : Ansistr; Func DecodeX509RDNSequence(const TypeID:Byte;const Buf:str;const Size:Int;var A:TX509RDNSequence):Int; Func EncodeX509Name( const A : TX509Name) : Ansistr; Func DecodeX509Name(const TypeID:Byte;const Buf:str;const Size:Int;var A:TX509Name):Int; 'CurrentX509Version','string').SetString(' X509v3; type TX509Version = ( X509v1 = 0, X509v2 = 1, X509v3 = 2, X509vUndefined = $FF // implementation defined value ); TX509Version', '(X509v1, X509v2,X509v3, X509vUndefined); type TX509GeneralNameType = ( gnOtherName = 0, gnRFC822Name = 1, gnDNSName = 2, gnX400Address = 3, gnDirectoryName = 4, gnEDIPartyName = 5, gnUniformResourceIdentifier = 6, gnIPAddress = 7, gnRegisteredID = 8); TypeS(TX509GeneralNameType',(gnOtherName,gnRFC822Name,gnDNSName,gnX400Address,gnDirectoryName,gnEDIPartyName,gnUniformResourceIdentifier,gnIPAddress,gnRegisteredID); Proc InitX509Version( var A : TX509Version); Func EncodeX509Version( const A : TX509Version) : Ansistr; Func DecodeX509Version(const TypeID:Byte;const Buf:str;const Size:Int;var A: TX509Version):Int; TypeS(TX509Time', TDateTime; Func EncodeX509Time( const A : TX509Time) : Ansistr; Func DecodeX509Time(const TypeID:Byte;const Buf:str;const Size:Int;var A:TX509Time):Int; TX509Validity','record NotBefore:TX509Time; NotAfter:TX509Time; _Decoded:Bool; end; // TypeS('PX509Validity', '^TX509Validity // will not work; Func EncodeX509Validity( const A : TX509Validity) : Ansistr; Func DecodeX509Validity(const TypeID:Byte;const Buf:Str; const Size:Int; var A: TX509Validity): Int; TypeS('TX509DHValidationParms','record Seed: Ansistr; PgenCounter : Int; end; //TypeS('PX509DHValidationParms', '^TX509DHValidationParms // will not work; TypeS('TX509DHDomainParameters', record P : Ansistr; G : Ansistr' +; Q : Ansistr; J : Ansistr; ValidationParms : TX509DHValidationParms; end; // TypeS('PX509DHDomainParameters', '^TX509DHDomainParameters // will not work; Func EncodeX509DHValidationParms( const A : TX509DHValidationParms) : Ansistr; Func DecodeX509DHValidationParms(const TypeID:Byte;const Buf:str;const Size:Int;var A:TX509DHValidationParms): Int; Func EncodeX509DHDomainParameters( const A: TX509DHDomainParameters) : Ansistr; Func DecodeX509DHDomainParameters(const TypeID:Byte;const Buf:str;const Size:Int;var A:TX509DHDomainParameters):Int; TypeS('TX509DSSParms', 'record P : Ansistr; Q : Ansistr; G : Ansistr; end; //TypeS('PX509DSSParms', '^TX509DSSParms // will not work; Func EncodeX509DSSParms( const A : TX509DSSParms) : Ansistr; Func DecodeX509DSSParms(const TypeID:Byte;const Buf:str;const Size:Int;var A:TX509DSSParms):Int; TypeS('TX509DSSSigValue', 'record R : Ansistr; S : Ansistr; end; //TypeS('PX509DSSSigValue', '^TX509DSSSigValue // will not work; Func EncodeX509DSSSigValue( const A : TX509DSSSigValue) : Ansistr; Func DecodeX509DSSSigValue(const TypeID:Byte; const Buf:Str; const Size:Int; var A:TX509DSSSigValue):Int; TypeS(TX509AlgorithmIdentifier','record Algorithm : TASN1ObjectIdenti' +fier; Parameters : Ansistr; _Decoded :Bool; end; //TypeS('PX509AlgorithmIdentifier', '^TX509AlgorithmIdentifier // will not work; Proc InitX509AlgorithmIdentifier(var A:TX509AlgorithmIdentifier; const Algorithm : array of Int; const Parameters : Ansistr); Proc InitX509AlgorithmIdentifierDSA_SHA1(var A:TX509AlgorithmIdentifier;const Params:AnsiStr; Func EncodeX509AlgorithmIdentifier( const A : TX509AlgorithmIdentifier) : Ansistr; Func DecodeX509AlgorithmIdentifier(const TypeID:Byte; const Buf:str; const Size:Int; var A:TX509AlgorithmIdentifier): Int; TypeS(TX509RSAPublicKey','record Modulus:Ansistr;PublicExponent:Ansistr; end; //TypeS('PX509RSAPublicKey', '^TX509RSAPublicKey // will not work; Func EncodeX509RSAPublicKey( const A : TX509RSAPublicKey) : Ansistr; Func DecodeX509RSAPublicKey(const TypeID:Byte;const Buf:str;const Size:Int;var A:TX509RSAPublicKey): Int; Func ParseX509RSAPublicKey(const Buf:str;const Size:Int;var A:TX509RSAPublicKey):Int); TypeS('TX509DHPublicKey', 'Ansistr; Func EncodeX509DHPublicKey( const A : TX509DHPublicKey) : Ansistr; TypeS(TX509DSAPublicKey', 'Ansistr; Func EncodeX509DSAPublicKey( const A : TX509DSAPublicKey) : Ansistr; TypeS(TX509SubjectPublicKeyInfo', 'record Algorithm : TX509AlgorithmId' +entifier; SubjectPublicKey : Ansistr; _Decoded :Bool; end; //TypeS('PX509SubjectPublicKeyInfo', '^TX509SubjectPublicKeyInfo // will not work; Proc InitX509SubjectPublicKeyInfoDSA(var A:TX509SubjectPublicKeyInfo;const B:TX509DSSParms;const PublicKey: Ansistr); Func EncodeX509SubjectPublicKeyInfo( const A: TX509SubjectPublicKeyInfo) : Ansistr; Func DecodeX509SubjectPublicKeyInfo(const TypeID:Byte;const Buf:str;const Size:Int;var A TX509SubjectPublicKeyInfo): Int; Func ParseX509SubjectPublicKeyInfo(const Buf:str;const Size:Int;var A:TX509SubjectPublicKeyInfo):Int; Func EncodeX509GeneralName(const A:TX509GeneralNameType;const EncodedName:Ansistr):Ansistr; Func DecodeX509GeneralName(const TypeID:Byte; const Buf:str; const Size:Int;var A:TX509GeneralNameType;var B Ansistr): Int; TX509GeneralNames','array of record NameType:TX509GeneralNameType; Name : Ansistr; end; //TypeS('PX509GeneralNames', '^TX509GeneralNames // will not work; Func EncodeX509GeneralNames( const A : TX509GeneralNames) : Ansistr; Func DecodeX509GeneralNames(const TypeID:Byte;const Buf:str; const Size:Int; var A:TX509GeneralNames):Int; TX509BasicConstraints,record CA:Bool;PathLenConstraint:Ansistr;_DecodedCA:Boolean;end //TypeS('PX509BasicConstraints', '^TX509BasicConstraints // will not work; Func EncodeX509BasicConstraints( const A : TX509BasicConstraints) : Ansistr; Func DecodeX509BasicConstraints(const TypeID:Byte;const Buf:str;const Size:Int;var A:TX509BasicConstraints): Int; TypeS(TX509AuthorityKeyIdentifier', 'record KeyIdentifier : Ansistr' +; AuthorityCertIssuer : TX509GeneralNames; AuthorityCertSerialNumber : Int64; end; //TypeS('PX509AuthorityKeyIdentifier','^TX509AuthorityKeyIdentifier //will not work; Func EncodeX509AuthorityKeyIdentifier(const A:TX509AuthorityKeyIdentifier): Ansistr; TypeS(TX509SubjectKeyIdentifier', 'Ansistr; TypeS('TX509KeyUsage', 'Ansistr; TypeS(TX509Extension', 'record ExtnID : TASN1ObjectIdentifier; Critica' +l :Bool; ExtnValue: Ansistr;_DecodedCritical:Bool; _Decoded :Bool; end; //TypeS('PX509Extension', '^TX509Extension // will not work; Proc InitX509ExtAuthorityKeyIdentifier(var A: TX509Extension; const B TX509AuthorityKeyIdentifier); Proc InitX509ExtSubjectKeyIdentifier(var A:TX509Extension; const B:TX509SubjectKeyIdentifier); Proc InitX509ExtBascConstraints(var A:TX509Extension;const B:TX509BasicConstraints); Func EncodeX509Extension( const A : TX509Extension) : Ansistr; Func DecodeX509Extension(const TypeID:Byte;const Buf:str;const Size:Int;var A:TX509Extension):Int; TypeS('TX509Extensions', 'array of TX509Extension; //TypeS('PX509Extensions', '^TX509Extensions // will not work; Proc AppendX509Extensions( var A : TX509Extensions; const B : TX509Extension); Func EncodeX509Extensions( const A : TX509Extensions) : Ansistr; Func DecodeX509Extensions( const TypeID: Byte; const Buf:Str;const Size: Int;var A: TX509Extensions):Int; Func NormaliseX509IntKeyBuf( var KeyBuf : Ansistr) : Int; TypeS(TX509TBSCertificate', 'record Version : TX509Version; SerialNumb' +er : Ansistr; Signature : TX509AlgorithmIdentifier; Issuer : TX509Name;' + Validity : TX509Validity; Subject : TX509Name; SubjectPublicKeyInfo : TX5' +09SubjectPublicKeyInfo; IssuerUniqueID : Ansistr; SubjectUniqueID : Ans' +iString; Extensions: TX509Extensions;_DecodedVersion :Bool; _Decoded:Bool; end; // TypeS('PX509TBSCertificate', '^TX509TBSCertificate // will not work; Func EncodeX509TBSCertificate( const A : TX509TBSCertificate) : Ansistr; Func DecodeX509TBSCertificate(const TypeID:Byte;const Buf:str;const Size:Int;var A:TX509TBSCertificate):Int; TypeS('TX509Certificate', record TBSCertificate : TX509TBSCertificate;' + SignatureAlgorithm: TX509AlgorithmIdentifier;SignatureValue:Ansistr; _Decoded:Bool;end; // TypeS('PX509Certificate', '^TX509Certificate // will not work; TypeS('TX509CertificateArray', 'array of TX509Certificate; Proc InitX509Certificate( var A : TX509Certificate); Func EncodeX509Certificate( const A : TX509Certificate) : Ansistr; Func DecodeX509Certificate(const TypeID:Byte; const Buf:Str;const Size: Int; var A:TX509Certificate):Int; Func ParseX509Certificate(const Buf:str;const Size:Int;var A:TX509Certificate):Int; Proc ParseX509CertificateStr( const BufStr : Ansistr; var A : TX509Certificate); Proc ParseX509CertificatePEM( const BufStr : Ansistr; var A : TX509Certificate); TypeS('TX509RSAPrivateKey', record Version : Int; Modulus : AnsiSt' +ring; PublicExponent : Ansistr; PrivateExponent : Ansistr; Prime1 : ' +Ansistr; Prime2 Ansistr;Exponent1:Ansistr;Exponent2:Ansistr;CRTCoefficient:Ansistr; _Decoded:Bool; end; // TypeS('PX509RSAPrivateKey', '^TX509RSAPrivateKey // will not work; Func EncodeX509RSAPrivateKey( const A : TX509RSAPrivateKey) : Ansistr; Func DecodeX509RSAPrivateKey(const TypeID:Byte;const Buf:str;const Size:Int;var A:TX509RSAPrivateKey):Int; Func ParseX509RSAPrivateKey(const Buf:str;const Size:Int;var A:TX509RSAPrivateKey):Int; Proc ParseX509RSAPrivateKeyStr(const BufStr: Ansistr;var A: TX509RSAPrivateKey); Proc ParseX509RSAPrivateKeyPEM(const BufStr: Ansistr;var A: TX509RSAPrivateKey); Proc SelfTestX509; end; Proc SIRegister_FileStreamW(CL: TPSPascalCompiler); begin SIRegister_TFileStreamW(CL); {TFormFadeSettings = record Form: TForm; Step: ShortInt; DisableBlendOnFinish:Bool; Callback: TNotifyEvent; MinAlpha, MaxAlpha: Byte; end;} TFormFadeSettings','record Form:TForm;Step:ShortInt;DisableBlendOnFinish:Bool;Callback:TNotifyEvent; MinAlpha,MaxAlpha:Byte;end; ConstantN('fmForcePath','LongWord').SetUInt( $80000000); Func LoadUnicodeFromStream( S : TStream; AsIsAnsi :Bool) : WideString; Func GetClipboardText: WideString;; Proc CopyToClipboard(Str: WideString);; Func CurrentWinUser: WideString;; Func GetTempPathW: WideString;; Func GetTempFileNameW: WideString;; Func GetDesktopFolderW: WideString;; Func IsWritable(const FileName: WideString):Bool;; Func SysErrorMessageW(ErrorCode: Int): WideString;; Func FormatExceptionInfo: WideString;; Proc ShowExceptionW(Message: WideString);; Proc ChangeWindowStyle(const Form: HWND; Style: DWord; AddIt:Bool);; Func SetNtfsCompressionW(const FileName: WideString; Level: Word):Bool;; Func WriteWS(const Stream: TStream; const Str: WideString): Word;; Proc FormFadeIn(Form: TForm; Step: ShortInt);; Proc FormFadeOut(Form: TForm; Step: ShortInt);; Proc FormFadeOutAndWait(Form: TForm; Step: ShortInt);; Func BrowseForFolderw(const Caption,DefaultPath:WideStr;const OwnerWindow:HWND):WideStr; Proc FormFade(const Settings: TFormFadeSettings);; Func HashOfString(const Str: WideString): DWord; Func ComparePoints(const First, Second: TPoint): ShortInt; end; Proc SIRegister_InetUtils(CL: TPSPascalCompiler); begin TypeS(TNetUtilsSettings', 'record UserAgent :Str; ProxyURL : Strin' +g; OpenURLFlags: DWord; TrafficCounter:Dword;UploadedCounter:DWord;ReadBufferSize:DWord;end; TRawCharset', 'set of Char; TInetHeaders', 'array of String; SIRegister_EInet(CL); TInetDownloadCallback', 'Func ( Downloaded, TotalSize : DWord) :Bool; Func InetDownloadTo(const DestFile:WideString;const URL:str;Callback:TInetDownloadCallback):Bool; Func InetDownloadTo1(const DestFile:WideString;const URL:Str;const Settings: TNetUtilsSettings;Callback:TInetDownloadCallback):Bool;; Func InetDownload(const URL:str;Dest:TStream;Callback:TInetDownloadCallback):Bool; Func InetDownload3(const URL:Str; Dest:TStream; const Settings:TNetUtilsSettings;Callback : TInetDownloadCallback) :Bool;; Func InetBufferedReadFrom(Handle:HInternet;Dest:TStream;const Settings:TNetUtilsSettings;Callback:TInetDownloadCallback):DWord;; Func InetBufferedReadFrom5( Handle : HInternet; const Settings : TNetUtilsSettings; Callback : TInetDownloadCallback) :Str;; Func IsResponseStatusOK( Handle : HInternet) :Bool; TMultipartItem', 'record Headers : TInetHeaders; Data : TStream; end; { TMaskMatchInfo = record Matched:Bool; StrPos: Word; MatchLength: Word; end;} TMaskMatchInfo', 'record Matched:Bool; StrPos: Word; MatchLength: Word; end; TMultipartItems', 'array of TMultipartItem; TUploadFile','record Name:str; SourceFileName : WideString; Data : TStream; end; TUploadFiles', 'array of TUploadFile; Func FindBoundaryFor( const Items : TMultipartItems) :Str; Func RandomBoundary :Str; Func GenerateMultipartFormFrom(const Items:TMultipartItems;out ExtraHeadrs:TInetHeaders):Str Func InetUploadTo( const ToURL:Str;const Headers:TInetHeaders;const Items: TMultipartItems; const Settings:TNetUtilsSettings) :Str;; Func InetUploadTo7(const ToURL:Str;const Items:TMultipartItems;const Settings:TNetUtilsSettings):str; Func InetUploadTo8(const ToURL:Str; const Items: TMultipartItems) :Str;; Func InetUploadStreamsTo(const ToURL:str;const Settings:TNetUtilsSettings;Streams:TUploadFiles):str; Func InetUploadStreamsTo10(const ToURL:str;const Streams:TUploadFiles):str; Func InetUploadFileTo(const ToURL:str;const Settings:TNetUtilsSettings;const ItemName:str;const FilePath:WideString):str; Func InetUploadFileTo12(const ToURL:Str;const ItemName:Str;const FilePath:WideStr):str; Func InetUploadFilesTo(const ToURL:str;const Settings:TNetUtilsSettings;const Files:array of const):str; Func InetUploadFilesTo14(const ToURL:Str;const Files: array of const):str; Func AppendQueryTo(const URL:Str; const Arguments: array of const):str; Func HasQueryPart( const URL :Str) :Bool; Func BuildQueryFrom( const Arguments : array of const) :Str; Func BuildURLW(Protocol,Host:Str;Port:Word;Path,Script:Str;const Arguments:array of const):Str Func CustomEncode(const Str: WideString; const RawChars:TRawCharset):Str; Func EncodeURI( const Str : WideString) :Str; Func EncodeURIComponent( const Str : WideString) :Str; Proc InetGetLastError( out ErrorCode : DWord; out ErrorMessage :Str); Func InetGetLastErrorCode : DWord; Func InetGetLastErrorMsg :Str; Func AbsoluteURLFrom( URL, BaseURL, BasePath :Str) :Str; Proc SplitURL( const URL :Str; out Domain, Path :Str); Func DomainOf( const URL :Str) :Str; Func PathFromURL( const URL :Str) :Str; Func InetHeaders( const NameValues : array of const) : TInetHeaders; Func NoInetHeaders : TInetHeaders; Func JoinHeaders( const Headers : TInetHeaders) :Str; ConstantN('InetHeaderEOLN','String').SetString( #13#10); Proc SetDefaultNetUtilsSettings; Func TotalDownTrafficThroughNetUtils : DWord; TDBDraw', 'record DisplayDC : HDC; MemDC : HDC; MemBitmap : HBIT' +'MAP; OldBitmap : HBITMAP; OldFont : HFONT; OldPen : HPEN; end; TPieceFormatData', 'record Position : TMaskMatchInfo; Color : TColor; end; TFormatData', 'array of TPieceFormatData; TDrawFormattedTextSettings', 'record Text : WideString; FormatDa' +'ta : TFormatData; Canvas : TCanvas; WrapText :Bool; DestPos : TPoint; ' +'MaxWidth : Word; CharSpacing : Word; end; TWrapTextSettings', 'record DC : HDC; Str : WideString; Delimite' +r :WideString; MaxWidth:Word; LeftMargin:Word; CharSpacing:Word;LastChar: TSize; end; Func TextSize( const DC : HDC; const Str : WideString) : TSize; Func TextWidthW2( const DC : HDC; const Str : WideString) : Int; Func TextHeightW2( const DC : HDC; const Str : WideString) : Int; Func GetLineHeightOf( const Font : HFONT) : Word; Func TextWidthEx(const DC:HDC;const Str:WideString; const CharSpacing:Word): Int; Func TextHeightEx(const DC:HDC;const Str:WideString; const CharSpacing:Word): Int; Func TextSizeEx(const DC:HDC;const Str:WideString;const CharSpacing:Word):TSize; Func TextWithBreaksSize( Settings : TWrapTextSettings) : TSize;; Func DoubleBufferedDraw(const DisplaySurface:HDC;const BufferSize:TPoint):TDBDraw; Func DoubleBufferedDraw17(const Canvas:TCanvas; const BufferSize:TPoint):TDBDraw; Func DoubleBufferedDraw2(const Canvas:TCanvas; const BufferSize:TPoint):TDBDraw; Proc DrawFormattedText( const Settings : TDrawFormattedTextSettings); Func GetLastCharPos(const DC:HDC;const Str:WideString;const MaxWidth:Word;const ChrSpacing:Word):TSize; Func WrapNonMonospacedText(const DC:HDC;const Str:WideString;const Delimiter:WideString; const MaxWidth:Word;const CharSpacing:Word):WideString;; Func WrapNonMonospacedText2( var Settings : TWrapTextSettings) : WideString;; end; Proc SIRegister_StrConv(CL: TPSPascalCompiler); begin TypeS('TCodepage', 'DWord; ConstantN('CP_INVALID','LongInt').SetInt( TCodepage ( - 1 )); 'CP_ASIS','LongInt').SetInt( TCodepage ( - 2 )); 'CP_ANSI','longint').SetInt(0); 'CP_OEM','longint').SetInt(1); 'CP_SHIFTJIS','LongInt').SetInt( 932); 'CP_LATIN1','LongInt').SetInt( 1250); 'CP_UNICODE','LongInt').SetInt( 1200); 'CP_UTF8','LongInt').SetInt( 65001); Func MinStrConvBufSize( SrcCodepage : TCodepage; Str :Str) : Int;; Func MinStrConvBufSize1( DestCodepage : TCodepage; Wide : WideString) : Int;; Func ToWideString(SrcCodepage: TCodepage; Str :Str; BufSize: Int) : WideString; Func FromWideString(DestCodepage:TCodepage;Str:WideString;BufSize:Int;Fail:Boolean):str; Func CharsetToID( Str :Str) : TCodepage; Func IdToCharset( ID : TCodepage; GetDescription :Bool) :Str; Func CompareStrW(const S1, S2: WideString; Flags: DWord = 0): Int; Func CompareTextW(const S1, S2: WideString): Int; Func MaskMatch(const Str, Mask: WideString):Bool; { Info can have special values in some cases: * Matched = True but MatchLength = 0(and StrPos having random value) - means that Mask consisted of only "*" and thus no particular substring could specified (since it could match anypart ofthe string). } Func MaskMatchInfo(const Str,Mask:WideString;StartingPos:Word = 1):TMaskMatchInfo; //Strutils ------------------------ Func TryStrToIntStrict(const S:Str; out Value:Int; Min:Int):Boolean; Func TryStrToFloatStrict(const S:str; out Value:Single;const FormatSettings:TFormatSettings):Bool; Func TryStrToFloatStrict1(const S:str;out Value:Double;const FormatSettings: TFormatSettings):Bool; Func DetectEolnStyleIn( const Str : WideString) : WideString; Func DetectEolnStyleInANSI( Stream : TStream) : WideString; Func PascalQuote( const Str : WideString) : WideString; Func StrRepeatW( const Str : WideString; Times : Int) : WideString; Func EscapeString(const Str: WideString; CharsToEscape:WideString): WideString; Func UnescapeString(const Str: WideString; CharsToEscape: WideString):WideString; Func BinToHexW( const Buf :Str; Delim :Str) :Str; Func HexToBinW( Text :Str) :Str; Func SoftHexToBin( Text :Str) :Str; Func FormatVersion( Version : Word) : WideString; Func FormatDateW( Date : DWord) : WideString; Func FormatNumber( Number : DWord) : WideString; Func GenericFormat(Number:Single;const Language:TGenericFormatLanguage):WideString; Func FormatInterval( Millisecs : DWord) : WideString; Func FormatSize( Bytes : DWord) : WideString; Func PosLast( const Substr, Str :Str; Start : Word) : Int; Func PosLastW( const Substr, Str : WideString; Start : Word) : Int; Func IsDelimiterW(const Delimiters,S: WideString; Index: Int):Bool; Func RemoveNonWordChars(const Str: WideString;DoNotRemove:WideString):WideString; Func IsQuoteChar( const aChr : Char) :Bool; Func WrapTextW(const Str:WideStr;const Delimiter:WideStr;const MaxWidth:Word):WideStr; Func PadText(const Str:WideStr;const NewLine,PadStr:WideStr;const MaxWidth:Word):WideStr; Func PadTextWithVariableLineLength(const Str:WideString;const NewLine,PadStr:WideString;const LineLengths:array of Int):WideString; Func StrPadW(const Str:WideString; ToLength:Int; PadChar: WideChar) : WideString; Func StrPadLeftW(const Str:WideString;ToLength:Int;PadChar: WideChar): WideString; //Func StrRepeat( const Str : WideString; Times : Int) : WideString; Func StrReverseW( const Str : WideString) : WideString; Func CountSubstr( const Substr, Str : WideString) : Int; Proc DeleteArrayItem( var A : TWideStringArray; Index : Int); Func TrimStringArray( WSArray : TWideStringArray) : TWideStringArray; Func TrimWS( Str : WideString; const Chars : WideString) : WideString; Func TrimLeftWS( Str : WideString; const Chars : WideString) : WideString; //Func TrimRightWS( Str : WideString; const Chars : WideString) : WideString; Func ConsistsOfChars( const Str, Chars : WideString) :Bool; Func UpperCaseW( const Str : WideString) : WideString; Func LowerCaseW( const Str : WideString) : WideString; Func UpperCaseFirst( const Str : WideString) : WideString; Func LowerCaseFirst( const Str : WideString) : WideString; Func StripAccelChars( const Str : WideString) : WideString; end; Proc SIRegister_REXX(CL: TPSPascalCompiler); begin TypeS(TState', '( TrimLeader, StartToken, EndToken ); TStrIndex', 'LongInt; TTokIndex', 'WORD; TStrIndexB', 'BYTE; TTokIndexB', 'BYTE; ClassN(CL.FindClass('TOBJECT'),'EConversionError; Func Abbrev(const information, info:Str; const nMatch: TStrIndex):BOOLEAN; Func AllSame( const s :Str; const c : CHAR) :Bool; Func Capitalize( const s :Str) :Str; Func Center( const s :Str; const sLength : TStrIndex) :Str; Func Left( const s :Str; const sLength : TStrIndex) :Str; Func Right( const s :Str; const sLength : TStrIndex) :Str; Func Copies( const s :Str; const n : TStrIndex) :Str; Func CountChar( const s :Str; const c : CHAR) : TStrIndex; Func DeleteStringrexx( const substring :Str; const s :Str) :Str; Func Overlay( const ovly, target :Str; const n : TStrIndex) :Str; Func Plural(const n: LongInt; const singularform, pluralform :Str) :Str; Func Reverse( const s :Str) :Str; Func Spacerexx( const s :Str; const n : TStrIndex) :Str; Func Striprexx( const s :Str; const option :Str) :Str; Func TestString( const sLength : TStrIndex) :Str; Func Translate( const s, OutTable, InTable :Str) :Str; Func XRange( const start, stop : BYTE) :Str; Func B2X(const b: BYTE) :Str; Func C2D(const s:Str) : DOUBLE; Func C2I(const s:Str) : Int; Func C2L(const s:Str) : LONGINT; Func C2W(const s:Str) : WORD; Func C2X(const s:Str) :Str; Func I2C(const i: Int) :Str; Func I2X(const i: Int) :Str; Func L2C(const i: LONGINT) :Str; Func L2X(const i: LONGINT) :Str; Func D2C(const x: DOUBLE; const d : BYTE):Str; Func W2C(const w: WORD) :Str; Func W2X(const w: WORD) :Str; Func X2W(const s:Str) : WORD; Func JulianDate( const DateTime : TDateTime) : LongInt; Func TimeDifference( const StartTime, StopTime : TDateTime) : DOUBLE; Func Pwr( const x, y : DOUBLE) : DOUBLE; end; Proc SIRegister_StringGridLibrary(CL: TPSPascalCompiler); begin Proc ReadGridFile( var StringGrid : TStringGrid; GridFile :Str); Proc WriteGridFile( var StringGrid : TStringGrid; GridFile :Str); Proc AddBlankRowToTop( var StringGrid : TStringGrid); Proc DeleteSelectedRow( var StringGrid : TStringGrid); Func StringGridSearch(const StringGrid:TStringGrid;const column:Int;const target:STR):Int; Func XLeft( rect : TRect; canvas : TCanvas; s :Str) : Int; Func XCenter( rect : TRect; canvas : TCanvas; s :Str) : Int; Func XRight( rect : TRect; canvas : TCanvas; s :Str) : Int; Func YCenter( rect : TRect; canvas : TCanvas; s :Str) : Int; end; Proc SIRegister_InetUtils2(CL: TPSPascalCompiler); begin Proc AdjustArray(var DWArray:array of DWord;const Delta:Int;MinValueToAdjust:DWord); Func GetDroppedFileNames( const DropID : Int) : TWideStringArray; Func AreBytesEqual( const First, Second : array of Byte) :Bool;; Func AreBytesEqual1( const First, Second, Length : DWord) :Bool;; Func MaskForBytes( const NumberOfBytes : Byte) : DWord; Func IntToBinByte( Int : Byte) :Str;; Func IntToBinWord( Int : Word) :Str;; Func IntToBinDWord( Int : DWord; Digits : Byte; SpaceEach : Byte) :Str;; Func WriteWS( const Stream : TStream; const Str : WideString) : Word; Proc WriteArray( const Stream : TStream; const WSArray : array of WideString);; Proc WriteArray6( const Stream : TStream; const DWArray : array of DWord);; Func ReadWS( const Stream : TStream) : WideString;; Func ReadWS8( const Stream : TStream; out Len : Word) : WideString;; Proc ReadArray( const Stream : TStream; var WSArray : array of WideString);; Proc ReadArray10( const Stream : TStream; var DWArray : array of DWord);; Func ParamStrW( Index : Int) : WideString; Func ParamStrFrom( CmdLine : WideString; Index : Int) : WideString; Func ParamStrEx( CmdLine : WideString; Index : Int; out Pos : Int) : WideString; Proc FindMask( Mask : WideString; Result : TStringsW); Proc FindAll( BasePath, Mask : WideString; Result : TStringsW); Proc FindAllRelative( BasePath, Mask : WideString; Result : TStringsW); Func IsInvalidPathChar( const Char : WideChar) :Bool; Func MakeValidFileNameW(const Str:WideString;const SubstitutionChar:WideChar):WideString; Func ExtractFilePathW( FileName : WideString) : WideString; Func ExtractFileNameW( Path : WideString) : WideString; Func ExpandFileNameW( FileName : WideString) : WideString;; Func ExpandFileName12( FileName, BasePath : WideString) : WideString;; Func CurrentDirectory : WideString; Func ChDirW( const ToPath : WideString) :Bool; Func ExtractFileExtW( FileName : WideString) : WideString; Func ChangeFileExtW2( FileName, Extension : WideString) : WideString; Func IncludeTrailingBackslashW( Path : WideString) : WideString; Func ExcludeTrailingBackslashW( Path : WideString) : WideString; Func IncludeTrailingPathDelimiterW( Path : WideString) : WideString; Func ExcludeTrailingPathDelimiterW( Path : WideString) : WideString; Func IncludeLeadingPathDelimiter( Path : WideString) : WideString; Func ExcludeLeadingPathDelimiter( Path : WideString) : WideString; Func FileInfo( Path : WideString) : TWin32FindData; Func IsDirectoryW( Path : WideString) :Bool; Func FileAgeW( const FileName : WideString) : Int; Func FileExistsW( Path : WideString) :Bool; Func FileSizeW( Path : WideString) : DWord; Func FileSize64( Path : WideString) : Int64; Func DeleteFileW( Path : WideString) :Bool; Func CopyDirectoryW( Source, Destination : WideString) :Bool; Func RemoveDirectoryW( Path : WideString) :Bool; Func ForceDirectoriesW( Path : WideString) :Bool; Func MkDirW( Path : WideString) :Bool; Func GetEnvironmentVariableW( Name : WideString) : WideString; Func ResolveEnvVars(Path:WideString; Callback:TEnvVarResolver;Unescape:Boolean):WideString; Func ResolveEnvVars14( Path : WideString; Unescape :Bool) : WideString;; Func ReadRegValue( Root : DWord; const Path, Key : WideString) : WideString; Func FadeSettings(Form:TForm;Step:ShortInt;Callback:TNotifyEvent):TFormFadeSettings; Func FadeSettings17(Form:TForm;MinAlpha,MaxAlpha:Byte;Step:ShortInt):TFormFadeSettings Func GetSpecialFolderID( const Path :Str) : Int; Func GetSpecialFolderPath2( FolderID : Int) :Str; end; Proc SIRegister_KFunctions(CL: TPSPascalCompiler); begin SHFolderDll','String').SetString( 'SHFolder.dll; ConstantN('KM_BASE','LongInt').SetInt( LM_USER + 1024); ConstantN('KM_LATEUPDATE','LongInt').SetInt( KM_BASE + 1); crHResize','LongInt).SetInt( TCursor ( 101 )); ConstantN('crVResize','LongInt').SetInt( TCursor ( 102 )); crDragHandFree','LongInt).SetInt( TCursor ( 103 )); crDragHandGrip','LongInt).SetInt( TCursor ( 104 )); cCheckBoxFrameSize','LongInt).SetInt( 13); cCR','Char).SetString( #13); cLF','Char).SetString( #10); cTAB','Char).SetString( #9); cSPACE','Char).SetString( #32); cNULL','Char).SetString( #0); {cWordBreaks','LongInt').Value.ts32 := ord(cNULL) or ord(cTAB) or ord(cSPACE); cLineBreaks','LongInt').Value.ts32 := ord(cCR) or ord(cLF); cEllipsis','String').SetString( '...; cEOL','').SetString( cLF); cFirstEOL','').SetString( cLF); cFirstEOL','').SetString( cCR); } TypeS('TLMessage', 'TMessage; TypeS('TKkString', 'Widestring; TypeS('TKkChar', 'char; //TKChar = TUTF8Char; TypeS(LONG_PTR2', 'Longint; TypeS(TKSysCharSet', 'set of AnsiChar; TypeS(TKCurrencyFormat', 'record CurrencyFormat : Byte; CurrencyDecima' +ls : Byte; CurrencyString : TKkString; DecimalSep : Char; ThousandSep : Cha' +r; UseThousandSep :Bool; end; {TypeS('TKAppContext', 'record Application : TApplication; Screen : TScr' +'een; GlobalNameSpace : IReadWriteSync; MainThreadID : LongWord; IntConstLi' +'st : TThreadList; WidgetSet : TWidgetSet; DragManager : TDragManager; end; } // TypeS('PKAppContext', '^TKAppContext // will not work; //TypeS('TKClipboardFormat', 'TClipboardFormat; TypeS('TKClipboardFormat', 'Word; TypeS('TKCellSpan', 'record ColSpan : Int; RowSpan : Int; end; DelphiFunction('Func AdjustDecimalSeparator( const S :Str) :Str; Func AnsistrToString( const Text : Ansistr; CodePage :Card) : TKkString; //Func BinarySearch(AData:str; ACount:Int;KeyPtr:str;ACompareProc:TBSCompareProc;ASortedDown: Bool):Int; Proc CallTrackMouseEvent( Control : TWinControl; var Status :Bool); Proc CenterWindowInWindow( CenteredWnd, BoundWnd : HWnd); Proc CenterWindowOnScreen( CenteredWnd : HWnd); Func CharInSetEx( AChar : AnsiChar; const ASet : TKSysCharSet) :Bool;; Func CharInSetEx1( AChar : WideChar; const ASet : TKSysCharSet) :Bool;; Func ClipboardLoadStreamAs(const AFormat:str;AStream:TStream;var AText:TKkString):Bool; Func ClipboardSaveStreamAs(const AFormat:str;AStream:TStream;const AText:TKkString):Bool; Func CompareInts(I1,I2: Int):Int;//Func CompareWideChars(W1,W2:PWideChar;Locale:Card):Int; // Func CompareChars( S1, S2 : PChar; Locale :Card) : Int; Func CompareWideStrings( W1, W2 : WideString; Locale :Card) : Int; // Func CompareStrings( S1, S2 :Str; Locale :Card) : Int; Proc ConvertTabsToSpaces( var AText : TKkString; ASpacesForTab : Int); Func CreateMultipleDir( const Dir :Str) :Bool; Func DigitToNibble( Digit : AnsiChar; var Nibble : Byte) :Bool; Func DivUp( Dividend, Divisor : Int) : Int; Func DivDown( Dividend, Divisor : Int) : Int; Func EditIsFocused( AMustAllowWrite :Bool) :Bool; Func EditFocusedTextCanCopy :Bool; Func EditFocusedTextCanCut :Bool; Func EditFocusedTextCanDelete :Bool; Func EditFocusedTextCanPaste :Bool; Func EditFocusedTextCanUndo :Bool; Proc EditUndoFocused; Proc EditDeleteFocused; Proc EditCutFocused; Proc EditCopyFocused; Proc EditPasteFocused; Proc EditSelectAllFocused; Proc EnableControls2( AParent : TWinControl; AEnabled, ARecursive :Bool); Proc EnsureLastPathSlash( var APath :Str); Proc Error2( const Msg :Str); Func FillMessage( Msg :Card; WParam : WPARAM; LParam : LPARAM) : TLMessage; Func FormatCurrency( Value : Currency; const AFormat : TKCurrencyFormat) : TKkString; //Func GetAppContext( var Ctx : TKAppContext) :Bool; Func GetAppVersion(const ALibName:str;var MajorVersion,MinorVersion,BuildNumber,RevisionNumber:Word):Bool; Func GetCharCount( const AText : TKkString; AChar : TKkChar) : Int; Func GetControlText( Value : TWinControl) : TKkString; Func GetFormatSettings2 : TFormatSettings; Func GetShiftState : TShiftState; Func IntToAscii( Value : Int64; Digits : Int) :Str; Func IntToBinStr( Value : Int64; Digits : Byte; const Suffix :Str) :Str; Func IntToBCD( Value :Card) :Card; Func IntToDecStr( Value : Int64) :Str; Func IntToHexStr(Value:Int64;Digits:Byte;const Prefix,Suffix:str;UseLowerCase:Bool):str; Func IntToOctStr( Value : Int64) :Str; Func IntToRoman2( Value : Int; AUpperCase :Bool) :Str; Func IntToLatin( Value : Int; AUpperCase :Bool) :Str; Func IntPowerInt( Value : Int64; Exponent : Int) : Int64; Func AsciiToInt( S :Str; Digits : Int) : Int64; Func BCDToInt( Value :Card) :Card; Func BinStrToInt2(S:str; Digits:Byte; Signed :Bool; var Code : Int) : Int64; Func DecStrToInt( S :Str; var Code : Int) : Int64; Func HexStrToInt(S:Str; Digits: Byte; Signed:Boolean; var Code : Int) : Int64; Func OctStrToInt( S :Str; var Code : Int) : Int64; Func KFormat14(const Format:str;const Args:array of const;const AFormatSettings:TFormatSettings):str; Func KFormat15(const Format:WideString;const Args:array of const;const AFormatSettings:TFormatSettings): WideString; Func MakeCellSpan( AColumns, ARows : Int) : TKCellSpan; Func MinMax16(Value,Min,Max: ShortInt) : ShortInt;; Func MinMax17(Value,Min,Max: SmallInt) : SmallInt;; Func MinMax18(Value,Min,Max: Int) : Int;; Func MinMax19(Value,Min,Max: Int64) : Int64;; Func MinMax20(Value,Min,Max: Single) : Single;; Func MinMax21(Value,Min,Max: Double) : Double;; Func MinMax22(Value,Min,Max: Extended) : Extended;; Func NibbleToDigit( Nibble : Byte; UpperCase :Bool) : AnsiChar; Proc OpenURLWithShell( const AText : TKkString); //Proc QuickSortNR(AData: Pointer;ACount:Int; ACompareProc:TQsCompareProc;AExchangeProc:TQsExchangeProc; ASortedDown:Bool); //Proc QuickSort(AData:Pointer;ACount:Int;ACompareProc:TQsCompareProc;AExchangeProc:TQsExchangeProc; ASortedDown:Bool); Proc OffsetPoint23( var APoint : TPoint; AX, AY : Int);; Proc OffsetPoint24( var APoint : TPoint; const AOffset : TPoint);; Func RectInRect( Bounds, Rect : TRect) :Bool; Proc OffsetRect25( var ARect : TRect; AX, AY : Int);; Proc OffsetRect26( var ARect : TRect; const AOffset : TPoint);; //Func SetAppContext( const Ctx : TKAppContext) :Bool; Proc SetControlClipRect( AControl : TWinControl; const ARect : TRect); Proc SetControlText( Value : TWinControl; const Text : TKkString); Proc StripLastPathSlash( var APath :Str); Func StrNextCharIndex( const AText : TKkString; Index : Int) : Int; Func StrPreviousCharIndex( const AText : TKkString; Index : Int) : Int; Func StringCharBegin( const AText : TKkString; Index : Int) : Int; Func StringLength( const AText : TKkString) : Int; Func StringCopy( const ASource : TKkString; At, Count : Int) : TKkString; Proc StringDelete( var ASource : TKkString; At, Count : Int); Proc TrimWhiteSpaces27(const AText:TKkString;var AStart,ALen:Int;const ASet:TKSysCharSet); Proc TrimWhiteSpaces28( var AText : TKkString; const ASet : TKSysCharSet);; Proc TrimWhiteSpaces29( var AText : Ansistr; const ASet : TKSysCharSet);; Func StringToAnsistr( const AText : TKkString; CodePage :Card) : Ansistr; Func StringToChar( const AText : TKkString; AIndex : Int) : TKkChar; Func GetWindowsFolder2( CSIDL :Card; var APath :Str) :Bool; Func RunExecutable( const AFileName :Str; AWaitForIt :Bool) : DWORD; Func SystemCodePage : Int; Function GetCodePage : Integer'); Func NativeUTFToUnicode( const AText : TKkString) : WideChar; Func UnicodeUpperCase2( const AText : TKkString) : TKkString; Func UnicodeLowerCase2( const AText : TKkString) : TKkString; Func UnicodeToNativeUTF( const AParam : WideChar) : TKkString; Func UnicodeStringReplace(const AText,AOldPattern,ANewPattern:TKkString;AFlags:TReplaceFlags):TKkString; end; Proc SIRegister_KMessageBox(CL: TPSPascalCompiler); begin TypeS('TKMsgBoxButton',(mbYes,mbNo,mbOK,mbCancel,mbClose,mbAbort,mbRetry,mbIgnorembAllmbNoToAll,mbYesToAll,mbHelp); TypeS('TKMsgBoxIcon', ( miNone, miInformation, miQuestion, miWarning, miStop ); Func CreateMsgBox(const Caption,Text:str;const Buttons:array of TKMsgBoxButton;Icon:TKMsgBoxIcon;Def Int):TCustomForm; Func CreateMsgBoxEx(const Caption,Text:str;const Btns:array of string;Icon:TKMsgBoxIcon;Def:Int):TCustomForm; Proc FreeMsgBox( AMsgBox : TCustomForm); Func KMsgBox(const Caption,Text:str;const Buttons:array of TKMsgBoxButton;Icon:TKMsgBoxIcon;Def:Int):Int; Func KMsgBoxEx(const Caption,Text:str;const Buttons:array of string;Icon:TKMsgBoxIcon;Def:Int):Int; Func KInputBox( const Caption, Prompt :Str; var Text :Str) : TModalResult; //Func KNumberInputBox(const ACaption,APrompt:str;var AValue:double;AMin,AMax:double; AFormats:TKNumberEditAcceptedFormats):TModalResult; TKMsgBoxButtons','(mbAbortRetryIgnore,mbOkOnly,mbOkCancel,mbRetryCancel,mbYesNo,mbYesNoCancel); Func MsgBox2(const Caption,Txt:str;const Buttons:TKMsgBoxButtons;Icon:TKMsgBoxIcon):Int; Func AppMsgBox(const Caption, Text :Str; Flags: Int) : Int; end; Proc SIRegister_Kronos(CL: TPSPascalCompiler); begin 'ChurchDayCount','LongInt').SetInt( 21); ConstantN('CommonDayCount','LongInt').SetInt( 4); 'chAdvent1','LongInt').SetInt( 1); 'chAdvent2','LongInt').SetInt( 2); 'chAdvent3','LongInt').SetInt( 3); 'chAdvent4','LongInt').SetInt( 4); 'chChristmasEve','LongInt').SetInt( 5); 'chChristmasDay','LongInt').SetInt( 6); 'chBoxingDay','LongInt').SetInt( 7); 'chNewYearEve','LongInt').SetInt( 8); 'chNewYearDay','LongInt').SetInt( 9); 'chShroveTuesday','LongInt').SetInt( 10); 'chAshWednesday','LongInt').SetInt( 11); 'chPalmSunday','LongInt').SetInt( 12); 'chMaundyThursday','LongInt').SetInt( 13); 'chGoodFriday','LongInt').SetInt( 14); 'chEasterEve','LongInt').SetInt( 15); 'chEasterSunday','LongInt').SetInt( 16); 'chEasterMonday','LongInt').SetInt( 17); 'chWhitEve','LongInt').SetInt( 18); 'chWhitSunday','LongInt').SetInt( 19); 'chWhitMonday','LongInt').SetInt( 20); 'chAscensionDay','LongInt').SetInt( 21); 'coUNDay','LongInt').SetInt( 22); 'coWomensDay','LongInt').SetInt( 23); 'coMayDay','LongInt').SetInt( 24); 'coLiteracyDay','LongInt').SetInt( 25); 'UserDayType','LongInt').SetInt( 26); //UserDayType = ChurchDayCount + CommonDayCount + 1; TFirstLastNumber', 'array[1..2] of word;; TDaytypeID', 'array[1..255] of word;; TMonthImage2', 'array[0..7] of smallint;; TMonthImage', 'array[1..6] of tmonthimage2;; //TMonthImage = array[1..6, 0..7] of smallint; // TFirstLastNumber = array[1..2] of word; // TDaytypeID = array[1..255] of word; TDay','record Daynum : Word; MonthDate : word; DOWNum : word; M' +'onth : word; Week : word; DayCode : Word; end; TypeS('TWeek', 'record WeekNum : word; WhichDays : TFirstLastNumber; end; TMonth', 'record Month : word; Daycount : Word; WeekCount : Word' +'; WhichWeeks : TFirstLastNumber; WhichDays : TFirstLastNumber; end; TYear', 'record WeekCount : word; DayCount : Word; end; TKron', 'record ActiveYear : Word; IsInitialized :Bool; end; TYearExt', 'record Year : word; NumDays : word; NumWeeks : word;' + LeapYear :Bool; YeartypeCount : word; end; TDateExt', 'record Year : word; DayOfWeekNumber : word; DayName ' +:Str; MonthDay : Word; DayNumber : word; DaytypeCount: word; DaytypeI' +D : TDaytypeID; MonthNumber : word; WeekNumber : word; Holiday : bool; ' +ChurchDay : Bool; Flagday :Bool; end; TMonthExt', 'record Year : word; MonthNumber : word; MonthName :' +' string; FirstDay : word; LastDay : word; NumDays : word; NumWeeks : word;' +' FirstWeek : word; LastWeek : word; MonthImage : TMonthImage; end; TWeekExt', 'record Year: word; WeekNumber: word; FirstDay : word; LastDay : word; end; TForeignKey','record KeyName :Str; KeyValue : Variant; end; TDaytypeDef','record AName :Str; ADate : word; ARelDayTyp' +e : word; AnOffset : Int; AFirstShowUp : word; ALastShowUp : word; ASh' +owUpFrequency : word; AChurchDay :Bool; AHoliday :Bool; AFlagday :' + bool; AUserCalc :Bool; ATag : Int; end; SIRegister_TDaytype(CL); TWeekDay', '( Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday ); TWeekHolidays', 'set of TWeekDay; TOcEVent', '( ocYear, ocMonth, ocMonthnumber, ocWeek, ocWeeknumb' +'er, ocMonthDay, ocWeekday, ocDate, ocToday, ocCalcDaytype ); TCalcDaytypeEvent', 'Proc ( Sender : TObject; Daytype : TDa' +'ytype; ADateExt : TDateExt; IsCurrentDate :Bool; var Accept :Bool); TLoadDaytypeEvent', 'Proc ( Sender : TObject; const Daytype' +'Def : TDaytypeDef; const DescKeys :Str; ClassId : Int; var LoadIt: bool); TSaveDaytypeEvent', 'Proc ( Sender : TObject; Daytype : TDa' +'ytype; var DescKeys :Str; var ClassID : Int; var SaveIt :Bool); SIRegister_TKronos(CL); ClassN(CL.FindClass('TOBJECT'),'EKronosError; //DelphiFunction('Proc Register; end; Proc SIRegister_MapFiles(CL: TPSPascalCompiler); begin ClassN(CL.FindClass('TOBJECT'),'EMemoryMappedFile; ClassN(CL.FindClass('TOBJECT'),'EMMEndOfFile; TypeS('TFileOptions,(foCreateNew,foCreateAlways,foOpenExisting,foOpenAlways,foTruncateExisting); TypeS('TmapFileType', ( ftUnspecified, ftRandomAccess, ftSequentialAccess); SIRegister_TMapStream(CL); SIRegister_TTextMap(CL); SIRegister_TRecordMap(CL); end; Proc SIRegister_KGraphics(CL: TPSPascalCompiler); begin PNGHeader','String').SetString(' #137 ''PNG'' #13#10#26#10; MNGHeader','String').SetString( '#138 ''MNG'' #13#10#26#10; TKBrightMode', '( bsAbsolute, bsOfBottom, bsOfTop ); TKColorRec', 'record R : byte; G : byte; B : byte; A : Byte; Value :Card; end; //PKColorRec', '^TKColorRec // will not work; TKDynColorRecs', 'array of TKColorRec; TKImageHeaderString', 'string; //TKPngImage', 'TPortableNetworkGraphic; with ClassN(CL.FindClass('TLinarGraphic'),'TPNGGraphic') do TKPngImage', 'TPNGGraphic; TKKString', 'WideString; // TKString = WideString; //TKPngImage', 'TPngImage; //TKPngImage', 'TPngObject; TKTextAttribute', '( taCalcRect, taClip, taEndEllipsis, taFillRe' +'ct, taFillText, taIncludePadding, taLineBreak, taPathEllipsis, taWordBreak' +', taWrapText, taTrimWhiteSpaces, taStartEllipsis ); TKTextAttributes', 'set of TKTextAttribute; TKHAlign', '( halLeft, halCenter, halRight, halJustify ); TKStretchMode', '( stmNone, stmZoomOutOnly, stmZoomInOnly, stmZoom ); TKTextHAlign', 'TKHAlign; TKVAlign', '( valTop, valCenter, valBottom ); TKTextVAlign', 'TKVAlign; TKButtonDrawState', '( bsUseThemes, bsDisabled, bsPressed, bsFocused, bsHot ); TKButtonDrawStates', 'set of TKButtonDrawState; SIRegister_TKGraphic(CL); SIRegister_TKAlphaBitmap(CL); SIRegister_TKMetafile(CL); TKTextBoxFunction', '( tbfMeasure, tbfGetIndex, tbfGetRect, tbfDraw ); SIRegister_TKTextBox(CL); SIRegister_TKDragWindow(CL); SIRegister_TKHintWindow(CL); SIRegister_TKTextHint(CL); SIRegister_TKGraphicHint(CL); //DelphiFunction('Proc BlendLine( Src, Dest : PKColorRecs; Count : Int); Func TKBrightColor( Color : TColor; Percent : Single; Mode : TKBrightMode): TColor; Proc CanvasGetScale( ACanvas : TCanvas; out MulX, MulY, DivX, DivY : Int); Proc CanvasResetScale( ACanvas : TCanvas); Func CanvasScaled( ACanvas : TCanvas) :Bool; Proc CanvasSetScale( ACanvas : TCanvas; MulX, MulY, DivX, DivY : Int); Proc CanvasSetOffset( ACanvas : TCanvas; OfsX, OfsY : Int); Func ColorRecToColor( Color : TKColorRec) : TColor; Func ColorToColorRec( Color : TColor) : TKColorRec; Func TKColorToGrayScale( Color : TColor) : TColor; Func CompareBrushes( ABrush1, ABrush2 : TBrush) :Bool; Func CompareFonts( AFont1, AFont2 : TFont) :Bool; Proc CopyBitmap( DestDC : HDC; DestRect : TRect; SrcDC : HDC; SrcX, SrcY : Int); Func CreateEmptyPoint : TPoint; Func CreateEmptyRect : TRect; Func CreateEmptyRgn : HRGN; Proc DrawAlignedText(Canvas: TCanvas; var ARect : TRect; HAlign : TKHAlign; VAlign : TKVAlign; HPadding,VPadding:Int;const AText:TKKString;BackColor:TColor;Attributes: TKTextAttributes); Proc TKDrawButtonFrame(ACanvs:TCanvas;const ARect:TRect;AStates:TKButtonDrawStates); Proc DrawEdges(Canvas:TCanvas;const R:TRect;HighlightColor,ShadowColor:TColor;Flags:Cardi; Proc DrawFilledRectangle(Canvas: TCanvas; const ARect : TRect; BackColor : TColor); Proc DrawGradientRect(Canvas:TCanvas; const ARect:TRect;AStartColor,AEndColor TColor; AColorStep: Int;AHorizontal:Bool); Proc ExcludeShapeFromBaseRect(var BaseRect:TRect; ShapeWidth,ShapeHeight:Int; HAlign:TKHAlign; VAlign:TKVAlign; HPadding,VPadding Int; StretchMode TKStretchMode;out Bounds, Interior:TRect); Func ExtSelectClipRect(DC:HDC; ARect:TRect; Mode:Int; var PrevRgn: HRGN):Bool; Func ExtSelectClipRectEx(DC:HDC;ARect:TRect;Mode:Int;CurRgn,PrevRgn : HRGN):Bool; Proc FillAroundRect(ACanvas:TCanvas;const Boundary,Interior:TRect;BackColor:TColor); Func GetFontHeight( DC : HDC) : Int; Func GetFontAscent( DC : HDC) : Int; Func GetFontDescent( DC : HDC) : Int; Func GDICheck( Value : Int) : Int; Func HorizontalShapePosition(AAlignment:TKHAlign;const ABoundary:TRect;const AShapeSize:TPoint):Int; Func ImageByType( const Header : TKImageHeaderString) : TGraphic; Func IntersectClipRectIndirect( DC : HDC; ARect : TRect) :Bool; Func IsBrightColor( Color : TColor) :Bool; Proc LoadCustomCursor( Cursor : TCursor; const ResName :Str); Proc TKLoadGraphicFromResource(Graphic:TGraphic;const ResName:str;ResType:PChar); Func MakeColorRec( R, G, B, A : Byte) : TKColorRec;; Func MakeColorRec5( Value : LongWord) : TKColorRec;; Func PixelFormatFromBpp( Bpp :Card) : TPixelFormat; Func TKRectInRegion( Rgn : HRGN; ARect : TRect) :Bool; Func RgnCreateAndGet( DC : HDC) : HRGN; Proc RgnSelectAndDelete( DC : HDC; Rgn : HRGN); Proc RoundRectangle(ACanvas: TCanvas; const ARect: TRect;AXRadius,AYRadius: Int); Proc SafeStretchDraw(ACanvas:TCanvas; ARect:TRect;AGraphic:TGraphic;ABackColor:TColor); Proc SelectClipRect( DC : HDC; const ARect : TRect); Proc TKStretchBitmap( DestDC : HDC; DestRect : TRect; SrcDC : HDC; SrcRect : TRect); Func SwitchRGBToBGR( Value : TColor) : TColor; Proc TranslateRectToDevice( DC : HDC; var ARect : TRect); Func VerticalShapePosition(AAlignment:TKVAlign;const ABoundary:TRect;const AShapeSize: TPoint):Int; end; Proc SIRegister_umaxPipes(CL: TPSPascalCompiler); begin ConstantN('cShutDownMsg','String').SetString( 'shutdown pipe ; ConstantN(cPipeFormat',String).SetString( '\\%s\pipe\%s; SIRegister_TPipeServermax(CL); SIRegister_TPipeClientmax(CL); end; Proc SIRegister_KControls(CL: TPSPascalCompiler); begin TypeS('TKColorArray', 'array of TColor; TKPreviewColorIndex', 'Int; TKPrintOption', '( poCollate, poFitToPage, poMirrorMargins, poPa' +'geNumbers, poPaintSelection, poTitle, poUseColor ); TKPrintOptions', 'set of TKPrintOption; TKPrintRange', '( kprAll, kprSelectedOnly, kprRange ); TKPrintUnits', '( kpuMM, kpuCM, kpuInch, kpuHundredthInch ); //ConstantN('cBorderStyleDef','').SetString( bsSingle); 'cContentPaddingBottomDef','LongInt').SetInt( 0); 'cContentPaddingLeftDef','LongInt').SetInt( 0); ConstantN(cOptionsDef','LongInt).Value.ts32:= ord(poFitToPage) or ord(poPageNumbers) or ord(poUseColor); //ConstantN('cRangeDef','').SetString( prAll); 'cScaleDef','LongInt').SetInt( 100); 'cScaleMin','LongInt').SetInt( 10); 'cScaleMax','LongInt').SetInt( 500); //ConstantN('cUnitsDef','').SetString( puCM); //ConstantN('cPaperDef','').SetString( clWhite); //ConstantN('cBkGndDef','').SetString( clAppWorkSpace); //ConstantN('cBorderDef','').SetString( clBlack); //ConstantN('cSelectedBorderDef','').SetString( clNavy); ConstantN('ciPaper','LongInt').SetInt( TKPreviewColorIndex ( 0 )); 'ciBkGnd','LongInt').SetInt( TKPreviewColorIndex ( 1 )); 'ciBorder','LongInt').SetInt( TKPreviewColorIndex ( 2 )); 'ciSelectedBorder','LongInt').SetInt( TKPreviewColorIndex ( 3 )); // 'ciPreviewColorsMax','').SetString( ciSelectedBorder); 'cScrollNoAction','LongInt').SetInt( - 1); 'cScrollDelta','LongInt').SetInt( - 2); 'cPF_Dragging','LongWord').SetUInt( $00000001); 'cPF_UpdateRange','LongWord').SetUInt( $00000002); TKPreviewScaleMode', '( smScale, smPageWidth, smWholePage ); TKPreviewChangedEvent', 'Proc ( Sender : TObject); TKPrintMeasureInfo', 'record OutlineWidth : Int; OutlineHeig' ht : Int; ControlHorzPageCount : Int; ControlVertPageCount : Integ' er; ExtraLeftHorzPageCount : Int; ExtraLeftVertPageCount : Int; Ex' traRightHorzPageCount : Int; ExtraRightVertPageCount : Int; end; TKPrintStatus', '( kepsBegin, kepsNewPage, kepsEnd ); TKPrintNotifyEvent,Procedure(Sender:TObject;Status: TKPrintStatus;var Abort:Bool); TKPrintPaintEvent', 'Proc ( Sender : TObject); ClassN(CL.FindClass('TOBJECT'),TKPrintPageSetup; ClassN(CL.FindClass('TOBJECT'),TKPrintPreview; SIRegister_TKRect(CL); ClassN(CL.FindClass('TOBJECT'),'TKObjectList; SIRegister_TKObject(CL); //TKObjectClass', 'class of TKObject; SIRegister_TKObjectList(CL); SIRegister_TKCustomControl(CL); TKColorScheme', '( kcsNormal, kcsGrayed, kcsBright, kcsGrayScale ); TKColorIndex', 'Int; TKColorData', 'record Index:TKColorIndex;Color:TColor; Default:TColor; Name:str; end; TKColorSpec', 'record Def : TColor; Name :Str; end; SIRegister_TKCustomColors(CL); TKPrintMeasureEvent', 'Proc ( Sender : TObject; var Info : TKPrintMeasureInfo); SIRegister_TKPrintPageSetup(CL); SIRegister_TKPreviewColors(CL); SIRegister_TKPrintPreview(CL); Func InchesToValue(Units : TKPrintUnits; Value : Double) : Double; Func ValueToInches(Units : TKPrintUnits; Value : Double) : Double; end; Proc SIRegister_IdAntiFreezeBase(CL: TPSPascalCompiler); begin ConstantN(ID_Default_TIdAntiFreezeBase_Active,Boolean).SetInt(1); ConstantN('ID_Default_TIdAntiFreezeBase_ApplicationHasPriority','Boolean').SetInt(1); ConstantN('ID_Default_TIdAntiFreezeBase_IdleTimeOut','LongInt').SetInt( 250); ConstantN('ID_Default_TIdAntiFreezeBase_OnlyWhenIdle','Boolean').SetInt( 250); SIRegister_TIdAntiFreezeBase(CL); end; Proc SIRegister_OverbyteIcsConApp(CL: TPSPascalCompiler); begin ConstantN('WM_STARTUP','LongInt').SetInt( WM_USER + 789); SIRegister_TKeyboardThread(CL); //TypeS('TConApplicationClass', 'class of TConApplication; SIRegister_TConApplication(CL); end; Proc SIRegister_KMemo(CL: TPSPascalCompiler); begin 'cUndoLimitMin','LongInt').SetInt( 100); cUndoLimitMax','LongInt).SetInt( 10000); cUndoLimitDef','LongInt).SetInt( 1000); cScrollPaddingMin','LongInt).SetInt( 0); cScrollPaddingMax','LongInt).SetInt( 1000); cScrollPaddingDef','LongInt).SetInt( 30); cScrollSpeedMin','LongInt).SetInt( 50); cScrollSpeedMax','LongInt).SetInt( 1000); cScrollSpeedDef','LongInt).SetInt( 100); //cBkGndDef','').SetString( clWindow); //cInactiveCaretBkGndDef','').SetString( clBlack); //cInactiveCaretSelBkGndDef','').SetString( clBlack); //cInactiveCaretSelTextDef','').SetString( clYellow); //cInactiveCaretTextDef','').SetString( clYellow); //cSelBkGndDef','').SetString( clGrayText); //cSelBkGndFocusedDef','').SetString( clHighlight); //cSelTextDef','').SetString( clHighlightText); //cSelTextFocusedDef','').SetString( clHighlightText); ciBkGnd','LongInt).SetInt( TKColorIndex ( 0 )); ciInactiveCaretBkGnd','LongInt).SetInt( TKColorIndex ( 1 )); ciInactiveCaretSelBkGnd','LongInt).SetInt( TKColorIndex ( 2 )); ciInactiveCaretSelText','LongInt).SetInt( TKColorIndex ( 3 )); ciInactiveCaretText','LongInt).SetInt( TKColorIndex ( 4 )); ciSelBkGnd','LongInt).SetInt( TKColorIndex ( 5 )); ciSelBkGndFocused','LongInt).SetInt( TKColorIndex ( 6 )); ciSelText','LongInt).SetInt( TKColorIndex ( 7 )); ciSelTextFocused','LongInt).SetInt( TKColorIndex ( 8 )); //ciMemoColorsMax','').SetString( ciSelTextFocused); cInvalidListID','LongInt).SetInt( - 1); cHorzScrollStepDef',LongInt').SetInt( 4); cVertScrollStepDef',LongInt').SetInt( 10); //cHeight','LongInt').SetInt( 200); //cWidth','LongInt').SetInt( 300); cNewLineChar','Char).SetString( #$B6); cSpaceChar','Char).SetString( #$B7); cTabChar','Char).SetString( #$2192); cBullet','Char).SetString( #$2022); cSquareBullet,Char').SetString( #$25AB); cArrowBullet',Char').SetString( #$25BA); //cDefaultWordBreaks,String').SetString(' ' or '/' or '\' or ';' or ':' or '?' or '!; cRichText','String').SetString( 'Rich Text Format; ClassN(CL.FindClass(TOBJECT'),'TKCustomMemo; TypeS('TKMemoLinePosition', '( eolInside, eolEnd ); TKMemoBlockPosition', '( mbpText, mbpRelative, mbpAbsolute ); TKMemoState', '( elCaretCreated, elCaretVisible, elCaretUpdate, ' +elIgnoreNextChar, elModified, elMouseCapture, elOverwrite, elReadOnly ); TKMemoStates', 'set of TKMemoState; TKMemoUpdateReason', '( muContent, muExtent, muSelection, muSelectionScroll ); TKMemoUpdateReasons', 'set of TKMemoUpdateReason; SIRegister_TKMemoSparseItem(CL); SIRegister_TKMemoSparseList(CL); SIRegister_TKMemoSparseStack(CL); SIRegister_TKMemoDictionaryItem(CL); SIRegister_TKMemoDictionary(CL); TKMemoParaNumbering', '( pnuNone, pnuBullets, pnuArabic, pnuLett' +erLo, pnuLetterHi, pnuRomanLo, pnuRomanHi ); SIRegister_TKMemoNumberingFormatItem(CL); SIRegister_TKMemoNumberingFormat(CL); ClassN(CL.FindClass('TOBJECT'),'TKMemoListLevels; SIRegister_TKMemoListLevel(CL); ClassN(CL.FindClass('TOBJECT'),'TKMemoList; SIRegister_TKMemoListLevels(CL); ClassN(CL.FindClass('TOBJECT'),'TKMemoListTable; SIRegister_TKMemoList(CL); TKMemoListChangedEvent', 'Proc (AList: TKMemoList; ALevel: TKMemoListLevel); SIRegister_TKMemoListTable(CL); TKMemoScriptCapitals', '( tcaNone, tcaNormal, tcaSmall ); TKMemoScriptPosition', '( tpoNormal, tpoSuperscript, tpoSubscript ); SIRegister_TKMemoTextStyle(CL); TKMemoBlockWrapMode', '( wrAround, wrAroundLeft, wrAroundRight, ' +wrTight, wrTightLeft, wrTightRight, wrTopBottom, wrNone, wrUnknown ); TKMemoBlockStyleChangedEvent', 'Proc ( Sender : TObject; AR' +'easons : TKMemoUpdateReasons); SIRegister_TKMemoBlockStyle(CL); TKMemoLineSpacingMode', '( lsmFactor, lsmValue ); SIRegister_TKMemoParaStyle(CL); SIRegister_TKMemoLine(CL); SIRegister_TKMemoLines(CL); SIRegister_TKMemoWord(CL); SIRegister_TKMemoWordList(CL); ClassN(CL.FindClass('TOBJECT'),'TKMemoBlocks; TKMemoMouseAction', '( maMove, maLeftDown, maLeftUp, maRightDown' +', maRightUp, maMidDown, maMidUp ); //TKMemoBlockClass', 'class of TKMemoBlock; SIRegister_TKMemoBlock(CL); SIRegister_TKMemoSingleton(CL); SIRegister_TKMemoTextBlock(CL); SIRegister_TKMemoHyperlink(CL); SIRegister_TKMemoParagraph(CL); SIRegister_TKMemoImageBlock(CL); SIRegister_TKMemoContainer(CL); ClassN(CL.FindClass('TOBJECT'),'TKMemoTable; ClassN(CL.FindClass('TOBJECT'),'TKMemoTableRow; SIRegister_TKMemoTableCell(CL); SIRegister_TKMemoTableRow(CL); SIRegister_TKMemoTable(CL); TKMemoUpdateEvent', 'Proc ( Reasons : TKMemoUpdateReasons); SIRegister_TKMemoBlocks(CL); SIRegister_TKMemoColors(CL); TKMemoChangeKind', '( ckCaretPos, ckDelete, ckInsert ); TKMemoUndoChangeEvent','Procedure(Sender : TObject; ItemReason: TKMemoChangeKind); TKMemoChangeItem', 'record Blocks : TKMemoBlocks; Group : Cardin' al; GroupKind : TKMemoChangeKind; Inserted :Bool; ItemKind : TKMemoCha' ngeKind; Position : Int; end; //PKMemoChangeItem', '^TKMemoChangeItem // will not work; SIRegister_TKMemoChangeList(CL); TKMemoRTFString', 'string; SIRegister_TKCustomMemo(CL); SIRegister_TKMemo(CL); SIRegister_TKMemoEditAction(CL); SIRegister_TKMemoEditCopyAction(CL); SIRegister_TKMemoEditCutAction(CL); SIRegister_TKMemoEditPasteAction(CL); SIRegister_TKMemoEditSelectAllAction(CL); Func NewLineChar : TKkString; Func SpaceChar : TKkString; Func TabChar : TKkString; end; Proc SIRegister_OverbyteIcsTicks64(CL: TPSPascalCompiler); begin ConstantN('ISODateMask',String).SetString( 'yyyy-mm-dd; 'ISODateTimeMask','String').SetString( 'yyyy-mm-dd"T"hh:nn:ss; 'ISODateLongTimeMask','String').SetString( 'yyyy-mm-dd"T"hh:nn:ss.zzz; 'ISOTimeMask','String').SetString( 'hh:nn:ss; 'LongTimeMask','String').SetString( 'hh:nn:ss:zzz; 'Ticks64PerDay','int64').SetInt64( 24 * 60 * 60 * 1000); 'Ticks64PerHour','int64').SetInt64( 60 * 60 * 1000); 'Ticks64PerMinute','int64').SetInt64( 60 * 1000); 'Ticks64PerSecond','int64').SetInt64( 1000); TypeS('TTicks64Mode', ( TicksNone, TicksAPI64, TicksPerf, TicksAPI32 ); DelphiFunction(Func IcsGetTickCount64 : int64; Proc IcsInitTick64( NewMode : TTicks64Mode); Func IcsNowPC : TDateTime; Proc IcsAlignNowPC; Func IcsLastBootDT : TDateTime; Func IcsGetPerfCountsPerSec : int64; Func IcsPerfCountCurrent : int64; Func IcsPerfCountCurrMilli : int64; Func IcsPerfCountToMilli( LI : int64) : int64; Func IcsPerfCountGetMilli( startLI : int64) : int64; Func IcsPerfCountGetMillStr( startLI : int64) :Str; Func IcsPerfCountToSecs( LI : int64) : Int; Func IcsPerfCountGetSecs( startLI : int64) : Int; Func IcsDiffTicks64( const StartTick, EndTick : int64) : int64; Func IcsElapsedTicks64( const StartTick : int64) : int64; Func IcsElapsedMsecs64( const StartTick : int64) : int64; Func IcsElapsedSecs64( const StartTick : int64) : Int; Func IcsElapsedMins64( const StartTick : int64) : Int; Func IcsWaitingSecs64( const EndTick : int64) : Int; Func IcsGetTrgMSecs64( const MilliSecs : int64) : int64; Func IcsGetTrgSecs64( const DurSecs : Int) : int64; Func IcsGetTrgMins64( const DurMins : Int) : int64; Func IcsTestTrgTick64( const TrgTick : int64) :Bool; Func IcsAddTrgMsecs64( const TickCount, MilliSecs : int64) : int64; Func IcsAddTrgSecs64( const TickCount : int64; DurSecs : Int) : int64; end; Proc SIRegister_OverbyteIcsSha1(CL: TPSPascalCompiler); begin ConstantN(IcsSHA1Version','LongInt.SetInt( 800); CopyRight','String.SetString( IcsSHA1 (c) 2004-2012 F. Piette V8.00 ; shaSuccess','LongInt.SetInt( 0); shaNull','LongInt.SetInt( 1); shaInputTooLong','LongInt.SetInt( 2); shaStateError','LongInt.SetInt( 3); SHA1HashSize','LongInt.SetInt( 20); TypeS('uint32_t', 'LongWord; TypeS('uint8_t', 'Byte; TypeS('int_least16_t', 'LongInt; TypeS('SHA1DigestString', 'Ansistr; Func SHA1Reset( var context : SHA1Context) : Int; Func SHA1Input(var context:SHA1Context;const message_array:str;message_array:PAnsiChar;length Cardinal):Int; Func SHA1Result( var context : SHA1Context; var Message_Digest : SHA1Digest) : Int; Func SHA1ofStr( const s : Ansistr) : SHA1DigestString; Func SHA1ofBuf( const buf, buflen : Int) : SHA1DigestString; Func SHA1ofStream( const strm : TStream) : SHA1DigestString; Func SHA1toHex( const digest : SHA1DigestString) :Str; Func SHA1DigestToLowerHex( const Digest : SHA1Digest) :Str; Func SHA1DigestToLowerHexA( const Digest : SHA1Digest) : RawByteString; Func SHA1DigestToLowerHexW( const Digest : SHA1Digest) : UnicodeString; Proc HMAC_SHA1(const Data,DataLen:Int;const Key,KeyLen:Int;out Digest:SHA1Digest); Func HMAC_SHA1_EX( const Data : Ansistr; const Key : Ansistr) : Ansistr; end; Proc SIRegister_KEditCommon(CL: TPSPascalCompiler); begin cCharMappingSize','LongInt.SetInt( 256); TKEditCommandk', '( ecNonek, ecLeftk, ecRightk, ecUpk, ecDownk, ecLinek' Start, ecLineEndk, ecPageUpk, ecPageDownk, ecPageLeftk, ecPageRightk, ecPageTopk, htk, ecSelUpk, ecSelDownk, ecSelLineStartk, ecSelLineEndk, ecSelPageUpk, ecSelPa' geDownk, ecSelPageLeftk, ecSelPageRightk, ecSelPageTopk, ecSelPageBottomk, ecSe' lEditorTopk, ecSelEditorBottomk, ecSelGotoXYk, ecScrollUpk, ecScrollDownk, ecSc' rollLeftk, ecScrollRightk, ecScrollCenterk, ecUndok, ecRedok, ecCopyk, ecCutk, ec' +Pastek, ecInsertChark, ecInsertDigitsk, ecInsertStringk, ecInsertNewLinek, ecDe' +leteLastChark, ecDeleteChark, ecDeleteBOLk, ecDeleteEOLk, ecDeleteLinek, ecSele' +ctAllk, ecClearAllk, ecClearIndexSelectionk, ecClearSelectionk, ecSearchk, ecRe' +'placek, ecInsertModek, ecOverwriteModek, ecToggleModek, ecGotFocusk, ecLostFocusk ); *) TKEditDisabledDrawStyle', '( eddBright, eddGrayed, eddNormal ); TKEditKey', 'record Key : Word; Shift : TShiftState; end; TKEditCommandAssignment', 'record Key : TKEditKey; Command : TKEditCommand; end; TKEditCommandMap', 'array of TKEditCommandAssignment; TKEditDropFilesEvent','Procedure(Sender:TObject;X,Y:Int;Files:TStrings); SIRegister_TKEditKeyMapping(CL); TKEditCharMapping', 'array of AnsiChar; //TypeS('PKEditCharMapping', '^TKEditCharMapping // will not work; //TypeS('TKEditOption', '( eoDropFiles, eoGroupUndo, eoUndoAfterSave, eoS' //+'howFormatting, eoWantTab ); //TypeS('TKEditOptions', 'set of TKEditOption; TKEditReplaceAction', '( eraCancel, eraYes, eraNo, eraAll ); TKEditReplaceTextEvent', 'Proc ( Sender : TObject; const Te' xtToFind, TextToReplace :Str; var Action : TKEditReplaceAction); TKEditSearchError', '( eseOk, eseNoDigitsFind, eseNoDigitsReplace, eseNoMatch ); TKEditSearchOption', '( esoAll, esoBackwards, esoEntireScope, es' oFirstSearch,esoMatchCase,esoPrompt,esoSelectedOnly,esoTreatAsDigits,esoWereDigits ); TKEditSearchOptions', 'set of TKEditSearchOption; TKEditSearchData', 'record ErrorReason : TKEditSearchError; Opti' ons:TKEditSearchOptions;SelStart:Int;SelEnd:Int;TextToFind:str;TextToReplace:str; end; //TypeS('PKEditSearchData', '^TKEditSearchData // will not work; //cEditDisabledDrawStyleDef','.SetString( eddBright); Func CreateDefaultKeyMapping : TKEditKeyMapping; Func DefaultCharMapping : TKEditCharMapping; Func DefaultSearchData : TKEditSearchData; end; unit UtilsMax4; unit uPSI_UtilsMax4; Func AllDigitsDifferent(N: Int64):Bool; Proc DecimalToFraction(Decimal: Extended; out FractionNumerator: Extended; out FractionDenominator: Extended; const AccuracyFactor: Extended); Func ColorToHTML(const Color: TColor):Str; Func DOSCommand(const CommandLine:Str; const CmdShow:Int; const WaitUntilComplete:Bool; const WorkingDir:Str = ':Bool; Func GetDosOutput(CommandLine:Str; Work:Str = 'C:\:Str; Ex.: writeln(GetDosOutput('java -version','C:\')); >>>java version "1.8.0_211" Java(TM) SE Runtime Environment (build 1.8.0_211-b12) Java HotSpot(TM) Client VM (build 25.211-b12, mixed mode) Proc CaptureConsoleOutput(DosApp :Str;AMemo : TMemo); Ex.: CaptureConsoleOutput('cmd /C dir *.* ',memo2); CaptureConsoleOutput('powershell /C dir *.* ',memo2); Func ExecuteCommandDOS(CommandLine:str):str; Func DOSCommandRedirect(const CommandLine:Str; const OutStream: Classes.TStream):Bool; overload; //8 Proc SendKeysToWindow(const HWnd: Windows.HWND; const Text:Str); Func IsRunningOnBattery:Bool; Func IsHexStr(const S:Str):Bool; Func IsCharInSet(const Ch: Char; const Chars: TCharSet):Bool; Func StreamHasWatermark(const Stm:Classes.TStream;const Watermark:array of Byte):Bool; Func ReadBigEndianWord(Stm: Classes.TStream): Word; Func DownloadURLToFile(const URL, FileName:Str):Bool; Func ExtractURIQueryString(const URI:Str):Str; Func GetBiosVendor:Str; Func GetIEVersionStr:Str; //18 Func FloatToFixed(const Value: Extended; const DecimalPlaces: Byte; const SeparateThousands:Bool):Str; Func IntToFixed(const Value: Int;const SeparateThousands:Bool):Str; Func Int64ToFixed(const Value: Int64;const SeparateThousands:Bool):Str; Func IntToNumberText2(const Value: Int):Str; //22 Func IsLibraryInstalled2(const LibFileName:Str):Bool; Func RemainingBatteryPercent: Int; Proc SetLockKeyState(KeyCode: Int; IsOn:Bool); Func IsLockKeyOn(const KeyCode: Int):Bool; Proc PostKeyEx322(const Key: Word; const Shift: Classes.TShiftState; const SpecialKey:Bool = False); Func TerminateProcessByID(ProcessID:Card):Bool; Func GetWindowProcessName(const Wnd: Windows.HWND):Str; Func GetProcessName(const PID: Windows.DWORD):Str; Func GetWindowProcessID(const Wnd: Windows.HWND): Windows.DWORD; Func IsAppResponding(const Wnd: Windows.HWND):Bool; Func IsTabletOS:Bool; Func ProgIDInstalled(const PID:Str):Bool; Func GetProcessorName:Str; Func GetProcessorIdentifier:Str; //36 Proc EmptyKeyQueue; Proc TrimAppMemorySize; Func GetEnvironmentBlockSize:Card; Func GetDefaultPrinterName:Str; //40 Proc ListDrives(const List: Classes.TStrings); Proc MultiSzToStrings(const MultiSz: PChar; const Strings: Classes.TStrings); Func BrowseURL(const URL:Str):Bool; Func IsValidURLProtocol(const URL:Str):Bool; Func ExecAssociatedApp(const FileName:Str):Bool; //45 Func CheckInternetConnection(AHost: PAnsiChar):Bool; Func MakeSafeHTMLText(TheText:Str):Str; Func RemoveURIQueryString(const URI:Str):Str; Func GetRegistryString(const RootKey: Windows.HKEY;const SubKey,Name:str):str; Proc RefreshEnvironment2(const Timeout:Card = 5000); //50 Func IsKeyPressed2(const VirtKeyCode: Int):Bool; Func SizeOfFile64(const FileName:Str): Int64; Func IsHugeFile(const FileName:Str):Bool; Func SetTransparencyLevel(const HWnd: Windows.HWND;const Level: Byte):Bool; Func IsEqualResID(const R1, R2: PChar):Bool; //55 Func GetGenericFileType(const FileNameOrExt:Str):Str; Func GetFileType2(const FilePath:Str):Str; Proc ShowShellPropertiesDlg(const APath:Str); Func EllipsifyText(const AsPath:Bool; const Text:Str; const Canvas: Graphics.TCanvas; const MaxWidth: Int ):Str; Func CloneByteArray(const B: array of Byte): TBytes; //60 Proc AppendByteArray(var B1: TBytes; const B2: array of Byte); Func IsUnicodeStream(const Stm: Classes.TStream):Bool; Func FileHasWatermark(const FileName:Str; const Watermark: array of Byte; const Offset: Int = 0):Bool; Func FileHasWatermarkAnsi(const FileName:Str; const Watermark: Ansistr; const Offset: Int = 0):Bool; Func IsASCIIStream(const Stm: Classes.TStream; Count:Int64 = 0; BufSize: Int = 8*1024):Bool; Func IsASCIIFile(const FileName:str; BytesToCheck:Int64 = 0; BufSize: Int = 8*1024):Bool; //66 Func BytesToAnsistr(const Bytes: SysUtils.TBytes; const CodePage: Word):str; Func UnicodeStreamToWideString(const Stm: Classes.TStream): WideString; Proc WideStringToUnicodeStream(const Str: WideString;const Stm: Classes.TStream); Proc GraphicToBitmap(const Src: Graphics.TGraphic; const Dest: Graphics.TBitmap; const TransparentColor: Graphics.TColor); //70 Func URIDecode(S:Str; const IsQueryString:Bool):Str; Func URIEncode(const S:Str; const InQueryString:Bool):Str; Func URLDecode(const S:Str):Str; Func URLEncode(const S:Str; const InQueryString:Bool):Str; Func AllDigitsSame(N: Int64):Bool; Func GetDosOutput(CommandLine:Str; Work:Str = 'C:\:Str; Proc CaptureConsoleOutput(DosApp :Str;AMemo : TMemo); Ex.: CaptureConsoleOutput('cmd /C dir *.* ',memo2); CaptureConsoleOutput('powershell /C dir *.* ',memo2); Func ExecuteCommandDOS(CommandLine:str):str; Func DOSCommandRedirect(const CommandLine:Str; const OutStream: Classes.TStream):Bool; overload; //8 Proc SendKeysToWindow(const HWnd: Windows.HWND; const Text:Str); //75 Func FoldWrapText(const Line,BreakStr:str;BreakChars:TSysCharSet;MaxCol:Int):str;; Func TextWrap(const Text:Str; const Width, Margin: Int):Str; Func ShellExecuteX(Operation,FileName,Parameters,Directory:str;ShowCmd:Int):Card;; Func KeyboardStateToShiftState1(const KeyboardState: TKeyboardState): TShiftState;; Proc SetCustomFormGlassFrame(const CustomForm:TCustomForm;const GlassFrame:TGlassFrame); Func GetCustomFormGlassFrame( const CustomForm : TCustomForm) : TGlassFrame; Proc SetApplicationMainFormOnTaskBar(const Application:TApplication;Value:Bool); Func GetApplicationMainFormOnTaskBar( const Application : TApplication) :Bool; Func CompressWhiteSpace(const S:Str):Str; Func IsASCIIDigit(const Ch: Char):Bool; Func CompareNumberStr(const S1, S2:Str): Int; Proc HexToBuf(HexStr:Str; var Buf:Str); Func BufToHex(const Buf:Str; const Size:Card):Str; Func DOSExec( CommandLine :Str; Work :Str) :Str; Proc HexToStrBuf(HexStr:Str; var Buf:Str);; Func StrBufToHex(const Buf:Str; const Size:Card):Str;; Func GetCharFromVirtualKey(AKey: Word):Str; Func GetParentProcessID(const PID: Windows.DWORD): Windows.DWORD; Func FormInstanceCount2(AFormClass: Forms.TFormClass): Int; //overload; Func FormInstanceCount(const AFormClassName:Str): Int; //overload; Func FindAssociatedApp(const Doc:Str):Str; Func CreateShellLink2(const LinkFileName,AssocFileName,Desc,WorkDir,Args,IconFileName:str;const IconIdx:Int):Bool; Func FileFromShellLink(const LinkFileName:Str):Str; Func IsShellLink(const LinkFileName:Str):Bool; Func ResourceIDToStr(const ResID: PChar):Str; Func IsEqualResID(const R1, R2: PChar):Bool; Func RecycleBinInfo(const Drive: Char; out BinSize, FileCount: Int64):Bool; Func FormInstanceCount2(AFormClass: TFormClass): Int;; Func FormInstanceCount(const AFormClassName:Str): Int;; Func FindAssociatedApp(const Doc:Str):Str;; Func CreateShellLink2(const LinkFileName,AssocFileName,Desc,WorkDir,Args ,IconFileName:Str; const IconIdx: Int):Bool; Func FileFromShellLink(const LinkFileName:Str):Str; Func IsShellLink(const LinkFileName:Str):Bool; Func ResourceIDToStr(const ResID: PChar):Str; Func IsEqualResID(const R1, R2: PChar):Bool; Func RecycleBinInfo(const Drive: Char; out BinSize, FileCount: Int64):Bool; Func SysImageListHandle(const Path:str; const WantLargeIcons:Boolean): THandle; Func EmptyRecycleBin:Bool; Func ExploreFile(const Filename:Str ):Bool; Func ExploreFolder(const Folder:Str):Bool; Proc ClearRecentDocs2; Proc AddToRecentDocs2(const FileName:Str); //100 Func StringsToMultiSz(const Strings:TStrings;const MultiSz:PChar;const BufSize:Int):Int; Proc DrawTextOutline(const Canvas: TCanvas;const X,Y:Int;const Text:str); Func CloneGraphicAsBitmap(const Src:Graphics.TGraphic; const PixelFmt:Graphics.TPixelFormat; const TransparentColor: Graphics.TColor): Graphics.TBitmap; Proc InvertBitmap(const ABitmap: Graphics.TBitmap); //overload; Proc InvertBitmap2(const SrcBmp, DestBmp: Graphics.TBitmap); //overload; Func MakeFilenameInExePath( aFilename : TFilename) : TFilename; Func YearOfDate2( DateTime : TDateTime) : Int; Func MonthOfDate2( DateTime : TDateTime) : Int; Func DayOfDate2( DateTime : TDateTime) : Int; Func HourOfTime2( DateTime : TDateTime) : Int; Func MinuteOfTime2( DateTime : TDateTime) : Int; Func SecondOfTime2( DateTime : TDateTime) : Int; Func IsLeapYear2( DateTime : TDateTime) :Bool; Func DaysInMonth2( DateTime : TDateTime) : Int; Func MakeUTCTime( DateTime : TDateTime) : TDateTime; Func MakeLocalTimeFromUTC( DateTime : TDateTime) : TDateTime; Func IsStandardTime :Bool; Func UnixNow : Int64; Func NowString :Str; Func MakeClosedTag( aTagName, aTagValue :Str) :Str; Func MakeOpenTag( aTagName, aTagAttributes :Str) :Str; Func MakeBold( Str :Str) :Str; Func MakeItalic( Str :Str) :Str; Func MakeUnderline( Str :Str) :Str; Func MakeStrikeout( Str :Str) :Str; Func MakeCenter( Str :Str) :Str; Func MakeParagraph( Str :Str) :Str; Func MakeCode( Str :Str) :Str; Func MakeOption( aValue, aText :Str) :Str; Func MakeHTMLFontSize( Str :Str; SizeParam :Str) :Str; Func AddQuotes2( Str :Str) :Str; Func AddSingleQuotes( Str :Str) :Str; Func MakeHTMLParam( Str :Str) :Str; Func MakeLink( URL, name :Str) :Str; Func MakeLinkTarget( URL, name, Target :Str) :Str; Func MakeMailTo( Address, name :Str) :Str; Func HTMLToDelphiColor( S :Str) : TColor; Func ColorToHTMLHex( Color : TColor) :Str; Func GetStringFromRes( ResName :Str) :Str; Func EscapeText( sText :Str) :Str; Func EncodeForXML( const aString :Str) :Str; Func IsStringAlpha( Str :Str) :Bool; Func IsStringNumber( Str :Str) :Bool; Func EnsurePrefix( aPrefix, aText :Str) :Str; Func StringToAcceptableChars( S :Str; AcceptableChars : TCharSet) :Str; Func StringIsAcceptable( S :Str; AcceptableChars : TCharSet) :Bool; Func ValidateEMailAddress( aEmail :Str) :Bool; Func FirstChar( Str :Str) : Char; Func LastChar( Str :Str) : Char; Func StringIsEmpty( Str :Str) :Bool; Func StringIsNotEmpty( Str :Str) :Bool; Func StringHasSpacesInMiddle( Str :Str) :Bool; Func StringContains( aString :Str; aSubStr :Str) :Bool; Func SpacesToUnderscore( S :Str) :Str; Func SpacesToPluses( Str :Str) :Str; Func SwapString( Str :Str) :Str; Func MakeCopyrightNotice( aCopyrightHolder :Str) :Str; Proc WriteStringToFile( aStr :Str; aFilename : TFilename); //Func WinExecandWait32( Path : PChar; Visibility : Word) : Int; Func WinExecAndWait32V2( Filename :Str; Visibility : Int) : DWORD; Func WindowsExit( RebootParam : Longword) :Bool; Func GetVersionInfo2 :Str; Func VersionString( aPrefix :Str; aUseColon :Bool) :Str; Func CreateTempFileName( aPrefix :Str) :Str; Func GetWindowsTempDir :Str; Func GetWindowsDir2 :Str; Func GetSystemDir2 :Str; Func GetSpecialFolderLocation( aFolderType : Int) :Str; Func GetTextFileContents( aFilename : TFilename) :Str; Func GetBDSDir( aVersion : Int) :Str; Func CaptionMessageDlg(const aCaption:str;const Msg:str;DlgType:TMsgDlgType;Buttons TMsgDlgButtons;HelpCtx:Longint):Int; Func StreamFileCopy(const SourceFilename,TargetFilename:str;KeepDate:Boolean):Int; Func MakePercentString( f : Double):Str; Proc DumpKey( var aKey : Char); Func ValidateKey2(var aKey:Char; AcceptableKeys:TCharSet;KillTheKey:Bool) :Bool; Func MakeInterbaseString( aHostName, aFilename :Str) :Str; Func ParseToken( const S :Str; var FromPos : Int; Delimiter : Char):Str; Proc MatchBounds( MovedControl, TemplateControl : TControl); Proc LockWidth( aControl : TControl); Proc LockHeight( aControl : TControl); Proc LockBounds( aControl : TControl); Func TruncateFilename(aCanvas:TCanvas;aRect:TRect;aFilename:str;aMargin Int):Str; Func PointInRect2( const R : TRect; const P : TPoint) :Bool;; Func PointInRect3( const R : TRect; const X, Y : Int) :Bool;; Proc VariantToStream2( const V : OLEVariant; Stream : TStream); Proc StreamToVariant2( Stream : TStream; var V : OLEVariant); Proc AssignDocument( Browser : TWebBrowser; Text :Str); Proc LoadStreamToWebBrowser( WebBrowser : TWebBrowser; Stream : TStream); Proc SaveWebBrowserSourceToStream( Document : IDispatch; Stream : TStream); Proc GetStylesFromBrowser( aBrowser : TWebBrowser; aStyles : TStrings); TypeS('TnxBits', 'Int; TypeS('TDayHours', 'Int; ClassN(CL.FindClass('TOBJECT,'NixUtilsException; Func REG_CURRENT_VERSION :Str; Func RegisteredOwner :Str; Func RegisteredCompany :Str; Func GetLocalComputerName2 :Str; Func GetLocalUserName2 :Str; Func DeleteToRecycleBin(WindowHandle: HWND; Filename:str; Confirm:Bool): Bool; Func RemoveBackSlash2( const Dir :Str) :Str; Func EnsureBackSlash( aPath :Str) :Str; Func EnsureForwardSlash( aPath :Str) :Str; Func RemoveLeadingSlash( aPath :Str) :Str; Func SameDirectories( aDir1, aDir2 : TFilename) :Bool; Func EnsureExtensionHasLeadingPeriod( aExtension :Str) :Str; Func RemoveExtension( aFilename :Str) :Str; Func GetModuleFileNameStr :Str; Func ModulePath :Str; Func IniFileName :Str; Func MakeFilenameInExePath( aFilename : TFilename) : TFilename; Func IsBitSet( Bits : Int; BitToSet : TnxBits) :Bool; Func SetBit6( Bits : Int; BitToSet : TnxBits) : Int; Func UnSetBit( Bits : Int; BitToSet : TnxBits) : Int; Func FlipBit( Bits : Int; BitToSet : TnxBits) : Int; Func / FontToOleFont Func / OleFontToFont Func GetCachedFileFromURL(strUL:Str; var strLocalFile:Str):Bool; Func IAddrToHostName(const IP:Str):Str; Func GetIEHandle(WebBrowser: TWebbrowser; ClassName:Str): HWND; Func GetTextFromHandle(WinHandle: THandle):Str; Proc Duplicate_Webbrowser(WB1, WB2: TWebbrowser); Func FillWebForm(WebBrowser:TWebBrowser;FieldName:Str; Value:Str):Bool; Proc WB_LoadHTML(WebBrowser: TWebBrowser; HTMLCode:Str); Func NetSend(dest, Source, Msg:Str): Longint; overload; end; Proc SIRegister_UWANTUtils(CL: TPSPascalCompiler); begin TErrorSeverity,(errwantNone,errwantInfo,errwantHint,errwantWarning,errwantError,errwantFatal ); Func ErrTag( Sev : TErrorSeverity) :Str; Func MakeInt64( LowInt32, HiInt32 :Card) : Int64; Func FolderContent( const APath :Str) : INode; Func FindFiles2(const AFolder,AMask:Str;Attrs:Int;AList:TStrings;ASearchSubdirs:Bool):Bool; Func ErrorSeverityStr( ASeverity : TErrorSeverity) :Str; Func IsParameterOptional( AParamDef : INode) :Bool; Func ExtractMethodName( const S :Str) :Str; Func LineNoOf( ANode : INode) : Int; Func ColNoOf( ANode : INode) : Int; Func WANTBoolToStr( AValue :Bool) :Str; Func WANTStrToBool( const AValue :Str; dEFAULT :Bool) :Bool; Func StrDefault( const S, Default :Str) :Str; Func PluralNoun( Count : Int; const S :Str) :Str; Func IsUnqualifiedName( const AName :Str) :Bool; Func IsModuleTag( const ATag :Str) :Bool; Func IsCallableTag( const ATag :Str) :Bool; Func IsConditionalTag( const ATag :Str) :Bool; Func IsMethodTag( const ATag :Str) :Bool; Func StripDriveFromPath( const AFileName :Str) :Str; Func TotalTime( NumTicks : Int64) :Str; end; Proc SIRegister_IdNNTPServer(CL: TPSPascalCompiler); begin TIdNNTPAuthType', '( atUserPass, atSimple, atGeneric ); TIdNNTPAuthTypes', 'set of TIdNNTPAuthType; SIRegister_TIdNNTPThread(CL); TypeS('TIdNNTPOnAuth', Proc ( AThread : TIdNNTPThread; var VAccept :Bool); TIdNNTPOnNewGroupsList','Procedure(AThread:TIdNNTPThread;const ADateStamp:TDateTime;const ADistributions:str); TIdNNTPOnNewNews', 'Proc ( AThread : TIdNNTPThread; const Nributions :Str); TIdNNTPOnIHaveCheck', 'Procedure(AThread:TIdNNTPThread;const AMsgID String; VAccept : Bool); TIdNNTPOnArticleByNo', 'Proc ( AThread : TIdNNTPThread; const AMsgNo : Int); TIdNNTPOnArticleByID', 'Proc ( AThread : TIdNNTPThread; const AMsgID :Str); TIdNNTPOnCheckMsgNo', 'Procedure(AThread:TIdNNTPThread;const AMsgNo:Int; var VMsgID :Str); TIdNNTPOnCheckMsgID','Proc (AThread:TIdNNTPThread; const AMsgId:str;var VMsgNo : Int); TIdNNTPOnMovePointer', 'Proc (AThread TIdNNTPThread;var AMsgNo:Int;var VMsgID:str); TIdNNTPOnPost','Procedure(AThread:TIdNNTPThread;var VPostOk:Boolean;var VErrorText :Str); TIdNNTPOnSelectGroup','Procedure(AThread:TIdNNTPThread;const AGroup:str;var VMsgCount:Int;var VMsgFirst:Int;var +VMsgLast : Int; var VGroupExists :Bool); TIdNNTPOnCheckListGroup', 'Proc ( AThread : TIdNNTPThread; ' +'const AGroup :Str; var VCanJoin :Bool; var VFirstArticle : Int); TIdNNTPOnXHdr', 'Proc ( AThread : TIdNNTPThread; const AHea' +derName:Str; const AMsgFirst: Int; const AMsgLast:Int;const AMsgID:str); TIdNNTPOnXOver', 'Proc (AThread:TIdNNTPThread;const AMsgFirst:Int;const AMsgLast : Int); TIdNNTPOnXPat','Procedure(AThread:TIdNNTPThread;const AHeaderName:str;const AMsgFirst:Int; const AMsgLast:Int;const AMsgID:str;const AHeaderPattern:str); TIdNNTPOnAuthRequired','Procedure(AThread:TIdNNTPThread;const ACommand,AParams:str;var VRequired:Bool); TIdNNTPOnListPattern', 'Proc (AThread:TIdNNTPThread;const AGroupPattern:str); SIRegister_TIdNNTPServer(CL); end; Proc SIRegister_OverbyteIcsAsn1Utils(CL: TPSPascalCompiler); begin 'ASN1UtilsVersion','LongInt.SetInt( 101); ConstantN('ASN1_BOOL','LongWord.SetUInt( $01); 'ASN1_INT','LongWord.SetUInt( $02); 'ASN1_OCTSTR','LongWord').SetUInt( $04); 'ASN1_NULL','LongWord').SetUInt( $05); 'ASN1_OBJID','LongWord').SetUInt( $06); 'ASN1_ENUM','LongWord').SetUInt( $0a); 'ASN1_SEQ','LongWord').SetUInt( $30); 'ASN1_SETOF','LongWord').SetUInt( $31); 'ASN1_IPADDR','LongWord').SetUInt( $40); 'ASN1_COUNTER','LongWord').SetUInt( $41); 'ASN1_GAUGE','LongWord').SetUInt( $42); 'ASN1_TIMETICKS','LongWord').SetUInt( $43); 'ASN1_OPAQUE','LongWord').SetUInt( $44); Func ASNEncOIDItem2( Value : Int) : Ansistr; Func ASNDecOIDItem2( var Start : Int; const Buffer : Ansistr) : Int; Func ASNEncLen2( Len : Int) : Ansistr; Func ASNDecLen2( var Start : Int; const Buffer : Ansistr) : Int; Func ASNEncInt2( Value : Int) : Ansistr; Func ASNEncUInt2(Value : Int) : Ansistr; Func ASNObject2( const Data : Ansistr; ASNType : Int) : Ansistr; Func ASNItem2( var Start:Int; const Buffer:Ansistr; var ValueType:Int):Ansistr; Func MibToId2( Mib :Str) : Ansistr;; //Func MibToId1( Mib : Ansistr) : Ansistr;; Func IdToMib2( const Id : Ansistr) :Str; Func IntMibToStr2( const Value : Ansistr) : Ansistr; Func ASNdump2( const Value : Ansistr) :Str; end; const SM_MEDIACENTER = 87; //metrics flag not defined in Windows unit SM_TABLETPC = 86; http://snippets.delphidabbler.com/# Proc SIRegister_wmiserv(CL: TPSPascalCompiler); begin ConstantN('EOAC_NONE','LongInt').SetInt( 0); 'RPC_C_AUTHN_WINNT','LongInt').SetInt( 10); 'RPC_C_AUTHZ_NONE','LongInt').SetInt( 0); 'RPC_E_CHANGED_MODE','LongInt').SetInt( - 2147417850); Func WMIStart : ISWBemLocator; Func WMIConnect(WBemLocator:ISWBemLocator;Server,account,password:str):ISWBemServices; Func WMIExecQuery( WBemServices : ISWBemServices; query :Str) : ISWbemObjectSet; Func WMIRowFindFirst(ObjectSet:ISWbemObjectSet;var ENum:IEnumVariant;var tempobj:OleVariant):bool; Func WMIRowFindNext( ENum : IENumVariant; var tempobj : OleVariant) :Bool; Func WMIColFindFirst(var propENum:IENumVariant; var tempObj : OleVariant):Bool; Func WMIColFindNext( propENum : IENumVariant; var tempobj : OleVariant) :Bool; Func WMIGetValue(wbemservices:ISWBemServices; tablename,fieldname:str):Str; Func WMIConvValue( tempobj : OleVariant; var keyname :Str):Str; --- wmiserv2: Func WMIRegConnect(WBemLocator:ISWBemLocator;Server,account,password:str): ISWBemServices; Proc WMIGetMethodInfo(srv:ISWbemServices;objname,method:str; var regobject,inparms: ISWBemObject); Proc WMISetValue(InParam: ISWBemObject; keyvalue:Str; invalue: OleVariant); end; Proc SIRegister_RegSvrUtils(CL: TPSPascalCompiler); begin SIRegister_ERegistryException(CL); Func RegOpenKey2( Key : HKey; const SubKey :Str) : HKey; Func RegGetKey( Key : HKey; const SubKey :Str) :Str; Func RegCanOpenKey( Key : HKey; const SubKey :Str; var OutKey : HKey) :Bool; Func RegKeyExists2( Key : HKey; const SubKey :Str) :Bool; Func RegCloseAndNilKey( var Key : HKey) :Bool; Func RegQuerySubKeyCount( Key : HKey) : Int; Func RegEnumKey2( Key : HKey; Index : Int; var Value :Str) :Bool; Func RegQueryKey( Key : HKey; const SubKey :Str; var Value :Str) :Bool; Func RegGetDefaultValue( Key : HKey) :Str; Func RegGetValueEx( Key : HKey; const ValName :Str) :Str; Proc ErrorFmt( const Ident :Str; const Args : array of const); Proc FmtError( const Ident :Str; const Args : array of const); end; Proc SIRegister_osFileUtil(CL: TPSPascalCompiler); //Linux begin Func OsDOS2UnixFileAttributes( Attr : LongWord) : LongWord; Func OsUnix2DosFileAttributes( Attr : LongWord) : LongWord; Func OsUnixFileTimeToDateTime( UnixTime : LongInt) : TDateTime; Func OsDateTimeToUnixFileTime( DateTime : TDateTime) : LongInt; Func OsDosFileTimeToDateTime( DosTime : LongInt) : TDateTime; Func OsDateTimeToDosFileTime( Value : TDateTime) : LongInt; Func OsFileTimeToLocalFileTime( FileTime : LongInt) : LongInt; Func OsLocalFileTimeToFileTime( FileTime : LongInt) : LongInt; end; Proc SIRegister_TWebBrowser(CL: TPSPascalCompiler); begin //with RegClassS(CL,'TOleControl', 'TWebBrowser') do with ClassN(CL.FindClass('TOleControl'),'TWebBrowser') do begin RegisterMethod(Proc GoBack; Proc GoForward; Proc GoHome; Proc GoSearch; Proc Navigate7( const URL : WideString);; Proc Navigate8( const URL : WideString; const Flags : OleVariant);; Proc Navigate9(const URL:WideString;const Flags:OleVariant;const TargetFrameName: OleVariant);; Proc Navigate10(const URL:WideString;const Flags:OleVariant;const TargetFrameName:OleVariant;var PostData:OleVariant); Proc Navigate11(const URL:WideString;const Flags:OleVariant;const TargetFrameName:OleVariant;var PostData:OleVariant;const Headers:OleVariant); Proc Refresh; Proc Refresh212;; Proc Refresh213( var Level : OleVariant);; Proc Stop; Proc Quit; Proc ClientToWindow( var pcx : SYSINT; var pcy : SYSINT); Proc PutProperty( const Property_ : WideString; vtValue : OleVariant); Func GetProperty( const Property_ : WideString) : OleVariant; Proc Navigate214( var URL : OleVariant);; Proc Navigate215( var URL : OleVariant; var Flags : OleVariant);; Proc Navigate216(var URL:OleVariant;var Flags:OleVariant;var TargetFrameName:OleVar); Proc Navigate217(var URL:OleVariant;var Flags:OleVariant;var TargetFrameName:OleVariant;var PostData: OleVariant); Proc Navigate218(var URL:OleVariant;var Flags:OleVariant;var TargetFrameName:OleVar;var PostData:OleVariant;var Headers:OleVariant); Func QueryStatusWB( cmdID : OLECMDID) : OLECMDF; Proc ExecWB19( cmdID : OLECMDID; cmdexecopt : OLECMDEXECOPT);; Proc ExecWB20(cmdID:OLECMDID;cmdexecopt: OLECMDEXECOPT; var pvaIn : OleVariant);; Proc ExecWB21(cmdID:OLECMDID;cmdexecopt:OLECMDEXECOPT;var pvaIn:OleVariant;var pvaOut:OleVariant); Proc ShowBrowserBar22( var pvaClsid : OleVariant);; Proc ShowBrowserBar23( var pvaClsid : OleVariant; var pvarShow : OleVariant);; Proc ShowBrowserBar24(var pvaClsid:OleVariant;var pvarShow:OleVariant;var pvarSize: OleVariant);; ControlInterface', 'IWebBrowser2', iptr); RegisterProperty(DefaultInterface, IWebBrowser2', iptr); Application', 'IDispatch', iptr); Parent', 'IDispatch', iptr); Container', 'IDispatch', iptr); Document', 'IDispatch', iptr); TopLevelContainer', 'WordBool', iptr); type_', 'WideString', iptr); LocationName', 'WideString', iptr); LocationURL', 'WideString', iptr); Busy', 'WordBool', iptr); Name', 'WideString', iptr); FullName', 'WideString', iptr); Path', 'WideString', iptr); Visible', 'WordBool', iptrw); StatusBar', 'WordBool', iptrw); StatusText', 'WideString', iptrw); ToolBar', 'Int', iptrw); MenuBar', 'WordBool', iptrw); FullScreen', 'WordBool', iptrw); Offline', 'WordBool', iptrw); Silent', 'WordBool', iptrw); RegisterAsBrowser', 'WordBool', iptrw); RegisterAsDropTarget', 'WordBool', iptrw); TheaterMode', 'WordBool', iptrw); AddressBar', 'WordBool', iptrw); Resizable', 'WordBool', iptrw); OnStatusTextChange', 'TWebBrowserStatusTextChange', iptrw); OnProgressChange', 'TWebBrowserProgressChange', iptrw); OnCommandStateChange', 'TWebBrowserCommandStateChange', iptrw); OnDownloadBegin', 'TNotifyEvent', iptrw); OnDownloadComplete', 'TNotifyEvent', iptrw); OnTitleChange', 'TWebBrowserTitleChange', iptrw); OnPropertyChange', 'TWebBrowserPropertyChange', iptrw); OnBeforeNavigate2', 'TWebBrowserBeforeNavigate2', iptrw); OnNewWindow2', 'TWebBrowserNewWindow2', iptrw); OnNavigateComplete2', 'TWebBrowserNavigateComplete2', iptrw); OnDocumentComplete', 'TWebBrowserDocumentComplete', iptrw); OnQuit', 'TNotifyEvent', iptrw); OnVisible', 'TWebBrowserOnVisible', iptrw); OnToolBar', 'TWebBrowserOnToolBar', iptrw); OnMenuBar', 'TWebBrowserOnMenuBar', iptrw); OnStatusBar', 'TWebBrowserOnStatusBar', iptrw); OnFullScreen', 'TWebBrowserOnFullScreen', iptrw); OnTheaterMode', 'TWebBrowserOnTheaterMode', iptrw); OnWindowSetResizable', 'TWebBrowserWindowSetResizable', iptrw); OnWindowSetLeft', 'TWebBrowserWindowSetLeft', iptrw); OnWindowSetTop', 'TWebBrowserWindowSetTop', iptrw); OnWindowSetWidth', 'TWebBrowserWindowSetWidth', iptrw); OnWindowSetHeight', 'TWebBrowserWindowSetHeight', iptrw); OnWindowClosing', 'TWebBrowserWindowClosing', iptrw); OnClientToHostWindow', 'TWebBrowserClientToHostWindow', iptrw); OnSetSecureLockIcon', 'TWebBrowserSetSecureLockIcon', iptrw); OnFileDownload', 'TWebBrowserFileDownload', iptrw); OnNavigateError', 'TWebBrowserNavigateError', iptrw); OnPrintTemplateInstantiation', 'TWebBrowserPrintTemplateInstantiation', iptrw); OnPrintTemplateTeardown', 'TWebBrowserPrintTemplateTeardown', iptrw); OnUpdatePageStatus', 'TWebBrowserUpdatePageStatus', iptrw); OnPrivacyImpactedStateChange', 'TWebBrowserPrivacyImpactedStateChange', iptrw); end; end; Proc SIRegister_xutils(CL: TPSPascalCompiler); begin //TypeS('PshortString', '^ShortString // will not work; 'EXIT_DOSERROR','LongInt').SetInt( 2); 'EXIT_ERROR','LongInt').SetInt( 1); 'adCmdTxt','LongInt').SetInt($00000001); 'adExecNoRecords','LongInt').SetInt($00000080); {** Byte order mark: UTF-8 encoding signature } ('BOM_UTF8','String').SetString( #$EF#$BB#$BF); {** Byte order mark: UTF-8 encoding signature } BOM_UTF8 = #$EF#$BB#$BF; {** Byte order mark: UCS-4 big endian encoding signature } BOM_UTF32_BE = #00#00#$FE#$FF; {** Byte order mark: UCS-4 little endian encoding signature } BOM_UTF32_LE = #$FF#$FE#00#00; BOM_UTF16_BE = #$FE#$FF; BOM_UTF16_LE = #$FF#$FE; //const adCmdTxt = $00000001; //adExecNoRecords = $00000080; Func AnsiFileExists( const FName :Str) :Bool; Func AnsiDirectoryExists( DName :Str) :Bool; Proc SwapLong2( var x : longword); Proc SwapWord2( var x : word); Func UpString( s :Str) :Str; Func LowString( s :Str) :Str; Func AddDoubleQuotes( s :Str) :Str; Func RemoveDoubleQuotes( s :Str) :Str; Proc StreamErrorProcedure( var S : TStream); Func StrToken( var Text :Str; Delimiter : Char; UseQuotes:boolean):Str; Func StrGetNextLine( var Text :Str) :Str; Func TrimLeftx( const S :Str) :Str; Func TrimRightx( const S :Str) :Str; Func hexstr( val : longint; cnt : byte) :Str; Func decstr( val : longint; cnt : byte) :Str; Func decstrunsigned( l : longword; cnt : byte) :Str; Func boolstr( val :Bool; cnt : byte) :Str; Func CompareByte( buf1, buf2 : pchar; len : longint) : Int; Func Trimx( const S :Str) :Str; Func Printf2( const s :Str; var Buf:Str; size : word) :Str; Func Printfx( const s :Str; var Buf:Str; size : word) :Str; Func FillTo( s :Str; tolength : Int) :Str; Func stringdup( const s :Str) :Str; //Proc stringdispose( var p : pShortstring); Func EscapeToPascal( const s :Str; var code : Int) :Str; Func ValDecimal( const S :Str; var code : Int) : longint; Func ValUnsignedDecimal( const S :Str; var code : Int) : longword; Func ValOctal( const S :Str; var code : Int) : longint; Func ValBinary( const S :Str; var code : Int) : longint; Func ValHexadecimal( const S :Str; var code : Int) : longint; Func CleanString( const s :Str) :Str; Func ChangeFileExt2( const FileName, Extension :Str) :Str; Func fillwithzero( s :Str; newlength : Int) :Str; Func removenulls( const s :Str) :Str; //ConstantN('WhiteSpace','Char').SetString( ' ' or #10 or #13 or #9); end; Proc SIRegister_ietf(CL: TPSPascalCompiler); begin Func mime_isvalidcontenttype( const s : shortstring) :Bool; Func langtag_isvalid( const s :Str) :Bool; Func langtag_split( const s :Str; var primary, sub :Str) :Bool; URI_START_DELIMITER_CHAR','String').SetString( '<; URI_END_DELIMITER_CHAR','String').SetString( '>; URI_SCHEME_NAME_EMAIL','String').SetString( 'mailto; URI_SCHEME_SEPARATOR','String').SetString( ':; Func uri_split( url :Str; var scheme, authority, path, query :Str) :Bool; Func urn_isvalid( s : shortstring) :Bool; Func urn_isvalidnid( nid :Str) :Bool; Func urn_split( urn :Str; var urnidstr, nidstr, nssstr :Str) :Bool; Func urn_pathsplit( path :Str; var namespace, nss :Str) :Bool; Func http_pathsplit( path :Str; var directory, name :Str) :Bool; Func file_pathsplit( path :Str; var directory, name :Str) :Bool; end; Proc SIRegister_dateutilreal(CL: TPSPascalCompiler); begin TypeS('TDatetimeReal', 'real; TypeS(TDateInfo', 'record DateTime : TDateTime; UTC :Bool; end; //TypeS('float', 'real; TypeS('big_Int_t', 'int64; 'DayMondayR','LongInt').SetInt( 1); ConstantN('DayTuesdayR','LongInt').SetInt( 2); 'DayWednesdayR','LongInt').SetInt( 3); 'DayThursdayR','LongInt').SetInt( 4); 'DayFridayR','LongInt').SetInt( 5); 'DaySaturdayR','LongInt').SetInt( 6); 'DaySundayR','LongInt').SetInt( 7); Func CurrentYearreal : word; Func Datereal : TDatetimeReal; Func DateOfreal( const AValue : TDatetimeReal) : TDatetimeReal; Func DateTimeToStrreal( DateTime : TDatetimeReal) :Str; Func DateToStrreal( date : TDatetimeReal) :Str; Func DayOfreal( const AValue : TDatetimeReal) : Word; Func DaysBetweenreal( const ANow, AThen : TDatetimeReal) : Int; Proc DecodeDatereal( Date : TDatetimeReal; var Year, Month, Day : Word); Proc DecodeDateTimereal(const AValue:TDatetimeReal;var Year,Month,Day,Hour,Minute,Second,MilliSecond:Word); Proc DecodeTimereal( Time : TDatetimeReal; var Hour, Min, Sec, MSec : Word); Func HourOfreal( const AValue : TDatetimeReal) : Word; Func IncDayreal(const AValue:TDatetimeReal;const ANumberOfDays:Int): TDatetimeReal; Func IncHourreal(const AValue:TDatetimeReal;const ANumberOfHours:longint):TDatetimeReal; Func IncMilliSecondreal(const AValue:TDatetimeReal; const ANumberOfMilliSeconds: big_Int_t):TDatetimeReal; Func IncMinutereal(const AValue: TDatetimeReal; const ANumberOfMinutes: big_Int_t) : TDatetimeReal; Func IncSecondreal(const AValue: TDatetimeReal; const ANumberOfSeconds: big_Int_t) : TDatetimeReal; Func IncWeekreal(const AValue:TDatetimeReal;const ANumberOfWeeks:Int): TDatetimeReal; Func IsPMreal( const AValue : TDatetimeReal) :Bool; Func IsValidDatereal( const AYear, AMonth, ADay : Word) :Bool; Func IsValidDateTimereal(const AYear,AMonth,ADay,AHour,AMinute,ASecond,AMilliSec:Word):Bool; Func IsValidTimereal( const AHour, AMinute, ASecond, AMilliSecond : Word) :Bool; Func MinuteOfreal( const AValue : TDatetimeReal) : Word; Func MonthOfreal( const AValue : TDatetimeReal) : Word; Func Nowreal : TDatetimeReal; Func SameDatereal( const A, B : TDatetimeReal) :Bool; Func SameDateTimereal( const A, B : TDatetimeReal) :Bool; Func SameTimereal( const A, B : TDatetimeReal) :Bool; Func SecondOfreal( const AValue : TDatetimeReal) : Word; Func Timereal : TDatetimeReal; Func GetTimereal : TDatetimeReal; Func TimeOfreal( const AValue : TDatetimeReal) : TDatetimeReal; Func TimeToStrreal( Time : TDatetimeReal) :Str; Func Todayreal : TDatetimeReal; Func TryEncodeDatereal( Year, Month, Day : Word; var Date : TDatetimeReal) :Bool; Func TryEncodeTimereal(Hour,Min,Sec MSec: Word; var Time : TDatetimeReal) :Bool; Func TryEncodeDateTimereal(const AYear,AMonth, ADay,AHour,AMinute, ASecond, AMilliSecond:Word;var AValue:TDatetimeReal):Boolean; Func TryStrToDatereal( const S :Str; var Value : TDatetimeReal) :Bool; Func TryStrToDateTimereal( const S :Str; var Value : TDatetimeReal) :Bool; Func TryStrToTimereal( const S :Str; var Value : TDatetimeReal) :Bool; Func YearOfreal( const AValue : TDatetimeReal) : Word; Func parsetimeISO(timestr:str;var hourval,minval,secval:word;var offsethourval,offsetminval:Int;var UTC:bool):bool; Func parsedateISO( datestr :Str; var yearval, monthval, dayval : word) :Bool; Func datetojd( year, month, day, hour, minute, second, millisecond : word) : float; Proc jdtodate(jday:float; var year, month, day, hour, minute, second, msec : word); Func converttoisotime( timestr :Str) :Str; Func AdobeDateToISODate( s :Str) :Str; Func RFC822ToISODateTime( s :Str) :Str; Proc getdatedos( var year, month, mday, wday : word); Proc gettimedos( var hour, minute, second, sec100 : word); end; Proc SIRegister_dateext4(CL: TPSPascalCompiler); begin TypeS('tfiletime2', 'record LowDateTime: longword; HighDateTime: longword; end; // TypeS('big_Int_t', 'int64; Func DosToWinTime( DTime : longint; var Wtime : TFileTime) : longbool; Func WinToDosTime( const Wtime : TFileTime; var DTime : longint) : longbool; Func TryStrToDateTimeExt(const S:str;var Value:TDateTime;var UTC:boolean):Bool); Func TryEncodeDateAndTimeToStr(const Year,Month,Day,Hour,Minute,Second,MilliSecond:word;UTC:boolean;var AValue:str):boolean; Func DateTimeToStrExt( DateTime : TDateTime; utc :Bool) :Str; Proc GetCurrentDate( var Year, Month, Day, DayOfWeek : Int); Proc GetCurrentTime2( var Hour, Minute, Second, Sec100 : Int); Func TryUNIXToDateTimeExt(unixtime:big_Int_t;var DateTime:TDateTime;var UTC:bool): bool; Func TryFileTimeToDateTimeExt( ftime : tfiletime; var DateTime : TDateTime; var UTC :Bool): bool; Proc JulianToGregorian(JulianDN:big_Int_t;var Year,Month,Day:Word);; end; Proc SIRegister_locale(CL: TPSPascalCompiler); begin Func GetISODateString( Year, Month, Day : Word) :Str; Func GetISODateStringBasic( Year, Month, Day : Word) :Str; Func IsValidISODateString( datestr : shortstring; strict :Bool) :Bool; Func IsValidISODateStringExt(datestr:shortstring;strict:bool;var Year,Month,Day:word):bool; Func IsValidISOTimeString( timestr : shortstring; strict :Bool) :Bool; Func IsValidISOTimeStringExt(timestr:shortstring;strict:boolean;var hour,min,sec:word;var offhour,offmin: smallint):bool; Func IsValidISODateTimeString( str : shortstring; strict :Bool) :Bool; Func GetISOTimeString( Hour, Minute, Second : Word; UTC :Bool) : shortstring; Func GetISOTimeStringBasic(Hour,Minute,Second: Word; UTC :Bool) : shortstring; Func GetISODateTimeString(Year,Month,Day,Hour,Minute,Second:Word;UTC:Bool):shortstring; Proc UNIXToDateTime2(epoch:big_Int_t; var year,month,day,hour,minute,second: Word); Func GetCharEncoding( alias :Str; var _name :Str) : Int; Func MicrosoftCodePageToMIMECharset( cp : word) :Str; Func MicrosoftLangageCodeToISOCode( langcode : Int) :Str; CHAR_ENCODING_UTF8','LongInt').SetInt( 0); ConstantN(CHAR_ENCODING_UNKNOWN',LongInt').SetInt( - 1); 'CHAR_ENCODING_UTF32BE','LongInt').SetInt( 1); 'CHAR_ENCODING_UTF32LE','LongInt').SetInt( 2); 'CHAR_ENCODING_UTF16LE','LongInt').SetInt( 3); 'CHAR_ENCODING_UTF16BE','LongInt').SetInt( 4); 'CHAR_ENCODING_BYTE','LongInt').SetInt( 5); 'CHAR_ENCODING_UTF16','LongInt').SetInt( 6); 'CHAR_ENCODING_UTF32','LongInt').SetInt( 7); end; Proc SIRegister_Strings(CL: TPSPascalCompiler); begin DelphiFunction('Func StrLenPchar( Str : PChar) : longint; Func StrEndPchar( Str : PChar) : PChar; Func StrMovePchar( Dest, Source : Pchar; l : Longint) : pchar; Func StrCopyPchar( Dest, Source : PChar) : PChar; Func StrECopyPchar( Dest, Source : PChar) : PChar; Func StrLCopyPchar( Dest, Source : PChar; MaxLen : Longint) : PChar; Func StrPCopyPchar( Dest : PChar; Source :Str) : PChar; Func StrCatPchar( Dest, Source : PChar) : PChar; Func strlcatPchar( dest, source : pchar; l : Longint) : pchar; Func StrCompPchar( Str1, Str2 : PChar) : Int; Func StrICompPchar( Str1, Str2 : PChar) : Int; Func StrLCompPchar( Str1, Str2 : PChar; MaxLen : Longint) : Int; Func StrLICompPchar( Str1, Str2 : PChar; MaxLen : Longint) : Int; Func StrScanPchar( Str : PChar; Ch : Char) : PChar; Func StrRScanPchar( Str : PChar; Ch : Char) : PChar; Func StrPosPchar( Str1, Str2 : PChar) : PChar; Func StrUpperPchar( Str : PChar) : PChar; Func StrLowerPchar( Str : PChar) : PChar; Func StrPasPchar( Str : PChar) :Str; Func StrNewPchar( P : PChar) : PChar; Proc StrDisposePchar( P : PChar); end; Proc SIRegister_crc_checks(CL: TPSPascalCompiler); begin Func UpdateCrc32_2( InitCrc : longword; b : byte) : longword; Func UpdateCrc16_2( InitCrc : word; b : byte) : word; Func UpdateAdler32( InitAdler : longword; b : byte) : longword; Func UpdateFletcher8( InitFletcher : word; b : byte) : word; Func UpdateCRC( InitCrc : word; b : byte) : word; end; Proc SIRegister_extdos(CL: TPSPascalCompiler); begin TypeS('utf8char', 'char; TypeS('putf8char', 'pchar; TypeS('utf16char', 'word; TypeS('ucs4char', 'longword; //TypeS('pucs4char', '^ucs4char // will not work; TypeS('ucs2char', 'word; TypeS('pucs2char', 'ucs2char; // will not work; //TypeS('pucs2char', '^ucs2char // will not work; TypeS('utf8string', 'string; // TypeS('putf8shortstring', '^shortstring // will not work; TypeS('_USER_INFO_2', record usri2_name : pucs2char; usri2_password : ' +pucs2char; usri2_password_age : DWORD; usri2_priv : DWORD; usri2_home_dir ' +: pucs2char; usri2_comment : pucs2char; usri2_flags : DWORD; usri2_script_' +path : pucs2char; usri2_auth_flags : DWORD; usri2_full_name : pucs2char; u' +sri2_usr_comment : pucs2char; usri2_parms : pucs2char; usri2_workstations ' +: pucs2char; usri2_last_logon : DWORD; usri2_last_logoff : DWORD; usri2_ac' +ct_expires : DWORD; usri2_max_storage : DWORD; usri2_units_per_week : DWOR' +D; usri2_logon_hours : pchar; usri2_bad_pw_count : DWORD; usri2_num_logons' +:DWORD; usri2_logon_server:pucs2char;usri2_country_code:DWORD;usri2_code_page:DWORD; end; //TypeS('P_USER_INFO_2', '^_USER_INFO_2 // will not work; TypeS('SE_OBJECT_TYPE', '( SE_UNKNOWN_OBJECT_TYPE, SE_FILE_OBJECT, SE_S' +'ERVICE, SE_PRINTER, SE_REGISTRY_KEY, SE_LMSHARE, SE_KERNEL_OBJECT, SE_WIND' +'OW_OBJECT, SE_DS_OBJECT, SE_DS_OBJECT_ALL, SE_PROVIDER_DEFINED_OBJECT, SE_' +'WMIGUID_OBJECT ); //TypeS('PPSID', '^PSID // will not work; TypeS('ASSOCF', 'DWORD; TypeS('ASSOCSTR', '( ASSOCSTR_NONE, ASSOCSTR_COMMAND, ASSOCSTR_EXECUTAB' +'LE, ASSOCSTR_FRIENDLYDOCNAME, ASSOCSTR_FRIENDLYAPPNAME, ASSOCSTR_NOOPEN, A' +'SSOCSTR_SHELLNEWVALUE,ASSOCSTR_DDECOMMAND,ASSOCSTR_DDEIFEXEC,ASSOCSTR_DDEAPPLICATION, ASSOCSTR_DDETOPIC); TypeS('TCHAR', 'ucs2char; {TypeS('TFileTime', 'FILETIME; TypeS('TWin32FindDataW', '_WIN32_FIND_DATAW; TypeS('TCHAR', 'ucs2char; TypeS('TFileTime', 'FILETIME; TypeS('TWin32FindDataW', '_WIN32_FIND_DATAW; } //dev: array[0..127] of char; {** Unique file serial number, this may change from one boot to the next.} //ino: array[0..127] of char; TypeS('tresourceattribute', '( attr_any, attr_readonly, attr_hidden, at' +'tr_system, attr_archive, attr_link, attr_directory, attr_temporary, attr_e' +'ncrypted,attr_no_indexing,attr_device,attr_extended,attr_compressed,attr_offline, attr_sparse); TFileAssociation', 'record appname : utf8string; exename : utf8string; end; tresourceattributes', 'set of tresourceattribute; TypeS('TFileStats', record name : utf8string; size : big_Int_t; ow' +ner : utf8string; ctime : TDateTime; mtime : TDateTime; atime : TDateTime;' +nlink : Int; attributes : tresourceattributes; association : tfileass' +ociation; streamcount:Int;accesses:Int; utc :Bool; dev: array[0..127] of char; ' +'ino: array[0..127] of char; comment : utf8string; dirstr : utf8string; end; TSearchRecExt', 'record Stats : TFileStats; FindHandle : THandle' +; W32FindData TWin32FindData;IncludeAttr: longint; SearchAttr:TResourceAttributes; end; Func GetFileOwner( fname : putf8char) : utf8string; GetFileATime( fname : putf8char; var atime : TDateTime) : Int; GetFileMTime( fname : putf8char; var mtime : TDateTime) : Int; GetFileCTime( fname : putf8char; var ctime : TDateTime) : Int; GetFilesizeExt( fname : putf8char) : big_Int_t; GetFileAttributesExt( fname : putf8char) : tresourceattributes; GetFilestats( fname : putf8char; var stats : TFileStats) : Int; DirectoryExistsExt( DName : utf8string) :Bool; FileExistsExt( const FName : utf8string) :Bool; GetCurrentDirectoryExt( var DirStr : utf8string) :Bool; SetCurrentDirectoryExt( const DirStr : utf8string) :Bool; SetFileATime( fname : putf8char; newatime : tdatetime) : Int; SetFileMTime( fname : putf8char; newmtime : tdatetime) : Int; SetFileCTime( fname : putf8char; newctime : tdatetime) : Int; FindFirstEx(path:putf8char; attr:tresourceattributes;var SearchRec:TSearchRecExt):int; FindNextEx( var SearchRec : TSearchRecExt) : Int; Proc FindCloseEx( var SearchRec : TSearchRecExt); GetUserFullName( account : utf8string) : utf8string; GetLoginConfigDirectory : utf8string; GetGlobalConfigDirectory : utf8string; GetLoginHomeDirectory : utf8string; // ucs4strnewstr(str:Str; srctype:Str): pucs4char;; // ucs4strnewucs4(src: pucs4char): pucs4char;; end; Proc SIRegister_xBase(CL: TPSPascalCompiler); begin _INADDR_ANY','LongWord').SetUInt($00000000); //CL.AddConstantN('DCX_EXCLUDERGN','LongWord').SetUInt( $40); INVALID_HANDLE_VALUE','LongInt').SetInt( DWORD ( - 1 )); CL.AddConstantN('INVALID_FILE_SIZE','LongWord').SetUInt( DWORD ( $FFFFFFFF )); INVALID_FILE_ATTRIBUTES','LongWord').SetUInt( DWORD ( $FFFFFFFF )); INVALID_FILE_TIME','LongWord').SetUInt( DWORD ( $FFFFFFFF )); INVALID_REGISTRY_KEY','LongWord').SetInt( DWORD ( - 1 )); INVALID_VALUE','LongWord').SetInt( DWORD ( - 1 )); SleepQuant','LongInt').SetInt( 1 * 60 * 1000); MMaxChars','LongInt').SetInt( 250); CL.AddTypeS('TBase64Table', '( bsBase64, bsUUE, bsXXE ); CL.AddTypeS('TWOHandleArray', 'array[0..64 - 1] of THandle;; CL.AddTypeS('TWOHandleArray2', 'array[0..MAXIMUM_WAIT_OBJECTS - 1] of THandle;; //type TWOHandleArray = array[0..MAXIMUM_WAIT_OBJECTS - 1] of THandle; // MAXIMUM_WAIT_OBJECTS = 64; SIRegister_TMimeCoder(CL); CL.AddTypeS('TSocketOption', '(soBroadcast, soDebug, soDontLinger, soDontRou' +'te, soKeepAlive, soOOBInLine, soReuseAddr, soNoDelay, soBlocking,soAcceptConn ); TSocketOptions', 'set of TSocketOption; //TSocketClass', 'class of TSocket; SIRegister_TSocketX(CL); TObjProcX', 'Procedure; TForEachProc', 'Proc ( P : _Pointer); //PFileInfo', '^TFileInfo // will not work; TFileInfo', 'record Attr : DWORD; Size : DWORD; Time : DWORD; end; TuFindData', 'record Info : TFileInfo; FName :Str; end; TCreateFileMode', '( cRead, cWrite, cFlag, cEnsureNew, cTruncate' +, cExisting, cShareAllowWrite, cShareDenyRead,cOverlapped,cRandomAccess,cSequentialScan,cDeleteOnClose ); TCreateFileModeSet', 'set of TCreateFileMode; //PCharSet', '^TCharSet // will not work; TCharSetX', 'set of Char; //PCharArray', '^TCharArray // will not work; //PByteArray', '^TByteArray // will not work; //PIntArray', '^TIntArray // will not work; //PDwordArray', '^TDwordArray // will not work; //PvIntArr', '^TvIntArr // will not work; //TvIntArr', 'record Arr : PIntArray; Cnt : Integer; end; //PBoolean', '^Boolean // will not work; //PItemList', '^TItemList // will not work; TThreadMethodX', 'Procedure; TThreadPriorityXX,(tpIdle tpLowest,tpLower,tpNormal,tpHigher,tpHighest,tpTimeCritical); SIRegister_TThreadX(CL); CL.AddClassN(CL.FindClass('TOBJECT'),'TAdvObject; SIRegister_TAdvObject(CL); SIRegister_TAdvCpObject(CL); //TAdvClass', 'class of TAdvObject; //TCollClass', 'class of TColl; SIRegister_TColl(CL); SIRegister_TSortedColl(CL); SIRegister_TStringColl(CL); Func AddRightSpaces( const S :Str; NumSpaces : Integer) :Str; Proc AddStr( var S :Str; C : char); Proc Add_Str( var S : ShortString; C : char); Func CompareStrX( const S1, S2 :Str) : Integer; Func CopyLeft( const S :Str; I : Integer) :Str; Proc DelDoubles( const St :Str; var Source :Str); Proc DelFC( var s :Str); Proc DelLC( var s :Str); Func DelLeft( const S :Str) :Str; Func DelRight( const S :Str) :Str; Func DelSpaces( const s :Str) :Str; Proc DeleteLeft( var S :Str; I : Integer); Func DigitsOnly( const AStr :Str) :Bool; Proc DisposeStr( P :Str); Func ExpandFileNameX( const FileName :Str) :Str; Func ExtractFilePathX( const FileName :Str) :Str; Func ExtractDir( const S :Str) :Str; Func ExtractFileRootX( const FileName :Str) :Str; Func ExtractFileExtX( const FileName :Str) :Str; Func ExtractFileNameX( const FileName :Str) :Str; Func ExtractFileDriveX( const FileName :Str) :Str; Func ExtractFileDirX( const FileName :Str) :Str; Proc FSplit( const FName :Str; var Path, Name, Ext :Str); Proc FillCharSetX( const AStr :Str; var CharSet : TCharSet); Func GetWrdStrictUC( var s, w :Str) :Bool; Func GetWrdStrict( var s, w :Str) :Bool; Func GetWrdD( var s, w :Str) :Bool; Func GetWrdA( var s, w :Str) :Bool; Func GetWrd( var s, w :Str; c : char) :Bool; Func Hex2X( a : Byte) :Str; Func Hex4X( a : Word) :Str; Func Hex8X( a : DWORD) :Str; Func Int2Hex( a : Integer) :Str; Func Int2StrX( L : Integer) :Str; Func ItoS( I : Integer) :Str; Func ItoSz( I, Width : Integer) :Str; Func LastDelimiterX( const Delimiters, S :Str) : Integer; Func LowerCaseX( const S :Str) :Str; Func MakeFullDir( const D, S :Str) :Str; Func MakeNormName( const Path, Name :Str) :Str; Func MonthE( m : Integer) :Str; Func NewStr( const S :Str) :Str; Func ReplaceX( const Pattern, ReplaceString:Str; var S:Str):Bool; Func StoI( const S :Str) : Integer; Func StrEnds( const S1, S2 :Str) :Bool; Func StrRightX( const S :Str; Num : Integer) :Str; Func UpperCaseX( const S :Str) :Str; Func WipeChars( const AStr, AWipeChars :Str) :Str; Func _Val( const S :Str; var V : Integer) :Bool; Func ProcessQuotes( var s :Str) :Bool; Func UnpackPchars( var s :Str) :Bool; Func UnpackUchars( var s :Str) :Bool; Func __alpha( c : char) :Bool; Func __ctl( c : char) :Bool; Func __digit( c : char) :Bool; Func __extra( c : char) :Bool; Func __national( c : char) :Bool; Func __pchar( c : char) :Bool; Func __reserved( c : char) :Bool; Func __safe( c : char) :Bool; Func __uchar( c : char) :Bool; Func __unsafe( c : char) :Bool; Func Buf2Str( const Buffer:Str) :Str; //Proc Clear( var Buf, Count : Integer); Func CompareMem( P1, P2 : _Pointer; Length : Integer) :Bool; Proc FreeObjectX( var O: TObject); Proc LowerPrec( var A, B : Integer; Bits : Byte); Func MemEqu( const A, B, Sz : Integer) :Bool; Func MaxIX( A, B : Integer) : Integer; Func MinIX( A, B : Integer) : Integer; Func MaxDX( A, B : DWORD) : DWORD; Func MinDX( A, B : DWORD) : DWORD; Func NulSearch( const Buffer:Str) : Integer; Func NumBits( I : Integer) : Integer; //Proc XAdd( var Critical, Normal); //Proc XChg( var Critical, Normal); Func CreateEvtA : DWORD; Func CreateEvt( Initial :Bool) : DWORD; Func SignaledEvt( id : DWORD) :Bool; Func WaitEvt( const id : TWOHandleArray; Timeout : DWORD) : DWORD; //Func WaitEvtA(nCount: Integer;lpHandles: PWOHandleArray; Timeout:DWORD): DWORD; Func ClearHandle( var Handle : THandle) :Bool; Proc CloseHandles( const Handles : array of DWORD); Func FileExistsX( const FName :Str) :Bool; Func FindExecutableX( FileName, Directory : PChar; Result : PChar) : HINST; Func GetEnvVariable( const Name :Str) :Str; Func GetFileNfo(const FName:Str;var Info: TFileInfo; NeedAttr:Boolean):Bool; Func GetFileNfoByHandle( Handle : DWORD; var Info : TFileInfo) :Bool; Func ZeroHandle( var Handle : THandle) :Bool; Func _CreateFile( const FName :Str; Mode : TCreateFileModeSet) : DWORD; Func _CreateFileSecurity(const FName:str;Mode:TCreateFileModeSet;lpSecurityAttributes:PSecurityAttributes):DWORD; Func _GetFileSize( const FName :Str) : DWORD; Func _MatchMaskBody( AName, AMask :Str; SupportPercent :Bool) :Bool; Func _MatchMask(const AName:str; AMask :Str;SupportPercent:Boolean):Boolean; Func MatchMask( const AName, AMask :Str) :Bool; Func SysErrorMsg( ErrorCode : DWORD) :Str; Func CreateRegKeyX( const AFName :Str) : HKey; Func OpenRegKeyEx( const AName :Str; AMode : DWORD) : HKey; Func OpenRegKey( const AName :Str) : DWORD; Func ReadRegBin(Key: DWORD; const rvn :Str; Bin: _Pointer; Sz : DWORD) :Bool; Func ReadRegInt( Key : DWORD; const AStrName :Str) : DWORD; Func ReadRegString( Key : DWORD; const AStrName :Str) :Str; Func WriteRegBin(Key:DWORD;const rvn :Str; Bin: _Pointer; Sz : DWORD):Bool; Func WriteRegInt( Key : DWORD; const AStrName :Str; AValue : DWORD) :Bool; Func WriteRegString( Key : DWORD; const AStrName, AStr :Str) :Bool; Func AddrInet( i : DWORD) :Str; Func GetHostNameByAddr( Addr : DWORD) :Str; Func Inet2addr( const s :Str) : DWORD; Func InetAddr( const s :Str) : DWORD; Proc GlobalFail; Func _LogOK( const Name :Str; var Handle : DWORD) :Bool; Proc xBaseDone; Proc xBaseInit; Proc uCvtSetFileTime( T : DWORD; var L, H : DWORD); Func uCvtGetFileTime( L, H : DWORD) : DWORD; Func uGetSystemTime : DWORD; Func VlX( const s :Str) : DWORD; Func VlHX( const s :Str) : DWORD; Func StrAsg( const Src :Str) :Str; SIRegister_TResetterThread(CL); CServerVersion','String').SetString( '1.93; CServerProductName','String').SetString( 'TinyWeb; end; Proc SIRegister_ImageHistogram(CL: TPSPascalCompiler); begin THistogramChannel', '( hclGray, hclRed, hclGreen, hclBlue ); THistogramArray', 'array[0..255] of Cardinal;; //THistogramArray = array[0..255] of Cardinal; SIRegister_THistogram(CL); Proc AdjustBitmap(Bmp: TBitmap;Channel: THistogramChannel; Tolerance :Card); Proc AdjustBitmap1(Bmp:TBitmap;Hist:THistogram;Channel:THistogramChannel;Tolerance:Card); Proc AdjustBitmap2(Bmp: TBitmap; Low, High : Byte; Channel : THistogramChannel); end; Proc SIRegister_cCipherRSA(CL: TPSPascalCompiler); begin CL.AddClassN(CL.FindClass('TOBJECT'),'ERSA; TRSAPublicKey', 'record KeySize : Integer; Modulus : HugeWord; Exponent : HugeWord; end; TRSAPrivateKey', 'record KeySize : Integer; Modulus : HugeWord; ' Exponent : HugeWord; PublicExponent : HugeWord; Prime1 : HugeWord; Prime2 ' : HugeWord;Phi:HugeWord; Exponent1:HugeWord; Exponent2:HugeWord; Coefficient:HugeWord; end; CL.AddTypeS('TRSAMessage', 'HugeWord; TRSAEncryptionType', '( rsaetPKCS1, rsaetOAEP ); Proc RSAPublicKeyInit( var Key : TRSAPublicKey); Proc RSAPublicKeyFinalise( var Key : TRSAPublicKey); Proc RSAPublicKeyAssign( var KeyD : TRSAPublicKey; const KeyS : TRSAPublicKey); Proc RSAPublicKeyAssignHex(var Key:TRSAPublicKey;const KeySize:Int;const HexMod,HexExp:Str Proc RSAPublicKeyAssignBuf(var Key:TRSAPublicKey;const KeySize:Int;const ModBuf:str;const ModBufSize:Integer;const ExpBuf:str;const ExpBufSize:Integer; const ReverseByteOrder:Bool); Proc RSAPublicKeyAssignBufStr(var Key:TRSAPublicKey;const KeySize:Integer;const ModBuf,ExpBuf:Ansistr); Proc RSAPrivateKeyInit( var Key : TRSAPrivateKey); Proc RSAPrivateKeyFinalise( var Key : TRSAPrivateKey); Proc RSAPrivateKeyAssign( var KeyD : TRSAPrivateKey; const KeyS : TRSAPrivateKey); Proc RSAPrivateKeyAssignHex(var Key:TRSAPrivateKey;const KeySize:Integer;const HexMod, HexExp:Ansistr); Proc RSAPrivateKeyAssignBuf(var Key:TRSAPrivateKey;const KeySize:Integer;const ModBuf:Str;const ModBufSize:Int;const ExpBuf:Str;const ExpBufSize:Inte;const ReverseByteOrder:Boolean); Proc RSAPrivateKeyAssignBufStr(var Key:TRSAPrivateKey;const KeySize:Integer;const ModBuf,ExpBuf:Ansistr); Proc RSAGenerateKeys(const KeySize:Int;var PrivateKey:TRSAPrivateKey;var PublicKey:TRSAPublicKey); Func RSACipherMessageBufSize(const KeySize: Integer) : Integer; Proc RSAEncodeMessagePKCS1(const KeySize:Integer;const Buf:str;const BufSize:Integer;var EncodedMessage: TRSAMessage); Proc RSAEncodeMessageOAEP(const KeySize:Integer;const Buf:str;const BufSize:Integer;var EncodedMessage: TRSAMessage); Proc RSAEncryptMessage(const PublicKey:TRSAPublicKey;const PlainMessage:TRSAMessage;var CipherMessage:TRSAMessage); Func RSACipherMessageToBuf(const KeySize:Integer;const CipherMessage:TRSAMessage;var CipherBuf:str;const CipherBufSize:Int):Int; Func RSAEncryptC(const EncryptionType:TRSAEncryptionType;const PublicKey:TRSAPublicKey;const PlainBuf:str;const PlainBufSize:Int;var CipherBuf:str; const CipherBufSize:Int):Int; Func RSAEncryptStr(const EncryptionType:TRSAEncryptionType;const PublicKey:TRSAPublicKey;const Plain:Ansistr): Ansistr; Proc RSACipherBufToMessage(const KeySize:Integer;const CipherBuf:str;const CipherBufSize:Int;var CipherMessage:TRSAMessage); Proc RSADecryptMessage(const PrivateKey:TRSAPrivateKey;const CipherMessage:TRSAMessage;var EncodedMessag:TRSAMessage); Func RSADecodeMessagePKCS1(const KeySize:Integer;const EncodedMessage:HugeWord;var Buf:str;const BufSize: Integer):Integer; Func RSADecodeMessageOAEP(const KeySize:Integer;const EncodedMessage:HugeWord;var Buf:str;const BufSize: Integer):Integer; Func RSADecryptC( const EncryptionType : TRSAEncryptionType; const PrivateKey : TRSAPrivateKey; const CipherBuf :Str;const CipherBufSize:Integer; var PlainBuf:Str;const PlainBufSize:Integer): Integer; Func RSADecryptStr(const EncryptionType:TRSAEncryptionType;const PrivateKey:TRSAPrivateKey;const Cipher:Ansistr):Ansistr; Proc SelfTestRSA; //CL.AddDelphiFunction('Proc Profile; end; // add to V 4.2.6.10 Proc SIRegister_Streams(CL: TPSPascalCompiler); begin SIRegister_TBaseStream(CL); SIRegister_TFilterStream(CL); SIRegister_TSeekableStream(CL); //CL.AddTypeS('TFileAttributes2', 'set of ( sfaArchive, sfaHidden, sfaSystem, sf' //+'aReadOnly, sfaTemporary, sfaCompressed, sfaDirectory ); TFileAttribute2,(sfaArchive,sfaHidden,sfaSystem,sfaReadOnly,sfaTemporary,sfaCompressed, sfaDirectory); TFileAttributes2, set of TFileAttribute2'); TfsMode','(sfsRead, sfsWrite, sfsCreate, sfsShareRead, sfsShareWrite); TfsModes', 'set of TfsMode'); // CL.AddTypeS('TfsModes','set of( fsRead, fsWrite,fsCreate,fsShareRead,fsShareWrite ); fsReset','LongInt).Value.ts32 := ord(fsRead) or ord(fsWrite); fsShared','LongInt).Value.ts32:= ord(fsShareRead) or ord(fsShareWrite); SIRegister_TFileStream2(CL); SIRegister_TDummyStream(CL); Proc CopyStream( Source, Dest: TBaseStream; const Size : Integer); Func GetLastErrorText :Str'); end; Proc SIRegister_CromisStreams(CL: TPSPascalCompiler); begin Proc WriteToStreamAsString( const Stream : TStream; const Content :Str); Proc WriteToStreamAsUnicode( const Stream : TStream; const Content :Str); Proc WriteToStreamAsUTF80( const Stream : TStream; const Content :Str); Proc WriteToStreamAsUTF81( const Stream : TStream; const Content: Ansistr); Func ReadFromStreamAsUnicode( const Stream : TStream) :Str'); Func ReadFromStreamAsString( const Stream : TStream) :Str'); Func ReadFromStreamAsUTF8( const Stream : TStream) : Ansistr'); CL.AddConstantN('cDefaultSearchSize','LongInt').SetInt( 50); SIRegister_TNamesEnumerator(CL); SIRegister_IStorageStream(CL); SIRegister_TStreamStorage(CL); end; // new functions on 4.2.6.10 Func ArcTan3(const X : Extended) : Extended'); //bugfix of ArcTan() Func WMIConnect2(WBemLocator:ISWBemLocator;namespace,Server,account,password:str): ISWBemServices; Func WMIConnect3(WBemLocator:ISWBemLocator;Server,namespace,account,password:str): ISWBemServices; Func CLSIDFromProgID(pszProgID: widestring; out clsid: TGUID): Longint'); //stdcall; Func ProgIDFromCLSID(const clsid:TGUID; out pszProgID: widestring): Longint'); //stdcall; Func StringFromCLSID(const clsid:TGUID; out psz: widestring): longint'); //stdcall; //{$EXTERNALSYM CLSIDFromString} Func CLSIDFromString(psz: widestring; out clsid: TGUID): longint'); //stdcall; Func StringFromGUID2(const guid: TGUID;psz:widestring;cbMax:Integer):Integer'); //stdcall; Func ProgIDExists(const ProgID:WideString):Boolean'); Func ByteArraytostring(const bin: array of byte):Str; Func ByteArraytoHex(const bin: array of byte):Str'); Proc SaveFile(Contents : Ansistr; const FileName:Ansistr; Append :Bool); Proc SaveToFile(Contents: Ansistr;const FileName:Ansistr; Append :Bool); Func LoadFromFile( const FileName : Ansistr) : Ansistr'); Func VariantIsObject(const V: Variant):Bool; Func DiskSpaceInfo(const Drive:str; out AvailBytes,TotalBytes,FreeBytes:Int64):Boolean; Func DriveDisplayName(const Drive:Str):Str; Proc DriveDisplayNames(const List: TStrings); Proc Log( const Line:Str; amemo: Tmemo); begin amemo.Lines.Add( Line) end; Proc LogFmtX( const Line:Str; amemo: TMemo; const Args: array of const); begin Log( Format( Line, Args), amemo) end; Proc SIRegister_USha256(CL: TPSPascalCompiler); begin type TSHA256HASH', 'array[0..7] of Cardinal'); type TSHAChunk', 'array[0..7] of Cardinal'); //TSHA256HASH = array[0..7] of Cardinal; //TChunk = array[0..15] of Cardinal; Func CalcDoubleSHA256( Msg : Ansistr) : TSHA256HASH; Func CalcSHA256( Msg : Ansistr) : TSHA256HASH; Func CalcSHA2561( Stream : TStream) : TSHA256HASH; Func SHA256ToStr( Hash : TSHA256HASH) :Str; Func CanBeModifiedOnLastChunk(MessageTotalLength:Int64;var startBytePos:int):Bool; Proc PascalCoinPrepareLastChunk(const messageToHash:Ansistr;var stateForLastChunk:TSHA256HASH;var bufferForLastChunk : TSHAChunk); Func ExecuteLastChunk(const stateForLastChunk:TSHA256HASH;const bufferForLastChunk: TSHAChunk;nPos:Integer;nOnce,Timestamp:Card):TSHA256HASH'); Func ExecuteLastChunkAndDoSha256(const stateForLastChunk:TSHA256HASH;const bufferForLastChunk:TSHAChunk;nPos:Integer;nOnce,Timestamp:Card):TSHA256HASH'); Proc PascalCoinExecuteLastChunkAndDoSha256(const stateForLastChunk:TSHA256HASH;const bufferForLastChunk:TSHAChunk;nPos:Int;nOnce,Timestamp:Card;var ResultSha256:AnsiStr); Func Sha256HashToRaw(const hash : TSHA256HASH): Ansistr'); Func GetSHA256( Msg : Ansistr) :Str; Func GetDriveNumber(const Drive:Str): Integer; Func HardDiskSerial(const Drive:Str): DWORD; Func IsDriveReady2(const Drive:Str):Bool; Func Touchfile(const FileName:Str):Bool; Func URLFromShortcut(const Shortcut:Str):Str; Func GetSHA256(Msg: Ansistr):Str; //overload; var Stream: TMemoryStream; begin Stream:= TMemoryStream.Create; try Stream.WriteBuffer(PAnsiChar(Msg)^,Length(Msg)); Stream.Position:= 0; Result:= SHA256ToStr(CalcSHA256(Stream)); finally Stream.Free; end; end; Code Example Binary file: sr:= filetostring(Exepath+'maXbox4.exe') writeln(SHA256ToStr(CalcSHA256(sr))) stringtofile(Exepath+'maXbox4.exe',sr,false); //append = false Proc SIRegister_uTPLb_BinaryUtils(CL: TPSPascalCompiler); begin Func SwapEndien_u32(Value: uint32) : uint32'); Func SwapEndien_s64(Value: int64) : int64'); Func SwapEndien_u64(Value: uint64) : uint64'); Func RotateLeft1Bit_u32( Value : uint32) : uint32'); Proc Read_BigEndien_u32_Hex( const Value :Str; BinaryOut: TStream); Func Get_TP_LockBox3_HINSTANCE : HMODULE'); end; Proc SIRegister_Series(CL: TPSPascalCompiler); begin CL.AddConstantN('PiDegree','Double').setExtended( Pi / 180.0); Tee_CircledShadowColor','LongWord).SetUInt( TColor ( $A0A0A0 )); CL.AddTypeS('TTreatNullsStyle', '( teetnDontPaint, teetnSkip, teetnIgnore ); SIRegister_TCustomLineSeries(CL); CL.AddClassN(CL.FindClass('TOBJECT'),'TCustomSeries'); CL.AddTypeS(TSeriesClickPointerEvent','Procedure(Sender:TCustomSeries;ValueIndex:Int;X,Y:Int; TCustomSeriesStack','( cssNone, cssOverlap, cssStack, cssStack100 ); TOnGetPointerStyle','Func ( Sender : TChartSeries; ValueIndex: Integer) : TSeriesPointerStyle'); SIRegister_TCustomSeries(CL); SIRegister_TLineSeries(CL); SIRegister_THorizLineSeries(CL); SIRegister_TPointSeries(CL); CL.AddTypeS(TMultiArea','( mamaNone,maStacked, maStacked100 ); SIRegister_TAreaSeries(CL); SIRegister_THorizAreaSeries(CL); TMultiBar,(teembNone,teembSide,teembStacked,teembStacked100,teembSideAll,teembSelfStack); CL.AddClassN(CL.FindClass('TOBJECT'),'TCustomBarSeries'); TBarStyle,(teebsRectangle,teebsPyramid,teebsInvPyramid,teebsCilinder,teebsEllipse,teebsArrow,teebsRectGradient,teebsCone,teebsBevel,teebsSlantCube, teebsDiamond,teebsInvArrow, teebsInvCone); TGetBarStyleEvent,Procedure(Sender:TCustomBarSeries;ValueIndex:Integer;var TheBarStyle: TBarStyle); SIRegister_TBarSeriesGradient(CL); SIRegister_TCustomBarSeries(CL); SIRegister_TBarSeries(CL); SIRegister_THorizBarSeries(CL); SIRegister_TCircledShadow(CL); SIRegister_TCircledSeries(CL); TPieAngle', 'record StartAngle : Double; MidAngle : Double; EndAngle : Double; end'); TPieAngles', 'array of TPieAngle'); SIRegister_TSliceValueList(CL); TPieOtherStyle', '( piepoNone, piepoBelowPercent, piepoBelowValue ); SIRegister_TPieOtherSlice(CL); SIRegister_TPieMarks(CL); TMultiPie', '( teempAutomatic, teempDisabled ); SIRegister_TPieSeries(CL); SIRegister_TFastLineSeries(CL); //CL.AddConstantN('bsCylinder','').SetString( bsCilinder); Proc RegisterTeeStandardSeries'); Proc TeePointerDrawLegend(Pointer:TSeriesPointer;AColor:TColor;const Rect:TRect;DrawPen:Bool; AStyle:TSeriesPointerStyle); end; Proc SIRegister_UJSONFunctions(CL: TPSPascalCompiler); begin CL.AddTypeS('TJSONValue', 'TJSONData'); SIRegister_TPCJSONData(CL); //CL.AddTypeS('TPCJSONDataClass', 'class of TPCJSONData'); SIRegister_TPCJSONVariantValue(CL); SIRegister_TPCJSONNameValue(CL); CL.AddClassN(CL.FindClass('TOBJECT'),'TPCJSONArray'); CL.AddClassN(CL.FindClass('TOBJECT'),'TPCJSONObject'); SIRegister_TPCJSONList(CL); SIRegister_TPCJSONArray(CL); SIRegister_TPCJSONObject(CL); CL.AddClassN(CL.FindClass(TOBJECT),EPCParametresError'); end; Proc SIRegister_uTPLb_Hash(CL: TPSPascalCompiler); begin CL.AddTypeS(TOnHashProgress,Function(sender:TObject;CountBytesProcessed:int64):bool; SIRegister_IHash(CL); SIRegister_IHash_TestAccess(CL); SIRegister_TSimpleHash(CL); SIRegister_THash(CL); end; Proc SIRegister_UTime(CL: TPSPascalCompiler); begin //Func TzSpecificLocalTimeToSystemTime( lpTimeZoneInformation:PTimeZoneInformation; var lpLocalTime, lpUniversalTime : TSystemTime) : BOOL'); //Func SystemTimeToTzSpecificLocalTime( lpTimeZoneInformation:PTimeZoneInformation;var lpUniversalTime, lpLocalTime : TSystemTime) : BOOL'); Func DateTime2UnivDateTime(d : TDateTime) : TDateTime'); Func UnivDateTime2LocalDateTime(d: TDateTime): TDateTime'); Func UnivDateTimeToUnix(dtDate: TDateTime : Longint'); Func UnixToUnivDateTime(USec: Longint): TDateTime'); Func UnixTimeToLocalElapsedTime( USec : Longint): Ansistr'); Func DateTimeElapsedTime(dtDate: TDateTime): Ansistr'); end; Proc SIRegister_uTPLb_BlockCipher(CL: TPSPascalCompiler); begin SIRegister_IBlockCodec(CL); SIRegister_IBlockCipher(CL); SIRegister_TBlockChainLink(CL); CL.AddTypeS(TChainingFeature', '( cfNoNounce, cfKeyStream, cfAutoXOR, cf8bit); CL.AddTypeS(TChainingFeatureSet', 'set of TChainingFeature'); SIRegister_IBlockChainingModel(CL); SIRegister_IBlockCipherSelector(CL); end; Proc SIRegister_XMLDoc(CL: TPSPascalCompiler); begin FindInterface('IUNKNOWN'),IXMLNode, 'IXMLNode'); TOBJECT'),'TXMLNode'); TOBJECT'),'TXMLNodeList'); TOBJECT'),'TXMLNodeCollection'); TOBJECT'),'TXMLDocument'); CL.AddTypeS(TNodeListOperation','( nlInsert, nlRemove, nlCreateNode ); CL.AddTypeS(TNodeListNotification', 'Proc ( Operation : TNodeListOperat' +ion; var Node :IXMLNode; const IndexOrName: OleVariant; BeforeOperation :Bool); SIRegister_TXMLNodeList(CL); CL.AddTypeS(TAsyncEventHandler,procedure(Sender:TObject;AsyncLoadState:Integer) of Object); //CL.AddTypeS('TXMLNodeClass', 'class of TXMLNode'); TXMLNodeArray', 'array of TXMLNode'); TNodeClassInfo','record NodeName:DOMString;NamespaceURI:DOMString;NodeClass:TXMLNode; end'); CL.AddTypeS(TNodeClassArray', 'array of TNodeClassInfo'); //CL.AddTypeS('TXMLNodeCollectionClass', 'class of TXMLNodeCollection'); CL.AddTypeS(TNodeChange', '( ncUpdateValue, ncInsertChild, ncRemoveChild, nc' +AddAttribute, ncRemoveAttribute ); SIRegister_IXMLNodeAccess(CL); SIRegister_TXMLNode(CL); SIRegister_TXMLNodeCollection(CL); TNodeChangeEvent','Proc ( const Node : IXMLNode; ChangeType : TNodeChange); TXMLPrologItem','( xmlpVersion, xmlpEncoding, xmlpStandalone ); TXMLDocumentSource','( xdsNone, xdsXMLProperty, xdsXMLData, xdsFile, xdsStream); SIRegister_IXMLDocumentAccess(CL); SIRegister_TXMLDocument(CL); Func CreateDOMNode(Doc:IDOMDocument;const NameOrData:DOMString;NodeType:TNodeType;const AddlData:DOMString):IDOMNode; Func DetectCharEncoding( S : TStream) : TXmlEncodingType'); Proc CheckEncoding(var XMLData: DOMString; const ValidEncodings: array of string); Func XMLStringToWideString( const XMLString :Str) : WideString; Func FormatXMLData( const XMLData : DOMString) : DOMString; Func LoadXMLDocument3( const FileName : DOMString) : IXMLDocument'); Func LoadXMLData( const XMLData : DOMString) : IXMLDocument; Func LoadXMLData2( const XMLData :Str) : IXMLDocument; Func NewXMLDocument( Version : DOMString) : IXMLDocument'); Proc XMLDocError( const Msg :Str); Proc XMLDocError2( const Msg :Str; const Args : array of const); Func CreateXMLDocument() end; Proc SIRegister_uTPLb_Codec(CL: TPSPascalCompiler); begin SIRegister_TSimpleCodec(CL); SIRegister_ICodec_TestAccess(CL); SIRegister_TCodec(CL); end; Proc SIRegister_uTPLb_StreamCipher(CL: TPSPascalCompiler); begin CL.AddTypeS(TAlgorithmicFeature', '( afStar, afCryptographicallyWeak, afNotI' +mplementedYet, afForTestOnly, afForRunTimeOnly, afEncumberedByPatent, afEn' +cumberedByCopyRight, afOpenSourceSoftware, afCommercial, afCompressor, afC' +onverter, afBlockAdapter, afDisplayNameOnKeySize, afDoesNotNeedSalt, afAsymetric ); CL.AddTypeS(TAlgorithmicFeatureSet', 'set of TAlgorithmicFeature'); SIRegister_ICryptoGraphicAlgorithm(CL); SIRegister_TSymetricKey(CL); SIRegister_IStreamEncryptor(CL); SIRegister_IStreamDecryptor(CL); SIRegister_IStreamCipher(CL); SIRegister_IisBase64Converter(CL); end; Proc SIRegister_MidasCon(CL: TPSPascalCompiler); begin SIRegister_TRemoteServer(CL); CL.AddTypeS(TConnectType', '( ctDCOM, ctSockets, ctOLEnterprise ); SIRegister_TMidasConnection(CL); end; Proc SIRegister_IXmlDocument2(CL: TPSPascalCompiler); begin //with RegInterfaceS(CL,'IXmlNode', 'IXmlDocument') do with CL.AddInterface(CL.FindInterface('IXmlBase'),IXmlNode2,'IXmlDocument2') do begin Func Get_DocumentElement : IXmlElement', cdRegister); Func Get_BinaryXML : RawByteString', r); Func Get_PreserveWhiteSpace :Bool', ); Proc Set_PreserveWhiteSpace( aValue :Bool)', ); Func Get_OnTagEnd : THookTag', cdRegister); Proc Set_OnTagEnd( aValue : THookTag)', cdRegister); Func Get_OnTagBegin : THookTag', cdRegister); Proc Set_OnTagBegin( aValue : THookTag)', cdRegister); Func NewDocument(const aVersion,anEncoding:TXmlString;aRootElementNameID:NativeInt): IXmlElement; Func NewDocument1(const aVersion,anEncoding,aRootElementName:TXmlString): IXmlElement; Func CreateElement( aNameID : NativeInt) : IXmlElement;',); Func CreateElement1(const aName : TXmlString) : IXmlElement;',); Func CreateText(const aData : TXmlString) : IXmlText',); Func CreateCDATASection( const aData : TXmlString) : IXmlCDATASection',); Func CreateComment( const aData : TXmlString) : IXmlComment',); Func CreateProcessingInstruction(const aTarget,aData: TXmlString): IXmlProcessingInstruction;',); Func CreateProcessingInstruction1(aTargetID:NativeInt;const aData:TXmlString):IXmlProcessingInstruction); Proc LoadXML( const aXML : RawByteString)',); Proc LoadBinaryXML( const aXML : RawByteString)',); Proc Load( aStream : TStream);',); Proc Load1( const aFileName :Str);',); Proc LoadResource( aType, aName : PChar)',); Proc Save( aStream : TStream);',); Proc Save1( const aFileName :Str);',); Proc SaveBinary( aStream : TStream; anOptions : LongWord);',); Proc SaveBinary1( const aFileName :Str; anOptions : LongWord);',); end; end; Proc SIRegister_OmniXMLUtils(CL: TPSPascalCompiler); begin // XmlString = WideString; CL.AddTypeS('XmlString', 'WideString'); Func XMLStrToReal38( nodeValue : XmlString; var value : real) :Bool; Func XMLStrToReal39( nodeValue : XmlString) : real; Func XMLStrToRealDef( nodeValue : XmlString; defaultValue : real) : real'); Func XMLStrToExtended40( nodeValue : XmlString; var value : extended):Bool; Func XMLStrToExtended41( nodeValue : XmlString) : extended; Func XMLStrToExtendedDef( nodeValue : XmlString; defaultValue : extended): extended; Func XMLStrToCurrency42( nodeValue : XmlString; var value : Currency):Bool; Func XMLStrToCurrency43( nodeValue : XmlString) : Currency; Func XMLStrToCurrencyDef( nodeValue : XmlString; defaultValue : Currency): Currency; Func XMLStrToInt44( nodeValue : XmlString; var value : integer) :Bool; Func XMLStrToInt45( nodeValue : XmlString) : integer; Func XMLStrToIntDef( nodeValue : XmlString; defaultValue : integer) : integer'); Func XMLStrToInt6446( nodeValue : XmlString; var value : int64) :Bool; Func XMLStrToInt6447( nodeValue : XmlString) : int64; Func XMLStrToInt64Def( nodeValue : XmlString; defaultValue : int64) : int64'); Func XMLStrToBool48( nodeValue : XmlString; var value :Bool) :Bool; Func XMLStrToBool49( nodeValue : XmlString) :Bool; Func XMLStrToBoolDef( nodeValue : XmlString; defaultValue :Bool):Bool; Func XMLStrToDateTime50( nodeValue : XmlString; var value : TDateTime):Bool; Func XMLStrToDateTime51( nodeValue : XmlString) : TDateTime; Func XMLStrToDateTimeDef(nodeValue : XmlString; defaultValue : TDateTime): TDateTime; Func XMLStrToDate52( nodeValue : XmlString; var value : TDateTime):Bool; Func XMLStrToDate53( nodeValue : XmlString) : TDateTime; Func XMLStrToDateDef( nodeValue : XmlString; defaultValue : TDateTime) : TDateTime; Func XMLStrToTime54( nodeValue : XmlString; var value : TDateTime):Bool; Func XMLStrToTime55( nodeValue : XmlString) : TDateTime; Func XMLStrToTimeDef( nodeValue : XmlString; defaultValue : TDateTime): TDateTime; Func XMLStrToBinary( nodeValue : XmlString; const value : TStream):Bool'); Func XMLRealToStr( value : real; precision : byte) : XmlString'); Func XMLExtendedToStr( value : extended) : XmlString'); Func XMLCurrencyToStr( value : Currency) : XmlString'); Func XMLIntToStr( value : integer) : XmlString'); Func XMLInt64ToStr( value : int64) : XmlString'); Func XMLBoolToStr( value :Bool; useBoolStrs :Bool) : XmlString'); Func XMLDateTimeToStr2( value : TDateTime) : XmlString'); Func XMLDateTimeToStrEx( value : TDateTime) : XmlString'); Func XMLDateToStr2( value : TDateTime) : XmlString'); Func XMLTimeToStr( value : TDateTime) : XmlString'); Func XMLBinaryToStr( value : TStream) : XmlString'); Func XMLVariantToStr( value : Variant) : XmlString'); end; Proc SIRegister_IdCoderHeader(CL: TPSPascalCompiler); begin CL.AddTypeS('TTransfer', ( bit7, bit8, iso2022jp ); Func EncodeAddressItem(EmailAddr:TIdEmailAddressItem; const HeaderEncoding: Char; TransferHeader: TTransfer; MimeCharSet:Str):Str; Func EncodeHeader(const Header:Str; specials : CSET2; const HeaderEncoding: Char; TransferHeader: TTransfer; MimeCharSet:Str):Str; Func Encode2022JP(const S:Str):Str; Func EncodeAddress(EmailAddr:TIdEMailAddressList;const HeaderEncoding:Char; TransferHeader: TTransfer; MimeCharSet:Str):Str; Func DecodeHeader(Header:Str):str; Func Decode2022JP(const S:Str):Str; Proc DecodeAddress(EMailAddr : TIdEmailAddressItem); Proc DecodeAddresses(AEMails :Str; EMailAddr : TIdEmailAddressList); Proc InitializeISO(var TransferHeader:TTransfer;var HeaderEncoding:char;var CharSet:str); end; Proc SIRegister_FannNetwork(CL: TPSPascalCompiler); begin // CL.AddTypeS('PCardinalArray', '^CardinalArray // will not work'); CL.AddConstantN('DLL_FILE','String').SetString( 'fannfloat.dll'); CL.AddTypeS('fann_type', 'single'); Fann_Type_Array', 'array [0..65535] of fann_type'); TFann_Type_Array', 'array [0..65535] of fann_type'); TFann_Type_Array2', 'array of fann_type'); TFann_Type_Array3', 'array of single'); TTrainingAlgorithm', '( taFANN_TRAIN_INCREMENTAL, taFANN_TRAIN_B' +ATCH, taFANN_TRAIN_RPROP, taFANN_TRAIN_QUICKPROP ); CL.AddTypeS(TActivationFunction', '( afFANN_LINEAR, afFANN_THRESHOLD, afFANN' +'_THRESHOLD_SYMMETRIC, afFANN_SIGMOID, afFANN_SIGMOID_STEPWISE, afFANN_SIGM' +'OID_SYMMETRIC, afFANN_SIGMOID_SYMMETRIC_STEPWISE, afFANN_GAUSSIAN, afFANN_' +'GAUSSIAN_SYMMETRIC, afFANN_GAUSSIAN_STEPWISE, afFANN_ELLIOT, afFANN_ELLIOT' +'_SYMMETRIC, afFANN_LINEAR_PIECE, afFANN_LINEAR_PIECE_SYMMETRIC, afFANN_SIN' +'_SYMMETRIC, afFANN_COS_SYMMETRIC, afFANN_SIN, afFANN_COS ); SIRegister_TFannNetwork(CL); //CL.AddDelphiFunction('Proc Register'); end; Proc SIRegister_TFannNetwork(CL: TPSPascalCompiler); begin //with RegClassS(CL,'TComponent', 'TFannNetwork') do with CL.AddClassN(CL.FindClass('TComponent'),'TFannNetwork') do begin Constructor Create( Aowner : TComponent); Proc Build( ); Proc Free'); Proc UnBuild( ); Func Train( Input : array of fann_type; Output : array of fann_type) : single'); Proc TrainOnFile(FileName:str; MaxEpochs:Card;DesiredError: Single); Proc Run(Inputs: array of fann_type; var Outputs : TFann_Type_Array2); Proc Run2(Inputs: array of fann_type; var Outputs : array of fann_type); Proc Run3( Inputs : array of fann_type; var Outputs : TFann_Type_Array3); Proc Run4( Inputs : array of fann_type; var Outputs : TFann_Type_Array3); Proc SaveToFile( FileName :Str); Proc LoadFromFile( Filename :Str); FannObject', 'PFann', iptr); Layers', 'TStrings', iptrw); LearningRate', 'Single', iptrw); ConnectionRate', 'Single', iptrw); LearningMometum', 'single', iptrw); MSE', 'Single', iptr); TrainingAlgorithm', 'TTrainingAlgorithm', iptrw); ActivationFunctionHidden', 'TActivationFunction', iptrw); ActivationFunctionOutput', 'TActivationFunction', iptrw); end; end; TFannNetwork encapsulates the Fast Artificial Neural Network. fann.sourceforge.net Proc SIRegister_RTLDateTimeplus(CL: TPSPascalCompiler); begin SIRegister_TNullableDateTime(CL); Func IsValidDate2( const Value :Str; out ADate : TDatetime) :Bool; Func IsValidTime2( const Value :Str; out ATime : TDateTime) :Bool; Func IsValidDateTime2( const Value :Str; out ADateTime : TDateTime) :Bool; Proc ChangeSystemTime( const Value : TDateTime); Func TryChangeSystemTime( const Value : TDateTime) :Bool'); end; // new functions on V 4.2.8.10 III /IV - V 4.5.8.10 IV Func IsUTF8File(const FileName:Str):Bool; Func IsUTF16File(const FileName:Str):Bool; Proc RichEditToCanvas(RichEdit: TRichEdit; Canvas: TCanvas; PixelsPerInch:Integer); --> RichEditToCanvas(RichEdit1, Image1.Canvas, Self.PixelsPerInch); Func {$I ActiveDEP:Card; } Func {$I ActivateDEP:Card;} Proc WriteXMLFile(doc: TXMLDocument; const AFileName:Str); Proc WriteXML(Element: TDOMNode; const AFileName:Str); Func ReadXMLFile(const AFilename:Str) : TXMLDocument; Proc WriteXMLFile(doc: TXMLDocumentDOM; const AFileName:Str); Proc WriteXML(Element: TDOMNode; const AFileName:Str); Proc WriteXMLFileStream(ADoc : TXMLDocument; AStream : TStream); Func CountColors(const Bitmap: Graphics.TBitmap): Integer; var Flags: array[Byte, Byte] of Classes.TBits; I, J, K: Integer; RowIn: PRGBTripleArray; begin // Be sure bitmap is 24-bits/pixel Assert(Bitmap.PixelFormat = Graphics.pf24Bit); Func SndPlaySound(const AFilename: pchar; flags:Card):Bool; Proc PlaySound1(const AFilename:Str); Func mciSendCommand(mciID, umessage, dwparam1, dwparam2:Card):Card; Func ProxyActive:Bool; Func GetProxyServer:Str; Func GetProxyOverride:Str; Func GetProxyServerIP:Str; Func GetProxyServerPort: Integer; Func GetHtml( const Url :Str) :Str; Func GetHtm12( const Url, UserAgent :Str) :Str; Proc FormatXMLFile(const XmlFile:str); Func FormatXMLFile2String(const XmlFile:str):Str; Func selectXMLNode(xnRoot: IXmlNode; const nodePath: WideString): IXmlNode; Func HTMLEncode3(const Data:Str):Str; //vfast Func IsSpecialFolderSupported(CSIDL: Integer):Bool; Func SpecialFolderPath(CSIDL: Integer):Str; Func DataSetToXML(const ADataSet: TDataSet):Str; Func PackageParams( Params : TParams; Types : TParamTypes) : OleVariant'); Proc UnpackParams( const Source : OleVariant; Dest : TParams); Proc ActivateDEP2; Func JavaToDelphiDateTime(const dt: int64): TDateTime; Func DelphiToJavaDateTime(const dt: TDateTime): int64; Func GetTimeBias: integer; Proc WrapLines(VAR a, b:Str; len: Integer); Func DelphiDateTimeToISO8601Date(dt: TDateTime):Str; Proc BackgroundWorkerWaitFor(isworking:Bool; fWindow: HWND); uPSI_CromisStreams, uPSI_Streams, uPSI_BitStream, uPSI_UJSONFunctions.pas uPSI_uTPLb_BinaryUtils.pas uPSI_USha256.pas uPSI_uTPLb_HashDsc.pas uPSI_uTPLb_Hash.pas SIRegister_Series(X); //4.2.6.10 uPSI_Series, unit uPSI_mimeinln; unit uPSI_UTime; //unit UTime; RIRegister_TStreamStorage(X); RIRegister_TNamesEnumerator(X); 1283 uPSI_uTPLb_StreamCipher.pas 1284 uPSI_uTPLb_BlockCipher.pas 1285 uPSI_uTPLb_Asymetric.pas 1286 uPSI_uTPLb_CodecIntf.pas 1287 uPSI_uTPLb_Codec.pas 1288 uPSI_ADOInt.pas 1289 uPSI_MidasCon.pas 1290 uPSI_XMLDoc.pas 1291 uPSI_XMLIntf.pas 1292 uPSI_ProxyUtils.pas 1293 unit uPSI_maxXMLUtils2; 1294 unit_StDict_Routines(S: TPSExec); 1295 unit uPSI_Hashes2 1296 unit uPSI_IdCoderHeader; Func TRestRequest_createStringStreamFromStringList(strings:TStringList):TStringStream; {A simple Oscilloscope using TWaveIn class. More info at http://www.delphiforfun.org/programs/oscilloscope.htm } http://www.retroarchive.org/garbo/pc/turbopas/index.html uses Forms, U_Oscilloscope4 in 'U_Oscilloscope4.pas' {frmMain}, ufrmOscilloscope4 in 'ufrmOscilloscope4.pas' {frmOscilloscope: TFrame}, uColorFunctions in 'uColorFunctions.pas', AMixer in 'AMixer.pas', uSettings in 'uSettings.pas', UWavein4 in 'UWavein4.pas', U_Spectrum4 in 'U_Spectrum4.pas' {Form2}, ufrmInputControl4 in 'ufrmInputControl4.pas' {frmInputControl: TFrame}; BSpectrum in unit uPSI_BSpectrum; {SpectraLibrary} 1250 unit uPSI_U_Oscilloscope4_2 1231 Form1pac: TForm1pac; // new functions on V 4.6.3.10 Proc SIRegister_cHash(CL: TObject); var sha: TSha256hash2; begin DigestToHexBuf( const Digest :Str; const Size : Integer; const Buf); DigestToHex( const Digest :Str; const Size : Integer) : Ansistr'); Digest128Equal( const Digest1, Digest2 : T128BitDigest) :Bool'); Digest160Equal( const Digest1, Digest2 : T160BitDigest) :Bool'); Digest224Equal( const Digest1, Digest2 : T224BitDigest) :Bool'); Digest256Equal( const Digest1, Digest2 : T256BitDigest) :Bool'); Digest384Equal( const Digest1, Digest2 : T384BitDigest) :Bool'); Digest512Equal( const Digest1, Digest2 : T512BitDigest) :Bool'); hashNoError','LongInt').SetInt( 0); hashInternalError','LongInt').SetInt( 1); hashInvalidHashType','LongInt').SetInt( 2); hashInvalidBuffer','LongInt').SetInt( 3); hashInvalidBufferSize','LongInt').SetInt( 4); hashInvalidDigest','LongInt').SetInt( 5); hashInvalidKey','LongInt').SetInt( 6); hashInvalidFileName','LongInt').SetInt( 7); hashFileOpenError','LongInt').SetInt( 8); hashFileSeekError','LongInt').SetInt( 9); hashFileReadError','LongInt').SetInt( 10); hashNotKeyedHashType','LongInt').SetInt( 11); hashTooManyOpenHandles','LongInt').SetInt( 12); hashInvalidHandle','LongInt').SetInt( 13); hashMAX_ERROR','LongInt').SetInt( 13); GetHashErrorMessage( const ErrorCode : LongWord) : PChar'); /SIRegister_EHashError(CL); SecureClear( var Buf :Str; const BufSize : Integer); SecureClear512( var Buf : T512BitBuf); SecureClear1024( var Buf : T1024BitBuf); SecureClearStr2( var S : Ansistr); ------------------- CalcChecksum32( const Buf : Ansistr) : LongWord'); CalcXOR8( const Buf : Ansistr) : Byte'); CalcXOR16( const Buf : Ansistr) : Word'); CalcXOR32( const Buf : Ansistr) : LongWord'); CRC16Init( var CRC16 : Word); CRC16Byte( const CRC16 : Word; const Octet : Byte) : Word'); CRC16Buf( const CRC16 : Word; const Buf :Str; const BufSize : Integer) : Word'); CalcCRC16( const Buf : Ansistr) : Word'); SetCRC32Poly( const Poly : LongWord); CRC32Init( var CRC32 : LongWord); CRC32Byte( const CRC32 : LongWord; const Octet : Byte) : LongWord'); CRC32Buf( const CRC32 : LongWord; const Buf :Str; const BufSize : Integer): LongWord'); CRC32BufNoCase(const CRC32: LongWord; const Buf:Str; const BufSize: Integer): LongWord'); CalcCRC32( const Buf : Ansistr) : LongWord'); Adler32Init( var Adler32 : LongWord); Adler32Byte( const Adler32 : LongWord; const Octet : Byte) : LongWord'); Adler32Buf( const Adler32:LongWord;const Buf:str; const BufSize:Integer): LongWord'); CalcAdler32( const Buf : Ansistr) : LongWord'); ELFInit( var Digest : LongWord); ELFBuf( const Digest : LongWord; const Buf :Str; const BufSize : Integer):LongWord'); CalcELF( const Buf : Ansistr) : LongWord'); IsValidISBN2( const S : Ansistr) :Bool'); ------------------------- IsValidLUHN( const S : Ansistr) :Bool'); KnuthHash( const S : Ansistr) : LongWord'); MD5InitDigest( var Digest : T128BitDigest); MD5Buf( var Digest : T128BitDigest; const Buf :Str; const BufSize : Integer); MD5FinalBuf(var Digest:T128BitDigest;const Buf:str;const BufSize:Int;const TotalSize:Int64); CalcMD5( const Buf : Ansistr) : T128BitDigest'); MD5DigestAsString( const Digest : T128BitDigest) : Ansistr'); MD5DigestToHex( const Digest : T128BitDigest) : Ansistr'); SHA1InitDigest( var Digest : T160BitDigest); SHA1Buf( var Digest : T160BitDigest; const Buf :Str; const BufSize : Integer); SHA1FinalBuf(var Digest:T160BitDigest;const Buf:str;const BufSize:Int;const TotalSize:Int64); CalcSHA1( const Buf : Ansistr) : T160BitDigest'); SHA1DigestAsString( const Digest : T160BitDigest) : Ansistr'); SHA1DigestToHex( const Digest : T160BitDigest) : Ansistr'); SHA224InitDigest( var Digest : T256BitDigest); SHA224Buf( var Digest : T256BitDigest; const Buf:Str;const BufSize : Integer); SHA224FinalBuf(var Digest:T256BitDigest;const Buf:str;const BufSize:Integer;const TotalSize:Int64;var OutDigest:T224BitDigest); CalcSHA224( const Buf : Ansistr) : T224BitDigest'); SHA224DigestAsString( const Digest : T224BitDigest) : Ansistr'); SHA224DigestToHex( const Digest : T224BitDigest) : Ansistr'); SHA256InitDigest( var Digest : T256BitDigest); SHA256Buf( var Digest : T256BitDigest; const Buf :Str; const BufSize : Integer); SHA256FinalBuf(var Digest:T256BitDigest;const Buf:str;const BufSize:Int;const TotalSize:Int64; CalcSHA2562( const Buf : Ansistr) : T256BitDigest'); -------------------------- SHA256DigestAsString( const Digest : T256BitDigest) : Ansistr'); SHA256DigestToHex( const Digest : T256BitDigest) : Ansistr'); SHA384InitDigest( var Digest : T512BitDigest); SHA384Buf( var Digest : T512BitDigest; const Buf :Str; const BufSize : Integer); SHA384FinalBuf(var Digest:T512BitDigest;const Buf:str;const BufSize:Int;const TotalSize:Int64;var OutDigest:T384BitDigest); CalcSHA384( const Buf : Ansistr) : T384BitDigest'); SHA384DigestAsString( const Digest : T384BitDigest) : Ansistr'); SHA384DigestToHex( const Digest : T384BitDigest) : Ansistr'); SHA512InitDigest( var Digest : T512BitDigest); SHA512Buf( var Digest : T512BitDigest; const Buf :Str; const BufSize : Integer); SHA512FinalBuf(var Digest:T512BitDigest;const Buf:str;const BufSize:Int;const TotalSize:Int64); CalcSHA512( const Buf : Ansistr) : T512BitDigest'); SHA512DigestAsString( const Digest : T512BitDigest) : Ansistr'); SHA512DigestToHex( const Digest : T512BitDigest) : Ansistr'); HMAC_MD5Init(const Key:str;const KeySize:Integer;var Digest:T128BitDigest;var K:T512BitBuf); HMAC_MD5Buf( var Digest : T128BitDigest; const Buf :Str; const BufSize : Integer); HMAC_MD5FinalBuf(const K:T512BitBuf;var Digest T128BitDigest;const Buf:str;const BufSize:Integer;const TotalSize:Int64); CalcHMAC_MD5( const Key, Buf : Ansistr) : T128BitDigest'); HMAC_SHA1Init(const Key:str;const KeySize:Int;var Digest:T160BitDigest;var K:T512BitBuf); HMAC_SHA1Buf( var Digest : T160BitDigest; const Buf :Str; const BufSize : Integer); HMAC_SHA1FinalBuf(const K:T512BitBuf;ar Digest:T160BitDigest;const Buf:Str;const BufSize:Int;const TotalSize Int64); CalcHMAC_SHA1( const Key, Buf : Ansistr):T160BitDigest; HMAC_SHA256Init(const Key:str;const KeySize:Int;var Digest:T256BitDigest;var K:T512BitBuf); HMAC_SHA256Buf( var Digest : T256BitDigest; const Buf :Str; const BufSize : Integer); HMAC_SHA256FinalBuf(const K :T512BitBuf;var Digest: T256BitDigest;const Buf:Str; const BufSize:Integer;const TotalSize:Int64); CalcHMAC_SHA256( const Key, Buf : Ansistr) : T256BitDigest'); HMAC_SHA512Init(const Key:str;const KeySize:Int;var Digest:T512BitDigest;var K:T1024BitBuf); HMAC_SHA512Buf( var Digest : T512BitDigest; const Buf :Str; const BufSize : Integer); HMAC_SHA512FinalBuf(const K:T1024BitBuf;var Digest:T512BitDigest;const Buf:str;const BufSize:Integer;const TotalSize:Int64); CalcHMAC_SHA512( const Key, Buf: Ansistr): T512BitDigest'); AHash(CL); CL.AddTypeS('THashClass', 'class of AHash'); TChecksum32Hash(CL); TXOR8Hash(CL); TXOR16Hash(CL); TXOR32Hash(CL); TCRC16Hash(CL); TCRC32Hash(CL); TAdler32Hash(CL); TELFHash(CL); TMD5Hash(CL); TSHA1Hash(CL); TSHA256Hash2(CL); //------------!! TSHA512Hash(CL); THMAC_MD5Hash(CL); THMAC_SHA1Hash(CL); THMAC_SHA256Hash(CL); THMAC_SHA512Hash(CL); THashType','(hashChecksum32,hashXOR8,hashXOR16,hashXOR32,hashCRC16,hashCRC32,hashAdler32, hashELF,hashMD5,hashSHA1 hashSHA256,hashSHA512, hashHMAC_MD5,hashHMAC_SHA1,hashHMAC_SHA256,hashHMAC_SHA512'+'); GetHashClassByType( const HashType : THashType) : THashClass'); GetDigestSize( const HashType : THashType) : Integer'); CalculateHash(const HashType:THashType;const Buf:AnsiStr;const Digest:str;const Key:AnsiStr; HashString(const S: Ansistr; const Slots:LongWord; const CaseSensitive:Boolean):LongWord'); SelfTestHash'); end; Unit UMatrix Proc Determinant( Dimen : integer; Data : TNmatrix; var Det : Float; var Error : byte); Proc Inverse2( Dimen : integer; Data : TNmatrix; var Inv : TNmatrix; var Error : byte); Proc Gaussian_Elimination(Dimen:integer;Coefficients:TNmatrix;Constants:TNvector;var Solution:TNvector;var Error:byte); Proc Partial_Pivoting(Dimen:integer;Coefficients:TNmatrix;Constants:TNvector;var Solution:TNvector;var Error:byte); Proc LU_Decompose(Dimen:integer;Coefficients:TNmatrix;var Decomp:TNmatrix;var Permute:TNmatrix;var Error:byte); Proc LU_Solve(Dimen:integer;var Decomp TNmatrix;Constants:TNvector;var Permute:TNmatrix;var Solution:TNvector;var Error:byte); Proc Gauss_Seidel(Dimen:integer;Coefficients:TNmatrix;Constants:TNvector;Tol:Float;MaxIter:integer;var Solution:TNvector;var Iter:integer;var Error:byte); end; Proc SIRegister_uTPLb_RSA_Primitives(CL: TPSPascalCompiler); begin //CL.AddDelphiFunction('Func I2OSP( x : THugeCardinal; xLen : integer; XStream : TStream; Pool : TMemoryStreamPool) :Bool'); //'Func OS2IP( XStream : TStream; xLen : integer; var x : THugeCardinal; Pool : TMemoryStreamPool; MaxBits : integer) :Bool'); Proc MGF1( mgfSeed : TStream; maskLen :Card; mask : TStream); CL.AddTypeS('TLongOpResult', '( opPass, opFail, opAbort ); Func RSAES_OAEP_ENCRYPT( n, e : THugeCardinal; M, C : TMemoryStream) :Bool'); Func RSAES_OAEP_ENCRYPT_MaxByteLen( n : THugeCardinal) : integer'); Func RSAES_OAEP_DECRYPT( d, n : THugeCardinal; C, M : TStream) :Bool'); Func EMSA_PSS_ENCODE(M:TStream;emBits,sLen:integer;EM:TStream;CheckAbortFunc:TOnHashProgress):TLongOpResult; Func RSASSA_PSS_SIGN(d,n:THugeCardinal;M,S:TStream;CheckAbortFunc:TOnHashProgress): TLongOpResult; Func EMSA_PSS_VERIFY(M:TStream;emBits,sLen integer;EM:TStream; CheckAbortFunc:TOnHashProgress):TLongOpResult); Func RSASSA_PSS_VERIFY(n,e THugeCardinal; M, S : TStream; CheckAbortFunc : TOnHashProgress) : TLongOpResult; Func Generate_RSA_SymetricKey(n,e:THugeCardinal;CipherStream: TStream;const SymetricCipher:IBlockCipher) : TSymetricKey; Func Extract_RSA_SymetricKey(d,n:THugeCardinal;CipherStream: TStream;const SymetricCipher:IBlockCipher):TSymetricKey; end; Proc SIRegister_DXUtil(CL: TPSPascalCompiler); begin Proc SAFE_RELEASE( var i); Proc SAFE_DELETE( var Obj); Func DXUtil_GetDXSDKMediaPathCb( szDest : PChar; cbDest : Integer) : HRESULT'); Func DXUtil_FindMediaFileCch(strDestPath:PChar;cchDest:Integer;strFilename:PChar):HRESULT; Func DXUtil_FindMediaFileCb(szDestPath: PChar; cbDest Integer;strFilename PChar):HRESULT' Func DXUtil_WriteStringRegKey(hKey_ :HKEY; strRegName : PChar; strValue : PChar):HRESULT; CL.AddTypeS('TIMER_COMMAND', 'DWORD'); 'TIMER_RESET','LongInt').SetInt( 0); 'TIMER_START','LongInt').SetInt( 1); 'TIMER_STOP','LongInt').SetInt( 2); 'TIMER_ADVANCE','LongInt').SetInt( 3); 'TIMER_GETABSOLUTETIME','LongInt').SetInt( 4); 'TIMER_GETAPPTIME','LongInt').SetInt( 5); 'TIMER_GETELAPSEDTIME','LongInt').SetInt( 6); Func DXUtil_Timer( command : TIMER_COMMAND) : Single'); Func DXUtil_ConvertGenericStringToAnsiCch(strDestination:PAnsiChar;const tstrSource:PChar;cchDestChar:Intr): HRESULT'); Func DXUtil_ConvertAnsistrToGenericCch(tstrDestination:PChar;const strSource:PAnsiChar; cchDestChar:Int): HRESULT'); Func DXUtil_ConvertGenericStringToAnsiCb(strDestination:PAnsiChar;const tstrSource:PChar;cbDestChar:Int: HRESULT'); Func DXUtil_ConvertAnsistrToGenericCb(tstrDestination:PChar;const strSource:PChar;cbDestChar:Integer):HRESULT; CL.AddTypeS(TArrayListType', '( AL_VALUE, AL_REFERENCE ); SIRegister_CArrayList(CL); Func GETTIMESTAMP : DWORD'); end; Proc SIRegister_DCPbase64(CL: TPSPascalCompiler); begin Func Base64EncodeStr(const Value: Ansistr): Ansistr'); Func Base64DecodeStr(const Value: Ansistr): Ansistr'); Func Base64Encode( pInput :Str; pOutput :Str; Size : longint): longint; Func Base64Decode( pInput :Str; pOutput :Str; Size : longint): longint; end; Proc SIRegister_FlyFilesUtils(CL: TPSPascalCompiler); begin Func GetCaseSensitiveFileName( const FileName :Str; RootPath :Str) :Str'); CL.AddConstantN('OTGDeivceCount','LongInt').SetInt( 16); CL.AddConstantN('UsbDiskStartIndex','LongInt').SetInt( 255); DeleteDirectories_WaitMinSecond','LongInt').SetInt( 2000); Func isPathCanUseNow( const PathOrDir :Str; const Default :Bool) :Bool'); Func TestPathCanWrite( const PathOrDir :Str) :Bool'); Func GetSDCardPath( Index : Integer) :Str'); Func FindSDCardSubPath( SubPath :Str; Index : Integer) :Str'); Func GetAppPath :Str'); Func BuildFileListInAPath(const Path:str;const Attr:Int;const List:TStrings;JustFile:Bool):Bool; Func BuildFileListInAPath1(const Path:str; const Attr:Integer;ustFile:Bool):Str; Func GetFileNamesFromDirectory(const DirName:str;const SearchFilter:str;const FileAttribs:Int;const isIncludeSubDirName:Bool;const Recursion:Bool;const FullName:Bool):str; Func DeleteDirectoryByEcho(const Source:str;AbortOnFailure:Bool;YesToAll:Bool;WaitMinSecond:Integer):Bool; Func GetTotalSpaceSize( Path :Str) : UInt64'); Func GetAvailableSpaceSize( Path :Str) : UInt64'); Func GetFreeSpaceSize( Path :Str) : UInt64'); Func GetTotalMemorySize : UInt64'); Func GetFreeMemorySize : UInt64'); Func IsPadOrPC :Bool'); Func OpenFileOnExtApp(const FileName:str;Https:Bool):Bool'); Func NowGMT_UTC : TDateTime'); Func EncodeURLWithSchemeOrProtocol( const URL :Str):Str'); Func GetVolumePaths :Str'); Func GetExternalStoragePath :Str'); Func GetExterStoragePath :Str'); Func GetInnerStoragePath :Str'); Func GetIsExternalStorageRemovable :Bool'); Func GetScreenClientInches : Single'); Func IsCanFindJavaClass( const NamePath :Str) :Bool'); Func IsCanFindJavaMethod(const MethodName,Signature:str;const CalssNamePath:str):Bool; Func IsCanFindJavaStaticMethod(const MethodName,Signature:str;const CalssNamePath:Str):Bool; CL.AddTypeS(TGetFileNameLIsternerMethod','Procedure(const IsOK:Boolean;const FileName:str); Func OpenFileDialog(Title,FileExtension:str; GetFileNameCallBack: TGetFileNameLIsternerMethod):Boolean; Func CheckPermission( const APermissionName :Str) :Bool'); CL.AddConstantN('C_android_permission_EXTERNAL_STORAGE','String').SetString('android.permission.WRITE_EXTERNAL_STORAGE'); Func CanWriteExterStorage :Bool'); Proc UpdateAlbum( FileNames :Str); Func ReadNoSizeFileToString( const AFileName :Str) :Str'); Func ReadFileToString( const AFileName :Str) :Str'); end; 466_kmean_cluster_correlation_test3.txt Proc SIRegister_LatLonDist(CL: TPSPascalCompiler); begin Func EllipticalDistance(llat1,llon1,llat2,llon2:extended;units:integer): extended'); Proc VDirectLatLon(DGLAT1,DGLON1,DFAZ,S EXTENDED;Units:integer;var DGLAT2,DGLON2,DBAZ : EXTENDED); Func VInverseDistance(dlat1,dlon1,dlat2,dlon2:ext;var AzimuthInit,AzimuthFinal:ext;units:int):ext; Func RhumbDistance(llat1,llon1,llat2,llon2:extended;units:integer;var Azimuth:extended):extended; Proc RhumbLatLon(LAT1,LON1 Azimuth1,Dist:EXTENDED;Units:integer;var LAT2,LON2:EXTENDED); Func ApproxEllipticalDistance(llat1,llon1,llat2,llon2: extended;units:integer):extended; Func ApproxRhumbDistance(llat1,llon1,llat2,llon2:extended;units:integer; var Azimuth:extended): extended' Proc ApproxRhumbLatLon(LAT1,LON1,Azimuth1,Dist:EXTENDED;Units integer;var LAT2,LON2: EXTENDED); Func convertunits( fromindex,ToIndex:integer;fromvalue:extended):extended'); end; Example https://www.nhc.noaa.gov/gccalc.shtml Latitude/Longitude Distance Calculator: //units 1: meters, 2: naut-miles , 3: sea miles writeln(flots(EllipticalDistance(47.00,17.0,48.00,17.0, 1))); //test: 111.18 //48.502781, 8.961343 - 48.511204, 8.883025 writeln(flots(EllipticalDistance(48.502781,8.961343,48.511204,8.883025, 1))); --> 5.8623 km Proc SIRegister_PXLTiming(CL: TPSPascalCompiler); begin CL.AddConstantN('OverrunDeltaLimit','Extended').setExtended( 8.0); TTimerEvent', 'Proc ( const Sender : TObject); SIRegister_TMultimediaTimer2(CL); CL.AddTypeS(TSystemTimerValue, 'UInt64'); Func TimerValueInBetween(const Value1,Value2: TSystemTimerValue):TSystemTimerValue; Func TickCountInBetween( const Value1, Value2:Card) :Card'); Func GetSystemTimerValue: TSystemTimerValue'); Func GetSystemTickCount:Card'); Func GetSystemTimeValue: Double'); Proc MicroSleep( const Microseconds : UInt64); end; (* === compile-time registration functions === *) (*----------------------------------------------------------------------------*) Proc SIRegister_TMultimediaTimer2(CL: TPSPascalCompiler); begin //with RegClassS(CL,'TOBJECT', 'TMultimediaTimer') do type TMultimediaTimer2 = PXLTiming.TMultimediaTimer; with CL.AddClassN(CL.FindClass('TOBJECT'),'TMultimediaTimer2') do begin Constructor Create'); Proc Process'); Proc Reset'); Proc NotifyTick( AllowSleep :Bool); Delta', 'Double', iptr); Latency', 'Double', iptr); FrameRate', 'Integer', iptr); Speed', 'Double', iptrw); MaxFPS', 'Integer', iptrw); Enabled', 'Boolean', iptrw); SingleCallOnly', 'Boolean', iptrw); OnTimer', 'TTimerEvent', iptrw); OnProcess', 'TTimerEvent', iptrw); end; end; Proc SIRegister_TNetCom(CL: TPSPascalCompiler); begin //with RegClassS(CL,'TOBJECT', 'TNetCom') do with CL.AddClassN(CL.FindClass('TOBJECT'),'TNetCom') do begin Constructor Create'); Proc Free'); Func Initialize :Bool'); Proc Finalize'); Func ResolveHost( const Host :Str) :Str'); Func ResolveIP( const IPAddress :Str) :Str'); Func SendStr(const Host:Str;const Port:Integer;const Data:str;const Size:Int):Bool; Func Send2(const Host:str;const Port:Integer;const Data:str;const Size:Int):Bool; Func Send(const Host:str;const Port:Integer;const Data:str;const Size:Int):Bool; Proc Update'); Proc ResetStatistics'); LocalIP', 'String', iptr); Initialized', 'Boolean', iptr); Broadcast', 'Boolean', iptrw); LocalPort', 'Integer', iptrw); /('OnReceive', 'TReceiveEvent', iptrw); UpdateRefreshTime', 'Integer', iptrw); BytesReceived', 'Integer', iptr); BytesSent', 'Integer', iptr); SentPackets', 'Integer', iptr); ReceivedPackets', 'Integer', iptr); BytesPerSec', 'Integer', iptr); end; end; (*----------------------------------------------------------------------------*) Proc SIRegister_PXLNetComs(CL: TPSPascalCompiler); begin CL.AddConstantN('MaximumPacketSize','LongInt').SetInt( 8166); CL.AddTypeS('TSocket', 'Integer'); //delphisocks as longint CL.AddTypeS('TInAddr', 'record S_addr :Card; end'); SIRegister_TNetCom(CL); end; unit uPSI_cTCPConnection.pas Proc RIRegister_cTCPConnection_Routines(S: TPSExec); Func TCPGetTick : LongWord'); Func TCPTickDelta( const D1, D2 : LongWord) : Integer'); Func TCPTickDeltaW( const D1, D2 : LongWord) : LongWord'); Proc SIRegister_cTCPConnection(CL: TPSPascalCompiler); begin CL.AddClassN(CL.FindClass('TOBJECT'),'ETCPConnection'); CL.FindClass('TOBJECT'),'TTCPConnection'); CL.AddTypeS('TTCPLogType', '( tlDebug, tlInfo, tlError ); TTCPConnectionProxyState,(prsInit,prsNegotiating,prsFiltering,prsFinished,prsError,prsClosed); SIRegister_TTCPConnectionProxy(CL); SIRegister_TTCPConnectionProxyList(CL); TTCPConnectionState','(cnsInit,cnsProxyNegotiation,cnsConnected,cnsClosed ); TTCPConnectionTransferState,record LastUpdate:LongWord;ByteCount:Int64;TransferRate:LongWord; end; TAnsiCharSet', 'set of AnsiChar'); TTCPConnectionNotifyEvent', 'Proc ( Sender : TTCPConnection); TTCPConnectionStateChangeEvent', 'Proc ( Sender : TTCPConnection; State: TTCPConnectionState); TTCPConnectionLogEvent','Procedure(Sender:TTCPConnection;LogType:TTCPLogType;LogMsg:str; LogLevel:Int; SIRegister_TTCPConnection(CL); //CL.AddTypeS('TTCPConnectionClass', 'class of TTCPConnection'); Func TCPGetTick : LongWord'); Func TCPTickDelta( const D1, D2 : LongWord) : Integer'); Func TCPTickDeltaW( const D1, D2 : LongWord) : LongWord'); end; Proc RIRegister_cTCPConnection_Routines(S: TPSExec); begin S.RegisterDelphiFunction(@TCPGetTick, 'TCPGetTick', cdRegister); S.RegisterDelphiFunction(@TCPTickDelta, 'TCPTickDelta', cdRegister); S.RegisterDelphiFunction(@TCPTickDeltaW, 'TCPTickDeltaW', cdRegister); end; var HTMLWindow2: IHTMLWindow2; const HTMLStrGoogle 'string').SetString(HTMLStrGoogle); //javascript Proc GoogleMapsFormCreate(Sender:TObject;aform:TForm;webbrowser1:TWebbrowser;HTMLStr:str); Proc GoogleMapsGotoLocationClick(Sender: TObject; LatitudeText, LongitudeText:Str ); begin HTMLWindow2.execScript(Format('GotoLatLng(%s,%s)',[LatitudeText,LongitudeText]),'JavaScript'); end; Proc GoogleMapsGotoAddressClick(Sender: TObject; vaddress:Str); var address :Str; begin address:= vaddress; address:=StringReplace(StringReplace(Trim(address),#13,' ',[rfReplaceAll]),#10,' ',[rfReplaceAll]); HTMLWindow2.execScript(Format('codeAddress(%s)',[QuotedStr(address)]), 'JavaScript'); end; Func TaskbarHandle: THandle'); Func TrayHandle: THandle'); Proc DOSWipeFile(fn:Str); Proc DOSFileWipe(fn:Str); Func ExecAndWait(sExe, sCommandLine:Str):Bool; Proc GoogleMapsFormCreate(Sender:TObject;aform:TForm; webbrowser1:TWebbrowser;HTMLStr,navdoc:str); Proc GoogleMapsGotoLocationClick(Sender:TObject;LatitudeText,LongitudeText:Str ); Proc GoogleMapsGotoAddressClick(Sender: TObject; vaddress:Str); Proc GoogleMapsGotoAddressClick(Sender: TObject; vaddress:Str); Proc BitmapToMetafile(const Bmp: {Graphics.}TBitmap; const EMF: {Graphics.}TMetafile); Proc SIRegister_DrBobCGI(CL: TPSPascalCompiler); begin CL.AddTypeS('TBobRequestMethod','(bobUnknown, bobGet, bobPost ); Func bobValue( const Field : ShortString; Convert :Bool) : ShortString'); Func CookieValue( const Field : ShortString) : ShortString'); Func getCGIEnvValues:Str; end; Func getCGIEnvValues:Str; begin result:= inttoStr(ContentLength)+';'+RemoteAddress+';'+HttpUserAgent+';'+ Authorization+';'+ScriptName+'.' end; Proc SIRegister_OverbyteIcsCharsetUtils(CL: TPSPascalCompiler); begin CL.AddConstantN('ERR_CP_NOTMAPPED','LongInt').SetInt( MAX_CODEPAGE + 1); 'ERR_CP_NOTAVAILABLE','LongInt').SetInt( MAX_CODEPAGE + 2); ^'CP_US_ASCII','LongInt').SetInt( 20127); CL.AddTypeS('CsuString', 'String'); CL.AddTypeS('TMimeCharset', '( CS_DEFAULT, CS_NOTMAPPED, UTF_8, WIN_1250, WIN' +'_1251, WIN_1252, WIN_1253, WIN_1254, WIN_1255, WIN_1256, WIN_1257, WIN_125' +'8, ISO_8859_1, ISO_8859_2, ISO_8859_3, ISO_8859_4, ISO_8859_5, ISO_8859_6,' +' ISO_8859_7, ISO_8859_8, ISO_8859_8_i, ISO_8859_9, ISO_8859_13, ISO_8859_1' +'5, ISO_2022_JP, ISO_2022_JP_1, ISO_2022_JP_2, ISO_2022_KR, ISO_2022_CN, X_' +'CP50227, EUC_JP, GB_2312_80, GB_2312, HZ_GB_2312, GB_18030, EUC_CN, KOI8_R' +', KOI8_U, UTF_16LE, UTF_16BE, UTF_7, SHIFT_JIS, BIG_5, KOREAN_HANGUL, EUC_' +'KR, WIN_874, IBM_037, IBM_437, IBM_500, IBM_850, IBM_852, IBM_855, IBM_857' +', IBM_00858, IBM_860, IBM_861, IBM_862, IBM_863, IBM_864, IBM_865, IBM_866' +', IBM_869, IBM_870, IBM_1026, IBM_01047, IBM_01140, IBM_01141, IBM_01142, ' +'IBM_01143, IBM_01144, IBM_01145, IBM_01146, IBM_01147, IBM_01148, IBM_0114' +'9, MACINTOSH, UTF_32LE, UTF_32BE, US_ASCII, T_61, CS_LAST_ITEM ); CL.AddTypeS('TMimeCharsets', 'set of TMimeCharset'); CL.AddTypeS('_cpinfoexA',record MaxCharSize:UINT;DefaultChar:array[0..2 - 1] of Byte;LeadByte:array[0..12 - 1] of Byte;'+'UnicodeDefaultChar:WideChar;CodePage:UINT; CodePageName: array[0..MAX_PATH] of AnsiChar; end'); CL.AddTypeS('_cpinfoexW',record MaxCharSize :UINT;DefaultChar: array[0..2 - 1] of Byte; LeadByte :array[0..12 - 1] of Byte;'+'UnicodeDefaultChar: WideChar; CodePage:UINT;CodePageName:array[0..MAX_PATH] of WideChar;end'); (*_cpinfoexA = record MaxCharSize : UINT; { max length (bytes) of a char } DefaultChar : array[0..MAX_DEFAULTCHAR - 1] of Byte; { default character } LeadByte : array[0..MAX_LEADBYTES - 1] of Byte; { lead byte ranges } UnicodeDefaultChar : WideChar; CodePage : UINT; CodePageName : array[0..MAX_PATH] of AnsiChar; end; *) //CL.AddTypeS('PCharsetInfo', '^TCharsetInfo // will not work'); CL.AddTypeS(TCharsetInfo', 'record MimeCharset : TMimeCharset; CodePage : Lo' +ngWord; MimeName : CsuString; FriendlyName :Str; end'); CL.AddTypeS('TCharsetInfos', 'array of TCharsetInfo'); //CL.AddTypeS('LPCPINFOEXA', '^CPINFOEXA // will not work'); CL.AddTypeS('CPINFOEXA', '_cpinfoexA'); CL.AddTypeS('TCpInfoExA', 'CPINFOEXA'); //CL.AddTypeS('PCpInfoExA', 'LPCPINFOEXA'); //CL.AddTypeS('LPCPINFOEXW', '^CPINFOEXW // will not work'); CL.AddTypeS('CPINFOEXW', '_cpinfoexW'); CL.AddTypeS('TCpInfoExW', 'CPINFOEXW'); //CL.AddTypeS('PCpInfoExW', 'LPCPINFOEXW'); //CL.AddTypeS('PCpInfoEx', 'PCpInfoExW'); CL.AddTypeS('CPINFOEX', 'CPINFOEXW'); CL.AddTypeS('TCpInfoEx', 'TCpInfoExW'); //CL.AddTypeS('LPCPINFOEX', 'LPCPINFOEXW'); //CL.AddTypeS('PCpInfoEx', 'PCpInfoExA'); CL.AddTypeS('CPINFOEX', 'CPINFOEXA'); CL.AddTypeS('TCpInfoEx', 'TCpInfoExA'); //CL.AddTypeS('LPCPINFOEX', 'LPCPINFOEXA'); SIRegister_TCodePageObj(CL); CL.AddDelphiFunction('Func CodePageToMimeCharset( ACodePage : LongWord) : TMimeCharset'); Func CodePageToMimeCharsetString( ACodePage : LongWord) : CsuString'); Func GetMimeInfo0( AMimeCharSet : TMimeCharset) : PCharSetInfo; //&&CL.AddDelphiFunc('Func GetMimeInfo1(const AMimeCharSetStr:CsuString):PCharSetInfo; //CL.AddDelphiFunction('Func GetMimeInfo2( ACodePage : LongWord) : PCharSetInfo; Func MimeCharsetToCharsetString( AMimeCharSet : TMimeCharset) : CsuString'); ('Func ExtractMimeName( PInfo : PCharSetInfo) : CsuString'); Func MimeCharsetToCodePage3( AMimeCharSet : TMimeCharset) : LongWord; Func MimeCharsetToCodePage4(const AMimeCharSetStr:CsuString;out ACodePage:LongWord):Bool; Func MimeCharsetToCodePageDef( const AMimeCharSetString : CsuString) : LongWord'); Func MimeCharsetToCodePageEx5(const AMimeCharSetStr:CsuString;out ACodePage:LongWord):Bool; Func MimeCharsetToCodePageExDef( const AMimeCharSetString : CsuString) : LongWord'); Func IsValidAnsiCodePage( ACodePage : LongWord) :Bool'); Func IcsIsValidCodePageID( ACodePage : LongWord) :Bool'); Func IsSingleByteCodePage( ACodePage : LongWord) :Bool'); Proc GetSystemCodePageList( AOwnsObjectList : TObjectList); Func AnsiCodePageFromLocale( ALcid : LCID) : LongWord'); Func OemCodePageFromLocale( ALcid : LCID) : LongWord'); Func GetThreadAnsiCodePage : LongWord'); Func GetThreadOemCodePage : LongWord'); Func GetUserDefaultAnsiCodePage : LongWord'); Func GetUserDefaultOemCodePage : LongWord'); Func GetCPInfoExA( CodePage : UINT; dwFlags : DWORD; var lpCPInfoEx : CPINFOEXA) : BOOL'); Func GetCPInfoExW( CodePage : UINT; dwFlags : DWORD; var lpCPInfoEx : CPINFOEXW) : BOOL'); Func GetCPInfoEx( CodePage : UINT; dwFlags : DWORD; var lpCPInfoEx : CPINFOEX) : BOOL'); Proc GetFriendlyCharsetList(Items:TStrings;IncludeList: TMimeCharsets; ClearItems : Bool); Proc GetMimeCharsetList( Items : TStrings; IncludeList: TMimeCharsets; ClearItems: Bool); end; Proc SIRegister_OverbyteIcsMimeUtils(CL: TPSPascalCompiler); begin TMimeUtilsVersion','LongInt').SetInt( 802); 'mimuutilsCopyRight','String').SetString( ' MimeUtils (c) 2003-2014 F. Piette V8.02 '); 'SmtpDefaultLineLength','LongInt').SetInt( 76); 'SMTP_SND_BUF_SIZE','LongInt').SetInt( 2048); 'icsRegContentType','String').SetString( 'MIME\Database\Content Type'); //CL.AddConstantN('SpecialsRFC822','TSysCharSet').SetString(ord(AnsiChar)( '(' ) or ord(AnsiChar)( ')') or ord(AnsiChar)( '<' )or ord(AnsiChar)( '>' ) or ord(AnsiChar)( '@' ) or ord(AnsiChar)( ',' ) or ord(AnsiChar)( ';' ) or ord(AnsiChar)( ':' )or ord(AnsiChar)( '\' )or ord(AnsiChar)( '"' )or ord(AnsiChar)( '[' ) or ord(AnsiChar)( ']' ) or ord(AnsiChar)( '.' )); //CL.AddConstantN('CrLfSet','TSysCharSet').SetString(ord(AnsiChar)(#13)or ord(AnsiChar)(#10)); //CL.AddConstantN('QuotedCharSet','TSysCharSet').SetString(ord(AnsiChar)('?' )or ord(AnsiChar)('=' )or ord(AnsiChar)' ' )or ord(AnsiChar)( '_' )); //CL.AddConstantN('BreakCharsSet','TSysCharSet').SetString(ord(AnsiChar)( #9 ) or ord(AnsiChar) (#32 )or ord(AnsiChar)(';')or ord(AnsiChar)(',')or ord(AnsiChar) ('>')or ord(AnsiChar)(']')); Func EncodeQuotedPrintable0( const S : RawByteString) :Str; Func EncodeQuotedPrintable1(const S:UnicodeString; ACodePage: LongWord) :UnicodeString; Func EncodeQuotedPrintable2( const S : UnicodeString) : UnicodeString; Func DecodeQuotedPrintable3( const S : RawByteString) : RawByteString; Func DecodeQuotedPrintable4(const S : UnicodeString; ACodePage:LongWord):UnicodeString; Func DecodeQuotedPrintable5( const S : UnicodeString) : UnicodeString; Func SplitQuotedPrintableString( const S :Str) :Str'); Func FilenameToContentType( FileName :Str) :Str'); Func Base64Encode6( const Input : Ansistr) : Ansistr; Func Base64Encode7( const Input : PAnsiChar; Len : Integer) : Ansistr; Func Base64Encode8( const Input : UnicodeString; ACodePage : LongWord):UnicodeString; Func Base64Encode9( const Input : UnicodeString) : UnicodeString; Func Base64Encode10( Input :StrBuilder) :StrBuilder; Func Base64Decode11( const Input: Ansistr) : Ansistr; Func Base64Decode12( const Input: UnicodeString; ACodePage : LongWord):UnicodeString; Func Base64Decode13( const Input: UnicodeString) : UnicodeString; ('Func Base64Decode14( Input :StrBuilder) :StrBuilder; Func InitFileEncBase64( const FileName :Str; ShareMode : Word) : TStream'); Func DoFileEncBase64( var Stream : TStream; var More :Bool) : Ansistr'); Func DoFileEncQuotedPrintable( var Stream : TStream; var More :Bool) : Ansistr'); Func DoTextFileReadNoEncoding( var Stream : TStream; var More :Bool) : Ansistr'); Func DoFileLoadNoEncoding( var Stream : TStream; var More :Bool) :Str'); Func Base64EncodeEx15(const Input:RawByteString;MaxCol:Int;var cPos:Integer;CodePage:LongWord;IsMultiByteCP:Bool):RawByteString; Func Base64EncodeEx16(const Input:UnicodeString;MaxCol:Integer;var cPos:Int):UnicodeString; Func Base64EncodeEx17(const Input:UnicodeString;MaxCol:Integer;var cPos:Integer;ACodePage:LongWord): UnicodeString; Proc EndFileEncBase64( var Stream : TStream); Proc DotEscape( var S :Str; OnlyAfterCrLf :Bool); //CL.AddDelphiFunction('Func IcsWrapTextEx18(const Line:RawByteString;const BreakStr:RawByteString;const BreakingChars: TSysCharSet; MaxCol:Integer;QuoteChars TSysCharSet; var cPos:Integer;ForceBreak:oolean;ACodePage:LongWord;IsMultiByteCP:Boolean) RawByteString; Func IcsWrapTextEx19(const Line:Str; const BreakStr :Str; const BreakingChars : TSysCharSet;MaxCol:Integer;QuoteChars:TSysCharSet;var cPos:Integer;ForceBreak Boolean):str; Func UnFoldHdrLine( const S :Str) :Str'); Func NeedsEncoding20( const S : Ansistr) :Bool; Func NeedsEncoding21( const S : UnicodeString) :Bool; Func NeedsEncodingPChar( S : PChar) :Bool'); Func HdrEncodeInLine22(const Input:RawByteString;Specials:TSysCharSet; EncType:AnsiChar;const CharSet: Ansistr; MaxCol:Integer; DoFold :Bool; CodePage:LongWord;IsMultiByteCP:Bool):RawByteString; Func HdrEncodeInLine23(const Input:UnicodeString;Specials:TSysCharSet;EncType:WideChar;const CharSet: UnicodeString; MaxCol:Integer;DoFold:Bool;Codepage:LongWord; IsMultiByteCP:Bool):UnicodeString; Func HdrEncodeInLineEx( const Input : UnicodeString Specials:TSysCharSet;EncType:WideChar;CodePage:LongWord;MaxCol:Integer;DoFold:Bool;IsMultiByteCP:Bool):RawByteString'); Func StrEncodeQP24(const Input:RawByteString;MaxCol:Integer;Specials:TSysCharSet;CodePage:LongWord; IsMultibyteCP:Bool):Str; Func StrEncodeQP25(const Input:UnicodeString;MaxCol:Integer;Specials:TSysCharSet;ACodePage:LongWord; IsMultibyteCP:Bool):UnicodeString; Func StrEncodeQPEx26(const Buf:RawByteString;MaxCol:Integer;Specials:TSysCharSet;ShortSpace:Bool;var cPos:Int;DoFold:Bool;CodePage:LongWord;IsMultibyteCP:Bool):RawByteString; Func StrEncodeQPEx27(const Buf:UnicodeString;MaxCol:Integer;Specials:TSysCharSet;ShortSpace:Boolean;var cPos: Integer;DoFold:Boolean):UnicodeString; Proc FoldHdrLine28( HdrLines : TStrings; const HdrLine :Str); Proc FoldHdrLine29(HdrLines:TStrings;const HdrLine:RawByteString; ACodePage:LongWord;IsMultiByteCP:Boolean); Func FoldString30(const Input:RawByteString;BreakCharsSet:TSysCharSet;MaxCol:Integer;ACodePage:LongWord; IsMultiByteCP:Bool):RawByteString; Func FoldString31(const Input:UnicodeString;BreakCharsSet:TSysCharSet;MaxCol:Int):UnicodeString; Func CalcBase64AttachmentGrow(FileSize : Int64) : Int64'); //Func EncodeMbcsInline32(CodePage:LongWord;const Charset:str;EncType:Char;Body:PWideChar;Len:Integer;DoFold:Boolean;MaxLen Integer): Ansistr; //Func EncodeMbcsInline33(CodePage:LongWord;const Charset:str;EncType:Char;Body:PAnsiChar;Len:Integer;DoFold:Boolean;MaxLen: Integer): Ansistr; Func ContentTypeGetExtn( const Content :Str; var CLSID :Str) :Str'); 'Func ContentTypeFromExtn( const Extension :Str) :Str'); CL.AddTypeS('TMimeTypeSrc','( MTypeList, MTypeOS, MTypeMimeFile, MTypeKeyFile, MTypeRes ); SIRegister_TMimeTypesList(CL); end; Returns the MIME name of a Windows code page identifier or an empty } { string if the code page identifier is not mapped. } Func CodePageToMimeCharsetString(ACodePage: LongWord): CsuString; Proc SIRegister_TMimeTypesList(CL: TPSPascalCompiler); begin //with RegClassS(CL,'TComponent', 'TMimeTypesList') do with CL.AddClassN(CL.FindClass('TComponent'),'TMimeTypesList') do begin Constructor Create( AOwner : TComponent); Proc Free'); Func LoadTypeList :Bool'); Proc Clear'); Func CountExtn : integer'); Func CountContent : integer'); Func AddContentType(const AExtn, AContent:Str) :Bool'); Func LoadWinReg :Bool'); Func LoadFromOS :Bool'); Func LoadFromList :Bool'); Func LoadMimeFile( const AFileName :Str) :Bool'); Func LoadFromResource( const AResName :Str) :Bool'); Func LoadFromFile( const AFileName :Str) :Bool'); Func SaveToFile( const AFileName :Str) :Bool'); Proc LoadContentTypes( AList : TStrings); Proc AddContentTypes( AList : TStrings); Proc GetContentTypes( AList : TStrings); Func TypeFromExtn( const AExtn :Str) :Str'); Func TypeFromFile( const AFileName :Str) :Str'); Func TypeGetExtn( const AContent :Str) :Str'); RegisterProperty('LoadOSonDemand', 'boolean', iptrw); RegisterProperty('MimeTypesFile', 'string', iptrw); RegisterProperty('DefaultTypes', 'TStringList', iptrw); RegisterProperty('MimeTypeSrc', 'TMimeTypeSrc', iptrw); RegisterProperty('UnknownType', 'string', iptrw); end; end; Proc SIRegister_uWebSocket(CL: TPSPascalCompiler); begin CL.AddClassN(CL.FindClass('TOBJECT'),'TWebSocketConnection'); CL.AddTypeS(TWebSocketMessageEvent','Proc (AConnection:TWebSocketConnection;const AMessage:str); TWebSocketConnectEvent', 'Proc ( AConnection : TWebSocketConnection); TWebSocketDisconnectEvent', 'Proc ( AConnection : TWebSocketConnection); CL.AddClassN(CL.FindClass('TOBJECT'),'TWebSocketException'); CL.AddClassN(CL.FindClass('TOBJECT'),'TWebSocketHandshakeException'); SIRegister_TWebSocketRequest(CL); SIRegister_TWebSocketConnection(CL); SIRegister_TWebSocketServer(CL); end; (*----------------------------------------------------------------------------*) Proc SIRegister_OverbyteIcsUrl(CL: TPSPascalCompiler); begin CL.AddConstantN('IcsUrlVersion','LongInt').SetInt( 800); CL.AddConstantN('uriCopyRight','String').SetString(' TIcsURL (c) 1997-2012 F. Piette V8.00 '); Proc icsParseURL( const URL :Str; var Proto, User, Pass, Host, Port, Path:Str); Func icsPosn( const s, t :Str; count : Integer) : Integer'); Func icsUrlEncode( const S:str;DstCodePage:LongWord) :Str'); Func icsUrlDecode0(const S:str;SrcCodePage:LongWord;DetectUtf8:Boolean):str; Func icsUrlDecode1(const S:RawByteString;SrcCodePage:LongWord;DetectUtf8:Bool):UnicodeString; Func icsUrlEncodeToA( const S:Str; DstCodePage : LongWord) : Ansistr'); end; (*----------------------------------------------------------------------------*) Proc SIRegister_OverbyteIcsLogger(CL: TPSPascalCompiler); begin CL.AddConstantN('TIcsLoggerVersion','LongInt').SetInt( 800); IcsCopyRight','String').SetString( ' IcsLogger (c) 2005-2012 by François PIETTE V8.00 '); CL.AddClassN(CL.FindClass('TOBJECT'),'ELoggerException'); CL.AddTypeS('TLogOption',(loDestEvent,loDestFile,loDestOutDebug,loAddStamp,loWsockErr,loWsockInfo,loWsockDump,loSslErr,loSslInfo, loSslDump,loProtSpecErr,loProtSpecInfo,loProtSpecDump); TLogOptions', 'set of TLogOption'); TLogFileOption', '( lfoAppend, lfoOverwrite ); TLogFileEncoding', '( lfeUtf8, lfeUtf16 ); CL.AddConstantN(LogAllOptErr','LongInt).Value.ts32:=ord(loWsockErr) or ord(loSslErr) or ord(loProtSpecErr); TNTEventType', '( etError, etWarning, etInformation, etAuditSuccess, etAuditFailure ); TIcsLogEvent', 'Proc ( Sender : TObject; LogOption : TLogOption; const Msg :Str); SIRegister_TIcsLogger(CL); end; Proc MoveCardinal2String(const Source:Card; SrcStartIdx: Integer; var Dest:Str; DstStartIdx: Integer; Count: Integer); Proc MoveString2Cardinal(const Source:Str; SrcStartIdx: Integer; var Dest:Card; DstStartIdx: Integer; Count: Integer); Proc MoveCardinal(const Source:Card; var Dest:Card; Count: Integer); Func ExplodeStr(S:Str; Delimiter: Char; Index: Integer):Str; //overload; var I: Integer; P, P1: PChar; Func ImplodeStr(S:Str; Delimiter: Char):Str; Func ExplodeStr(S:Str; Delimiter: Char; Index: Integer):Str; //overload; Func InSetWord(n:word):boolean; borland video frame resourcestring { Charsets, user-friendly names, known from OE and IE } sArabicISO = 'Arabic (ISO)'; //28596 sArabicWindows = 'Arabic (Windows)'; //1256 sBalticISO = 'Baltic (ISO)'; //28594 sBalticWindows = 'Baltic (Windows)'; //1257 sCentralEuropeanISO = 'Central European (ISO)'; //28592 sCentralEuropeanWindows = 'Central European (Windows)'; //1250 sChineseTraditionalBig5 = 'Chinese Traditional (Big5)'; //950 sChineseSimplifiedGB18030 = 'Chinese Simplified (GB18030)'; //54936 sChineseSimplifiedGB2312 = 'Chinese Simplified (GB2312)';//936 sChineseSimplifiedHZ = 'Chinese Simplified (HZ)'; //52936 sCyrillicISO = 'Cyrillic (ISO)'; //28595 sCyrillicKOI8R = 'Cyrillic (KOI8-R)'; //20866 sCyrillicKOI8U = 'Cyrillic (KOI8-U)'; //21866 sCyrillicWindows = 'Cyrillic (Windows)'; //1251 sEstonianISO = 'Estonian (ISO)'; //28603 sGreekISO = 'Greek (ISO)'; //28597 sGreekWindows = 'Greek (Windows)'; //1253 sHebrewISOLogical = 'Hebrew (ISO-Logical)'; //38598 sHebrewISOVisual = 'Hebrew (ISO-Visual)'; //28598 sHebrewWindows = 'Hebrew (Windows)'; //1255 sJapaneseJIS = 'Japanese (JIS)'; //932 sKorean = 'Korean'; //949 sKoreanEUC = 'Korean (EUC)'; //51949 sLatin9 = 'Latin 9 (ISO)'; //28605 sThaiWindows = 'Thai (Windows)'; //874 sTurkishISO = 'Turkish (ISO)'; //28599 sTurkishWindows = 'Turkish (Windows)'; //1254 sUnicodeUTF7 = 'Unicode (UTF-7)'; //65001 sUnicodeUTF8 = 'Unicode (UTF-8)'; //65000 sVietnameseWindows = 'Vietnamese (Windows)'; //1258 sWesternEuropeanISO = 'Western European (ISO)'; //28591 sWesternEuropeanWindows = 'Western European (Windows)'; //1252 Proc SIRegister_psULib(CL: TPSPascalCompiler); // Prometheus begin 'clMoneyGreenps','LongWord').SetUInt( TColor ( $00C0DCC0 )); ('clMedGrayps','LongWord').SetUInt( TColor ( $00A4A0A0 )); ('clRxCreamps','LongWord').SetUInt( TColor ( $00A6CAF0 )); ('clCreamps','LongWord').SetUInt( TColor ( $00F0FBFF )); ('clRxSkyBlueps','LongWord').SetUInt( TColor ( $00FFFBF0 )); ('clSkyBlueps','LongWord').SetUInt( TColor ( $00F0CAA6 )); ('clInfoBkps','LongWord').SetUInt( TColor ( $02E1FFFF )); ('clNoneps','LongWord').SetUInt( TColor ( $02FFFFFF )); ('clSystemColor','LongWord').SetUInt( $FF000000); ('MinutesPerDay','LongInt').SetInt( 24 * 60); ('DefaultBeepDelay','LongInt').SetInt( 500); ('cDoNotBringToTop','String').SetString( '-LaunchInBackground'); CL.AddTypeS('TFilenameEvent', 'Proc ( Sender : TObject; var Filename :Str); //CL.AddTypeS('TWriteDebugProc','Procedure(const LogName,RoutineName,Commen:str;DebugData:array of string); CL.AddTypeS('TMaxIntSize', '( mbsInt8, mbsWord8, mbsInt16, mbsWord16, mbsInt32, mbsWord32 ); Proc WriteDebugps(const LogName,RoutineName,Comment:str;DebugData:array of string); Func Betweenps( Value, BoundA, BoundB : integer; AllowFlip :Bool) :Bool'); Func BooleanMatchsp( Value1 :Bool; Value2 : integer) :Bool; Func BooleanMatch1ps( Value1 : integer; Value2 :Bool) :Bool; Func BooleanMatch2ps( Value1, Value2 : integer) :Bool; Func IDMatchps( RequiredID, TestID : integer) :Bool; Func IDMatch1ps( RequiredID : TField; TestID : integer) :Bool; Func IDMatch2ps( RequiredID, TestID : TField) :Bool; Func Blendps( Color1, Color2 : TColor; Weight1 : integer; Weight2 : integer) : TColor'); Func MergeRGBps( Red, Green, Blue : integer) : TColor'); Proc SplitRGBps( Color : TColor; var Red, Green, Blue : integer); Func VisibleContrastps( BackgroundColor : TColor) : TColor'); Func SortedStrps( Value :Str) :Str'); Func IntSortStrps( const Value : integer) :Str'); //Func AllAssignedps( Values : array of pointer) :Bool'); Func GetTokenps( var SourceStr :Str; Delim :Str) :Str'); Func URLizeps( SourceStr :Str) :Str'); Func UnURLizeps( const SourceStr :Str) :Str'); Func UnQuoteStrps( const Value :Str; QuoteChar : char) :Str'); Proc SetAndSaveBoolps( var OldVar :Bool; Value :Bool; var SaveVar :Bool); Proc SetAndSaveIntps( var OldVar : integer; Value : integer; var SaveVar : integer); Proc SetAndSaveStrps( var OldVar :Str; const Value :Str; var SaveVar :Str); Func GetCharFromVKeyps( VKey : word) :Str'); Func IsControlKeyDownps :Bool'); Proc PushScreenCursorps( const aCursor : TCursor); Proc PopScreenCursorps'); Func PeekScreenCursorps : TCursor'); Func CharIsNumericSymbolps( aChar : char) :Bool'); Func PrecisionMultiplierps( DecimalPrecision : byte) :Card'); Func TextToFloatValps(const aText:str;const DecimalPrecision:byte;const DefaultValue:extended):extended; Func TextToWordValps(const aText:str;const DefaultVal:cardi;const MaxIntSize:TMaxIntSize):cardi; Func TextToIntValps(const aText:str;const DefaultVal:int;const MaxIntSize:TMaxIntSize):int; Func BankersRoundingps( const Num : currency; const DecimalPrecision : byte) : currency'); Func RoundDownps( const Num : Extended; const DecimalPrecision : byte) : Extended'); Func RoundUpps( const Num : Extended; const DecimalPrecision : byte) : Extended'); Func RoundNearestps( const Num : Extended; const DecimalPrecision : byte) : Extended'); Func NumDigitsps( const aNum : integer) : integer'); Func ZeroToMaxps( Value : integer) : integer'); Proc CopyIfPrefixMatchps(Source,Dest:TStrings;Prefix:str;ClearDest:bool;ValuesOnly:bool); Func HexToCharps( const aValue : byte) : AnsiChar'); Func CharToHexps( const aValue : AnsiChar) : byte'); Func HexToTextps( const Source : Ansistr) : Ansistr'); Func TextToHexps( const Source : Ansistr) : Ansistr'); Proc SaveGraphicToStreamps( aGraphic : TGraphic; aStream : TStream); Func LoadGraphicFromStreamps( aStream : TStream) : TGraphic'); Func GraphicToTextps( aGraphic : TGraphic) :Str'); Func TextToGraphicps( aGraphicAsText :Str) : TGraphic'); Func GetCustNameStrps( aFirstName, aLastName :Str) :Str'); Func GetLongCustNameStrps( aTitle, aFirstName, aLastName :Str) :Str'); Func GetPriceFromMarginps( const aMargin :Str; aCost : currency): currency'); Func GetMarginFromPriceps( aPrice, aCost : currency) :Str'); Func GetDriveSerialNumps( Path :Str) : longint'); Func GetCCCardTypeFromNameps( aCardName :Str) : integer'); Func GetItemMarginPercentps( Price, Cost : Currency) : double'); Func ValidateCreditCardps( aCardNum :Str) :Bool'); Func ValidateCreditCardRangeps( const aCardNum, aLowNum, aHighNum :Str) :Bool'); Func HHMMToTimeps( Value :Str) : TTime'); Func MMDDToDateps( Value :Str) : TDate'); Func TimeToHHMMSSps( Value : TTime) :Str'); Func DateToYYYYMMDDps( Value : TDate) :Str'); Func FontColorToStringps( SourceFont : TFont; SourceColor : TColor) :Str'); Proc StringToFontps( aStr :Str; DestFont : TFont); Proc StringToFontColorps( aStr :Str; DestFont : TFont; var DestColor : TColor); Proc ShowDebugStringsps( DebugStrings : TStrings); Proc ShowStackDumpps'); Proc RegisterFileExtensionps(const Extension,Description,DefaultActionName,DefaultActionDescription,DefaultActionCommand:str; IconIndex:integer); Func LaunchCommandps(aCommand:str; aParams:str; WaitForTerminate:boolean):bool; Func GetWindowsDirectoryStrps :Str'); Func IsRemoteSessionps :Bool'); Func IsWinXPps :Bool'); Proc AssignTextFileToStreamps( var ATextFile : TextFile; AStream : TStream); Func DeleteFileMaskps( const Mask :Str) :Bool'); Func FileMaskCountps( const Mask :Str) : integer'); Func FileMaskExistsps( const Mask :Str) :Bool'); Func FileMaskListps( const Mask :Str) :Str; Func FileMaskList1ps(const Mask:str; Dest : TStrings; ClearList :Bool) :Bool; Func GetSafeNumericVariantps( Value : Variant) : Variant'); Func GetPasswordCharStrps( aStr :Str) :Str'); Func GetDriversLicenseHeightDisplayTextps( aStr :Str) :Str'); Func IncludePathDelimiterps( const aFilePath :Str) :Str'); Func ExcludePathDelimiterps( const aFilePath :Str) :Str'); //Func GetEnvironmentVariable( const Name :Str) :Str'); Func ArrayToStrps( SourceArray : array of string; Separator : AnsiChar) :Str'); Func psStrReplaceps( var S : Ansistr; const Search, Replace : Ansistr; Flags : TReplaceFlags):boolean; Func StrReplaceInStringsps(StrObject:TStrings;const Search,Replace:Ansistr;Flags:TReplaceFlags):bool; Proc ShowMessageps( aMsg :Str); Proc ShowErrorMessageps( aMsg :Str); Func StandardUserQueryps(aMsg:str;DialogType:Card;DialogCaption:Str):Card; Func ParamValueps( ParamName :Str) :Str'); Func ParamFlagSetps( ParamName :Str) :Bool'); Func ConcatenateNonBlanksps( Strings : array of string) :Str'); Func ConcatenateWithDelimiterps( Strings : array of string; Delimiter : PChar) :Str'); Func GetMaxStringLengthps( Strings : array of string) : integer'); Proc PlayBeepps( BeepActionType : TMsgDlgType; NumBeeps : integer; MSDelay : integer); Func DelTreeps( const DirectoryName :Str) :Bool'); Proc UpdateActionCaptionps( anAction : TAction; aCaption :Str); Proc GetDirectoryListps( const DirectoryName :Str; StringList : TStrings); Func DecodePathps( const Path :Str; PathVars : TStrings) :Str'); Func KillEXEps( ExeName :Str) :Bool'); Func GetWindowsDefaultPrinterNameps :Str'); Func GetBackupFilenameps( const OrigFilename :Str) :Str'); Func GetRestoreFilenameps( const BackupFilename :Str) :Str'); Func MakeBackupFileps( const OrigFilename :Str; OverwriteExisting :Bool):Str'); Func RestoreBackupFileps( const BackupFilename:str;OverwriteExisting:boolean):Str'); Func CalcDistanceps( Lat1, Long1, Lat2, Long2 : double) : double'); Func GetDelimiterCountps( aString, aDelimiter :Str) : integer'); //} end; (*----------------------------------------------------------------------------*) Proc SIRegister_psUFinancial(CL: TPSPascalCompiler); begin CL.AddTypeS(TLoanType', '( ltAmortized, ltSimple ); CL.AddTypeS(TLoanPayType','( lptMonthly, lptBiMonthly, lptBiWeekly ); TypeS(TLoanPaymentEvent','Procedure(PayDate:TDate;PayNum:int;PaymentAmt,Balance,InterestAmt,TotalInterestAmt,AmortizedAmt,TotalAmortizedAmt:currency;var ExtraPayment: currency); Func LoanPaymentAmt(Principal:currency;InterestRate:extended;TotalNumPay:integer;PayType:TLoanPayType;LoanType :TLoanType):currency'); Func LoanNumPayments(Principal,PaymentAmt:currency;InterestRate:extended;PayType:TLoanPayType;LoanType:TLoanType):int; Func LoanTotalEstimate(Principal:currency;InterestRate:extended;TotalNumPay:integer;PayType:TLoanPayType; LoanType:TLoanType):currency; Func LoanInterestEstimate(Principal:currency;InterestRate:extended;TotalNumPay:integer;PayType:TLoanPayType; LoanType:TLoanType):currency; Proc AmortizationSchedule( OnLoanPayment:TLoanPaymentEvent;StartDate:TDate;Principal :currency;InterestRate:extended;TotalNumPay:int;PayType TLoanPayType;LoanType: TLoanType); Proc AmortizationSchedulePaymentAmt(OnLoanPayment TLoanPaymentEvent;StartDate:TDate; Principal,PaymentAmt:currency;InterestRate:extended;TotalNumPay:int; PayType:TLoanPayType; LoanType:TLoanType); end; (*----------------------------------------------------------------------------*) Proc SIRegister_TSimpleRSS(CL: TPSPascalCompiler); begin //with RegClassS(CL,'TComponent', 'TSimpleRSS') do with CL.AddClassN(CL.FindClass('TComponent'),'TSimpleRSS') do begin Constructor Create( AOwner : TComponent); Proc Free'); Proc SaveToFile( Filename :Str); Func SaveToString :Str'); Proc SaveToStream( Stream : TStream); Func SaveToStrings : TStrings; Proc LoadFromHTTP( URL :Str) Proc LoadFromString( S :Str); Proc LoadFromFile( Filename :Str); Proc LoadFromStream( Stream : TStream); Proc LoadFromStrings( Strings : TStrings); Proc GenerateXML; Proc GenerateXML1( FeedType : TXMLTypeRSS); Proc GenerateComponent'); Proc ClearXML'); Property('Channel', 'TRSSChannel', iptrw); Property('Items', 'TRSSItems', iptrw); Property('Version', 'string', iptrw); Property('XMLType', 'TXMLTypeRSS', iptrw); Property('XMLFile', 'TXMLDocument', iptr); Property('IndyHTTP', 'TIdHTTP', iptrw); Property('SimpleRSSVersion', 'String', iptr); Property('OnCreate', 'TNotifyEvent', iptrw); Property('OnGenerateXML', 'TNotifyEvent', iptrw); Property('OnParseXML', 'TNotifyEvent', iptrw); end; end; (*----------------------------------------------------------------------------*) Proc SIRegister_SimpleRSSTypes(CL: TPSPascalCompiler); begin CL.AddClassN(CL.FindClass('TOBJECT'),'ESimpleRSSException'); CL.AddTypeS('TLanguagesRSS', '( langAF, langSQ, langEU, langBE, langBG, langCA, ' +'langZH_CN, langZH_TW, langHR, langCS, langDA, langNL, langNL_BE, langNL_NL' +',langEN, langEN_AU, langEN_BZ, langEN_CA, langEN_IE, langEN_JM, langEN_NZ' +',langEN_PH, langEN_ZA, langEN_TT, langEN_GB, langEN_US, langEN_ZW, langET' +',langFO, langFI, langFR, langFR_BE, langFR_CA, langFR_FR, langFR_LU, lang' +'FR_MC, langFR_CH, langGL, langGD, langDE, langDE_AT, langDE_DE, langDE_LI,' +' langDE_LU, langDE_CH, langEL, langHAW, langHU, langIS, langIN, langGA, la' +'ngIT, langIT_IT, langIT_CH, langJA, langKO, langMK, langNO, langPL, langPT' +', langPT_BR, langPT_PT, langRO, langRO_MO, langRO_RP, langRU, langRU_MO, l' +'angRU_RU, langSR, langSK, langSL, langES, langES_AR, langES_BO, langES_CL,' +' langES_CO, langES_CR, langES_DO, langES_EC, langES_SV, langES_GT, langES_' +'HN, langES_MX, langES_NI, langES_PA, langES_PY, langES_PE, langES_PR, lang' +'ES_ES, langES_UY, langES_VE, langSV, langSV_FI, langSV_SE, langTR, langUK,langX ); CL.AddTypeS('TXMLTypeRSS', '( xtRDFrss, xtRSSrss, xtAtomrss, xtiTunesrss ); TContentTypeRSS', '( ctTextrss, ctHTMLrss, ctXHTMLrss ); TEncodingTypeRSS', '( etBase64rss, etEscapedrss, etXMLrss ); SIRegister_TRFC822DateTime(CL); SIRegister_TRSSChannelReq(CL); SIRegister_TRSSImageReq(CL); SIRegister_TRSSImageOpt(CL); SIRegister_TRSSImage(CL); SIRegister_TRSSCloud(CL); SIRegister_TRSSTextInput(CL); SIRegister_TRSSChannelCategory(CL); SIRegister_TRSSChannelCategories(CL); SIRegister_TRSSChannelSkipHours(CL); SIRegister_TRSSChannelSkipDays(CL); SIRegister_TRSSChannelOpt(CL); SIRegister_TRSSChannel(CL); SIRegister_TRSSItemSource(CL); SIRegister_TRSSItemEnclosure(CL); SIRegister_TRSSItemCategory(CL); SIRegister_TRSSItemCategories(CL); SIRegister_TRSSItemGUID(CL); SIRegister_TRSSAuthor(CL); SIRegister_TRSSItem(CL); SIRegister_TRSSItems(CL); CL.AddTypeS(TFormatSettingsRSS', 'record ShortDateFormat :Str; LongDateForm' +at :Str; LongTimeFormat :Str; ShortTimeFormat :Str; end'); end; RSS Feed Snippet: const RSS_NewsFeed = 'http://feeds.bbci.co.uk/news/world/rss.xml'; with TSimpleRSS.create(self) do begin XMLType:= xtRDFrss; IndyHTTP:= TIdHTTP.create(self); LoadFromHTTP(RSS_NewsFeed); //LoadFromHTTP(Climatefeed); writeln('RSSVersion: '+Version) writeln('SimpleRSSVersion: '+SimpleRSSVersion) for it:= 0 to items.count-1 do writeln(itoa(it)+': '+Items[it].title+': '+items[it].pubdate.getdatetime); end; (*----------------------------------------------------------------------------*) Proc SIRegister_JTools(CL: TPSPascalCompiler); begin Func ParseCmdLine( ACmdLine : PChar; List : TStrings; QuoteChar : char) :Bool'); Func GetCmdSwitchValue(const Switch:str;SwitchChars:TSysCharSet;var Value:str;IgnoreCase:boolean):bool; //Proc ShowError( const S :Str; const Args : array of const); end; Proc SIRegister_rfc1213util(CL: TPSPascalCompiler); begin CL.AddConstantN('rfc1213version','String').SetString( '0.1.2'); Func UptimeToDays( const Uptime :Str) :Str'); Func getSNMP( const mib, community, host :Str; var ErrNo : Integer) :Str'); Func sysServicesString( const sysServicesStr :Str) :Str'); Func ipForwardingString( const ipForwarding :Str) :Str'); Func ipRouteTypeString( const ipRouteType :Str) :Str'); Func ipRouteProtoString( const ipRouteProto :Str) :Str'); Func ipNetToMediaTypeString( const ipNetToMediaType :Str) :Str'); Func GetColFromTableRow( const EntryCols : TStringList; index : integer) :Str'); Func ifTypeString( ifTypeStringNo :Str) :Str; Func ifStatusString( ifStatusStringNo :Str) :Str; Func tcpRtoAlgorithmString( const tcpRtoAlgorithm :Str) :Str; Func tcpConnStateString( const tcpConnState :Str) :Str; Func egpNeighStateString( const egpNeighState :Str) :Str; Func egpNeighModeString( const egpNeighMode :Str) :Str; Func egpNeighEventTriggerString( const egpNeighEventTrigger :Str) :Str; Func snmpEnableAuthenTrapsString( const snmpEnableAuthenTraps :Str) :Str; Func FormatMac( const Mac :Str) :Str; Proc JumpToRegistryKey(Key:Str); end; Proc SIRegister_neuralab(CL: TPSPascalCompiler); begin SIRegister_TABHash(CL); Func ABKey( S : array of byte; Divisor : longint) : longint'); Func ABCmp( var X, Y : array of byte) :Bool'); Func ABGetNext1( var AB : array of byte; ST : word) : word'); Func ABCountDif( var X, Y : array of byte) : longint'); Func ABCountDifZero( var X : array of byte) : longint'); Proc ABAnd( var A, B : array of byte); Func ABGetEqual( var Equal, X, Y : array of byte) : longint'); Proc ABShiftLogicalLeft( var X : array of byte); Proc ABShiftLogicalRight( var X : array of byte); Func ABGetDif( var Dif, X, Y : array of byte) : longint'); Func ABToString( var AB : array of byte) :Str'); Func ABToStringR( var AB : array of byte) :Str'); Proc ABClear( var AB : array of byte); Proc ABFull( var AB : array of byte); Proc ABBitOnPos( var AB : array of byte; POS : longint); Proc ABBitOnPosAtPos( var AB : array of byte; X, Start, Len : longint); Func ABReadBitOnPosAtPos( var AB : array of single; Start, Len:longint): longint'); Proc ABCopy( var A, B : array of byte); Proc ABTriPascal( var A, B : array of byte); Proc ABSet( var A : array of byte; B : array of byte); end; Proc SIRegister_neuralbit(CL: TPSPascalCompiler); begin //CL.AddTypeS('TArrOf2BytesPtr', '^TArrOf2Bytes // will not work'); //CL.AddTypeS('TArrOf3BytesPtr', '^TArrOf3Bytes // will not work'); //CL.AddTypeS('TArrOf4BytesPtr', '^TArrOf4Bytes // will not work'); //CL.AddTypeS('TArrBytePtr', '^TLongByteArray // will not work'); Func POT( numero, elevado : extended) : extended'); Func LongintBitTest( Data : longint; P : longint) :Bool'); Func LongintBitFlip( Data : longint; P : longint) : longint'); Proc BAClear( var VARS : array of byte); Proc BAMake1( var VARS : array of byte); Func BARead( var A : array of byte; P : longint) : byte'); Proc BAFlip( var A : array of byte; P : longint); Proc BAWrite( var A : array of byte; P : longint; Data : byte); Func BATest( var A : array of byte; P : longint) :Bool'); Proc BASum( var x, y : array of byte); Proc BASub( var x, y : array of byte); Proc BAIncPos( var x : array of byte; POS : longint); Proc BADecPos( var x : array of byte; POS : longint); Proc BAInc( var x : array of byte); Proc BADec( var x : array of byte); Func BAToString( VARS : array of byte) :Str'); Func BAToFloat( var VARS : array of byte) : extended'); Proc PFloatToBA( var VARS : array of byte; Valor : extended); Proc BANot( var VARS : array of byte); Proc BAAnd( var r, x, y : array of byte); Proc BAOr( var r, x, y : array of byte); Proc BAXOr( var r, x, y : array of byte); Func BAGrater( var x, y : array of byte) :Bool; Func BALower( var x, y : array of byte) :Bool; Func BAEqual( var x, y : array of byte) :Bool; Proc BAPMul( var r, x, y : array of byte); Func nnRAnd( A, B : extended) : extended; Func nnROr( A, B : extended) : extended; Func nnRNot( A : extended) : extended; Func nnRXor( A, B : extended) : extended; Func REqual( A, B : extended) : extended; Proc RSum( x, y, z : extended; var R, C : extended); Proc RegSum( var x, y : array of extended); Func RegEqual( var x, y : array of extended) : extended'); Func RegOrdEqual( var x, y : array of extended) : extended'); Func RegToString( var VARS : array of extended) :Str'); Func ROrer( var VARS : array of extended) : extended'); Func RAnder( var VARS : array of extended) : extended'); Func RCNot( X : extended; var VARS : array of extended) : extended'); Func ROrMaxTerm( var VARS : array of extended; NumMaxTerm : longint) : extended'); Func ROrMaxTermStr( NumVars : longint; NumMaxTerm : longint) :Str'); Func RSatFunc( var VARS : array of extended; NumFunc : longint) : extended'); Func RSatFuncStr( NumVars : longint; NumFunc : longint) :Str'); Proc RRegen( var VARS : array of extended); Proc RDegen( var VARS : array of extended); Proc RDegenP( var VARS : array of extended; P : extended); Proc nnClear( var VARS : array of extended); Proc BARAnd( var R, A, B : array of byte); Proc BAROr( var R, AUX, A, B : array of byte); Proc BARNot( var R, A : array of byte); end; (*----------------------------------------------------------------------------*) Proc SIRegister_winsvc2(CL: TPSPascalCompiler); begin CL.AddConstantN('SERVICE_AUTO_START','LongWord').SetUInt( $00000002); CL.AddConstantN('SERVICE_CONFIG_DELAYED_AUTO_START_INFO','LongInt').SetInt( 3); ('SERVICE_CONFIG_FAILURE_ACTIONS_FLAG','LongInt').SetInt( 4); ('SERVICE_CONFIG_PREFERRED_NODE','LongInt').SetInt( 9); ('SERVICE_CONFIG_PRESHUTDOWN_INFO','LongInt').SetInt( 7); ('SERVICE_CONFIG_REQUIRED_PRIVILEGES_INFO','LongInt').SetInt( 6); ('SERVICE_CONFIG_SERVICE_SID_INFO','LongInt').SetInt( 5); ('SERVICE_CONFIG_TRIGGER_INFO','LongInt').SetInt( 8); ('SC_MANAGER_ALL_ACCESS','LongWord').SetUInt($F003F); ('SERVICE_ALL_ACCESS','LongWord').SetUInt($F01FF); Func ChangeServiceType( ServiceName :Str; TypeID : DWord) :Bool'); Func GetServiceStatus2( ServiceName :Str; ErrorState :Bool) :Bool'); Func StartService2( ServiceName :Str) :Bool'); Func StopService2( ServiceName :Str) :Bool'); end; Proc SIRegister_neuralbyteprediction(CL: TPSPascalCompiler); begin CL.AddTypeS('TNeuralCountings', 'array of longint'); SIRegister_TNeuronGroupBase(CL); SIRegister_TNeuronGroup(CL); CL.AddTypeS('TNeuralNetwork', 'array of TNeuronGroup'); SIRegister_TStatePredictionClass(CL); SIRegister_TLabeledState(CL); SIRegister_TClassifier(CL); SIRegister_TEasyLearnAndPredictClass(CL); end; Proc SIRegister_neuralcache(CL: TPSPascalCompiler); begin CL.AddConstantN('NeuralMaxStates','LongInt').SetInt( 400000); CL.AddTypeS('TNeuralState', 'TBytes'); TProcPred', 'Proc ( var ST : TBytes; Acao : byte); SIRegister_TCacheMem(CL); end; (*----------------------------------------------------------------------------*) Proc SIRegister_USolarSystem(CL: TPSPascalCompiler); begin CL.AddTypeS('TOrbitalElements',record N:Double;i:Double;w:Double;a:Double;e:Double;M:Double; end; TOrbitalElementsData', 'record NConst : Double; NVar : Double; i' +Const : Double; iVar : Double; wConst : Double; wVar : Double; aConst : Do' +uble; aVar : Double; eConst : Double; eVar : Double; MConst : Double; MVar:Double; end'); CL.AddConstantN('cAUToKilometers','Extended').setExtended( 149.6e6); CL.AddConstantN('cEarthRadius','LongInt').SetInt( 6400); Func GMTDateTimeToJulianDay( const dt : TDateTime) : Double'); Func ComputeOrbitalElements(const oeData:TOrbitalElementsData;const d:Double): TOrbitalElements; Func ComputePlanetPosition( const orbitalElements : TOrbitalElements) : TAffineVector; Func ComputePlanetPosition1(const orbitalElementsData:TOrbitalElementsData;const d:Double):TAffineVector;; end; Proc SIRegister_TSearchAnagrams(CL: TPSPascalCompiler); begin //with RegClassS(CL,'tcontrol', 'TSearchAnagrams') do with CL.AddClassN(CL.FindClass('tcontrol'),'TSearchAnagrams') do begin RegisterProperty('useabbrevs', 'boolean', iptrw); RegisterProperty('useforeign', 'boolean', iptrw); RegisterProperty('usecaps', 'boolean', iptrw); RegisterProperty('tag', 'integer', iptrw); Proc Init(newletters:str;NewMinLen,NewMaxLen:word;newa,newf,newc:bool;pubDic:TDic); Func FindMissingLetter( const s :Str) : TTestWords'); Proc Findallwords( const s :Str; list : Tstrings); end; end; unit U_Invertedtext; Proc InitInvertedText(canvas:TCanvas; pagewidth,pageheight:integer); Proc DrawInvertedText(Canvas:TCanvas;pagewidth,pageheight:integer;linenbr:ints:str); Proc MemoTextFixUp(memo:TMemo {var text:str}); unit hashunit Proc SIRegister_THashStr(CL: TPSPascalCompiler); begin //with RegClassS(CL,'TObject', 'THashStr') do with CL.AddClassN(CL.FindClass('TObject'),'THashStr') do begin y('test', 'array of THashObject', iptrw); y('maxhash', 'integer', iptrw); y('maxloadfactor', 'single', iptrw); y('maxused', 'integer', iptrw); y('used', 'integer', iptrw); y('nbrcollisions', 'integer', iptrw); y('maxcollisions', 'integer', iptrw); Constructor create( newmaxhash : integer; newmaxloading : single); Proc Free'); Func exists( s :Str; var T : TObject) :Bool'); Func AddIfNotDup( s :Str; t : Tobject) :Bool'); Proc resethash'); Proc rehash'); Func hash( s :Str) : integer'); end; end; Proc SortString(var SortSt : Ansistr); SortSt:= 'this is maXbox4'; SortString2(SortSt); >>> 4Xabhiimosstx * === compile-time registration functions === *) (*----------------------------------------------------------------------------*) Proc SIRegister_JsonsUtilsEx(CL: TPSPascalCompiler); begin Func FixedFloatToStr( const Value : Extended) :Str'); Func FixedTryStrToFloat( const S :Str; out Value : Extended) :Bool'); Func FixedStrToFloat( const S :Str) : Extended'); Func __ObjectToJson( aObject : TObject) :Str'); Proc __jsonToObject( const aJSONString :Str; var aObject : TObject); CL.AddTypeS('TObjectDynArray', 'array of TObject'); TStringDynArray2', 'array of string'); TIntegerDynArray2', 'array of Integer'); CL.AddConstantN('GLB_JSON_STD_DECIMALSEPARATOR','String').SetString( '.'); end; Proc SIRegister_TJson(CL: TPSPascalCompiler); begin //with RegClassS(CL,'TJsonBase', 'TJson') do with CL.AddClassN(CL.FindClass('TJsonBase'),'TJson') do begin Constructor Create'); Proc Free'); Proc Parse( JsonString :Str); Func Stringify :Str'); Proc Assign( Source : TJsonBase); Proc Delete21( const Index : Integer); Proc Delete22( const Name :Str); Proc Clear'); Func Get23( const Index : Integer) : TJsonValue; Func Get24( const Name :Str) : TJsonValue; Func Put25( const Value : TJsonEmpty) : TJsonValue; Func Put26( const Value : TJsonNull) : TJsonValue; Func Put27( const Value :Bool) : TJsonValue; Func Put28( const Value : Integer) : TJsonValue; Func Put29( const Value : Extended) : TJsonValue; Func Put30( const Value :Str) : TJsonValue; Func Put31( const Value : TJsonArray2) : TJsonValue; Func Put32( const Value : TJsonObject2) : TJsonValue; Func Put33( const Value : TJsonValue) : TJsonValue; Func Put34( const Value : TJson) : TJsonValue; Func Putbool( const Value :Bool) : TJsonValue; ----> alias Func Putint( const Value : Integer) : TJsonValue; Func Putext( const Value : Extended) : TJsonValue; Func Putstr( const Value :Str) : TJsonValue; Func Putarr( const Value : TJsonArray2) : TJsonValue; Func Putobj( const Value : TJsonObject2) : TJsonValue; Func Putval( const Value : TJsonValue) : TJsonValue; Func Putjson( const Value : TJson) : TJsonValue; Func Put35( const Name :Str; const Value : TJsonEmpty) : TJsonValue; Func Put36( const Name :Str; const Value : TJsonNull) : TJsonValue; Func Put37( const Name :Str; const Value :Bool) : TJsonValue; Func Put38( const Name :Str; const Value : Integer) : TJsonValue; Func Put39( const Name :Str; const Value : Extended) : TJsonValue; Func Put40( const Name :Str; const Value :Str) : TJsonValue; Func Put41( const Name :Str; const Value : TJsonArray2) : TJsonValue; Func Put42( const Name :Str; const Value : TJsonObject2) : TJsonValue; Func Put43( const Name :Str; const Value : TJsonValue) : TJsonValue; Func Put44( const Name :Str; const Value : TJson) : TJsonValue; Func Put45( const Value : TJsonPair) : TJsonValue; RegisterProperty('StructType', 'TJsonStructType', iptr); 'JsonObject', 'TJsonObject2', iptr); 'JsonArray', 'TJsonArray2', iptr); 'Count', 'Integer', iptr); 'Values', 'TJsonValue String', iptr); SetDefaultPropery('Values'); end; end; (*----------------------------------------------------------------------------*) Proc SIRegister_TJsonBase(CL: TPSPascalCompiler); begin //with RegClassS(CL,'TObject', 'TJsonBase') do with CL.AddClassN(CL.FindClass('TObject'),'TJsonBase') do begin Constructor Create( AOwner : TJsonBase); Proc Free'); Proc Parse( JsonString :Str); Func Stringify :Str'); Proc Assign( Source : TJsonBase); Func Encode( const S :Str) :Str'); Func Decode( const S :Str) :Str'); Proc Split( const S :Str; const Delimiter: Char; Strings:TStrings); Func IsJsonObject( const S :Str) :Bool'); Func IsJsonArray( const S :Str) :Bool'); Func IsJsonString( const S :Str) :Bool'); Func IsJsonNumber( const S :Str) :Bool'); Func IsJsonBoolean( const S :Str) :Bool'); Func IsJsonNull( const S :Str) :Bool'); Func AnalyzeJsonValueType( const S :Str) : TJsonValueType'); RegisterProperty('Owner', 'TJsonBase', iptr); end; end; (*----------------------------------------------------------------------------*) Proc SIRegister_Jsons(CL: TPSPascalCompiler); begin TJsonValueType','( jvNone, jvNull, jvString, jvNumber, jvBoolean, jvObject,jvArray ); TJsonStructType','( jsNone, jsArray, jsObject ); //CL.AddTypeS('TJsonNull', '( null ); //CL.AddTypeS('TJsonEmpty', '( empty ); SIRegister_TJsonBase(CL); CL.AddClassN(CL.FindClass('TOBJECT'),'TJsonObject2'); CL.AddClassN(CL.FindClass('TOBJECT'),'TJsonArray2'); SIRegister_TJsonValue(CL); SIRegister_TJsonArray2(CL); SIRegister_TJsonPair(CL); SIRegister_TJsonObject2(CL); SIRegister_TJson(CL); end; var jOb:= ajt.JsonObject; for cnt:= 2 to job.count-2 do begin Clabel:= job.items[cnt].name; writeln('iterate '+clabel) JsArr:= job.values[Clabel].asArray; for cnt2:= 0 to jsarr.count-1 do jsobj:= jsarr.items[cnt2].asobject; for cnt3:= 0 to jsobj.count do writeln(jsobj['elements'].asarray[0].asobject.items[cnt3].name) end; println('elements status: '+ajt['rows'].asarray[0].asObject['elements'].asarray[0].asobject['status'].asstring); Iterate JSON web API: [ { "userId": 1, "id": 1, "title": "delectus aut autem", "completed": false }, { "userId": 1, "id": 2, "title": "quis ut nam facilis et officia qui", "completed": false }, jo:= TJSON.Create(); jo.parse(rest.Get()); //single line result:= jo.jsonarray.items[0].asobject['title'].asstring; //loop line for it:= 0 to jo.jsonarray.count-1 do writeln(itoa(it)+':'+jo.jsonarray.items[it].asobject['title'].asstring); Proc SIRegister_Bricks(CL: TPSPascalCompiler); begin CL.AddConstantN('kError101','String').SetString( 'Runtime error: Negative parameter(s); kError102','String').SetString( 'Runtime error: Parameter(s) out of range'); kError103','String').SetString( 'Runtime error: min > max'); kError104','String').SetString( 'Runtime error: max = 0'); kError105','String').SetString( 'Runtime error: Denominator is zero'); CL.AddTypeS('TVectorE', 'array of extended'); complexreal', 'record re : real; im : real; end'); TFR', 'record M : extended; phi : extended; F : complexreal; end'); //CL.AddTypeS('complexreal', 'record re : real; im : real; end'); SIRegister_TBlock(CL); SIRegister_TP2(CL); SIRegister_TPT0(CL); SIRegister_TPT1(CL); SIRegister_TPT2(CL); SIRegister_TInt2(CL); SIRegister_TIT1(CL); SIRegister_TDT1(CL); SIRegister_TIT2(CL); SIRegister_TPAdd(CL); SIRegister_TPSub(CL); SIRegister_TPMul(CL); SIRegister_TPDiv(CL); end; Proc SIRegister_lifeblocks(CL: TPSPascalCompiler); begin SIRegister_TASIA(CL); SIRegister_TMiMe(CL); SIRegister_TNoCoDI(CL); end; **************************************************************** Release Notes maXbox 4.7.4.64 June 2020 mX47 **************************************************************** 1254 unit uPSI_MaskEdit.pas FCL 1255 unit uPSI_SimpleRSSTypes; BlueHippo 1256 unit uPSI_SimpleRSS; BlueHippo 1257 unit uPSI_psULib.pas Prometheus 1258 unit uPSI_psUFinancial; Prometheus 1259 uPSI_PsAPI_2.pas mX4 1260 uPSI_PersistSettings_2 mX4 1261 uPSI_rfc1213util2.pas IP 1262 uPSI_JTools.pas JCL 1263 unit uPSI_neuralbit.pas CAI 1264 unit uPSI_neuralab.pas CAI 1265 unit uPSI_winsvc2.pas TEK 1266 unit uPSI_wmiserv2.pas TEK 1267 uPSI_neuralcache.pas CAI 1268 uPSI_neuralbyteprediction CAI 1269 unit uPSI_USolarSystem; glscene.org 1270 uPSI_USearchAnagrams.pas DFF 1271 uPSI_JsonsUtilsEx.pas Randolph 1272 unit uPSI_Jsons.pas Randolph 1273 unit uPSI_HashUnit; DFF 1274 uPSI_U_Invertedtext.pas DFF 1275 unit uPSI_Bricks; Dendron 1276 unit uPSI_lifeblocks.pas Dendron Totals of Func Calls: 32633 SHA1: of 4.7.4.64 DA4C716E31E2A4298013DFFBDA7A98D48650B0C7 CRC32: 3EB27A87: 28.2 MB (29,608,248) bytes Totals of Func Calls: 32614 Functions_max hex in the box maXbox functionslist.txt FunctionsList1 3.9.9./88/91/92/94/95/96/98/100/192/195/V402/V420/V422/V424.60.80/V426/V428/V458/V463/V471/V472/V474/V475 Proc SIRegister_JclStringLists(CL: TPSPascalCompiler); begin CL.AddClassN(CL.FindClass('TOBJECT'),'EJclStringListError'); CL.AddInterface(CL.FindInterface('IUNKNOWN'),IJclStringList, 'IJclStringList'); CL.AddTypeS('TJclStringListObjectsMode', '( omNone, omObjects, omVariants, omInterfaces ); SIRegister_IJclStringList(CL); SIRegister_TJclInterfacedStringList(CL); SIRegister_TJclStringList(CL); Func JclStringList : IJclStringList; Func JclStringListStrings( AStrings : TStrings) : IJclStringList; Func JclStringListStrings1( const A : array of string) : IJclStringList; Func JclStringList1( const A : array of const) : IJclStringList; Func JclStringList2( const AText :Str) : IJclStringList; end; (*----------------------------------------------------------------------------*) Proc SIRegister_cInternetUtils(CL: TPSPascalCompiler); begin ('ctHTML','String').SetString( 'text/html'); ('ctText','String').SetString( 'text/plain'); ('ctXML','String').SetString( 'text/xml'); ('ctJPG','String').SetString( 'image/jpeg'); ('ctGIF','String').SetString( 'image/gif'); ('ctBMP','String').SetString( 'image/bmp'); ('ctPNG','String').SetString( 'image/png'); ('ctTIFF','String').SetString( 'image/tiff'); ('ctMPG','String').SetString( 'video/mpeg'); ('ctAVI','String').SetString( 'video/avi'); ('ctQT','String').SetString( 'video/quicktime'); ('ctBinary','String').SetString( 'application/binary'); ('ctPDF','String').SetString( 'application/pdf'); ('ctPostscript','String').SetString( 'application/postscript'); ('ctBasicAudio','String').SetString( 'audio/basic'); ('ctMP3','String').SetString( 'audio/mpeg'); ('ctRA','String').SetString( 'audio/x-realaudio'); ('ctURLEncoded','String').SetString( 'application/x-www-form-urlencoded'); ('ctZIP','String').SetString( 'application/zip'); ('ctJavaScript','String').SetString( 'application/javascript'); ('ctPascal','String').SetString( 'text/x-source-pascal'); ('ctCPP','String').SetString( 'text/x-source-cpp'); ('ctINI','String').SetString( 'text/x-windows-ini'); ('ctBAT','String').SetString( 'text/x-windows-bat'); Func flcMIMEContentTypeFromExtention( const Extention :Str):Str'); ('protoHTTP','String').SetString( 'http'); ('protoNNTP','String').SetString( 'news'); ('protoFTP','String').SetString( 'ftp'); ('protoGopher','String').SetString( 'gopher'); ('protoEMail','String').SetString( 'mailto'); ('protoHTTPS','String').SetString( 'https'); ('protoIRC','String').SetString( 'irc'); ('protoFile','String').SetString( 'file'); ('protoTelnet','String').SetString( 'telnet'); Proc flcDecodeURL( const URL :Str; var Protocol, Host, Path :Str); Func flcEncodeURL( const Protocol, Host, Path :Str) :Str'); Proc flcDecodeHost(const Address:str;var Host,Port:str;const DefaultPort:str); Func flcEncodeDotLineTerminated( const S : Ansistr) : Ansistr'); Func flcEncodeEmptyLineTerminated( const S : Ansistr) : Ansistr'); Func flcDecodeDotLineTerminated( const S : Ansistr) : Ansistr'); Func flcDecodeEmptyLineTerminated( const S : Ansistr) : Ansistr'); //CL.AddDelphiFunction('Proc StreamDotLineTerminated0(const Source,Destination: AStream; const ProgressCallback:TCopyProgressProcedure); //CL.AddDelphiFunction('Proc StreamDotLineTerminated1(const Source:str;const Destination:AStream;const ProgressCallback:TCopyProgressProcedure); Func flchtmlCharRef( const CharVal : LongWord; const UseHex :Bool):Str'); Func flchtmlSafeAsciiText( const S :Str) :Str'); Proc flchtmlSafeWideText( var S : WideString); Func flchtmlSafeQuotedText( const S :Str) :Str'); Func flcEncodeHeaderField( const Name, Body :Str) :Str'); Func flcDecodeHeaderField( const S :Str; var Name, Body :Str) :Bool'); Proc flcDecodeEMailAddress( const S :Str; var User, Domain :Str); Proc flcDecodeEMailField( const S :Str; var EMailAddress, Name :Str); Func flcDateFieldBody :Str'); Func flcDateField :Str'); Func flcMessageIDFieldBody( const ID :Str; const Host :Str) :Str'); SIRegister_AHeaderField(CL); //CL.AddTypeS('AHeaderFieldClass', 'class of AHeaderField'); CL.AddTypeS('AHeaderFieldArray', 'array of AHeaderField'); SIRegister_THeaderCls(CL); //CL.AddTypeS('THeaderClass', 'class of THeader'); CL.AddTypeS('THeaderArray', 'array of THeaderCls'); SIRegister_THeaderField(CL); SIRegister_TInvalidField(CL); SIRegister_TDateFieldClass(CL); SIRegister_TEMailField(CL); CL.AddDelphiFunction('Proc SelfTestInternetUtils'); maxform1.JumptoOutput1Click(self) end; Proc SIRegister_cWindows(CL: TPSPascalCompiler); Func InvMod(const A, N: Integer): Integer; Func ExpMod(A, Z: Integer; const N: Integer): Integer; Func CopyFrom(const S:Str; const Index: Integer):Str; Func CopyEx(const S:Str; const Start, Count: Integer):Str; Func loadForm2(vx, vy: smallint; acolor: TColor; aname:Str): TForm; PlaySound('INDIGO_WAV', hInstance, SND_RESOURCE or SND_ASYNC); Proc flcRaiseLastOSError'); Func flcStrEqualNoCase( const A,B:Str; const AsciiCaseSensitive :Bool):Bool'); Func flcStrMatchNoAsciiCase( const S, M :Str; const Index : Integer) :Bool'); Func flcStrMatchLeft( const S, M :Str; const AsciiCaseSensitive :Bool):Bool'); Func flcStrMatchRight( const S,M:Str; const AsciiCaseSensitive :Bool) :Bool'); Func flcPosChar( const F : Char; const S :Str; const Index : Integer) : Integer'); Func flcPosStr(const F,S:str;const Index:Integer;const AsciiCaseSensitive:Bool):nteger; Func flcStrMatch( const S, M :Str; const Index : Integer) :Bool'); Func flcStrPMatch( const A, B : PChar; const Len : Integer) :Bool'); Func flcflcCopyFrom( const S :Str; const Index : Integer) :Str'); Func flcCopyRange( const S :Str; const StartIndex, StopIndex : Integer) :Str'); Func flcCopyLeft( const S :Str; const Count : Integer) :Str'); Func flcCopyRight( const S :Str; const Count : Integer) :Str'); Func flcStrIsNumeric( const S :Str) :Bool'); Func flcStrMatchChar( const S :Str; const M : TSYsCharSet) :Bool'); Func flcStrSplitAtChar(const S:Str;const C:Char;var Left,Right:Str const Optionl:Bool):Bool; Func flcStrReplaceChar( const Find, Replace : Char; const S :Str) :Str'); Func flcStrInclSuffix(const S:Str;const Suffix:Str;const AsciiCaseSensitive:Bool):str; Func flcStrRemoveCharDelimited(var S:str;const FirstDelim,SecondDelim:Char) :Str'); Func flcStrSplit( const S, D :Str) : TStringArray'); Proc flcTrimInPlace( var S :Str; const C : TSYsCharSet); Func flcTrimIn( S :Str; const C : TSYsCharSet) :Str'); Func flcStrAfterCharSet( const S :Str; const D : TSYsCharSet) :Str'); Func flcStrAfterChar( const S :Str; const D : Char) :Str'); Proc StrSplit(Delimiter: Char; Str:Str; ListOfStrings: TStrings) ; (*----------------------------------------------------------------------------*) Proc SIRegister_cWindows(CL: TPSPascalCompiler); begin CL.AddTypeS('TWindowsVersionflc', '( Win16_31, Win32_95, Win32_95R2, Win32_98, W' +'in32_98SE, Win32_ME, Win32_Future, WinNT_31, WinNT_35, WinNT_351, WinNT_40' +', WinNT5_2000, WinNT5_XP, WinNT5_2003, WinNT5_Future, WinNT_Future, Win_Future ); CL.AddTypeS('TWindowsVersions', 'set of TWindowsVersionflc'); Func flcGetWindowsVersion : TWindowsVersionflc'); Func flcIsWinPlatform95 :Bool'); Func flcIsWinPlatformNT :Bool'); Func flcGetWindowsProductID :Str'); Func flcGetWindowsTemporaryPath :Str'); Func flcGetWindowsPath :Str'); Func flcGetWindowsSystemPath :Str'); Func flcGetProgramFilesPath :Str'); Func flcGetCommonFilesPath :Str'); Func flcGetApplicationPath :Str'); Func flcGetUserName :Str'); Func flcGetLocalComputerName :Str'); Func flcGetLocalHostName :Str'); CL.AddTypeS('TVersionInfoflc',(viFileVersion,viFileDescription,viLegalCopyrght,viComments,viCompanyName,viInternalNme,viLegalTrademarks, viOriginalFilename,viProductNme,viProductVersion; Func flcGetAppVersionInfo( const VersionInfo : TVersionInfoflc) :Str'); Func flcWinExecute(const ExeName,Params:str;const ShowWin:Word;const Wait:Bool):Bool); Func flcGetEnvironmentStrings : TStringArray'); Func flcContentTypeFromExtention( Extention :Str) :Str'); Func flcIsApplicationAutoRun( const Name :Str) :Bool'); Proc flcSetApplicationAutoRun( const Name :Str; const AutoRun :Bool); Func flcGetWinPortNames : TStringArray'); Func flcGetKeyPressed( const VKeyCode : Integer) :Bool'); Func flcGetHardDiskSerialNumber( const DriveLetter : Char) :Str'); Func flcReboot :Bool'); //CL.AddDelphiFunction('Func ConvertThreadToFiber( lpParameter : Pointer) : Pointer'); //Func CreateFiber(dwStackSize:DWORD;lpStartAddress:TFNFiberStartRoutine;lpParameter:Ptr):Ptr'); CL.AddTypeS(TIEProxy', '( iepHTTP, iepHTTPS, iepFTP, iepGOPHER, iepSOCKS ); CL.AddDelphiFunction('Func GetIEProxy( const Protocol : TIEProxy) :Str'); CL.AddTypeS(TWindowHandleMessageEvent','Func(const Msg:Card;const wParam,lParam:Int;var Handled:Bool):Int; CL.AddClassN(CL.FindClass('TOBJECT'),'TWindowHandle'); TWindowHandleEvent', 'Proc ( const Sender : TWindowHandle); (TWindowHandleErrorEvent','Procedure(const Sender:TWindowHandle;const E:Exception); SIRegister_TWindowHandle(CL); CL.AddClassN(CL.FindClass('TOBJECT'),'EWindowHandle'); SIRegister_TfndWindowHandle(CL); CL.AddClassN(CL.FindClass('TOBJECT'),'TTimerHandle'); TTimerEventflc', 'Proc ( const Sender : TTimerHandle); SIRegister_TTimerHandle(CL); SIRegister_TfndTimerHandle(CL); Proc flcRaiseLastOSError'); Func flcStrEqualNoCase(const A,B:Str; const AsciiCaseSensitive :Bool):Bool'); Func flcStrMatchNoAsciiCase( const S, M :Str; const Index : Integer) :Bool'); Func flcStrMatchLeft( const S, M :Str; const AsciiCaseSensitive :Bool):Bool'); Func flcStrMatchRight(const S,M :Str; const AsciiCaseSensitive :Bool):Bool'); Func flcPosChar( const F : Char; const S :Str; const Index : Integer): Integer'); Func flcPosStr(const F,S:str;const Index:Integer;const AsciiCaseSensitive:Bool):Integer; Func flcStrMatch( const S, M :Str; const Index : Integer):Bool'); Func flcStrPMatch( const A, B : PChar; const Len : Integer):Bool'); Func flcflcCopyFrom( const S :Str; const Index : Integer):Str'); Func flcCopyRange( const S :Str; const StartIndex, StopIndex :Integer):str'); Func flcCopyLeft( const S :Str; const Count : Integer):Str'); Func flcCopyRight( const S :Str; const Count : Integer):Str'); Func flcStrIsNumeric( const S :Str) :Bool'); Func flcStrMatchChar( const S :Str; const M : TSYsCharSet) :Bool'); Func flcStrSplitAtChar(const S Str;const C:Char;var Left,Right:Str;const Optional:Bool):Bool Func flcStrReplaceChar( const Find, Replace : Char; const S :Str) :Str'); Func flcStrInclSuffix(const S:Str;const Suffix:Str;const AsciiCaseSensitive:Bool):str; Func flcStrRemoveCharDelimited(var S:str;const FirstDelim,SecondDelim:Char) :Str'); Func flcStrSplit( const S, D :Str) : TStringArray'); Proc flcTrimInPlace( var S :Str; const C : TSYsCharSet); Func flcTrimIn( S :Str; const C : TSYsCharSet) :Str'); Func flcStrAfterCharSet( const S :Str; const D : TSYsCharSet) :Str'); Proc StrSplit(Delimiter: Char; Str:Str; ListOfStrings: TStrings) ; Func StrSplitF(Delimiter: Char; Str:Str): TStringlist; Func Int32toBytes(const Cint: Integer): TBytes; Proc FGPlayASound(const AResName:Str); //CL.AddDelphiFunction('Proc FGPlayASound(const AResName:Str); Proc FGPlayASound2(const AResName:Str; atype:Str); Proc PlayResWav(const AResName:Str; atype:Str); Proc PlayResWav2(const AResName:Str; atype:Str); //sync tick1.wav procedure PlaySoundStreamSync(const AName: TMemoryStream; atype: string); procedure PlaySoundStreamAsync(const AName: TMemoryStream; atype: string); procedure PlaySoundStreamAsyncNoStop(const AName: TMemoryStream; atype: string); Func queryPerformanceCounter2(var mse: int64):Bool; Func AddQuantumToDateTime(const dt: TDateTime): TDateTime; Func AddQuantumToDateTime(const dt: TDateTime): TDateTime; var overlay: Int64 absolute Result; begin Result:= dt; overlay:= overlay+1; end; Func GetRTFtext(Const RichEdit: TRichEdit):Str; Func StrRemoveCharSet(const S:Str; const C: CharSet):Str; Func GetTextBetween(const Start, Stop:Str;var S, Between:Str):Boolean; end; Proc SIRegister_flcSysUtils(CL: TPSPascalCompiler); begin SIRegister_TfreqObj(CL); CL.AddTypeS('MSArray','array[0..1] of tmemorystream; Func GetLastOSErrorCode : NativeInt'); Func GetLastOSErrorMessage :Str'); Proc TForm1msPlaySound( MS : MSArray; streaminuse : integer; aloop:boolean); Proc BytesSetLengthAndZero( var V : TBytes; const NewLength : NativeInt); Proc BytesInit( var V : TBytes; const R : Byte); Proc BytesInit1( var V : TBytes; const S :Str); Func BytesAppend( var V : TBytes; const R : Byte) : NativeInt'); Func BytesAppend1(var V : TBytes; const R : TBytes) : NativeInt'); Func BytesAppend2(var V : TBytes; const R : array of Byte) : NativeInt'); Func BytesAppend3(var V : TBytes; const R :Str) : NativeInt'); Func BytesCompare(const A, B : TBytes) : Integer'); Func BytesEqual( const A, B : TBytes) :Bool'); Func StringRefCount2(const S: Ansistr): Integer; Func hton16(const A:Word): Word; Func ntoh16(const A:Word): Word; Func hton32(const A:LongWord): LongWord; Func ntoh32(const A:LongWord): LongWord; Func hton64(const A:Int64): Int64; Func ntoh64(const A:Int64): Int64; CL.AddTypeS(TPoint3D2', 'record x : single; y : single; z : single; end; Func SphereTPoint3D(Phi, Lambda: Double): TPoint3D2; Func RotateAroundXTPoint3D(const P: TPoint3D2; Alfa: Double): TPoint3D2; Func RotateAroundYTPoint3D(const P: TPoint3D2; Beta: Double): TPoint3D2; Func LinkerTimeStamp(const FileName:Str): TDateTime; overload; Func ByteCharDigitToInt(const A: Char): Integer; Func WideCharDigitToInt(const A: WideChar): Integer; Func CharDigitToInt(const A: Char): Integer; Func IntToByteCharDigit(const A: Integer): Char; Func IntToWideCharDigit(const A: Integer): WideChar; Func IntToCharDigit(const A: Integer): Char; Func flcMinInt(const A, B: Int64): Int64; Func flcMaxInt(const A, B: Int64): Int64; end; Proc SIRegister_RotImg(CL: TPSPascalCompiler); begin SIRegister_TRotateImage(CL); Func CreateRotatedBitmap(Bitmap: TBitmap; const Angle:Extended; bgColor: TColor): TBitmap; end; *----------------------------------------------------------------------------*) Proc SIRegister_HSLUtils(CL: TPSPascalCompiler); begin Func ARGB( a, r, g, b : Byte) :Card'); Func GetAValue2( argb : DWORD) : Byte'); Func GetRValue2( argb : DWORD) : Byte'); Func GetGValue2( argb : DWORD) : Byte'); Func GetBValue2( argb : DWORD) : Byte'); Func GetABGRAValue(abgr: DWORD) : Byte'); Func GetABGRRValue(abgr: DWORD) : Byte'); Func GetABGRGValue(abgr: DWORD) : Byte'); Func GetABGRBValue(abgr: DWORD) : Byte'); Func HSLtoRGB2( H, S, L : double) : TColor'); Func AHSLtoARGB( A, H, S, L : double) :Card'); Func HSLRangeToRGB( H, S, L : integer) : TColor'); Proc ARGBtoAHSL( ARGB : TColor; var A, H, S, L : double); Proc ABGRtoAHSL( ABGR : TColor; var A, H, S, L : double); Proc RGBtoHSLRange( RGB : TColor; var H, S, L : integer); end; Proc SIRegister_GraphicsMathLibrary(CL: TPSPascalCompiler); begin gmlsizeUndefined','LongInt').SetInt( 1); gmlsize2D','LongInt').SetInt( 3); gmlsize3D','LongInt').SetInt( 4); CL.AddClassN(CL.FindClass('TOBJECT'),'EVectorError'); CL.AddClassN(CL.FindClass('TOBJECT'),'EMatrixError'); gmlTAxis', '( axisX, axisY, axisZ ); gmlTCoordinate', '( coordCartesian, coordSpherical, coordCylindrical ); gmlTDimension', '( dimen2D, dimen3D ); gmlTIndex', 'Integer'); gmlTrotation', '( rotateClockwise, rotateCounterClockwise ); gmlTVector','record size: gmlTIndex; vector: ARRAY[1..4] OF DOUBLE; x,y,z,h:double; end; gmlTMatrix', 'record size: gmlTIndex; matrix: ARRAY[1..4] of Array[1..4] OF DOUBLE; end; Func gmlVector2D( const xValue, yValue : DOUBLE) : gmlTVector'); Func gmlVector3D( const xValue, yValue, zValue : DOUBLE) : gmlTVector'); Func gmlAddVectors(const u, v : gmlTVector) : gmlTVector'); Func gmlTransform( const u : gmlTVector; const a : gmlTMatrix) : gmlTVector'); Func gmlMatrix2D(const m11,m12 m13,m21,m22,m23,m31,m32,m33 : DOUBLE) : gmlTMatrix'); Func gmlMatrix3D(const m11,m12,m13,m14,m21,m22,m23,m24,m31,m32,m33,m34,m41,m42,m43,m44:DOUBLE):gmlTMatrix; Func gmlMultiplyMatrices( const a, b : gmlTMatrix) : gmlTMatrix'); Func gmlInvertMatrix( const a, b : gmlTMatrix; var determinant : DOUBLE): gmlTMatrix'); Func gmlRotateMatrix(const dimension:gmlTDimension;const xyz:gmlTAxis;const angle:DOUBLE;const rotation :gmlTrotation):gmlTMatrix; Func gmlScaleMatrix( const s : gmlTVector) : gmlTMatrix'); Func gmlTranslateMatrix( const t : gmlTVector) : gmlTMatrix'); Func gmlViewTransformMatrix(const coordinate:gmlTCoordinate;const azimuth,elevation,distance:DOUBLE;const ScreenX,ScreenY,ScreenDistance:DOUBLE):gmlTMatrix'); Func gmlFromCartesian(const ToCoordinate:gmlTCoordinate;const u gmlTVector): gmlTVector; Func gmlToCartesian(const FromCoordinate: gmlTCoordinate;const u:gmlTVector): gmlTVector; Func gmlToDegrees( const angle : DOUBLE) : DOUBLE'); Func gmlToRadians( const angle : DOUBLE) : DOUBLE'); Func gmlDefuzz( const x : DOUBLE) : DOUBLE'); Func gmlGetFuzz : DOUBLE'); Proc gmlSetFuzz( const x : DOUBLE); end; Proc SIRegister_umodels(CL: TPSPascalCompiler); begin CL.AddTypeS('TRegType', '( REG_LIN, REG_MULT, REG_POL, REG_FRAC, REG_EXPO, RE' +'G_IEXPO, REG_EXLIN, REG_LOGIS, REG_POWER, REG_GAMMA, REG_MICH, REG_MINT, R' +'EG_HILL, REG_PK, REG_EVAL ); //CL.AddTypeS('TModel', 'record [..] end'); Func FirstParam( Model : TModel) : Integer'); Func LastParam( Model : TModel) : Integer'); Func FuncName( Model : TModel) :Str'); Func ParamName( Model : TModel; I : Integer) :Str'); Func RegFunc( Model : TModel; X : Float; B: TVector): Float'); Proc FitModel(Model:TModel;X,Y,Ycalc:TVector;U:TMatrix;Lb,Ub:Integer;MaxIter:Integer;Tol,SVDTol:Float;B:TVector;V:TMatrix;var Test:TRegTest); Proc WFitModel(Model:TModel;X,Y,S:TVector;Ycalc:TVector;U:TMatrix;Lb,Ub:Integer;MaxIter:Integer;Tol,SVDTol:Float;B:TVector;V:TMatrix;var Test:TRegTest); end; (*----------------------------------------------------------------------------*) Proc SIRegister_TStatisticClass(CL: TPSPascalCompiler); begin //with RegClassS(CL,'TOBJECT', 'TStatisticClass') do with CL.AddClassN(CL.FindClass('TOBJECT'),'TStatisticClass') do begin Proc Assign( const S : TStatisticClass); Func Duplicate : TStatisticClass'); Proc Clear'); Func IsEqual( const S : TStatisticClASS):Bool'); Proc Add( const V : MFloat); Proc Add1( const V : array of MFloat); Proc Add2( const V : TStatisticClass); Proc AddNegated( const V : TStatisticClass); Proc Negate'); Count', 'Integer', iptr); Min', 'MFloat', iptr); Max', 'MFloat', iptr); Sum', 'MFloat', iptr); SumOfSquares', 'MFloat', iptr); SumOfCubes', 'MFloat', iptr); SumOfQuads', 'MFloat', iptr); Func Range : MFloat'); Func Mean : MFloat'); Func PopulationVariance : MFloat'); Func PopulationStdDev : MFloat'); Func Variance : MFloat'); Func StdDev : MFloat'); Func M1 : MFloat'); Func M2 : MFloat'); Func M3 : MFloat'); Func M4 : MFloat'); Func Skew : MFloat'); Func Kurtosis : MFloat'); Func GetAsString :Str'); end; end; (*----------------------------------------------------------------------------*) Proc SIRegister_flcStatistics(CL: TPSPascalCompiler); begin CL.AddClassN(CL.FindClass('TOBJECT'),'EStatistics'); CL.FindClass('TOBJECT'),'EStatisticsInvalidArgument'); CL.FindClass('TOBJECT'),'EStatisticsOverflow'); //CL.AddTypeS('MFloat', 'double'); Proc SIRegister_flcStatistics(CL: TPSPascalCompiler); begin TOBJECT'),'EStatistics'); TOBJECT'),'EStatisticsInvalidArgument'); TOBJECT'),'EStatisticsOverflow'); //CL.AddTypeS('MFloat', 'double'); //check CL.AddTypeS('MFloat', 'extended'); //checked Func flcBinomialCoeff( N, R : Integer) : MFloat'); Func flcerf( x : MFloat) : MFloat'); Func flcerfc( const x : MFloat) : MFloat'); Func flcCummNormal( const u, s, X : MFloat) : MFloat'); Func flcCummNormal01( const X : MFloat) : MFloat'); Func flcInvCummNormal01( Y0 : MFloat) : MFloat'); Func flcInvCummNormal( const u, s, Y0 : MFloat) : MFloat'); Func flcCummChiSquare( const Chi, Df : MFloat) : MFloat'); Func flcCumF( const f, Df1, Df2 : MFloat) : MFloat'); Func flcCummPoisson( const X : Integer; const u : MFloat) : MFloat'); SIRegister_TStatisticClass(CL); CL.AddClassN(CL.FindClass('TOBJECT'),'EStatistic'); CL.FindClass('TOBJECT'),'EStatisticNoSample'); CL.FindClass('TOBJECT'),'EStatisticDivisionByZero'); Proc TestStatisticClass'); end; Proc Include(var aset: Charset; achar: Char); ---> cFundamentUtils Proc Exclude(var aset: Charset; achar: Char); Proc SIRegister_StdFuncs(CL: TPSPascalCompiler); begin CL.AddClassN(CL.FindClass('TOBJECT'),'EParserError'); CL.AddTypeS('TCharSet', 'set of Char'); Proc SIRegister_cFundamentUtils(CL: TPSPascalCompiler); CL.AddTypeS('CharSet', 'set of Char'); //!!! CL.AddTypeS('AnsiCharSet', 'TCharSet'); CL.AddTypeS('ByteSet', 'set of Byte'); CL.AddTypeS('AnsiChar', 'Char'); Proc SIRegister_flcMaths(CL: TPSPascalCompiler); begin flcPi','Extended).setExtended(3.14159265358979323846+0.26433832795028841971e-20+0.69399375105820974944e-40+0.59230781640628620899e-60+0.86280348253421170679e-80+ 0.82148086513282306647e-100+0.09384460955058223172e-120+ 0.53594081284811174502e-140+0.84102701938521105559e-160+0.64462294895493038196e-180); 'flcPi2','Extended').setExtended( 6.283185307179586476925286766559006); 'flcPi3','Extended').setExtended( 9.424777960769379715387930149838509); 'flcPi4','Extended').setExtended( 12.56637061435917295385057353311801); 'flcPiOn2','Extended').setExtended( 1.570796326794896619231321691639751); 'flcPiOn3','Extended').setExtended( 1.047197551196597746154214461093168); 'flcPiOn4','Extended').setExtended( 0.785398163397448309615660845819876); 'flcPiSq','Extended').setExtended( 9.869604401089358618834490999876151); 'flcPiE','Extended').setExtended( 22.45915771836104547342715220454374); 'flcLnPi','Extended').setExtended( 1.144729885849400174143427351353059); 'flcLogPi','Extended').setExtended( 0.497149872694133854351268288290899); 'flcSqrtPi','Extended').setExtended( 1.772453850905516027298167483341145); 'flcSqrt2Pi','Extended').setExtended( 2.506628274631000502415765284811045); 'flcLnSqrt2Pi','Extended').setExtended( 0.918938533204672741780329736405618); 'flcDegPerRad','Extended').setExtended( 57.29577951308232087679815481410517); 'flcDegPerGrad','Extended').setExtended( 0.9); 'flcDegPerCycle','Extended').setExtended( 360.0); 'flcGradPerCycle','Extended').setExtended( 400.0); 'flcGradPerDeg','Extended').setExtended( 1.111111111111111111111111111111111); 'flcGradPerRad','Extended').setExtended( 63.661977236758134307553505349006); 'flcRadPerDeg','Extended').setExtended( 0.017453292519943295769236907684886); 'flcRadPerGrad','Extended').setExtended( 0.015707963267948966192313216916398); 'flcRadPerCycle','Extended').setExtended( 6.283185307179586476925286766559); 'flcCyclePerDeg','Extended').setExtended( 0.002777777777777777777777777777778); 'flcCyclePerRad','Extended').setExtended( 0.15915494309189533576888376337251); 'flcCyclePerGrad','Extended').setExtended( 0.0025); 'flcE','Extended').setExtended( 2.718281828459045235360287471352663); 'flcE2','Extended').setExtended( 7.389056098930650227230427460575008); 'flcExpM2','Extended').setExtended( 0.135335283236612691893999494972484); 'flcLn2','Extended').setExtended( 0.693147180559945309417232121458177); 'flcLn10','Extended').setExtended( 2.302585092994045684017991454684364); 'flcLogE','Extended').setExtended( 0.434294481903251827651128918916605); 'flcLog2','Extended').setExtended( 0.301029995663981195213738894724493); 'flcLog3','Extended').setExtended( 0.477121254719662437295027903255115); 'flcSqrt2','Extended').setExtended( 1.414213562373095048801688724209698); 'flcSqrt3','Extended').setExtended( 1.732050807568877293527446341505872); 'flcSqrt5','Extended').setExtended( 2.236067977499789696409173668731276); 'flcSqrt7','Extended').setExtended( 2.645751311064590590501615753639260); //CL.AddTypeS('MFloat', 'Double'); //CL.AddTypeS('MFloatArray', 'DoubleArray'); //CL.AddTypeS('MFloat', 'Extended'); / check t a+b' ); // The engine has a property, PythonEngine.InitScript: gEngine.InitScript.Add('import sys'); gEngine.InitScript.Add('sys.path.insert(0, "path/to/script"); //gModule.Initialize; writeln('PythonOK: in init '+botostr(PythonOK)); //gEngine.EvalStringAsStr(pycmd); except gEngine.raiseError; writeln(ExceptionToString(ExceptionType, ExceptionParam)); gEngine.Free; gModule.Free; end; end; const LB = CR+LF; const PyModule = 'def printData(data): '+#13#10+ ' return data+data+"/n"'; const PYCMD = 'print("this is box")'+LB+ 'import sys'+LB+ 'f=open(r"C:\maXbox\maxbox3\maxbox3\maXbox3\examples\pytest2.txt","w")'+LB+ 'f.write("Hello PyWorld_mX4, \n")'+LB+ 'f.write("This data will be written on the file.")'+LB+ 'f.close()'; Proc PYLaz_P4D_Demo; //https://wiki.freepascal.org/Python4Delphi var eng : TPythonEngine; Out1: TPythonGUIInputOutput; begin eng:= TPythonEngine.Create(Nil); Out1:= TPythonGUIInputOutput.create(nil) Out1.output:= pyMemo; //debugout.output; //memo2; Out1.RawOutput:= False; Out1.UnicodeIO:= False; Out1.maxlines:= 20; out1.displaystring('this string') //eng.IO:= Out1; Out1.writeline('draw the line'); eng.LoadDll; eng.IO:= Out1; if eng.IsHandleValid then begin writeln('DLLhandle: '+botostr(eng.IsHandleValid)) WriteLn('evens: '+ eng.EvalStringAsStr('[x*2 for x in range(10)]')); WriteLn('gauss: '+ eng.EvalStr('sum([x for x in range(101)])')); //alias writeln('syncheck '+ botostr(eng.CheckEvalSyntax('print("powers:",[x**2 for x in range(10)])'))); eng.ExecString('print("powers:",[x**2 for x in range(10)]); eng.ExecStr(PYCMD); writeln('ExecSynCheck2 '+ botostr(eng.CheckExecSyntax(filetostring(PYSCRIPT)))); eng.ExecString(filetostring(PYSCRIPT)); end else writeln('invalid library handle! '+Getlasterrortext); writeln('PythonOK '+botostr(PythonOK)); out1.free; //pyImport(PyModule); eng.free; end; //python template with TPythonEngine.Create(Nil) do begin pythonhome:= 'C:\Users\max\AppData\Local\Programs\Python\Python36-32\'; try loadDLL; Println('Decimal: '+ EvalStr('__import__("decimal").Decimal(0.1)')); except raiseError; finally free; end; //python template II with TPythonEngine.Create(Nil) do begin pythonhome:= 'C:\Users\breitsch\AppData\Local\Programs\Python\Python37-32\'; try loadDLL; Println('Decimal: '+ EvalStr('__import__("decimal").Decimal(0.1)')); execstr('res=[]'); execstr('for i in range(50000): '+LF+ ' if i == sum(int(x) ** int(x) for x in str(i)): '+LF+ ' res.append(i) '); Println('Munchausen: '+EvalStr('res')); except raiseError; finally free; end; end; // This is a new method in VarPyth, but I'll put it here just in case.... function VarPyToStrings(const AValue : Variant; const AStrings: TStrings): Integer; begin Assert(Assigned(AStrings)); if VarIsPythonList(AValue) then GetPythonEngine.PyListToStrings( ExtractPythonObjectFrom(AValue), AStrings) else raise Exception.Create('Python List expected: ' + _type(AValue)); Result := AStrings.Count; end; procedure TForm16.Button1Click(Sender: TObject); begin with NLTK1 do begin nltk.download('punkt'); nltk.download('averaged_perceptron_tagger'); nltk.download('maxent_ne_chunker'); nltk.download('words'); nltk.download('treebank'); var tokens := nltk.word_tokenize(memo1.lines.Text); VarPyToStrings(tokens, lbTokens.Items); Proc SIRegister_VarPyth(CL: TPSPascalCompiler); begin CL.AddTypeS('TSequenceType', '( pystTuple, pystList ); Func VarPythonCreate0( AObject : TPyObject) : Variant; Func VarPythonCreate1( const AValue : Variant) : Variant; Func VarPythonCreate2( const AValues: array of const; ASequenceType : TSequenceType) : Variant; Func VarPythonEval( const APythonExpression : Ansistr) : Variant'); Func VarPython : TVarType'); Func VarIsPython( const AValue : Variant) :Bool'); Func VarAsPython( const AValue : Variant) : Variant'); Func ExtractPythonObjectFrom( const AValue : Variant) : TPyObject'); Func VarIsSame( const A, B : Variant) :Bool'); Func VarIsSameType( const A, B : Variant) :Bool'); Func VarIsPythonSequence( const AValue : Variant) :Bool'); Func VarIsPythonMapping( const AValue : Variant) :Bool'); Func VarIsPythonNumber( const AValue : Variant) :Bool'); Func VarIsPythonString( const AValue : Variant) :Bool'); Func VarIsPythonInteger( const AValue : Variant) :Bool'); Func VarIsPythonFloat( const AValue : Variant) :Bool'); Func VarIsPythonTuple( const AValue : Variant) :Bool'); Func VarIsPythonList( const AValue : Variant) :Bool'); Func VarIsPythonDict( const AValue : Variant) :Bool'); Func VarIsPythonClass( const AValue : Variant) :Bool'); Func VarIsPythonMethod( const AValue : Variant) :Bool'); Func VarIsPythonFunction( const AValue : Variant) :Bool'); Func VarIsPythonModule( const AValue : Variant) :Bool'); Func VarIsPythonCallable( const AValue : Variant) :Bool'); Func VarIsPythonIterator( const AValue : Variant) :Bool'); Func VarIsPythonUnicode( const AValue : Variant) :Bool'); Func VarIsPythonDateTime( const AValue : Variant) :Bool'); Func VarIsPythonDate( const AValue : Variant) :Bool'); Func VarIsPythonTime( const AValue : Variant) :Bool'); Func VarIsPythonDateTimeDelta( const AValue : Variant) :Bool'); Func VarIsPythonTZInfo( const AValue : Variant) :Bool'); Func VarIsBool( const AValue : Variant) :Bool'); Func VarIsEnum( const AValue : Variant) :Bool'); Func VarIsInstanceOf( const AInstance, AClass : Variant) :Bool'); Func VarIsSubclassOf( const ADerived, AClass : Variant) :Bool'); Func VarIsSubtypeOf( const ADerived, AType : Variant) :Bool'); Func VarIsNone( const AValue : Variant) :Bool'); Func VarIsTrue( const AValue : Variant) :Bool'); Func VarModuleHasObject( const AModule : Variant; aObj: Ansistr):Bool'); Func NewPythonList( const ASize : Integer) : Variant'); Func NewPythonTuple( const ASize : Integer) : Variant'); Func NewPythonDict : Variant'); Func VarPythonAsString( AValue : Variant) :Str'); Func VarPythonToVariant( AValue : Variant) : Variant'); Func PyNone : Variant'); Func pyEllipsis : Variant'); Func pyMainModule : Variant'); Func pyBuiltinModule : Variant'); Func pySysModule : Variant'); Func ypDatetimeModule : Variant'); Func PyImport( const AModule : Ansistr) : Variant'); Func pylen( const AValue : Variant) : NativeInt'); Func py_type( const AValue : Variant) : Variant'); Func pyiter( const AValue : Variant) : Variant'); CL.AddTypeS(TVarPyEnumerator', 'record FIterator : Variant; FCurrent : Variant; end'); CL.AddTypeS(TVarPyEnumerateHelper', 'record FIterable : Variant; end'); Func VarPyIterate( const AValue : Variant) : TVarPyEnumerateHelper'); end; Proc SIRegister_WDCCMisc(CL: TPSPascalCompiler); //WMI Delphi Code Creator begin //https://github.com/RRUZ/wmi-delphi-code-creator/tree/master/Units/Misc TProcLog', 'Proc ( const Log :Str); Proc wdc_CaptureConsoleOutput( const lpCommandLine :Str; OutPutList : TStrings); Proc wdc_MsgWarning( const Msg :Str); Proc wdc_MsgInformation( const Msg :Str); Func wdc_MsgQuestion( const Msg :Str) :Bool'); Func wdc_GetFileVersion( const FileName :Str) :Str'); Func wdc_GetFileDescription( const FileName :Str) :Str'); Func wdc_GetTempDirectory :Str'); Func wdc_GetWindowsDirectory :Str'); Func wdc_GetSpecialFolder( const CSIDL : integer) :Str'); Func wdc_IsWow64 :Bool'); Func wdc_CopyDir( const fromDir, toDir :Str) :Bool'); Proc wdc_SetGridColumnWidths( DbGrid : TDBGrid); Func wdc_Ping( const Address :Str; Retries, BufferSize : Word; Log : TStrings) :Bool'); Proc wdc_ScaleImage32( const SourceBitmap, ResizedBitmap : TBitmap; const ScaleAmount : Double); Proc wdc_ExtractIconFile( Icon : TIcon; const FileName :Str; IconType :Card); Proc wdc_ExtractBitmapFile( Bmp : TBitmap; const FileName :Str; IconType :Card); Proc wdc_ExtractBitmapFile32( Bmp : TBitmap; const FileName :Str; IconType :Card); Proc wdc_CheckForUpdates( Silent :Bool); end; (*----------------------------------------------------------------------------*) Proc SIRegister_WDCCOleVariantEnum(CL: TPSPascalCompiler); begin SIRegister_IOleVariantEnum(CL); SIRegister_IGetOleVariantEnum(CL); SIRegister_TOleVariantEnum(CL); SIRegister_TOleVariantArrayEnum(CL); Func GetOleVariantEnum( Collection : OLEVariant) : IGetOleVariantEnum'); Func GetOleVariantArrEnum( Collection : OLEVariant) : IGetOleVariantEnum'); end; (*----------------------------------------------------------------------------*) Proc SIRegister_WDCCWinInet(CL: TPSPascalCompiler); begin CL.AddConstantN('WM_UWININET_THREAD_FINISHED','LongInt').SetInt( WM_USER + 669); CL.AddConstantN('WM_UWININET_THREAD_CANCELLED','LongInt').SetInt( WM_USER + 670); CL.AddTypeS('TuWinInetProcCallBack', 'Proc ( BytesRead : Integer); SIRegister_TWinINetGetThread(CL); Func wdc_GetRemoteFileSize( const Url :Str) : Integer'); Proc wdc_WinInet_HttpGet( const Url :Str; Stream : TStream; CallBack : TuWinInetProcCallBack); Func wdc_WinInet_HttpGet2( const Url :Str; CallBack : TuWinInetProcCallBack) :Str; Func wdc_GetWinInetError( ErrorCode :Card) :Str'); end; Proc SIRegister_PythonVersions(CL: TPSPascalCompiler); begin SIRegister_TPythonVersion(CL); CL.AddTypeS('TPythonVersions', 'array of TPythonVersion'); Func CompareVersions( A, B :Str) : Integer'); Func IsEXEx64( const EXEName :Str) :Bool'); Func Isx64( const FileName :Str) :Bool'); Func GetRegisteredPythonVersion( SysVersion :Str; out PythonVersion : TPythonVersion) :Bool'); Func GetRegisteredPythonVersions : TPythonVersions'); Func GetLatestRegisteredPythonVersion( out PythonVersion : TPythonVersion) :Bool'); Func PythonVersionFromPath(const Path:str;out PythonVersion:TPythonVersion;AcceptVirtualEnvs:Bool):Bool); end; Example: var pyv: TPythonVersion; pyvs:TPythonVersions; pyvs:= GetRegisteredPythonVersions; writeln(objtostr(pyv)); for it:= 1 to length(pyvs)-1 do begin writeln(pyvs[it].dllname) writeln(pyvs[it].installpath) writeln(pyvs[it].PythonExecutable ) writeln(pyvs[it].Version ) end; Proc SIRegister_TPythonAction(CL: TPSPascalCompiler); begin //with RegClassS(CL,'TAction', 'TPythonAction') do with CL.AddClassN(CL.FindClass('TAction'),'TPythonAction') do begin 'fRegisteredMethods', 'TList', iptrw); 'fPythonModule', 'TPythonModule', iptrw); 'fClearname', 'string', iptrw); 'fRegistername', 'string', iptrw); 'fUnregistername', 'string', iptrw); Proc ClearMethods'); Constructor Create( AOwner : TComponent); Func HandlesTarget( Target : TObject) :Bool'); Func Execute :Bool'); Proc UpdateTarget( Target : TObject); Proc InitializeAction'); RegisterProperty('RegisteredMethods', 'TList', iptr); RegisterProperty('PythonModule', 'TPythonModule', iptrw); end; end; //V4.7.5.90 procedure SIRegister_TSingleListClass(CL: TPSPascalCompiler); begin TSingleListSortCompare = function (Item1, Item2: Single): Integer; TSingleDescriptor = function (Index:Integer;Item : Single) : string; //with RegClassS(CL,'TObject', 'TSingleListClass') do with CL.AddClassN(CL.FindClass('TObject'),'TSingleListClass') do begin Constructor Create'); Procedure Free; Function Add( Item : Single) : Integer'); Procedure Clear'); Procedure SaveToStream( const S : TStream); Procedure LoadFromStream( const S : TStream; const KeepCurrentSortType : Boolean); Procedure SaveToFile( FileName : string); Procedure LoadFromFile( FileName : string; const KeepCurrentSortType : Boolean); Procedure Delete( Index : Integer); Function ErrMsg( const Msg : string; Data : Integer) : string'); Procedure Exchange( Index1, Index2 : Integer); Function Expand : TSingleListClass'); Function First : Single'); Function IndexOf( Value : Single) : Integer'); Procedure Insert( Index : Integer; Item : Single); Function Last : Single'); Procedure Move( CurIndex, NewIndex : Integer); Function Remove( Item : Single) : Integer'); Procedure Pack( NilValue : Single); Procedure Sort( Compare : TSingleListSortCompare); Procedure SortUp'); Procedure SortDown'); Procedure ShowList( StringList: TStrings; Descriptor: TSingleDescriptor; ClearIt:Boolean); Function Minimum : Single'); Function Maximum : Single'); Function Range : Single'); Function Sum : Extended'); Function SumSqr : Extended'); Function Average : Extended'); Procedure CopyFrom( List : TSingleListClass; const KeepCurrentSortType : Boolean); Procedure CopyTo( List : TSingleListClass; const KeepDestSortType : Boolean); Procedure Push( Value : Single); Function LifoPop( DefValue : Single) : Single'); Function FifoPop( DefValue : Single) : Single'); RegisterProperty('List', 'PSinglePtrList', iptr); RegisterProperty('Capacity', 'Integer', iptrw); RegisterProperty('Count', 'Integer', iptrw); RegisterProperty('Items', 'Single Integer', iptrw); SetDefaultPropery('Items'); RegisterProperty('SortType', 'TSingleSortOption', iptrw); end; end; procedure SIRegister_DoubleList4(CL: TPSPascalCompiler); begin CL.AddConstantN('SDoubleListVoidError','String').SetString( 'Invalid method call (empty list)!'); CL.AddConstantN('SDoubleListSortError','String').SetString( 'Invalid method call (sorted list)!'); //= array[0..MaxDoubleListSize - 1] of Double; // CL.AddTypeS('TDoublePtrList', 'array[0..2147417850] of Single'); CL.AddTypeS('TDoublePtrList', 'array of Single'); { TDoubleListSortCompare = function (Item1, Item2: Double): Integer; TDoubleDescriptor = function (Index:Integer;Item : Double) : string; } CL.AddTypeS('TDoubleListSortCompare', 'function (Item1,Item2: Double):Integer; //TSingleDescriptor //=// function (Index:Integer;Item : Single) : string; CL.AddTypeS('TDoubleDescriptor', 'function (Index:Integer;Item : Double) : string; CL.AddTypeS('TDoubleSortOption', '( DoubleSortNone, DoubleSortUpWithDup, Doub' +'leSortUpNoDup, DoubleSortDownWithDup, DoubleSortDownNoDup ); SIRegister_TDoubleList(CL); CL.AddDelphiFunction('Function DefDescDouble( Index : Integer; Item : Double) : string'); end; procedure SIRegister_ByteListClass(CL: TPSPascalCompiler); begin CL.AddConstantN('SByteListVoidError','String').SetString( 'Invalid method call (empty list)!'); CL.AddConstantN('SByteListSortError','String').SetString( 'Invalid method call (sorted list)!'); CL.AddTypeS('TByteSortOption', '( ByteSortNone, ByteSortUpWithDup, ByteSortUp' +'NoDup, ByteSortDownWithDup, ByteSortDownNoDup ); CL.AddTypeS('TBytePtrList', 'array of Byte'); TByteListSortCompare', 'function (Item1, Item2: Byte): Integer; TByteDescriptor', 'function (Index:Integer;Item : Byte) : string; SIRegister_TByteListClass(CL); CL.AddDelphiFunction('Function DefDescByte( Index : Integer; Item : Byte): string'); end; procedure SIRegister_neuralplanbuilder(CL: TPSPascalCompiler); begin 'NeuralMaxStates2','LongInt').SetInt( 400); 'NeuralMaxPlans2','LongInt').SetInt( 100); CL.AddTypeS('TNeuralState2', 'array of byte'); CL.AddTypeS('TProcPred2', Function ( var ST : array of byte; Action : byte): boolean'); SIRegister_TActionStateList(CL); Procedure TVisitedStatesCopy( var A, B : TActionStateList); SIRegister_TPlan(CL); SIRegister_TCompositePlan(CL); end; procedure SIRegister_neuralvolume(CL: TPSPascalCompiler); begin 'csMinAvxSize','LongInt').SetInt( 16); 'csEncodeRGB','LongInt').SetInt( 0); 'csEncodeHSV','LongInt').SetInt( 1); 'csEncodeHSL','LongInt').SetInt( 2); 'csEncodeLAB','LongInt').SetInt( 3); 'csEncodeGray','LongInt').SetInt( 4); CL.AddTypeS('TNeuralFloat', 'Single'); //CL.AddTypeS('TNeuralFloatPtr', '^TNeuralFloat // will not work'); //CL.AddTypeS('TNeuralFloatArrPtr', '^TNeuralFloatArr // will not work'); CL.AddTypeS('TNeuralIntegerArray', 'array of integer'); //CL.AddTypeS('T', 'TNeuralFloat'); CL.AddTypeS('PtrInt', 'Integer'); SIRegister_TNNetList(CL); SIRegister_TVolume(CL); SIRegister_TNNetVolume(CL); SIRegister_TNNetVolumePair(CL); SIRegister_TMObject(CL); SIRegister_TNNetVolumeList(CL); SIRegister_TNNetVolumePairList(CL); SIRegister_TNNetKMeans(CL); SIRegister_TNNetStringList(CL); SIRegister_TStringListInt(CL); SIRegister_TNNetDictionary(CL); Function CreateTokenizedStringList86( str : string; c : char) : TStringList; Function CreateTokenizedStringList87( c : char) : TStringList; Function HiperbolicTangent( x : TNeuralFloat) : TNeuralFloat'); Function HiperbolicTangentDerivative( x : TNeuralFloat) : TNeuralFloat'); Function RectifiedLinearUnit( x : TNeuralFloat) : TNeuralFloat'); Function RectifiedLinearUnitDerivative( x : TNeuralFloat) : TNeuralFloat'); Function RectifiedLinearUnitLeaky( x : TNeuralFloat) : TNeuralFloat'); Function RectifiedLinearUnitLeakyDerivative( x : TNeuralFloat) : TNeuralFloat'); Function ReLULeakyBound( x : TNeuralFloat) : TNeuralFloat'); Function ReLULeakyBoundDerivative( x : TNeuralFloat) : TNeuralFloat'); Function Sigmoid( x : TNeuralFloat) : TNeuralFloat'); Function SigmoidDerivative( x : TNeuralFloat) : TNeuralFloat'); Function Identity( x : TNeuralFloat) : TNeuralFloat'); Function IdentityDerivative( x : TNeuralFloat) : TNeuralFloat'); Function SoftmaxDerivative( x : TNeuralFloat) : TNeuralFloat'); Function DiffAct( x : TNeuralFloat) : TNeuralFloat'); Function DiffActDerivative( x : TNeuralFloat) : TNeuralFloat'); Function NeuronForceMinMax88( x, pMin, pMax : TNeuralFloat) : TNeuralFloat; Function NeuronForceMinMax89( x, pMin, pMax : integer) : integer; Function NeuronForceRange( x, range : TNeuralFloat) : TNeuralFloat'); Function NeuronForceMinRange( x, range : TNeuralFloat) : TNeuralFloat'); Procedure rgb2hsv( r, g, b : TNeuralFloat; var h, s, v : TNeuralFloat); Procedure hsv2rgb( h, s, v : TNeuralFloat; var r, g, b : TNeuralFloat); Function hue2rgb( p, q, t : TNeuralFloat) : TNeuralFloat'); Procedure rgb2hsl( r, g, b : TNeuralFloat; var h, s, l : TNeuralFloat); Procedure hsl2rgb( h, s, l : TNeuralFloat; var r, g, b : TNeuralFloat); Procedure lab2rgb( l, a, b : TNeuralFloat; var r, g, bb : TNeuralFloat); Procedure rgb2lab( r, g, b : TNeuralFloat; var l, a, bb : TNeuralFloat); Function RoundAsByte( x : TNeuralFloat) : byte'); Function CompareStringListIntegerAsc( List : TStringList; Index1, Index2 : Integer) : Integer'); Function CompareStringListIntegerDesc( List : TStringList; Index1, Index2 : Integer) : Integer'); Function CompareNNetVolumeListAsc( const Item1, Item2 : TNNetVolume) : Integer'); Function CompareNNetVolumeListDesc( const Item1, Item2 : TNNetVolume) : Integer'); Function NeuralFloatToStr( V : TNeuralFloat) : string'); Function NeuralStrToFloat( V : String) : TNeuralFloat'); Procedure TestTNNetVolume( ); //messagedialog! Procedure TestKMeans2( ); //unattendend end; (*----------------------------------------------------------------------------*) procedure SIRegister_neuralvolumev(CL: TPSPascalCompiler); begin Procedure SaveHandleToBitmap( OutputFileName : string; hWnd : HWND); Procedure LoadVolumeIntoTImage( V : TNNetVolume; Image : TImage; color_encoding : integer); Procedure LoadRGBVolumeIntoTImage( V : TNNetVolume; Image : TImage); Procedure LoadPictureIntoVolume( LocalPicture : TPicture; Vol : TNNetVolume); Procedure LoadBitmapIntoVolume( LocalBitmap : TBitmap; Vol : TNNetVolume); Procedure LoadImageFromFileIntoVolume( ImageFileName : string; V : TNNetVolume); end; function GetSmallestIdxInRange(StartPos, Len: integer): integer; function GetValueCount(Value: T): integer; GetParentProcessName2 writeln('GetParentProcessName2: '+GetProcessName(GetParentProcessID(getprocessID))); Function DefDescByte( Index : Integer; Item : Byte) : string'); function NumStringParts(SourceStr,Delimiter:String):Integer'); function GetStringPart(SourceStr,Delimiter:String;Num:Integer):string'); Function InverseCompareResult( const C : TCompareResult) : TCompareResult'); function GetWindowProcessID(const Wnd: Windows.HWND): Windows.DWORD; var GetWindowThreadProcessId: function(Wnd: Windows.HWND; // API fn prototype lpdwProcessId: Windows.PDWORD): Windows.DWORD; stdcall; begin // We load the API function explicitly to make the routine compatible with as // many compilers as possible: the definition of GetWindowThreadProcessId in // Delphi and FreePascal Windows units varies across compilers GetWindowThreadProcessId := GetProcAddress( GetModuleHandle('user32.dll'), 'GetWindowThreadProcessId' ); if Assigned(GetWindowThreadProcessId) and Windows.IsWindow(Wnd) then GetWindowThreadProcessId(Wnd, @Result) else Result := Windows.DWORD(-1); end; Procedure TestVectorClassExtended - type TInt64Array = TInt64ArrayClass; procedure SIRegister_TVectorClass(CL: TPSPascalCompiler); begin //with RegClassS(CL,'TVectorBaseArray', 'TVectorClass') do //with CL.AddClassN(CL.FindClass('TVectorBaseArray'),'TVectorClass') do with CL.AddClassN(CL.FindClass('TExtendedArray'),'TVectorClass') do begin Function CreateInstance : AType'); Procedure Add( const V : MFloat); Procedure Add1( const V : PMFloat; const Count : Integer); Procedure Add2( const V : PInt64; const Count : Integer); Procedure Add3( const V : MFloatArray); Procedure Add4( const V : Int64Array); Procedure Add5( const V : TVectorBaseArray); Procedure Add6( const V : TInt64Array); Procedure Add7( const V : TObject); Procedure Subtract8( const V : MFloat); Procedure Subtract9( const V : PMFloat; const Count : Integer); Procedure Subtract10( const V : PInt64; const Count : Integer); Procedure Subtract11( const V : MFloatArray); Procedure Subtract12( const V : Int64Array); Procedure Subtract13( const V : TVectorBaseArray); Procedure Subtract14( const V : TInt64Array); Procedure Subtract15( const V : TObject); Procedure Multiply16( const V : MFloat); Procedure Multiply17( const V : PMFloat; const Count : Integer); Procedure Multiply18( const V : PInt64; const Count : Integer); Procedure Multiply19( const V : MFloatArray); Procedure Multiply20( const V : Int64Array); Procedure Multiply21( const V : TVectorBaseArray); Procedure Multiply22( const V : TInt64Array); Procedure Multiply23( const V : TObject); Function DotProduct24( const V : PMFloat; const Count : Integer): MFloat; Function DotProduct25( const V : PInt64; const Count : Integer) : MFloat; Function DotProduct26( const V : MFloatArray) : MFloat; Function DotProduct27( const V : Int64Array) : MFloat; Function DotProduct28( const V : TVectorBaseArray) : MFloat; Function DotProduct29( const V : TInt64Array) : MFloat; Function DotProduct30( const V : TObject) : MFloat; Function Norm : MFloat'); Function Min : MFloat'); Function Max : MFloat'); Function Range( var Min, Max : MFloat) : MFloat'); Function IsZero( const CompareDelta : MFloat) : Boolean'); Function HasZero( const CompareDelta : MFloat) : Boolean'); Function HasNegative : Boolean'); Procedure Normalize'); Procedure Negate'); Procedure ValuesInvert'); Procedure ValuesSqr'); Procedure ValuesSqrt'); Function Sum : MFloat'); Function SumOfSquares : MFloat'); Procedure SumAndSquares( out Sum, SumOfSquares : MFloat); Procedure SumAndCubes( out Sum, SumOfSquares, SumOfCubes : MFloat); Procedure SumAndQuads( out Sum, SumOfSquares, SumOfCubes, SumOfQuads : MFloat); Function WeightedSum( const Weights : TVector) : MFloat'); Function Mean : MFloat'); Function HarmonicMean : MFloat'); Function GeometricMean : MFloat'); Function Median : MFloat'); Function Mode : MFloat'); Function Variance : MFloat'); Function StdDev( var Mean : MFloat) : MFloat'); Function PopulationVariance : MFloat'); Function PopulationStdDev : MFloat'); Function M1 : MFloat'); Function M2 : MFloat'); Function M3 : MFloat'); Function M4 : MFloat'); Function Skew : MFloat'); Function Kurtosis : MFloat'); Function Product : MFloat'); Function Angle( const V : TVector) : MFloat'); end; end; (*----------------------------------------------------------------------------*) procedure SIRegister_TInt64ArrayClass(CL: TPSPascalCompiler); BigDataClass begin //with RegClassS(CL,'AInt64Array', 'TInt64ArrayClass') do with CL.AddClassN(CL.FindClass('AInt64Array'),'TInt64ArrayClass') do begin Constructor Create( const V : Int64Array); Procedure ExchangeItems( const Idx1, Idx2 : Integer); Function DuplicateRange( const LoIdx, HiIdx : Integer) : AArray'); Procedure Delete( const Idx : Integer; const ACount : Integer); Procedure Insert( const Idx : Integer; const ACount : Integer); Procedure Assign1( const V : Int64Array); Procedure Assign2( const V : array of Int64); Function AppendItem( const Value : Int64) : Integer'); ('Data', 'Int64Array', iptrw); RegisterProperty('Count', 'Integer', iptrw); end; end; procedure SIRegister_TExtendedArray(CL: TPSPascalCompiler); begin //with RegClassS(CL,'AExtendedArray', 'TExtendedArray') do with CL.AddClassN(CL.FindClass('AExtendedArray'),'TExtendedArray') do begin Constructor Create( const V : ExtendedArray); //RegisterMethod('Procedure Free; Procedure Assign( const Source : TObject); Procedure ExchangeItems( const Idx1, Idx2 : Integer); Function DuplicateRange( const LoIdx, HiIdx : Integer) : AArray'); Procedure Delete( const Idx : Integer; const ACount : Integer); Procedure Insert( const Idx : Integer; const ACount : Integer); Procedure Assign2( const V : ExtendedArray); //RegisterMethod('Procedure Assign( const V : array of Extended); Function AppendItem( const Value : Extended) : Integer'); RegisterProperty('Data', 'ExtendedArray', iptrw); RegisterProperty('Count', 'Integer', iptrw); end; end; (*----------------------------------------------------------------------------*) procedure SIRegister_neuraldatasets(CL: TPSPascalCompiler); begin TTinyImageChannel','array [0..31] of array[0..31] of byte; '); TTinyImageChannel1D','array [0..32 * 32 - 1] of byte; '); TMNistImage','array [0..27] of array[0..27] of byte; '); //TTinyImageChannel1D = packed array [0..32 * 32 - 1] of byte; //TMNistImage = packed array [0..27, 0..27] of byte; TTinyImage', 'record bLabel : byte; R : TTinyImageChannel; G : T' +'TinyImageChannel; B : TTinyImageChannel; end'); TCifar100Image', 'record bCoarseLabel : byte; bFineLabel : byte;' +' R : TTinyImageChannel; G : TTinyImageChannel; B : TTinyImageChannel; end'); TTinySingleChannelImage', 'record bLabel : byte; Grey : TTinyImageChannel; end'); TTinySingleChannelImage1D', 'record bLabel : byte; Grey : TTinyImageChannel1D; end'); //CL.AddTypeS('TTinySingleChannelImagePtr', '^TTinySingleChannelImage // will not work'); //CL.AddTypeS('TTinySingleChannelImage1DPtr', '^TTinySingleChannelImage1D // will not work'); SIRegister_TFileNameList(CL); SIRegister_TClassesAndElements(CL); Procedure CreateVolumesFromImagesFromFolder(out ImgTrainingVolumes,ImgValidationVolumes,ImgTestVolumes:TNNetVolumeList;FolderName, pImageSubFolder:string;color_encoding:integer;TrainingProp, ValidationProp,TestProp:single;'+' NewSizeX:integer;NewSizeY:integer); Procedure CreateFileNameListsFromImagesFromFolder( out TrainingFileNames, ValidationFileNames,TestFileNames: TFileNameList; FolderName, pImageSubFolder:string;TrainingProp,ValidationProp,TestProp:single); //CL.AddDelphiFunction('Procedure LoadImageIntoVolume( M : TFPMemoryImage; Vol : TNNetVolume); //CL.AddDelphiFunction('Procedure LoadVolumeIntoImage( Vol : TNNetVolume; M : TFPMemoryImage); Function LoadImageFromFileIntoVolume( ImageFileName : string; V : TNNetVolume) : boolean'); Function SaveImageFromVolumeIntoFile( V : TNNetVolume; ImageFileName : string) : boolean'); Procedure ConfusionWriteCSVHeader( var CSVConfusion : TextFile; Labels : array of string); Procedure ConfusionWriteCSV( var CSVConfusion : TextFile; Vol : TNNetVolume; Digits : integer); Procedure LoadTinyImageIntoNNetVolume1( var TI : TTinyImage; Vol : TNNetVolume); Procedure LoadTinyImageIntoNNetVolume2( var TI : TCifar100Image; Vol : TNNetVolume); Procedure LoadTinyImageIntoNNetVolume3( var TI : TMNistImage; Vol : TNNetVolume); Procedure LoadNNetVolumeIntoTinyImage4( Vol : TNNetVolume; var TI : TTinyImage); Procedure LoadNNetVolumeIntoTinyImage5( Vol : TNNetVolume; var TI : TCifar100Image); Procedure LoadTinySingleChannelIntoNNetVolume( var SC : TTinySingleChannelImage; Vol : TNNetVolume); Procedure TinyImageCreateGrey( var TI : TTinyImage; var TIGrey : TTinySingleChannelImage); Procedure TinyImageHE( var TI, TIHE : TTinySingleChannelImage); Procedure TinyImageVE( var TI, TIVE : TTinySingleChannelImage); Procedure TinyImageRemoveZeroGradient( var TI : TTinySingleChannelImage; distance : byte); Procedure TinyImageHVE( var TI, TIHE : TTinySingleChannelImage); Function TinyImageTo1D( var TI : TTinySingleChannelImage) : TTinySingleChannelImage1D'); Procedure CreateCifar10Volumes(out ImgTrainingVolumes,ImgValidationVolumes,ImgTestVolumes:TNNetVolumeList;color_encoding:byte); Procedure CreateCifar100Volumes(out ImgTrainingVolumes,ImgValidationVolumes,ImgTestVolumes:TNNetVolumeList;color_encoding:byte;Verbose :bool; Procedure CreateMNISTVolumes( out ImgTrainingVolumes, ImgValidationVolumes, ImgTestVolumes:TNNetVolumeList;TrainFileName,TestFileName:string; Verbose:boolean;IsFashion:boolean); Procedure loadCifar10Dataset6(ImgVolumes:TNNetVolumeList;idx:integer;base_pos: integer;color_encoding:byte);); Procedure loadCifar10Dataset7(ImgVolumes:TNNetVolumeList;fileName:string;base_pos:integer;color_encoding:byte); Procedure loadCifar100Dataset(ImgVolumes TNNetVolumeList;fileName: string; color_encoding:byte;Verbose:bool); Procedure loadMNISTDataset(ImgVolumes:TNNetVolumeList;fileName:str;Verbose:bool;IsFashion:bool;MaxLabel:int); Function CheckCIFARFile( ) : boolean'); Function CheckCIFAR100File( ) : boolean'); Function CheckMNISTFile( fileName : string; IsFasion : boolean) : boolean'); Procedure TestBatch(NN TNNet;ImgVolumes:TNNetVolumeList;SampleSize:integer;out Rate,Loss,ErrorSum:TNeuralFloat) Procedure TranslateCifar10VolumesToMachineAnimal( VolumeList : TNNetVolumeList); Function SwapEndian( I : integer) : integer'); end; (*----------------------------------------------------------------------------*) procedure SIRegister_neuralnetworkCAI(CL: TPSPascalCompiler); begin CL.AddConstantN('csMaxInterleavedSize','integer').SetInt( 95); CL.AddTypeS('TNeuralFloatDynArr', 'array of TNeuralFloat'); CL.AddClassN(CL.FindClass('TOBJECT'),'TNNet'); SIRegister_TNNetNeuron(CL); SIRegister_TNNetNeuronList(CL); CL.AddConstantN('csNNetMaxParameterIdx','LongInt').SetInt( 7); SIRegister_TNNetLayer(CL); //CL.AddTypeS('TNNetLayerClass', 'class of TNNetLayer'); SIRegister_TNNetLayerConcatedWeights(CL); SIRegister_TNNetLayerList(CL); SIRegister_TNNetInputBase(CL); SIRegister_TNNetInput(CL); SIRegister_TNNetIdentity(CL); SIRegister_TNNetPad(CL); SIRegister_TNNetIdentityWithoutL2(CL); SIRegister_TNNetIdentityWithoutBackprop(CL); //CL.AddTypeS('TNNetActivationFunctionClass', 'class of TNNetIdentity'); SIRegister_TNNetReLUBase(CL); SIRegister_TNNetDigital(CL); SIRegister_TNNetReLU(CL); SIRegister_TNNetReLUL(CL); SIRegister_TNNetSELU(CL); SIRegister_TNNetSwish(CL); SIRegister_TNNetReLUSqrt(CL); SIRegister_TNNetPower(CL); SIRegister_TNNetLeakyReLU(CL); SIRegister_TNNetVeryLeakyReLU(CL); SIRegister_TNNetSigmoid(CL); SIRegister_TNNetHyperbolicTangent(CL); SIRegister_TNNetMulLearning(CL); SIRegister_TNNetMulByConstant(CL); SIRegister_TNNetNegate(CL); SIRegister_TNNetAddAndDiv(CL); SIRegister_TNNetAddNoiseBase(CL); SIRegister_TNNetDropout(CL); SIRegister_TNNetRandomMulAdd(CL); SIRegister_TNNetChannelRandomMulAdd(CL); SIRegister_TNNetLayerMaxNormalization(CL); SIRegister_TNNetLayerStdNormalization(CL); SIRegister_TNNetMovingStdNormalization(CL); SIRegister_TNNetChannelTransformBase(CL); SIRegister_TNNetChannelShiftBase(CL); SIRegister_TNNetChannelBias(CL); SIRegister_TNNetChannelMul(CL); SIRegister_TNNetChannelMulByLayer(CL); SIRegister_TNNetCellMulByCell(CL); SIRegister_TNNetCellBias(CL); SIRegister_TNNetCellMul(CL); SIRegister_TNNetChannelZeroCenter(CL); SIRegister_TNNetChannelStdNormalization(CL); SIRegister_TNNetLocalResponseNorm2D(CL); SIRegister_TNNetInterleaveChannels(CL); SIRegister_TNNetLocalResponseNormDepth(CL); SIRegister_TNNetReshape(CL); SIRegister_TNNetConcatBase(CL); SIRegister_TNNetConcat(CL); SIRegister_TNNetDeepConcat(CL); SIRegister_TNNetSum(CL); SIRegister_TNNetSplitChannels(CL); SIRegister_TNNetSplitChannelEvery(CL); SIRegister_TNNetFullConnect(CL); //CL.AddTypeS('TNNetFullConnectClass', 'class of TNNetFullConnect'); SIRegister_TNNetFullConnectLinear(CL); SIRegister_TNNetFullConnectSigmoid(CL); SIRegister_TNNetFullConnectReLU(CL); SIRegister_TNNetFullConnectDiff(CL); SIRegister_TNNetSoftMax(CL); CL.AddClassN(CL.FindClass('TOBJECT'),'TNNetLayerFullConnect'); CL.AddClassN(CL.FindClass('TOBJECT'),'TNNetLayerFullConnectReLU'); CL.AddClassN(CL.FindClass('TOBJECT'),'TNNetLayerSoftMax'); CL.AddClassN(CL.FindClass('TOBJECT'),'TNNetDense'); CL.AddClassN(CL.FindClass('TOBJECT'),'TNNetDenseReLU'); SIRegister_TNNetConvolutionAbstract(CL); SIRegister_TNNetDepthwiseConv(CL); SIRegister_TNNetDepthwiseConvLinear(CL); SIRegister_TNNetDepthwiseConvReLU(CL); SIRegister_TNNetConvolutionBase(CL); //CL.AddTypeS('TNNetConvolutionClass', 'class of TNNetConvolutionBase'); SIRegister_TNNetGroupedConvolutionLinear(CL); SIRegister_TNNetGroupedConvolutionReLU(CL); SIRegister_TNNetGroupedPointwiseConvLinear(CL); //CL.AddTypeS('TNNetGroupedPointwiseConvClass', 'class of TNNetGroupedPointwiseConvLinear'); SIRegister_TNNetGroupedPointwiseConvReLU(CL); SIRegister_TNNetConvolution(CL); SIRegister_TNNetConvolutionSharedWeights(CL); SIRegister_TNNetConvolutionLinear(CL); SIRegister_TNNetConvolutionReLU(CL); SIRegister_TNNetPointwiseConv(CL); SIRegister_TNNetPointwiseConvLinear(CL); SIRegister_TNNetPointwiseConvReLU(CL); SIRegister_TNNetDeconvolution(CL); SIRegister_TNNetDeconvolutionReLU(CL); SIRegister_TNNetLocalConnect(CL); SIRegister_TNNetLocalProduct(CL); SIRegister_TNNetDeLocalConnect(CL); SIRegister_TNNetLocalConnectReLU(CL); SIRegister_TNNetDeLocalConnectReLU(CL); SIRegister_TNNetPoolBase(CL); SIRegister_TNNetMaxPool(CL); SIRegister_TNNetMaxPoolPortable(CL); SIRegister_TNNetMinPool(CL); SIRegister_TNNetMaxChannel(CL); SIRegister_TNNetMinChannel(CL); SIRegister_TNNetAvgPool(CL); SIRegister_TNNetAvgChannel(CL); SIRegister_TNNetDeMaxPool(CL); SIRegister_TNNetUpsample(CL); CL.AddClassN(CL.FindClass('TOBJECT'),'TNNetDeAvgPool'); SIRegister_TNNet(CL); SIRegister_THistoricalNets(CL); SIRegister_TNNetDataParallelism(CL); SIRegister_TNNetByteProcessing(CL); SIRegister_TNNetForByteProcessing(CL); SIRegister_TBytePredictionViaNNet(CL); SIRegister_TEasyBytePredictionViaNNet(CL); Procedure CompareComputing( NN1, NN2 : TNNet); Procedure CompareNNStructure( NN, NN2 : TNNet); Procedure TestConvolutionAPI( ); Procedure TestDataParallelism( NN : TNNet); //CL.AddDelphiFunction('Procedure TestConvolutionOpenCL(platform_id:cl_platform_id;device_id:cl_device_id); //CL.AddDelphiFunction('Procedure TestFullConnectOpenCL(platform_id:cl_platform_id;device_id:cl_device_id); Procedure RebuildPatternOnPreviousPatterns( Calculated : TNNetVolume; LocalWeight : TNNetVolume; PrevLayer : TNNetNeuronList; PrevStride : integer; ReLU : boolean; Threshold : TNeuralFloat); Procedure RebuildNeuronListOnPreviousPatterns( CalculatedLayer : TNNetNeuronList; CurrentLayer,PrevLayer:TNNetNeuronList;PrevStride:integer;ReLU:boolean;Threshold: TNeuralFloat);InputLayer := function NN.AddDenseNetBlockCAI70(InnerConvNum,iConvNeuronCount,0, netconv,ChkUseSeparableConv.Checked, ChkMovingNorm.Checked,nil,nil, 0,1,1.0,1,1,1); end; (*----------------------------------------------------------------------------*) procedure SIRegister_neuralfit(CL: TPSPascalCompiler); begin TCustomLearningRateScheduleObjFn', 'Function ( Epoch : integer) : single'); TMultiThreadProcItem', 'TObject'); SIRegister_TNeuralFitBase(CL); SIRegister_TNeuralFitWithImageBase(CL); TNNetDataAugmentationFn', 'Procedure ( pInput : TNNetVolume; ThreadId : integer); TNNetLossFn', 'Function ( ExpectedOutput, FoundOutput : TNNetVolume; ThreadId : integer) : TNeuralFloat'); TNNetGetPairFn', 'Function ( Idx : integer; ThreadId : integer) : TNNetVolumePair'); TNNetGet2VolumesProc', 'Procedure ( Idx : integer; ThreadId : integer; pInput, pOutput : TNNetVolume); SIRegister_TNeuralDataLoadingFit(CL); SIRegister_TNeuralFit(CL); SIRegister_TNeuralImageLoadingFit(CL); SIRegister_TNeuralImageFit(CL); Function MonopolarCompare( A, B : TNNetVolume; ThreadId : integer) : boolean'); Function BipolarCompare( A, B : TNNetVolume; ThreadId : integer) : boolean'); Function BipolarCompare99( A, B : TNNetVolume; ThreadId : integer) : boolean'); Function ClassCompare( A, B : TNNetVolume; ThreadId : integer) : boolean'); end; V 47620 FFit.FitLoading2(FDiscriminator, 64*10, 500, 500, 64, 35000, @GetDiscriminatorTrainingPair, nil, nil); // This FFit.FitLoading22(FDiscriminator, 64*10, 500, 500, 64, 35000, @GetDiscriminatorTrainingProc, nil, nil); //} procedure SIRegister_neuralgeneric(CL: TPSPascalCompiler); begin SIRegister_TIncDec(CL); SIRegister_TRandom(CL); Function MaxSingle2( x, y : single) : single'); Function GetMaxDivisor( x, acceptableMax : integer) : integer'); Function GetMaxAcceptableCommonDivisor( a, b : integer; max_acceptable : integer) : integer'); end; (*----------------------------------------------------------------------------*) procedure SIRegister_neuraldatasetsv(CL: TPSPascalCompiler); begin TImageDynArr', 'array of TImage'); TLabelDynArr', 'array of TLabel'); Procedure LoadTinyImageIntoTImage( var TI : TTinyImage; var Image : TImage); Procedure LoadTISingleChannelIntoImage( var TI : TTinySingleChannelImage; var Image : TImage); Procedure ShowNeurons(pNeuronList:TNNetNeuronList;var pImage:TImageDynArr;startImage,filterSize,color_encoding:int;ScalePerImage:bool; Procedure CreateAscentImages(GrBoxNeurons:TGroupBox;var pImage:TImageDynArr;var pLabelX,pLabelY:TLabelDynArr; ImagesNum:integer;inputSize,displaySize,imagesPerRow integer); Procedure CreateNeuronImages(GrBoxNeurons:TGroupBox;var pImage:TImageDynArr;var pLabelX,pLabelY:TLabelDynArr;pNeuronList:TNNetNeuronList;filterSize,imagesPerRow, NeuronNum:integer); Procedure FreeNeuronImages( var pImage : TImageDynArr; var pLabelX, pLabelY : TLabelDynArr); Procedure LoadNNLayersIntoCombo( NN : TNNet; Combo : TComboBox); end; (*----------------------------------------------------------------------------*) procedure SIRegister_flcFloats(CL: TPSPascalCompiler); begin Function flcDoubleMin( const A, B : Double) : Double'); Function flcDoubleMax( const A, B : Double) : Double'); Function flcExtendedMin( const A, B : Extended) : Extended'); Function flcExtendedMax( const A, B : Extended) : Extended'); Function flcFloatMin( const A, B : Float) : Float'); Function flcFloatMax( const A, B : Float) : Float'); Function flcFloatClip( const Value : Float; const Low, High : Float) : Float'); Function flcInSingleRange( const A : Float) : Boolean'); Function flcInDoubleRange( const A : Float) : Boolean'); Function flcInCurrencyRange0( const A : Float) : Boolean; Function flcInCurrencyRange1( const A : Int64) : Boolean; Function flcExtendedExponentBase2( const A : Extended; var Exponent : Integer) : Boolean'); Function flcExtendedExponentBase10( const A : Extended; var Exponent : Integer): Boolean'); Function flcExtendedIsInfinity( const A : Extended) : Boolean'); Function flcExtendedIsNaN( const A : Extended) : Boolean'); CL.AddConstantN('flcSingleCompareDelta','Extended').setExtended( 1.0E-34); flcDoubleCompareDelta','Extended').setExtended( 1.0E-280); ExtendedCompareDelta','').SetString( DoubleCompareDelta); flcExtendedCompareDelta','Extended').setExtended( 1.0E-4400); DefaultCompareDelta','').SetString( SingleCompareDelta); Function flcFloatZero( const A : Float; const CompareDelta : Float) : Boolean'); Function flcFloatOne( const A : Float; const CompareDelta : Float) : Boolean'); Function flcFloatsEqual( const A, B : Float; const CompareDelta : Float) : Boolean'); Function flcFloatsCompare( const A, B : Float; const CompareDelta : Float) : TCompareResult'); flcSingleCompareEpsilon','Extended).setExtended( 1.0E-5); flcDoubleCompareEpsilon','Extended).setExtended( 1.0E-13); flcExtendedCompareEpsilon','Extended).setExtended( 1.0E-17); flcDefaultCompareEpsilon','Extended').setExtended( 1.0E-10); Function flcExtendedApproxEqual( const A, B : Extended; const CompareEpsilon : Double): Boolean'); Function flcExtendedApproxCompare( const A, B : Extended; const CompareEpsilon Double): TCompareResult'); Function flcDoubleApproxEqual( const A, B : Double; const CompareEpsilon : Double): Boolean'); Function flcDoubleApproxCompare(const A,B: Double; const CompareEpsilon: Double): TCompareResult'); Function flcFloatApproxEqual( const A, B : Float; const CompareEpsilon : Float): Boolean'); Function flcFloatApproxCompare( const A, B : Float; const CompareEpsilon : Float): TCompareResult'); Function flcFloatToStringA(const A : Float) : AnsiString'); Function flcFloatToStringB(const A : Float) : RawByteString'); Function flcFloatToStringU(const A : Float) : UnicodeString'); Function flcFloatToString(const A : Float) : String'); Function flcTryStringToFloatB(const A : RawByteString; out B : Float) : Boolean'); Function flcTryStringToFloatU(const A : UnicodeString; out B : Float) : Boolean'); Function flcTryStringToFloat(const A : String; out B : Float) : Boolean'); Function flcStringToFloatB(const A : RawByteString) : Float'); Function flcStringToFloatU(const A : UnicodeString) : Float'); Function flcStringToFloat(const A : String) : Float'); Function flcStringToFloatDefB(const A : RawByteString; const Default : Float): Float'); Function flcStringToFloatDefU(const A : UnicodeString; const Default : Float): Float'); Function flcStringToFloatDef(const A : String; const Default : Float) : Float'); Procedure FLCFloatStringTest'); Procedure FLCFloatTest'); end; procedure SIRegister_neuralthread(CL: TPSPascalCompiler); begin CL.AddTypeS('TNeuralProc', 'Procedure ( index, threadnum : integer); SIRegister_TNeuralThread(CL); SIRegister_TNeuralThreadList(CL); Procedure NeuralThreadListCreate( pSize : integer); Procedure NeuralThreadListFree( ); Function fNTL : TNeuralThreadList'); Procedure CreateNeuralThreadListIfRequired( ); Function NeuralDefaultThreadCount : integer'); Procedure NeuralInitCriticalSection( var pCritSec : TRTLCriticalSection); Procedure NeuralDoneCriticalSection( var pCritSec : TRTLCriticalSection); Procedure InitCriticalSection( var pCritSec : TRTLCriticalSection); Procedure DoneCriticalSection( var pCritSec : TRTLCriticalSection); Function neuralGetProcessId( ) : integer'); end; procedure SIRegister_uSysTools(CL: TPSPascalCompiler); begin Function usGetRegExFileList(APath:String;APattern:String;ASubDirs:Boolean;AResultList:TStrings;AAttributes:Integer;AWithPath:Boolean;APathPattern:String):Integer; Procedure usFindFileInPaths(const AFileName:String;const ASearchPaths:String;AMinimumFileSize:Int64;const AResultList:TStrings); Procedure usPrintWindow( Wnd : HWND; ATo : TBitmap); Function usGetWindowByClassTree( const AClassTree: TStringList; AParent:HWND; AWithWildCards:Boolean):HWND'); Function usGetTempFile( AExtension : String) : String'); Function usDeleteFileToWasteBin( AFileName : string) : boolean'); Function usExpandEnvVars( AInputString : String) : String'); Function usFileSize( AFileName : String) : Int64'); Function usIsMultiprocessor : Boolean'); Function usProcessorCount : Cardinal'); Function usIsAdmin: Boolean'); Function usMultipleStringReplace(AString:Str;AOldPatterns,ANewPatterns:array of Str;AFlags:TReplaceFlags):Str; Function usMakeFileName( ADesiredFName : String) : String'); Function usIsLike( AString, APattern : String) : Boolean'); Function usVarRecToVariant( AValue : TVarRec) : Variant'); Function usVariantToTypedVarRec( const Item : Variant; VarType : TVarType) : TVarRec'); Function usVariantToVarRec( const Item : Variant) : TVarRec'); Procedure usFinalizeVarRec( var Item : TVarRec); Function usGetWindowText( wnd : HWND) : WideString'); Procedure usSetWindowText( wnd : HWND; txt : WideString); Function usMultipleWideStringReplace(AString:WideString;AOldPatterns,ANewPatterns:array of WideString; AFlags: TReplaceFlags):WideString'); Procedure usAcceptNumericOnly( var Key : Char; Comma : Boolean); Function usSameGUID( AGUID1, AGUID2 : TGUID) : Boolean'); Function usIsBitSet( AValue : Integer; ABitIndex : Byte) : Boolean'); Function usClientToScreen( AWindow : HWND; var APoint : TPoint) : Boolean'); Function usGetDataObjectFromFileList( const Directory : string; Files : TStrings) : IDataObject'); Function usGetDataObjectFromFile( const Directory : string; AFile : String) : IDataObject'); Function usGetFileListFromDataObject( const DataObject : IDataObject; Files : TStrings) : Integer'); Function usKeyPressed( AKey : Smallint) : Boolean; Function usKeyPressed1( AKey : Byte) : Boolean; Function usKeyToogled( AKey : Smallint) : Boolean; Function usKeyToogled1( AKey : Byte) : Boolean; Function usGetShellFolder(CSIDL : integer) : string'); end; function SerializeStream(const AStream : TStream) : String; procedure DeserializeToStream(const Data : String; const AStream : TStream); procedure ReplaceImageInImageList(FromImageList: TImageList; FromIndex: Integer; ToImageList: TImageList; ToIndex: Integer); Function GetSIDStringFromUser( AUsername : AnsiString; AServerName : AnsiString) : String'); TestConvolutionAPI(); procedure TestBackProp(); //> 1.5 GByte MemoryTest https://github.com/ariaghora/noe https://github.com/Fr0sT-Brutal/awesome-pascal#machine-learning https://github.com/TheUnknownOnes/theunknownones/tree/master/Libraries/PascalScriptAddons procedure SIRegister_URungeKutta4(CL: TPSPascalCompiler); begin CL.AddConstantN('maxfuncs2','LongInt').SetInt( 10); //CL.AddTypeS('float', 'extended'); CL.AddTypeS('TUserFunction2', 'Function ( T, X, XPrime : double) : double'); TUserCallBackFunction2', 'Function ( T, X, XPrime : double) : Boolean'); TNData2', 'record X : double; xPrime : double; end'); TNvector2', 'array[0..maxfuncs2] of TNData2; // TFuncVect = array[1..MaxFuncs] of TUserFunctionV; // TNvector = array[0..maxfuncs] of TNData; TUserFunctionV2', 'Function ( V : TNVector2) : double'); TFuncVect2', 'array[1..MaxFuncs2] of TUserFunctionV2; TUserCallbackFunctionV2','Function (V:TNVector2) : boolean'); Procedure RungeKutta2ndOrderIC2(LowerLimit:double;UpperLimit:double;InitialValue:double;InitialDeriv:double; ReturnInterval:double;CalcInterval:double; var Error:byte;UserFunc:TUserFunctionV2;UserCallBack: TUserCallbackFunctionV2); Procedure RungeKutta2ndOrderIC_System2(LowerLimit:double; UpperLimit: double; InitialValues : TNVector2; ReturnInterval: double; CalcInterval: double; var Error: byte; NumEquations: Integer; Vector: TFuncVect2; UserCallBack: TUserCallbackFunctionV2); end; procedure SIRegister_OverbyteIcsUtils(CL: TPSPascalCompiler); begin CL.AddTypeS('TIcsDbcsLeadBytes', 'TSysCharset'); 'MB_ERR_INVALID_CHARS','LongWord').SetUInt( $00000008); 'WC_ERR_INVALID_CHARS','LongWord').SetUInt( $80); CP_UTF16','LongInt').SetInt( 1200); CP_UTF16Be','LongInt').SetInt( 1201); CP_UTF32','LongInt').SetInt( 12000); CP_UTF32Be','LongInt').SetInt( 12001); TOBJECT'),'EIcsStringConvertError'); TCharsetDetectResult', '(cdrAscii,cdrUtf8,cdrUnknown ); TIcsNormForm','(icsNormalizationOther,icsNormalizationC,icsNormalizationD,icsNormalizationKD ); TIcsSearchRecW','record Time:Integer;Size:Integer;Attr: ' Integer;Name:String;ExcludeAttr:Integer;FindHandle:THandle;FindData:TWin32FindData;end'); TUnicode_String','record Length:Word;MaximumLength:Word;Buffer:WideChar;end'); TThreadID', 'LongWord; // CL.AddTypeS('PUnicode_String', '^TUnicode_String // will not work'); SIRegister_TIcsFileStreamW(CL); CL.AddConstantN('ICONV_UNICODE','String').SetString( 'UTF-16LE'); Function IcsIconvNameFromCodePage( CodePage : LongWord) : AnsiString'); Function IcsIsValidAnsiCodePage( const CP : LongWord) : Boolean'); Procedure IcsCharLowerA( var ACh : AnsiChar); Function IcsGetCurrentThreadID : TThreadID'); Function IcsGetFreeDiskSpace( const APath : String) : Int64'); Function IcsGetLocalTimeZoneBias : LongInt'); Function IcsDateTimeToUTC( dtDT : TDateTime): TDateTime'); Function IcsUTCToDateTime( dtDT : TDateTime): TDateTime'); Function IcsGetTickCount : LongWord'); //AddDelphiFunction('Function IcsWcToMb(CodePage:LongWord; Flags:Cardinal; WStr:PWideChar;WStrLen:Integer; MbStr:PAnsiChar;MbStrLen:Integer; DefaultChar:PAnsiChar;UsedDefaultChar:PLongBool):Integer'); //('Function IcsMbToWc(CodePage:LongWord;Flags:Cardinal;MbStr:PAnsiChar;MbStrLen:Int; WStr:PWideChar;WStrLen:Int):Int'); Function IcsGetDefaultWindowsUnicodeChar( CodePage : LongWord) : WideChar'); Function IcsGetDefaultWindowsAnsiChar( CodePage : LongWord) : AnsiChar'); Procedure IcsGetAcp( var CodePage : LongWord); Function IcsIsDBCSCodePage( CodePage : LongWord) : Boolean'); Function IcsIsDBCSLeadByte( Ch : AnsiChar; CodePage : LongWord) : Boolean'); Function IcsIsMBCSCodePage( CodePage : LongWord) : Boolean'); Function IcsIsSBCSCodePage( CodePage : LongWord) : Boolean'); Function IcsGetLeadBytes( CodePage : LongWord) : TIcsDbcsLeadBytes'); Function icsUnicodeToUsAscii4( const Str: UnicodeString; FailCh : AnsiChar) : AnsiString; Function icsUnicodeToUsAscii5( const Str: UnicodeString) : AnsiString; Function icsUsAsciiToUnicode6( const Str: RawByteString; FailCh : AnsiChar) : UnicodeString; Function icsUsAsciiToUnicode7( const Str: RawByteString) : UnicodeString; Function icsUnicodeToAnsi8(const Str:WideChar;ACodePage LongWord; SetCodePage : Boolean) : RawByteString; Function icsUnicodeToAnsi9(const Str:UnicodeString;ACodePage:LongWord;SetCodePage:Boolean):RawByteString; Function icsUnicodeToAnsi10( const Str: UnicodeString) : RawByteString; Function icsAnsiToUnicode11( const Str: AnsiChar; ACodePage : LongWord) : UnicodeString; Function icsAnsiToUnicode12( const Str: RawByteString; ACodePage : LongWord) : UnicodeString; CL.AddDelphiFunction('Function icsAnsiToUnicode13( const Str : RawByteString) : UnicodeString; Function IcsBufferToUnicode14(const Buffer,BufferSize:Integer;BufferCodePage:LongWord;out FailedByteCount : Integer)UnicodeString; Function IcsBufferToUnicode15(const Buffer,BufferSize:Integer;BufferCodePage:LongWord;RaiseFailedBytes:Bool): UnicodeString; Function IcsGetWideCharCount(const Buffer,BufferSize:Integer;BufferCodePage:LongWord;out InvalidEndByteCount: Integer):Integer; Function IcsGetWideChars(const Buffer,BufferSize:Integer;BufferCodePage:LongWord;Chars:WideChar;CharCount: Integer):Integer; Function icsStreamWriteString16(AStream:TStream;Str:WideChar;cLen:Int;ACodePage:LongWord;WriteBOM:Bool):Int; Function icsStreamWriteString17(AStream TStream;Str:WideChar;cLen :Integer;ACodePage : LongWord) : Integer; Function icsStreamWriteString18(AStream:TStream;const Str:UnicodeString;ACodePage LongWord;WriteBOM:Bool):Int; Function icsStreamWriteString19(AStream:TStream;const Str:UnicodeString;ACodePage : LongWord) : Integer; Function icsStreamWriteString20( AStream : TStream; const Str : UnicodeString) : Integer; Function icsIsUsAscii21( const Str : RawByteString) : Boolean; Function icsIsUsAscii22( const Str : UnicodeString) : Boolean; Procedure IcsAppendStr( var Dest : RawByteString; const Src : RawByteString); Function icsatoi23( const Str : RawByteString) : Integer; Function icsatoi24( const Str : UnicodeString) : Integer; Function icsatoi6425( const Str : RawByteString) : Int64; Function icsatoi6426( const Str : UnicodeString) : Int64; Function IcsCalcTickDiff( const StartTick, EndTick : LongWord) : LongWord'); Function icsStringToUtf827( const Str : UnicodeString) : RawByteString; Function icsStringToUtf828( const Str : RawByteString; ACodePage : LongWord) : RawByteString; Function icsUtf8ToStringW( const Str : RawByteString) : UnicodeString'); Function icsUtf8ToStringA( const Str : RawByteString; ACodePage : LongWord) : AnsiString'); Function icsCheckUnicodeToAnsi( const Str : UnicodeString; ACodePage : LongWord) : Boolean'); Function icsIsUtf8TrailByte( const B : Byte) : Boolean'); Function icsIsUtf8LeadByte( const B : Byte) : Boolean'); Function IcsUtf8Size( const LeadByte : Byte) : Integer'); Function icsIsLeadChar( Ch : WideChar) : Boolean'); Function icsIsUtf8Valid29( const Str : RawByteString) : Boolean; //Function IsUtf8Valid30( const Buf : Pointer; Len : Integer) : Boolean; //Function CharsetDetect31( const Buf : Pointer; Len : Integer) : TCharsetDetectResult; Function icsCharsetDetect32( const Str : RawByteString) : TCharsetDetectResult; Function IcsCharNextUtf8( const Str : AnsiChar) : AnsiChar'); Function IcsCharPrevUtf8( const Start, Current : AnsiChar) : AnsiChar'); Function icsConvertCodepage(const Str:RawByteString;SrcCodePage:LongWord;DstCodePage:LongWord):RawByteString'); Function icshtoin33( Value : WideChar; Len : Integer) : Integer; Function icshtoin34( Value : AnsiChar; Len : Integer) : Integer; Function icshtoi235( value : WideChar) : Integer; Function icshtoi236( value : AnsiChar) : Integer; Function IcsBufferToHex37( const Buf, Size : Integer) : String; Function IcsBufferToHex38( const Buf, Size : Integer; Separator : Char) : String; Function icsIsXDigit39( Ch : WideChar) : Boolean; Function icsIsXDigit40( Ch : AnsiChar) : Boolean; Function icsXDigit41( Ch : WideChar) : Integer; Function icsXDigit42( Ch : AnsiChar) : Integer; Function icsIsCharInSysCharSet43( Ch : WideChar; const ASet : TSysCharSet):Boolean; Function icsIsCharInSysCharSet44( Ch : AnsiChar; const ASet : TSysCharSet):Boolean; Function icsIsDigit45( Ch : WideChar) : Boolean; Function icsIsDigit46( Ch : AnsiChar) : Boolean; Function icsIsSpace47( Ch : WideChar) : Boolean; Function icsIsSpace48( Ch : AnsiChar) : Boolean; Function icsIsCRLF49( Ch : WideChar) : Boolean; Function icsIsCRLF50( Ch : AnsiChar) : Boolean; Function icsIsSpaceOrCRLF51( Ch : WideChar) : Boolean; Function icsIsSpaceOrCRLF52( Ch : AnsiChar) : Boolean; Function icsXDigit2( S : PChar) : Integer'); Function icsstpblk53( PValue : WideChar) : WideChar; Function icsstpblk54( PValue : AnsiChar) : AnsiChar; Function IcsStrNextChar( const Str : AnsiChar; ACodePage : LongWord) : AnsiChar'); Function IcsStrPrevChar( const Start, Current : AnsiChar; ACodePage : LongWord) : AnsiChar'); Function IcsStrCharLength55( const Str: AnsiChar; ACodePage : LongWord) : Integer; Function IcsNextCharIndex56( const S: RawByteString; Index : Integer; ACodePage: LongWord): Integer; Function IcsGetBomBytes( ACodePage : LongWord) : TBytes'); Function IcsGetBufferCodepage57( Buf: AnsiChar; ByteCount : Integer) : LongWord; Function IcsGetBufferCodepage58( Buf: AnsiChar; ByteCount : Integer; out BOMSize: Integer): LongWord; Function IcsSwap16( Value : Word) : Word'); Procedure IcsSwap16Buf( Src, Dst : Word; WordCount : Integer); Function IcsSwap32( Value : LongWord) : LongWord'); Procedure IcsSwap32Buf( Src, Dst : LongWord; LongWordCount : Integer); Function IcsSwap64( Value : Int64) : Int64'); Procedure IcsSwap64Buf( Src, Dst : Int64; QuadWordCount : Integer); Procedure IcsNameThreadForDebugging( AThreadName : AnsiString; AThreadID : TThreadID); Function IcsNormalizeString( const S : UnicodeString; NormForm : TIcsNormForm) : UnicodeString'); Function IcsCryptGenRandom( var Buf, BufSize : Integer) : Boolean'); Function IcsRandomInt( const ARange : Integer) : Integer'); Function IcsFileUtcModified( const FileName : String) : TDateTime'); //Function IcsInterlockedCompareExchange(var Destination:Pointer;Exchange:Pointer;Comperand Pointer):Pointer'); Function IcsExtractFilePathW( const FileName : UnicodeString) : UnicodeString'); Function IcsExtractFileDirW( const FileName : UnicodeString) : UnicodeString'); Function IcsExtractFileDriveW( const FileName : UnicodeString) : UnicodeString'); Function IcsExtractFileNameW( const FileName : UnicodeString) : UnicodeString'); Function IcsExtractFileExtW( const FileName : UnicodeString) : UnicodeString'); Function IcsExpandFileNameW( const FileName : UnicodeString) : UnicodeString'); Function IcsExtractNameOnlyW( FileName : UnicodeString) : UnicodeString'); Function IcsChangeFileExtW( const FileName, Extension : UnicodeString) : UnicodeString'); Function IcsStrAllocW( Len : Cardinal) : WideChar'); Function IcsStrLenW( Str : WideChar) : Cardinal'); Function IcsAnsiCompareFileNameW59( const S1, S2 : UnicodeString) : Integer; Function IcsAnsiCompareFileNameW60( const Utf8S1, Utf8S2 : UTF8String) : Integer; Function IcsDirExistsW61( const FileName : WideChar) : Boolean; Function IcsDirExistsW62( const FileName : UnicodeString) : Boolean; Function IcsDirExistsW63( const Utf8FileName : UTF8String) : Boolean; Function IcsFindFirstW64( const Path : UnicodeString; Attr : Integer; var F: TIcsSearchRecW):Integer; Function IcsFindFirstW65( const Utf8Path : UTF8String; Attr : Integer;var F: TIcsSearchRecW):Integer; Procedure IcsFindCloseW( var F : TIcsSearchRecW); Function IcsFindNextW( var F : TIcsSearchRecW) : Integer'); Function IcsIncludeTrailingPathDelimiterW( const S : UnicodeString) : UnicodeString'); Function IcsExcludeTrailingPathDelimiterW( const S : UnicodeString) : UnicodeString'); Function IcsExtractLastDir66( const Path : RawByteString) : RawByteString; Function IcsExtractLastDir67( const Path : UnicodeString) : UnicodeString; Function IcsFileGetAttrW68( const FileName : UnicodeString) : Integer; Function IcsFileGetAttrW69( const Utf8FileName : UTF8String) : Integer; Function IcsFileSetAttrW70( const FileName : UnicodeString; Attr : Integer) : Integer; Function IcsFileSetAttrW71( const Utf8FileName : UTF8String; Attr : Integer) : Integer; Function IcsDeleteFileW72( const FileName : UnicodeString) : Boolean; Function IcsDeleteFileW73( const Utf8FileName : UTF8String) : Boolean; Function IcsRenameFileW74( const OldName, NewName : UnicodeString) : Boolean; Function IcsRenameFileW75( const Utf8OldName, Utf8NewName : UTF8String) : Boolean; Function IcsForceDirectoriesW76( Dir : UnicodeString) : Boolean; Function IcsForceDirectoriesW77( Utf8Dir : UTF8String) : Boolean; Function IcsCreateDirW78( const Dir : UnicodeString) : Boolean; Function IcsCreateDirW79( const Utf8Dir : UTF8String) : Boolean; Function IcsRemoveDirW80( const Dir : UnicodeString) : Boolean; Function IcsRemoveDirW81( const Utf8Dir : UTF8String) : Boolean; Function IcsFileAgeW82( const FileName : UnicodeString) : Integer; Function IcsFileAgeW83( const Utf8FileName : UTF8String) : Integer; Function IcsFileExistsW84( const FileName : UnicodeString) : Boolean; Function IcsFileExistsW85( const Utf8FileName : UTF8String) : Boolean; Function IcsAnsiLowerCaseW( const S : UnicodeString) : UnicodeString'); Function IcsAnsiUpperCaseW( const S : UnicodeString) : UnicodeString'); Function IcsMakeWord( L, H : Byte) : Word'); Function IcsMakeLong( L, H : Word) : Longint'); Function IcsHiWord( LW : LongWord) : Word'); Function IcsHiByte( W : Word) : Byte'); Function IcsLoByte( W : Word) : Byte'); Function IcsLoWord( LW : LongWord) : Word'); Procedure IcsCheckOSError( ALastError : Integer); Function IcsIntToStrA( N : Integer) : AnsiString'); Function IcsIntToHexA( N : Integer; Digits : Byte) : AnsiString'); Function IcsTrim86( const Str : AnsiString) : AnsiString; Function IcsTrim87( const Str : UnicodeString) : UnicodeString; Function IcsLowerCase88( const S : AnsiString) : AnsiString; Function IcsLowerCase89( const S : UnicodeString) : UnicodeString; Function IcsUpperCase90( const S : AnsiString) : AnsiString; Function IcsUpperCase91( const S : UnicodeString) : UnicodeString; Function IcsUpperCaseA( const S : AnsiString) : AnsiString'); Function IcsLowerCaseA( const S : AnsiString) : AnsiString'); Function IcsCompareTextA( const S1, S2 : AnsiString) : Integer'); Function IcsTrimA( const Str : AnsiString) : AnsiString'); Function IcsSameTextA( const S1, S2 : AnsiString) : Boolean'); Function IcsCompareStr92( const S1, S2 : AnsiString) : Integer; Function IcsCompareStr93( const S1, S2 : UnicodeString) : Integer; Function IcsCompareText94( const S1, S2 : AnsiString) : Integer; Function IcsCompareText95( const S1, S2 : UnicodeString) : Integer; Function IcsStrLen96( const Str : AnsiChar) : Cardinal; Function IcsStrLen97( const Str : WideChar) : Cardinal; Function IcsStrPas98( const Str : AnsiChar) : AnsiString; Function IcsStrPas99( const Str : WideChar) : string; Function IcsStrCopy100( Dest : AnsiChar; const Source : AnsiChar) : AnsiChar; Function IcsStrCopy101( Dest : WideChar; const Source : WideChar) : WideChar; Function IcsStrPCopy102( Dest : PChar; const Source : string) : PChar; Function IcsStrPCopy103( Dest : AnsiChar; const Source : AnsiString) : AnsiChar; Function IcsStrPLCopy104( Dest : PChar; const Source : String; MaxLen : Cardinal) : PChar; Function IcsStrPLCopy105( Dest : AnsiChar; const Source : AnsiString; MaxLen : Cardinal) : AnsiChar; Function IcsStrCompOrdinalW(Str1:WideChar;Str1Length:Int;Str2:WideChar;Str2Length:Int;IgnoreCase:Bool):Int; //Func RtlCompareUnicodeString(String1:PUNICODE_STRING;String2:PUNICODE_STRING;CaseInsensitive:BOOL):LongInt'); Function icsIsDebuggerPresent : BOOL'); SIRegister_TIcsIntegerList(CL); SIRegister_TIcsCriticalSection(CL); end; procedure SIRegister_TCustomApplication(CL: TPSPascalCompiler); begin //with RegClassS(CL,'TComponent', 'TCustomApplication') do with CL.AddClassN(CL.FindClass('TComponent'),'TCustomApplication') do begin Constructor Create( AOwner : TComponent); Procedure HandleException( Sender : TObject); Procedure Initialize'); Procedure Run'); Procedure ShowException( E : Exception); Procedure Terminate'); Procedure Terminate1( AExitCode : Integer); Function FindOptionIndex( const S : String; var Longopt : Boolean; StartAt : Integer) : Integer'); Function GetOptionValue( const S : String) : String'); Function GetOptionValue1( const C : Char; const S : String) : String'); Function GetOptionValues( const C : Char; const S : String) : TStringDynArray'); Function HasOption( const S : String) : Boolean'); Function HasOption1( const C : Char; const S : String) : Boolean'); Function CheckOptions(const ShortOptions:String;const Longopts:TStrings;Opts,NonOpts:TStrings;AllErrors: Bool):String; Function CheckOptions1(const ShortOptions:String;const Longopts:array of string;Opts,NonOpts:TStrings; AllErrors:Bool):String; Function CheckOptions2(const ShortOptions:String;const Longopts:TStrings; AllErrors:Boolean):String'); Function CheckOptions3(const ShortOptions:String;const LongOpts:array of string;AllErrors:Boolean):String; Function CheckOptions4( const ShortOptions:String;const LongOpts:String; AllErrors:Boolean):String'); Function GetNonOptions(const ShortOptions: String; const Longopts:array of string) : TStringDynArray'); Procedure GetNonOptions1(const ShortOptions:String;const Longopts:array of string;NonOptions:TStrings); Procedure GetEnvironmentList( List : TStrings; NamesOnly : Boolean); Procedure GetEnvironmentList1( List : TStrings); Procedure Log(EventType : TEventType; const Msg : String); Procedure Log1(EventType : TEventType; const Fmt : String; const Args : array of string); ExeName', 'string', iptr); Terminated', 'Boolean', iptr); Title', 'string', iptrw); OnException', 'TExceptionEvent', iptrw); ConsoleApplication', 'Boolean', iptr); Location', 'String', iptr); Params', 'String integer', iptr); ParamCount', 'Integer', iptr); EnvironmentVariable', 'String String', iptr); OptionChar', 'Char', iptrw); CaseSensitiveOptions', 'Boolean', iptrw); StopOnException', 'Boolean', iptrw); ExceptionExitCode', 'Longint', iptrw); ExceptObject', 'Exception', iptrw); ExceptObjectJS', 'JSValue', iptrw); EventLogFilter', 'TEventLogTypes', iptrw); end; end; ADD 4.7.6.10 III CL.AddDelphiFunction('function list_modules(aexename: string): string; CL.AddDelphiFunction('function list_units(aexename: string): string; check //ListView_SetItemState(H, I, Data, LVIS_SELECTED); commctrl procedure GetResourceHeader(var ResourceHeader: String; const FormName: String; const FileSize: Integer); GetResourceFormFile(List: TStrings; const FormName, FileName: String) : Boolean; function GetImageBase(const FileName: TFileName): DWORD; procedure ListViewSelectAll(ListView: TListView; Deselect: Boolean); function ListView_SetItemState(hwndLV: HWND; i: Integer; data, mask: UINT): Bool; function ListView_GetItemState(hwndLV: HWND; i, mask: Integer): Integer; function CreateOrGetOleObject(const ClassName: string): IDispatch; function FmtStrToInt(S: string): Integer; function MakeCellStrLV(const Text: String; Index: Integer; listview: TListview): String; https://docwiki.embarcadero.com/Libraries/Sydney/en/System.SysUtils.EmptyStr const emptystring= ''; procedure SIRegister_TIdHashMessageDigest5(CL: TPSPascalCompiler); begin //with RegClassS(CL,'TIdHashMessageDigest4', 'TIdHashMessageDigest5') do with CL.AddClassN(CL.FindClass('TIdHashMessageDigest4'),'TIdHashMessageDigest5') do begin Constructor Create; Procedure Free; Function HashValue(const ASrc: string): T4x4LongWordRecord'); Function HashValue1(AStream : TStream): T4x4LongWordRecord'); Function HashValueString(const ASrc: string): T4x4LongWordRecord'); Function HashValueStream(AStream : TStream): T4x4LongWordRecord'); Function AsHex( const AValue : T4x4LongWordRecord) : string'); function hashStreamAsHex(s: TStream): string; end; end; procedure SIRegister_SeSHA256(CL: TPSPascalCompiler); begin CL.AddConstantN('seHEADERSIZE','LongInt').SetInt( 80); CL.AddConstantN('emptystring','string').setstring(''); CL.AddTypeS('T32se', 'array [0 .. 31] of byte; CL.AddTypeS('THeaderse', 'array [0 .. seHEADERSIZE - 1] of byte; //T32 = array [0 .. 31] of byte; // To store the block header // THeader = array [0 .. HEADERSIZE - 1] of byte; // CL.AddTypeS('PSHA256HASH', '^TSHA256HASH // will not work'); Function CalcSHA256String( Msg : AnsiString) : TSHA256HASH; Function CalcSHA256Stream( Stream : TStream) : TSHA256HASH; Function seSHA256ToStr( Hash : TSHA256HASH) : String'); Function SHA256ToBinaryStr( Hash : TSHA256HASH) : AnsiString'); Function ReverseHash( Hash : string) : string'); Function GetMemoryStream : TMemoryStream'); Function T32ToString( const at32 : T32se) : string'); Function CalcHeaderSHA256( aHeader : THeaderse) : TSHA256HASH; end; procedure SIRegister_BlocksUnit(CL: TPSPascalCompiler); begin CL.AddTypeS('TCrypto', '( tcBitcoin, tcPascalCoin ); CL.AddTypeS('TNetbc', '( tnMainNet, tnTestNet ); CL.AddTypeS('PByte', 'Byte'); SIRegister_TBlockFile(CL); CL.AddTypeS('TBlockHeader', record versionNumber : UInt32; aPreviousBlockHas' +h: T32se; aMerkleRoot: T32se; time: UInt32; DifficultyTarget : UInt32; nonce: UInt32; end'); SIRegister_TInputbc(CL); SIRegister_TOutputbc(CL); SIRegister_TInputsbc(CL); SIRegister_TOutputsbc(CL); SIRegister_TTransaction(CL); SIRegister_TBlockTransactions(CL); SIRegister_TBlockRecord(CL); CL.AddTypeS(TStartFileBlockFoundNotify', 'Procedure ( const aBlockFiles: tstringlist); TFoundFileBlockNotify', 'Procedure ( const aBlockFile : TBlockFi' +le; const actualFileBlockNumber, totalBlockFiles : integer; var next : boolean); TEndFilesBlockFoundNotify', 'Procedure ( const aBlockFiles : tstringlist); TFoundBlockNotify','Procedure(const aBlock: TBlockRecord; var findnext: boolean); TBlockProcessStepNotify', 'Procedure ( const aPos, asize : int64); TEndProcessBlockFile', 'Procedure ( const aBlockFile : TBlockFile); SIRegister_TBlocks(CL); end; procedure SIRegister_DelticsCommandLine(CL: TPSPascalCompiler); begin CL.AddClassN(CL.FindClass('TOBJECT'),'TCommandLine'); CL.AddClassN(CL.FindClass('TOBJECT'),'TCommandLineSwitch'); CL.AddClassN(CL.FindClass('TOBJECT'),'EInvalidCommandLine'); //CL.AddTypeS('PSwitchDef', '^TSwitchDef // will not work'); CL.AddTypeS('TSwitchDef', 'record Name : String; Switch : String; Default : S' +'tring; MinValues : Integer; MaxValues : Integer; Separator : Char; end'); SIRegister_TCommandLine(CL); SIRegister_TCommandLineSwitch(CL); Procedure CommandLineToArgs( const aString : String; const aArgs : TStrings); end; (*----------------------------------------------------------------------------*) procedure SIRegister_DelticsStrUtils(CL: TPSPascalCompiler); begin CL.AddConstantN('LIKENESS_MATCH','Char').SetString( #255); CL.AddTypeS('TANSIStringArray', 'array of ANSIString'); //CL.AddTypeS('TStringArray', 'array of String'); SIRegister_IStringList(CL); SIRegister_IStringTool(CL); SIRegister_TStringTool(CL); Procedure dArrayInit( var aArray : TANSIStringArray; const aSize : Integer); Procedure ArrayAdd1( var aArray : TANSIStringArray; const aValue : ANSIString); Procedure ArrayAdd2( var aArray : TANSIStringArray; const aValue : array of ANSIString); Procedure ArrayExtend( var aArray : TANSIStringArray; const aCount : Integer); Function Likeness( const A : ANSIString; const B : ANSIString) : Integer'); Function LikenessEx(const A:ANSIString;const B:ANSIString; var strA:ANSIString;var strB:ANSIString):Integer; Function LikenessEx2(const A:ANSIString;const B:ANSIString;var strA:ANSIString;var strB:ANSIString;var iSame : Int;var iTotal:Int):Int; Function CamelCapsToWords( const aString : String) : String'); Function ReverseStr( const aString : String) : String; Function ReverseStr2( const aString : ANSIString) : ANSIString; Function dSplit( const aString : String; const aDelim : Char; const aSlices : TStrings) : Integer; Function dSplit1( const aString : String; const aDelim : Char; var aSlices : TStringArray) : Integer; Procedure dSplit2( const aString : ANSIString; const aDelim : ANSIChar; var aSlices : TANSIStringArray); Function StrBeginsWith( const aString : String; const aBeginning : String) : Boolean'); Function StrBeginsWithText( const aString : String; const aBeginning : String) : Boolean'); Function dStrContains( const aString : String; const aSubString : String) : Boolean'); Function StrContainsText( const aString : String; const aSubString : String) : Boolean'); Function StrEndsWith( const aString : String; const aEnd : String) : Boolean'); Function StrEndsWithText( const aString : String; const aEnd : String) : Boolean'); Function StrLPad( const aString : String; const aWidth : Integer; const aTrunc : Boolean) : String'); Function StrRPad( const aString : String; const aWidth : Integer; const aTrunc : Boolean) : String'); Function StrDequote( const aString : String) : String'); Function StrPop( var aString : String; const aDelim : Char) : String'); Function StrPopQuoted( var aString : String; const aDelim : Char) : String'); Function dIsAlpha( const aChar : Char) : Boolean'); Function dIsDigit( const aChar : Char) : Boolean'); Function dIsLower( const aChar : Char) : Boolean'); Function dIsUpper( const aChar : Char) : Boolean'); //SIRegister_TManagedStringList(CL); function delticsExplode(const Separator, S: string; Limit: Integer = 0): TStringArray; function delticsImplode(const Glue: string; const Pieces: array of string): string; end; (*----------------------------------------------------------------------------*) procedure SIRegister_DelticsSysUtils(CL: TPSPascalCompiler); begin CL.AddConstantN('delticsEmptyStr','String').SetString( ''); //CL.AddConstantN('NullGUID','TGUID').SetString( '{00000000-0000-0000-0000-000000000000}'); SIRegister_IAutoFree(CL); //CL.AddTypeS('Exception', 'Exception'); SIRegister_ENotImplemented(CL); CL.AddClassN(CL.FindClass('TOBJECT'),'EAccessDenied'); CL.AddTypeS('TGUIDFormat', '( gfDefault, gfNoBraces, gfNoHyphens, gfDigitsOnly ); CL.AddTypeS('TRoundingStrategy', '( rsDefault, rsAwayFromZero, rsTowardsZero ); CL.AddTypeS('TriBoolean', '( tbUnknown, tbTRUE, tbFALSE ); Procedure deltCloneList( const aSource : TStringList; const aDest : TStringList); //CL.AddDelphiFunction('Function AutoFree( const aReference : PObject) : IUnknown; //('Function AutoFree5( const aReferences : array of PObject) : IUnknown; Procedure deltFreeAndNIL( var aObject: Tstrings); //Procedure NILRefs( const aObjects : array of PObject); Function deltIfThen7( aValue : Boolean; aTrue, aFalse : Boolean) : Boolean; Function deltIfThen8( aValue : Boolean; aTrue, aFalse : TObject) : TObject; Function deltIfThen9( aValue : Boolean; aTrue, aFalse : Integer) : Integer; Function deltIfThen10( aValue : Boolean; aTrue, aFalse : ANSIString) : ANSIString; Function deltIfThen11( aValue : Boolean; aTrue, aFalse : String) : String; Function deltIfThenInt( aValue : Boolean; aTrue, aFalse : Integer) : Integer'); Function deltStringIndex( const aString : String; const aCases : array of String : Integer'); Function deltTextIndex( const aString : String; const aCases : array of String): Integer'); Function deltMin64( ValueA, ValueB : Int64) : Int64'); Function deltMin12( ValueA, ValueB : Cardinal) : Cardinal; Function deltMin13( ValueA, ValueB : Integer) : Integer; Function deltMax64( ValueA, ValueB : Int64) : Int64'); Function deltMax14( ValueA, ValueB : Cardinal) : Cardinal; Function deltMax15( ValueA, ValueB : Integer) : Integer; Procedure deltExchange( var A, B, aSize : LongWord); Function deltGUIDToString( const aGUID : TGUID; const aFormat : TGUIDFormat) : String'); Function deltStringToGUID( const aString : String) : TGUID'); Function deltTryStringToGUID( const aString : String; var aGUID : TGUID) : Boolean'); Function deltIsNull( const aValue : TGUID) : Boolean'); Function deltNewGUID : TGUID'); Function deltSameGUID( const GUIDA, GUIDB : TGUID) : Boolean'); Procedure deltAddTrailingBackslash( var aString : String); Procedure deltRemoveTrailingBackslash( var aString : String); Function deltBinToHex( const aBuf : string; const aSize : Integer) : String'); Function deltReverseBytes16( const aValue : Word) : Word; Function deltReverseBytes17( const aValue : LongWord) : LongWord; Function deltReverseBytes18( const aValue : Int64) : Int64; Function deltRound( const aValue : Extended; const aStrategy : TRoundingStrategy) : Integer'); //Procedure ForEachComponent(const aComponent:TComponent; const aProc:TComponentProc;const aRecursive:Bool; const aClass:TComponentClass); Function deltExec( const aEXE : String; const aCommandLine : String) : Cardinal'); Procedure deltExecAndWait( const aEXE : String; const aCommandLine : String); Function deltFindProcess( const aEXEName : String; var aProcess : TProcessEntry32): Boolean'); Function deltProcessExists( const aEXEName : String) : Boolean'); Function deltRegisterDLL( const aFileName : String; const aRegistrationProc:String):Boolean'); Function deltIsTRUE( const aTri : TriBoolean) : Boolean'); Function deltIsFALSE( const aTri : TriBoolean) : Boolean'); Function deltIsKnown( const aTri : TriBoolean) : Boolean'); end; procedure SIRegister_U_Splines(CL: TPSPascalCompiler); begin CL.AddConstantN('MaxNoVertices','LongInt').SetInt( 100); CL.AddTypeS('TSplineVertex', 'record X : Single; Y : single; end'); CL.AddTypeS('TSplineRow', 'array of TSplineVertex'); SIRegister_TBSpline(CL); SIRegister_TSplines(CL); //CL.AddDelphiFunction('Procedure Register'); SIRegister_U_SpringMass2(CL); CL.AddDelphiFunction('function getPython: string; CL.AddDelphiFunction('function getPython2: string; CL.AddDelphiFunction('function getPython3: string; end; procedure SIRegister_MARSCoreUtils(CL: TPSPascalCompiler); begin Function CreateCompactGuidStr : string'); //CL.AddDelphiFunction('Function BooleanToTJSON( AValue : Boolean) : TJSONValue'); Function SmartConcat(const AArgs:array of string;const ADelimiter:string;const AAvoidDuplicateDelimiter: Boolean;const ATrim:Boolean; const ACaseInsensitive: Boolean):string'); Function EnsurePrefix2( const AString, APrefix : string; const AIgnoreCase : Boolean) : string'); Function EnsureSuffix( const AString, ASuffix : string; const AIgnoreCase : Boolean) : string'); Function StringArrayToString( const AArray : array of string; const ADelimiter : string) : string'); Procedure CopyStream2(ASourceStream,ADestStream:TStream;AOverWriteDest:Bool;AThenResetDestPosition:Boolean); Function DateToISO8601( const ADate : TDateTime; AInputIsUTC : Boolean) : string'); Function ISO8601ToDate( const AISODate : string; AReturnUTC : Boolean) : TDateTime'); Function IsMask( const AString : string) : Boolean'); Function MatchesMask2( const AString, AMask : string) : Boolean'); Function StreamToBase64( const AStream : TStream) : string'); Procedure Base64ToStream( const ABase64 : string; const ADestStream : TStream); Function StreamToBytes( const ASource : TStream) : TBytes'); //Function GetEncodingName( const AEncoding : TEncoding) : string'); function StringFallback(const AStrings: array of string; const ADefault: string): string; function StripPrefix(const APrefix, AString: string): string; function StripSuffix(const ASuffix, AString: string): string; end; procedure SIRegister_U_CoasterB(CL: TPSPascalCompiler); begin //CL.AddTypeS('float', 'single'); CL.AddTypeS(tcoasterRealPoint', 'record x : single; y : single; end'); TTrackPoint', 'record x : single; y : single; angleright : single; ' +sinangleright : single; cosangleright : single; quadrantright : integer; len' +gthright : single; radiusright : single; end'); TTrackPointArray', 'array of TTrackPoint'); //carts', 'array of TCartLocRec' TTrackRec', 'record x : single; y : single; index : integer; distT' +oend : single; quadrant : integer; radius: single; angle: single; sinangle ' +: single; cosangle : single; end'); TCartLocRec', 'record p1 : tpoint; p2: tpoint; p3: tpoint; p4: tpoint; wr: integer; end'); TCartLocRecArray', 'array of TCartLocRec'); TLoopType', '( Insideloop, Outsideloop, none ); TTemplateMode', '( normal, makeline1, makeline2, makecircle1, makecircle2, movecircle ); CL.AddTypeS(ARRsoundstr', 'array [0..5] of string'); //type ARRstr = array [0..5] of string; SIRegister_TcoasterLine(CL); SIRegister_TcoasterCircle(CL); SIRegister_TCoaster(CL); end; procedure SIRegister_TSpring(CL: TPSPascalCompiler); begin //with RegClassS(CL,'tPanel', 'TSpring') do with CL.AddClassN(CL.FindClass('tPanel'),'TSpring') do begin K', 'single', iptrw); M', 'single', iptrw); G', 'single', iptrw); A', 'single', iptrw); x', 'single', iptrw); v', 'single', iptrw); C', 'single', iptrw); X0', 'single', iptrw); V0', 'single', iptrw); XEnd', 'single', iptrw); InitiallyConstrained', 'Boolean', iptrw); Timeinc', 'single', iptrw); Scale', 'single', iptrw); Stype', 'integer', iptrw); delay', 'integer', iptrw); pts', 'Tspringpointarray', iptrw); step', 'integer', iptrw); wraps', 'integer', iptrw); drawColor', 'TColor', iptrw); Constructor create( Aowner : TPanel; r : Trect); Procedure drawspring( Len : single); Procedure erasespring'); Procedure redrawinitial'); Function Setup(newV0,newX0,newC,newK,newM,newG,newTimeInc:single;newconstraint:bool; Nbrloops,newStep, newdelay: integer;newcolor:TColor):bool'); Procedure animate(form1: TForm; memo2: Tmemo); Procedure animate2(form1: TForm; memo2: Tmemo; detail: boolean); //procedure animate2(form1: TForm; memo2: Tmemo; detail: boolean); Procedure sizechanged( sender : TObject); Function GetMaxAmp : single'); end; end; procedure SIRegister_clJsonParser(CL: TPSPascalCompiler); begin SIRegister_EclJSONError(CL); CL.AddClassN(CL.FindClass('TOBJECT'),'TclJSONString'); CL.AddClassN(CL.FindClass('TOBJECT'),'TclJSONPair'); CL.AddClassN(CL.FindClass('TOBJECT'),'TclJSONObject'); CL.AddClassN(CL.FindClass('TOBJECT'),'TclJSONArray'); SIRegister_TclJSONBase(CL); SIRegister_TclJSONPair(CL); SIRegister_TclJSONValue(CL); SIRegister_TclJSONString(CL); SIRegister_TclJSONBoolean(CL); SIRegister_TclJSONArray(CL); SIRegister_TclJSONObject(CL); CL.AddConstantN('cUnexpectedDataEndCode','LongInt').SetInt( - 100); 'cUnexpectedDataSymbolCode','LongInt').SetInt( - 101); 'cInvalidControlSymbolCode','LongInt').SetInt( - 102); 'cInvalidUnicodeEscSequenceCode','LongInt').SetInt( - 103); 'cUnrecognizedEscSequenceCode','LongInt').SetInt( - 104); 'cUnexpectedDataTypeCode','LongInt').SetInt( - 106); function GetConnectionKind2(var strKind: string): Boolean; end; procedure SIRegister_SynHighlighterPython(CL: TPSPascalCompiler); begin CL.AddTypeS(TtkTokenKindpy', '( tkComment, tkIdentifier, tkKey, tkNull, tkNumb' +er, tkSpace, tkString, tkSymbol, tkNonKeyword, tkTrippleQuotedString, tkSy' +stemDefined, tkHex, tkOct, tkFloat, tkUnknown ); CL.AddTypeS('TRangeStatepy', '( rsANil,rsComment,rsUnKnown,rsMultilineString' +', rsMultilineString2, rsMultilineString3 ); SIRegister_TSynPythonSyn(CL); end; procedure SIRegister_DudsCommonDelphi(CL: TPSPascalCompiler); begin Function DelphiIDERunning : Boolean'); Function GetDelphiVersionRegistryKey( Version : Integer) : String'); Function GetDelphiRootDirectory( Version : Integer) : String'); Function IsDelphiVersionInstalled( Version : Integer) : Boolean'); Function GetDelphiEnvironmentVariables(Version:Int;const EnvironmentVariables:TStrings):Bool; Function GetDelphiLibraryPaths(Version:Int;const LibraryPaths:TStrings;EvaluateMacros:Bool;CheckPaths:Bool):Bool; function StrConcat(ArrS:array of string;Space:string):string; function StrDelSpc(s:string):string; function StrSplit2(S:string;Ch:char):TStringDynArray; procedure StrReplaceFirst(var S:string;olds,news:string); procedure StrReplaceLast(var S:string;OldS,NewS:string); procedure ConvertV3ToS(X,Y,Z:extended;var r,a,b:extended); procedure ConvertSToV3(R,A,B:extended;var X,Y,Z:extended); procedure InterpolateColor(Color0,Color1:TColor;Count:integer;var TempColor:array of TColor); function TryStrToextended(const S: string; out Value: extended): Boolean; function isAVXSupported: Boolean; function GetEXEVersionData(const FileName: string): TEXEVersionData; function txtsearch(pat: string; text: string): integer; procedure GetRegisteredAntiviruses(ProgIDs: TStrings); type TEXEVersionData = record CompanyName, FileDescription, FileVersion, InternalName, LegalCopyright, LegalTrademarks, OriginalFileName, ProductName, ProductVersion, Comments, PrivateBuild, SpecialBuild: string; end; type TNeuronClass = class(TObject) private FThreshold: Single; FInputCount: Integer; FInputs:TSingleDynArray; FWeights:TSingleDynArray; FAnalogOutput: Boolean; function GetInput(Index: Integer): Single; function GetOutput: Single; function GetWeight(Index: Integer): Single; procedure SetInput(Index: Integer; const Value: Single); procedure SetWeight(Index: Integer; const Value: Single); procedure SetInputCount(const Value: Integer); function GetLoad: Single; public Constructor Create(aInputCount:Integer); procedure RandomInitialize; Property Load:Single read GetLoad; property Output:Single read GetOutput; property Threshold:Single read FThreshold write FThreshold; property Inputs[Index: Integer]: Single read GetInput write SetInput; property Weights[Index: Integer]: Single read GetWeight write SetWeight; property InputCount:Integer read FInputCount write SetInputCount; property AnalogOutput:Boolean read FAnalogOutput write FAnalogOutput; end; TPJConsoleApp:= class(TPJCustomConsoleApp) Console Application Runner CAR public // Make all inherited protected properties public property StdIn; property StdOut; property StdErr; property CommandLine; property CurrentDir; property Visible; property MaxExecTime; property TimeSlice; property KillTimedOutProcess; property ProcessAttrs; property ThreadAttrs; property UseNewConsole; property ConsoleTitle; property ConsoleColors; property ScreenBufferSize; property WindowPosition; property WindowSize; property Environment; property UnicodeEnvironment; property Priority; property TimeToLive; property ElapsedTime; property ProcessInfo; property ExitCode; property ErrorCode; property ErrorMessage; property OnStart; property OnWork; property OnComplete; end; procedure SIRegister_uHTMLBuilder(CL: TPSPascalCompiler); begin SIRegister_THTMLBase(CL); SIRegister_THTMLCell(CL); CL.AddTypeS(TAfterAddRow', 'Procedure (Table:THTMLBase; DataSet: TDataSet); SIRegister_THTMLItem(CL); SIRegister_THTMLParagraph(CL); SIRegister_THTMLRow(CL); SIRegister_THTMLTable(CL); SIRegister_THTMLReport(CL); SIRegister_THTMLBuild(CL); end; https://github.com/guitorres/htmlbuilder/blob/master/src/uHTMLBuilder.pas procedure SIRegister_RestJsonUtils(CL: TPSPascalCompiler); begin CL.AddClassN(CL.FindClass('TOBJECT'),'EJsonInvalidValue'); CL.AddClassN(CL.FindClass('TOBJECT'),'EJsonInvalidValueForField'); CL.AddClassN(CL.FindClass('TOBJECT'),'EJsonInvalidSyntax'); SIRegister_ENoSerializableClass(CL); SIRegister_TJsonUtil(CL); Function JavaToDelphiDateTime2( const dt : int64) : TDateTime'); Function DelphiToJavaDateTime2( const dt : TDateTime) : int64'); Function ISO8601DateToJavaDateTime( const str : String; var ms : Int64) : Boolean'); Function ISO8601DateToDelphiDateTime( const str : string; var dt : TDateTime) : Boolean'); Function DelphiDateTimeToISO8601Date2( dt : TDateTime) : string'); end; procedure SIRegister_pxQRcode(CL: TPSPascalCompiler); begin CL.AddConstantN('QR_ECLEVEL_L','LongInt').SetInt( 0); ('QR_ECLEVEL_M','LongInt').SetInt( 1); ('QR_ECLEVEL_Q','LongInt').SetInt( 2); ('QR_ECLEVEL_H','LongInt').SetInt( 3); Procedure CreateQRCodeBMP( const AText:string;const ABitmapStream:TStream;const ALevel:Byte;const ASize:Int); end; procedure SIRegister_DelphiZXingQRCode(CL: TPSPascalCompiler); begin TQRCodeEncoding','( qrcAuto,qrcNumeric,qrcAlphanumeric,qrcISO88591,qrcUTF8NoBOM,qrcUTF8BOM ); CL.AddTypeS(T2DBooleanArray', 'array of array of Boolean'); SIRegister_TDelphiZXingQRCode(CL); end; function DownloadArchive( sURL, sArchivoLocal: String ): boolean; function GetUrlContent(const Url: string): UTF8String; procedure FindFiles2List(StartDir,FileMask: string; recursively:boolean; var FilesList: TStringList); unit UtilsTimeCode; function TCtoFrames(S:String):Integer; function FramestoTC(Fi:Integer):String; function DFtoFrames(S:String):Integer; function FramestoDF(Fi:Integer):String; function ValidDropFrame(S:String):Boolean; unit uPSI_KLibUtils; procedure SIRegister_KLibUtils(CL: TPSPascalCompiler); begin CL.AddTypeS('TResourceklib', 'record name : string; _type : string; end'); CL.AddTypeS('TAnonymousMethodklib',{reference to} 'procedure'); CL.AddTypeS('TCallBackklib', 'procedure(msg: string); Procedure deleteFilesInDirklib( pathDir : string; const filesToKeep : array of string); Procedure deleteFilesInDirWithStartingFileNameklib(dirName:string; startingFileName:string;fileType:string); Function checkIfFileExistsAndEmptyklib( fileName : string) : boolean'); Procedure deleteFileIfExistsklib( fileName : string); Function getTextFromFileklib( fileName : string) : string'); Function checkIfThereIsSpaceAvailableOnDriveklib( drive : char; requiredSpaceInBytes:int64): boolean'); Function getFreeSpaceOnDriveklib( drive : char) : int64'); Function getIndexOfDriveklib( drive : char) : integer'); Function getDriveExeklib : char'); Function getDirSizeklib( path : string) : int64'); Function getCombinedPathWithCurrentDirklib( pathToCombine : string) : string'); Function getDirExeklib : string'); Procedure createDirIfNotExistsklib( dirName : string); Function checkIfIsLinuxSubDirklib( subDir : string; mainDir : string) : boolean'); Function getPathInLinuxStyleklib( path : string) : string'); Function checkIfIsSubDirklib(subDir : string; mainDir: string; trailingPathDelimiter:char):boolean'); Function getValidFullPathklib( fileName : string) : string'); Function checkMD5Fileklib( fileName : string; MD5 : string) : boolean'); Procedure unzipResourceklib( nameResource : string; destinationDir : string); //Function getPNGResource( nameResource : string) : TPngImage'); Procedure getResourceAsEXEFileklib( nameResource : string; destinationFileName: string); Procedure getResourceAsZIPFileklib( nameResource : string; destinationFileName: string); Procedure getResourceAsFileklib( resource : TResourceklib; destinationFileName: string); Function getResourceAsString( resource : TResourceklib) : string'); Function getResourceAsStringklib( resource : TResourceklib) : string'); Function getResourceAsStreamklib( resource : TResourceklib) : TResourceStream'); Procedure unzipklib( zipFileName : string; destinationDir : string; deleteZipAfterUnzip : boolean); //Function checkRequiredFTPProperties( FTPCredentials : TFTPCredentials) : boolean'); Function getValidItalianTelephoneNumberklib( number : string) : string'); Function getValidTelephoneNumberklib( number : string) : string'); Function getRandStringklib( size : integer) : string'); Function getFirstFileNameInDirklib( dirName : string; fileType: string; fullPath: boolean): string'); Function getFileNamesListInDirklib( dirName : string; fileType: string; fullPath: boolean): TStringList'); Procedure saveToFileklib( source : string; fileName : string); Function getCombinedPathklib( path1 : string; path2 : string) : string'); Function getCurrentDayOfWeekAsStringklib : string'); Function getDayOfWeekAsStringklib( date : TDateTime) : string'); Function getCurrentDateTimeAsStringklib : string'); Function getDateTimeAsStringklib( date : TDateTime) : string'); Function getCurrentDateAsStringklib : string'); Function getDateAsStringklib( date : TDateTime) : string'); Function getCurrentTimeStampklib : string'); Function getCurrentDateTimeAsStringWithFormattingklib( formatting : string) : string'); Function getDateTimeAsStringWithFormattingklib( value : TDateTime; formatting: string): string'); Function getCurrentDateTimeklib : TDateTime'); Function getParsedXMLstringklib( mainString : string) : string'); Function getDoubleQuotedStringklib( mainString : string): string'); Function getSingleQuotedStringklib( mainString : string): string'); Function getMainStringWithSubStringInsertedklib(mainString:string;insertedString:string;index:integer):string; Function getStringWithoutLineBreaksklib( mainString : string; substituteString : string) : string'); Function getCSVFieldFromStringAsDateklib( mainString :string; index : integer; delimiter : Char): TDate; Function getCSVFieldFromStringAsDate1klib(mainString:string;index:integer;formatSettings:TFormatSettings; delimiter:Char):TDate; Function getCSVFieldFromStringAsDoubleklib( mainString:string; index:integer;delimiter:Char):Double; Function getCSVFieldFromStringAsDouble2klib(mainString:string;index:integer;formatSettings:TFormatSettings; delimiter:Char):Double; Function getCSVFieldFromStringAsIntegerklib(mainString:string;index:integer;delimiter:Char):integer'); Function getCSVFieldFromStringklib( mainString : string; index : integer; delimiter : Char): string'); Function getNumberOfLinesInStrFixedWordWrapklib( source : string) : integer'); Function stringToStrFixedWordWrapklib( source : string; fixedLen : Integer) : string'); Function stringToStringListWithFixedLenklib( source : string; fixedLen : Integer) : TStringList'); Function stringToStringListWithDelimiterklib( value : string; delimiter : Char) : TStringList'); Function stringToTStringListklib( source : string) : TStringList'); Function arrayOfStringToTStringListklib( arrayOfStrings : array of string) : TStringList'); Procedure splitStringsklib(source:str;delimiter:str;var destFirstString:str;var destSecondString: string); Procedure splitStrings2klib(source:str;delimiterPosition:int;var destFirstString:str;var destSecondString:str); Function getMergedStringsklib( firstString : string; secondString : string; delimiter: string): string'); Function checkIfEmailIsValidklib( email : string) : boolean'); Function checkIfMainStringContainsSubStringNoCaseSensitiveklib(mainString:string;subString:string):boolean; Function checkIfMainStringContainsSubStringklib(mainString:str;subString:str;caseSensitiveSearch:bool):bool; Function getDoubleAsStringklib( value : Double; decimalSeparator : char) : string'); Function getFloatToStrDecimalSeparatorklib : char'); Procedure tryToExecuteProcedureklib( myProcedure: TAnonymousMethodklib; raiseExceptionEnabled: boolean); Procedure tryToExecuteProcedure2klib( myProcedure : TCallBackklib; raiseExceptionEnabled : boolean); //Procedure tryToExecuteProcedure3( myProcedure : TProcedure; raiseExceptionEnabled : boolean); Procedure executeProcedureklib( myProcedure : TAnonymousMethodklib); Procedure executeProcedure2klib( myProcedure : TCallBackklib); function setResourceHInstanceklib(aresource: longword): longword; function setResourceHInstanceklib(aresource: longword): longword; function executeAndWaitExe(fileName:string; params:string; exceptionIfReturnCodeIsNot0:boolean):LongInt; end; procedure SIRegister_KLibWindows(CL: TPSPascalCompiler); begin //CL.AddDelphiFunction('Procedure downloadFile( info : TDownloadInfo; forceOverwrite : boolean); Function getFirstPortAvaliableklib( defaultPort : integer; host : string) : integer'); Function checkIfPortIsAvaliableklib( host : string; port : Word) : boolean'); Function checkIfAddressIsLocalhostklib( address : string) : boolean'); Function getIPFromHostNameklib( hostName : string) : string'); Function getIPklib : string'); Function checkIfRunUnderWineklib : boolean'); Function checkIfWindowsArchitectureIsX64klib : boolean'); CL.AddTypeS('TPIDCredentials', 'record ownerUserName : string; domain : string; end'); CL.AddTypeS('TWindowsArchitectureklib', '( WindowsX86, WindowsX64 ); Function getWindowsArchitectureklib : TWindowsArchitectureklib'); Function checkIfUserIsAdminklib : boolean'); Function IsUserAnAdminklib : boolean'); CL.AddTypeS(TShowWindowType','( _SW_HIDE, _SW_SHOWNORMAL, _SW_NORMAL, _SW_S' +HOWMINIMIZED, _SW_SHOWMAXIMIZED, _SW_MAXIMIZE, _SW_SHOWNOACTIVATE, _SW_SHO' +W,_SW_MINIMIZE,_SW_SHOWMINNOACTIVE,_SW_SHOWNA,_SW_RESTORE,_SW_SHOWDEFAULT,_SW_FORCEMINIMIZE,_SW_MAX ); Procedure openWebPageWithDefaultBrowserklib( url : string); Function shellExecuteOpenklib(fileName:string;params:string;directory:string;showWindowType:TShowWindowType; exceptionIfFunctionFails:boolean):integer'); Function shellExecuteExeAsAdminklib(fileName:string;params:string;showWindowType : TShowWindowType; exceptionIfFunctionFails:boolean):integer'); Function shellExecuteExeklib(fileName:string;params:string;showWindowType:TShowWindowType; exceptionIfFunctionFails:boolean;operation: string):integer'); Function myShellExecuteklib(handle:int;operation:string;fileName:string;params:string;directory:string;showWindowType:TShowWindowType;exceptionIfFunctionFails:bool):int'); Function shellExecuteExCMDAndWaitklib(params:string;runAsAdmin:boolean;showWindowType:TShowWindowType; exceptionIfReturnCodeIsNot0:boolean):LongInt'); Function shellExecuteExAndWaitklib(fileName:string; params:string;runAsAdmin:boolean;showWindowType: TShowWindowType;exceptionIfReturnCodeIsNot0:boolean) : LongInt'); Function executeAndWaitExeklib(fileName:string;params:string;exceptionIfReturnCodeIsNot0:bool):LongInt'); Function netShareklib( targetDir : string; netName : string; netPassw : string; grantAllPermissionToEveryoneGroup : boolean) : string'); Procedure addTCP_IN_FirewallExceptionklib(ruleName:string;port:Word;description:string;grouping:string; executable:string) Procedure deleteFirewallExceptionklib( ruleName : string); // CL.AddTypeS('TExplicitAccess', 'EXPLICIT_ACCESS_A'); Procedure grantAllPermissionsNetToTheObjectForTheEveryoneGroupklib( myObject : string); Procedure grantAllPermissionsNetToTheObjectForTheUsersGroupklib( myObject : string); Procedure grantAllPermissionNetToTheObjectklib( windowsGroupOrUser : string; myObject : string); Procedure grantAllPermissionsToTheObjectForTheEveryoneGroupklib( myObject : string); Procedure grantAllPermissionsToTheObjectForTheUsersGroupklib( myObject : string); Procedure grantAllPermissionsToTheObjectklib( windowsGroupOrUser : string; myObject : string); Procedure grantAllPermissionsToTheObjectForTheEveryoneGroup2klib( myObject : string); Procedure grantAllPermissionsToTheObjectForTheUsersGroup2klib( myObject : string); Procedure grantAllPermissionsToTheObject2klib( windowsGroupOrUser : string; myObject : string); Function checkIfWindowsGroupOrUserExistsklib( windowsGroupOrUser : string) : boolean'); Procedure createDesktopLinkklib( fileName : string; nameDesktopLink : string; description: string); Function getDesktopDirPathklib : string'); Procedure copyDirIntoTargetDirklib( sourceDir : string; targetDir : string; forceOverwrite : boolean); Procedure copyDirklib( sourceDir : string; destinationDir : string; silent : boolean); Procedure createHideDirklib( dirName : string; forceDelete : boolean); Procedure deleteDirectoryIfExistsklib( dirName : string; silent : boolean); Procedure myMoveFileklib( sourceFileName : string; targetFileName : string); Procedure createEmptyFileIfNotExistsklib( filename : string); Procedure createEmptyFileklib( filename : string); Function checkIfIsWindowsSubDirklib( subDir : string; mainDir : string) : boolean'); Function getParentDirklib( source : string) : string'); Function getValidFullPathInWindowsStyleklib( path : string) : string'); Function getPathInWindowsStyleklib( path : string) : string'); Function getStringWithEnvVariablesReadedklib( source : string) : string'); Function setProcessWindowToForegroundklib( processName : string) : boolean'); Function getPIDOfCurrentUserByProcessNameklib( nameProcess : string): DWORD'); Function getWindowsUsernameklib : string'); Function checkUserOfProcessklib( userName : String; PID : DWORD) : boolean'); Function getPIDCredentialsklib( PID : DWORD) : TPIDCredentials'); Function getPIDByProcessNameklib( nameProcess : string) : DWORD'); Function getMainWindowHandleByPIDklib( PID : DWORD) : DWORD'); Procedure closeApplicationklib( handle : THandle); Function sendMemoryStreamUsing_WM_COPYDATAklib( handle : THandle; data : TMemoryStream) : integer'); Function sendStringUsing_WM_COPYDATAklib(handle:THandle; data:string; msgIdentifier: integer):integer'); Procedure mySetForegroundWindowklib( handle : THandle); Function checkIfWindowExistsklib( className : string; captionForm : string) : boolean'); Function myFindWindowklib( className : string; captionForm : string) : THandle'); Function checkIfExistsKeyIn_HKEY_LOCAL_MACHINEklib( key : string) : boolean'); Procedure waitForMultipleklib( processHandle : THandle; timeout : DWORD; modalMode : boolean); Procedure waitForklib( processHandle : THandle; timeout : DWORD; modalMode : boolean); Procedure raiseLastSysErrorMessageklib'); Function getLastSysErrorMessageklib : string'); Function getLocaleDecimalSeparatorklib : char'); Procedure terminateCurrentProcessklib( exitCode : Cardinal; raiseExceptionEnabled : boolean); Procedure myTerminateProcessklib(processHandle:THandle;exitCode:Cardinal;raiseExceptionEnabled: boolean); //Function fixedGetNamedSecurityInfo( pObjectName: LPWSTR; ObjectType:SE_OBJECT_TYPE;SecurityInfo: SECURITY_INFORMATION; ppsidOwner,ppsidGroup:PPSID;ppDacl, ppSacl : PPACL; var ppSecurityDescriptor : PSECURITY_DESCRIPTOR) : DWORD'); end; https://github.com/lonewolfonline/delphi-utilities/blob/master/AzuliaUtils.pas procedure SIRegister_TAzuliaHTML(CL: TPSPascalCompiler); begin //with RegClassS(CL,'TComponent', 'TAzuliaHTML') do with CL.AddClassN(CL.FindClass('TComponent'),'TAzuliaHTML') do begin RegisterMethod('Function HeadTop( Title : string) : string'); Function HeadClose : string'); Function BodyTop(LeftMargin,RightMargin:Integer;TextColor,LinkColor,VisitedLinkColor,ActiveLinkColor,BackgroundColor,BackgroundImage:string; FixedBackground:bool;Extra:string):string'); Function BodyClose : string'); Function ConvertDOSPathToHTML( WindowsPath : string) : string'); Function ConvertHTMLPathToDOS( WindowsPath : string) : string'); end; end; (*----------------------------------------------------------------------------*) procedure SIRegister_TAzuliaDisk(CL: TPSPascalCompiler); begin //with RegClassS(CL,'TComponent', 'TAzuliaDisk') do with CL.AddClassN(CL.FindClass('TComponent'),'TAzuliaDisk') do begin Function GetDiskLabel( Drive : char) : string'); Function GetDiskSerial( Drive : char) : string'); Function GetDiskFileSystem( Drive : char) : string'); Function GetDiskType( Drive : char) : integer'); Function GetDiskFlags( Drive : char) : integer'); Procedure ChangeDiskLabel( Drive : char; NewLabel : string); end; end; (*----------------------------------------------------------------------------*) procedure SIRegister_TAzuliaSpeaker(CL: TPSPascalCompiler); begin //with RegClassS(CL,'TComponent', 'TAzuliaSpeaker') do with CL.AddClassN(CL.FindClass('TComponent'),'TAzuliaSpeaker') do begin Procedure Delay( MSecs : Integer); Procedure Play( Freq : Word; MSecs : Integer); Procedure Stop'); end; end; (*----------------------------------------------------------------------------*) procedure SIRegister_TAzuliaFiles(CL: TPSPascalCompiler); begin //with RegClassS(CL,'TOBJECT', 'TAzuliaFiles') do with CL.AddClassN(CL.FindClass('TOBJECT'),'TAzuliaFiles') do begin Procedure FindRecursive(const path: string;const mask:string;LogFunction:TLogFunct;Re_curse:Boolean); Procedure SearchFileExt( const Dir, Ext : string; Files : TStrings); Function GetFileSize( const FileName : string) : LongInt'); Function GetKBFileSize( FileSize : integer) : string'); Function LongToShortFilename( LongFilename : string) : string'); Function ShortToLongFilename( LongFilename : string) : string'); Procedure AppendDataToFilename( Filename, Data : string); Procedure SaveDataToFilename( Filename, Data : string); Procedure CopyFile( const FileName, DestName : string); Procedure MoveFile( const FileName, DestName : string); Function HasAttr( const FileName : string; Attr : Word) : Boolean'); Function ExecuteFile( const FileName, Params, DefaultDir : string; ShowCmd : Integer) : THandle'); Function GetWindowsDir : string'); Function GetTempDir : string'); Function GetINIString( Section, Ident, DefaultString, Filename : string): string'); end; end; (*----------------------------------------------------------------------------*) procedure SIRegister_TAzuliaStrings(CL: TPSPascalCompiler); begin //with RegClassS(CL,'TOBJECT', 'TAzuliaStrings') do with CL.AddClassN(CL.FindClass('TOBJECT'),'TAzuliaStrings') do begin Function NPos( C : Char; S : string; N : Byte) : Byte'); Function IntToRoman( Value : Longint) : string'); Function RomanToInt( const S : string) : Longint'); Function GetDirFromStr( DirectoryString : string; IndexFromRight : integer) : string'); Function RemoveChars( InputString : string; CharToRemove : Char) : string'); Function GetStringFromGarbage( InputString : string; Index : integer) : string'); Function SplitupWithGarbage( InputString : string; CommonSplitter : char) : string'); Function GetCount( Character : char; InputString : string) : integer'); Function RemoveTrailingChars( StringToRemoveFrom : string; Trailer : char) : string'); end; end; (*----------------------------------------------------------------------------*) procedure SIRegister_TSystemRegistry(CL: TPSPascalCompiler); begin //with RegClassS(CL,'TOBJECT', 'TSystemRegistry') do with CL.AddClassN(CL.FindClass('TOBJECT'),'TSystemRegistry') do begin Function GetStringFromRegistry( Root : integer; Key, Value : string) : string'); Function SaveStringToRegistry( Root : integer; Key, Value, Name : string) : bool'); Procedure ToggleBinaryValue( RootKey : integer; Path, Key : string); Procedure DeleteValueInRegistry( RootKey : integer; Path, Name : string); Procedure RenameValueInRegistry( RootKey : integer; Path, OldName, NewName : string); end; end; (*----------------------------------------------------------------------------*) procedure SIRegister_TBrowseForFolderDialog(CL: TPSPascalCompiler); begin //with RegClassS(CL,'TOBJECT', 'TBrowseForFolderDialog') do with CL.AddClassN(CL.FindClass('TOBJECT'),'TBrowseForFolderDialog') do begin RegisterProperty('Title', 'string', iptrw); Function Execute : Boolean'); RegisterProperty('Path', 'string', iptr); end; end; (*----------------------------------------------------------------------------*) procedure SIRegister_IShellLink(CL: TPSPascalCompiler); begin //with RegClassS(CL,'TOBJECT', 'IShellLink') do with CL.AddClassN(CL.FindClass('TOBJECT'),'IShellLink') do begin Function GetPath(pszFile:LPSTR;cchMaxPath:integer; var pfd:TWin32FindData;fFlags:DWORD):HResult'); Function GetIDList( var ppidl : PITEMIDLIST) : HResult'); Function SetIDList( pidl : PITEMIDLIST) : HResult'); Function GetDescription( pszName : LPSTR; cchMaxName : integer) : HResult'); Function SetDescription( pszName : LPSTR) : HResult'); Function GetWorkingDirectory( pszDir : LPSTR; cchMaxPath : integer) : HResult'); Function SetWorkingDirectory( pszDir : LPSTR) : HResult'); Function GetArguments( pszArgs : LPSTR; cchMaxPath : integer) : HResult'); Function SetArguments( pszArgs : LPSTR) : HResult'); Function GetHotkey( var pwHotkey : word) : HResult'); Function SetHotkey( wHotkey : word) : HResult'); Function GetShowCmd( var piShowCmd : integer) : HResult'); Function SetShowCmd( iShowCmd : integer) : HResult'); Function GetIconLocation( pszIconPath LPSTR;cchIconPath:integer;var piIcon: integer): HResult'); Function SetIconLocation( pszIconPath : LPSTR; iIcon : integer) : HResult'); Function SetRelativePath( pszPathRel : LPSTR; dwReserved : DWORD) : HResult'); Function Resolve( Wnd : HWND; fFlags : DWORD) : HResult'); Function SetPath( pszFile : LPSTR) : HResult'); end; end; (*----------------------------------------------------------------------------*) procedure SIRegister_AzuliaUtils(CL: TPSPascalCompiler); begin CL.AddTypeS('azucharSet', 'set of char'); SIRegister_IShellLink(CL); SIRegister_TBrowseForFolderDialog(CL); SIRegister_TSystemRegistry(CL); SIRegister_TAzuliaStrings(CL); CL.AddTypeS(TLogFunct', 'Function ( const path : string; const SRec : TSearchRec) : Boolean'); SIRegister_TAzuliaFiles(CL); SIRegister_TAzuliaSpeaker(CL); SIRegister_TAzuliaDisk(CL); SIRegister_TAzuliaHTML(CL); CL.AddTypeS('GrabType', '( GTSCREEN, GTWINDOW, GTCLIENT ); CL.AddClassN(CL.FindClass('TOBJECT'),'EInvalidDest'); CL.AddClassN(CL.FindClass('TOBJECT'),'EFCantMove'); Function azuBoolToStr( value : boolean) : string'); Procedure azuChangeWallpaper( FName : string; IsTiled, IsStretch : Boolean); Function azuDoIExist( WndTitle : string) : Boolean'); Procedure azuAlert( Text : string); Procedure azuTileImage( SourceImage, DestImage : TImage); Function azuIncChar( iX : Char) : Char'); Function azuDecChar( iX : Char) : Char'); Procedure azuSaveForm( F : TForm; Filename : string); Procedure azuLoadForm( F : TForm; Filename : string); Function azuToggleBool( totoggle : bool) : bool'); Function azuremoveTrailingChars( const s : string; chars : azucharSet) : string'); Function azuremoveLeadChars( const s : string; chars : azucharSet) : string'); Function azuremoveChars( const s : string; chars : char) : string'); Procedure azuDelay( MSecs : Integer); Function azuSHBrowseDialog( title : string; Handle : integer) : string'); Procedure azuregisterfiletype( Extention, REGDesc, UserDesc, Icon, Appl : string); Procedure azuRemoveFileType( Extention, RegDesc : string); Procedure azuGetFunctionNamesFromDLL( DLLName : string; List : TStrings); Procedure azuSaveListViewToFile( AListView : TListView; sFileName : string); Procedure azuLoadListViewToFile( AListView : TListView; sFileName : string); Procedure azuLoadCSV( Filename : string; sg : TStringGrid); Function azuJPEGDimensions( Filename : string; var X, Y : Word) : boolean'); Procedure azuResizeImage( FileName : string; MaxWidth : Integer); Function azuSaveJPEGPictureFile(Bitmap:TBitmap;FilePath,FileName:string;Quality:Integer): Boolean'); Function azuLoadJPEGPictureFile( Bitmap : TBitmap; FilePath, FileName : string) : Boolean'); Procedure azuSmoothResize( Src, Dst : TBitmap); Function azuMsecToStr( Milli : Cardinal) : string'); Procedure azuDirToStrings( APath : string; AStrings : TStrings; WithExt, WithPath : boolean); Procedure azuSetWallPaper( ImageFileName : string; IsTiled : boolean); Function azuGetFileSize( FileName : string) : int64'); Function azuGetExeByExtension( sExt : string) : string'); Function azuRefreshScreenIcons : Boolean'); Function azuIndexToColor( AIndex : integer) : TColor'); Function azuColorToIndex( AColor : TColor) : integer'); Function azuTitleCase( Text2 : string) : string'); Function azuToggleCase( Text2 : string) : string'); Function azuSentenceCase( Text2 : string) : string'); Procedure azuGrabScreen( bm : TBitMap; gt : GrabType); Procedure azuSaveStringGrid( StringGrid : TStringGrid; FileName : String); Procedure azuLoadStringGrid( StringGrid : TStringGrid; FileName : String); Function azuGetInetFile( const fileURL, FileName : String) : boolean'); Procedure azuRunOnStartup( sProgTitle, sCmdLine : string; bRunOnce : boolean); Procedure azuRemoveOnStartup( sProgTitle : string); CL.AddConstantN('SInvalidDest','String').SetString( 'Destination %s does not exist'); SFCantMove','String').SetString( 'Cannot move file %s'); AzuMsg1','String').SetString( 'File "%s" does not exist!'); AzuMsg2','String').SetString( '"%s" is not a ListView file!'); sr_WindowMetrics','String').SetString( 'Control Panel\Desktop\WindowMetrics\'); sr_ShellIconSize','String').SetString( 'Shell Icon Size'); end; procedure SIRegister_TALWinInetHTTPClient2(CL: TPSPascalCompiler); begin //with RegClassS(CL,'TALHTTPClient2', 'TALWinInetHTTPClient2') do with CL.AddClassN(CL.FindClass('TALHTTPClient2'),'TALWinInetHTTPClient2') do begin RegisterMethod('Constructor Create'); Procedure Free'); Procedure Connect'); Procedure Disconnect'); AccessType', 'TALWinInetHttpInternetOpenAccessType', iptrw); InternetOptions', 'TAlWininetHTTPClientInternetOptionSet', iptrw); OnStatus', 'TAlWinInetHTTPClientStatusEvent', iptrw); IgnoreSecurityErrors', 'Boolean', iptrw); end; end; procedure SIRegister_TALHTTPClient2(CL: TPSPascalCompiler); begin //with RegClassS(CL,'TObject', 'TALHTTPClient') do with CL.AddClassN(CL.FindClass('TObject'),'TALHTTPClient2') do begin Constructor Create'); Procedure Free'); Procedure Get(const aUrl:AnsiString;const aRequestFields:TALStrings;const aResponseContent:TStream;const aResponseHeader:TALHTTPResponseHeader2; const ARequestHeaderValues: TALNameValueArray; const aEncodeRequestFields:Bool); Procedure Get1(const aUrl:AnsiString;const aResponseContent:TStream;const aResponseHeader: TALHTTPResponseHeader2;const ARequestHeaderValues:TALNameValueArray); Function Get2(const aUrl:AnsiString; const ARequestHeaderValues : TALNameValueArray) : AnsiString;'); Function Get3(const aUrl:AnsiString;const aRequestFields:TALStrings;const ARequestHeaderValues:TALNameValueArray;const aEncodeRequestFields:Boolean):AnsiString;'); Procedure Post(const aUrl:AnsiString; const aResponseContent:TStream;const aResponseHeader:TALHTTPResponseHeader2;const ARequestHeaderValues:TALNameValueArray);'); Procedure Post1(const aUrl:AnsiString;const aPostDataStream:TStream;const aResponseContent:TStream;const aResponseHeader:TALHTTPResponseHeader2; const ARequestHeaderValues: TALNameValueArray);'); Function Post2(const aUrl: AnsiString; const ARequestHeaderValues: TALNameValueArray):AnsiString;'); Function Post3(const aUrl:AnsiString;const aPostDataStream:TStream;const ARequestHeaderValues: TALNameValueArray):AnsiString;'); Procedure PostUrlEncoded(const aUrl:AnsiString;const aRequestFields:TALStrings;const aResponseContent : TStream; const aResponseHeader: TALHTTPResponseHeader2;const ARequestHeaderValues: TALNameValueArray;const aEncodeRequestFields:Bool); Function PostUrlEncoded1(const aUrl:AnsiString;const aRequestFields:TALStrings;const ARequestHeaderValues : TALNameValueArray; const aEncodeRequestFields:Boolean):AnsiString;'); Procedure PostMultipartFormData(const aUrl:AnsiString;const aRequestFields:TALStrings;const aRequestFiles:TALMultiPartFormDataContents; const aResponseContent:TStream;const aResponseHeader' + ':TALHTTPResponseHeader2;const ARequestHeaderValues:TALNameValueArray);'); Function PostMultiPartFormData1(const aUrl: AnsiString; const aRequestFields: TALStrings; const aRequestFiles:TALMultiPartFormDataContents;const ARequestHeaderValues: TALNameValueArray): AnsiString;'); Procedure Head(const aUrl:AnsiString;const aResponseContent:TStream;const aResponseHeader: TALHTTPResponseHeader2;const ARequestHeaderValues: TALNameValueArray);'); Function Head1(const aUrl: AnsiString; const ARequestHeaderValues: TALNameValueArray) : AnsiString;'); Procedure Trace(const aUrl:AnsiString;const aResponseContent:TStream;const aResponseHeader: TALHTTPResponseHeader2;const ARequestHeaderValues:TALNameValueArray);'); Function trace1( const aUrl:AnsiString; const ARequestHeaderValues:TALNameValueArray) : AnsiString;'); Procedure Put(const aUrl:AnsiString;const aPutDataStream:TStream;const aResponseContent:TStream;const aResponseHeader:TALHTTPResponseHeader2; const ARequestHeaderValues:TALNameValueArray; Function Put1(const aURL:Ansistring;const aPutDataStream:TStream;const ARequestHeaderValues: TALNameValueArray):AnsiString;; Procedure Delete(const aUrl: AnsiString;const aResponseContent:TStream;const aResponseHeader:TALHTTPResponseHeader2;const ARequestHeaderValues:TALNameValueArray);'); Function Delete1(const aURL:Ansistring;const ARequestHeaderValues: TALNameValueArray): AnsiString;'); Procedure Options(const aUrl:AnsiString;const aResponseContent:TStream;const aResponseHeader: TALHTTPResponseHeader2;const ARequestHeaderValues:TALNameValueArray); Function Options1(const aURL:Ansistring; const ARequestHeaderValues:TALNameValueArray):AnsiString;'); RegisterProperty('ConnectTimeout', 'Integer', iptrw); SendTimeout', 'Integer', iptrw); ReceiveTimeout', 'Integer', iptrw); UploadBufferSize', 'cardinal', iptrw); ProxyParams', 'TALHTTPClientProxyParams', iptr); RequestHeader', 'TALHTTPRequestHeader2', iptr); ProtocolVersion', 'TALHTTPProtocolVersion', iptrw); UserName', 'AnsiString', iptrw); Password', 'AnsiString', iptrw); OnUploadProgress', 'TALHTTPClientUploadProgressEvent', iptrw); OnDownloadProgress', 'TALHTTPClientDownloadProgressEvent', iptrw); OnRedirect', 'TAlHTTPClientRedirectEvent', iptrw); end; end; procedure SIRegister_ALHttpClient2(CL: TPSPascalCompiler); begin TALHTTPPropertyChangeEvent', 'Procedure ( sender: Tobject; const PropertyIndex: Integer)'); TALHTTPProtocolVersion', '( HTTPpv_1_0, HTTPpv_1_1 )'); TALHTTPMethod2', '( HTTPmt_Get, HTTPmt_Post, HTTPmt_Head, HTTPmt_' +'Trace, HTTPmt_Put, HTTPmt_Delete, HTTPmt_Options )'); SIRegister_TALHTTPRequestHeader2(CL); TALNameValuePair', 'record Name : ansistring; Value : ansistring; end'); TALNameValueArray', 'array of TALNameValuePair'); SIRegister_TALHTTPCookie2(CL); SIRegister_TALHTTPCookieCollection2(CL); SIRegister_TALHTTPResponseHeader2(CL); SIRegister_EALHTTPClientException2(CL); SIRegister_TALHTTPClientProxyParams2(CL); TAlHTTPClientRedirectEvent', 'Procedure ( sender : Tobject; const NewURL : AnsiString)'); TALHTTPClientUploadProgressEvent', 'Procedure ( sender : Tobject; Sent: Integer; Total: Integer)'); TALHTTPClientDownloadProgressEvent','Procedure ( sender: Tobject; Read: Integer; Total: Integer)'); SIRegister_TALHTTPClient2(CL); Procedure ALHTTPEncodeParamNameValues2( const ParamValues : TALStrings)'); //Procedure ALExtractHTTPFields( Separators,WhiteSpace,Quotes: TSysCharSet; Content:PAnsiChar; Strings : TALStrings; StripQuotes : Boolean)'); Function AlRemoveShemeFromUrl2( const aUrl : AnsiString) : ansiString'); Function AlExtractShemeFromUrl2( const aUrl : AnsiString) : TInternetScheme'); Function AlExtractHostNameFromUrl2( const aUrl : AnsiString) : AnsiString'); Function AlExtractDomainNameFromUrl2( const aUrl : AnsiString) : AnsiString'); Function AlExtractUrlPathFromUrl2( const aUrl : AnsiString) : AnsiString'); Function AlInternetCrackUrl2(const aUrl:AnsiString;var SchemeName,HostName,UserName,Password,UrlPath,ExtraInfo : AnsiString;var PortNumber:integer):Bool; Function AlInternetCrackUrl12(const aUrl:AnsiString;var SchemeName,HostName,UserName,Password,UrlPath,Anchor:AnsiString;const Query:TALStrings;var PortNumber: integer):Boolean; Function AlInternetCrackUrl22( var Url:AnsiString;var Anchor:AnsiString;const Query:TALStrings): Boolean;'); Function AlRemoveAnchorFromUrl2( aUrl : AnsiString; var aAnchor : AnsiString) : AnsiString;'); Function AlRemoveAnchorFromUrl12( const aUrl : AnsiString) : AnsiString;'); Function AlCombineUrl2( const RelativeUrl, BaseUrl : AnsiString) : AnsiString;'); Function AlCombineUrl12( const RelativeUrl,BaseUrl,Anchor AnsiString;const Query:TALStrings): AnsiString;'); Function ALGmtDateTimeToRfc822Str2( const aValue : TDateTime) : AnsiString'); Function ALDateTimeToRfc822Str2( const aValue : TDateTime) : AnsiString'); Function ALTryRfc822StrToGMTDateTime2( const S : AnsiString; out Value : TDateTime) : Boolean'); Function ALRfc822StrToGMTDateTime2( const s : AnsiString) : TDateTime'); Function ALTryIPV4StrToNumeric2( const aIPv4Str : AnsiString; var aIPv4Num : Cardinal) : Boolean'); Function ALIPV4StrToNumeric2( const aIPv4 : AnsiString) : Cardinal'); Function ALNumericToIPv4Str2( const aIPv4 : Cardinal) : ansiString'); Function ALIPv4EndOfRange2( const aStartIPv4 : Cardinal; aMaskLength : integer) : Cardinal'); Function ALZeroIpV62 : TALIPv6Binary'); Function ALIsValidIPv6BinaryStr2( const aIPV6BinaryStr : ansiString) : boolean'); Function ALTryIPV6StrToBinary2( aIPv6Str : ansiString; var aIPv6Bin : TALIPv6Binary) : Boolean'); Function ALIPV6StrTobinary2( const aIPv6 : AnsiString) : TALIPv6Binary'); Function ALBinaryToIPv6Str2( const aIPv6 : TALIPv6Binary) : ansiString'); Function ALBinaryStrToIPv6Binary2( const aIPV6BinaryStr : ansiString) : TALIPv6Binary'); Function ALBinaryStrToIPv6Str2( const aIPV6BinaryStr : ansiString) : ansiString'); Function ALIPv6EndOfRange2( const aStartIPv6 : TALIPv6Binary; aMaskLength : integer) : TALIPv6Binary'); Procedure ALIPv6SplitParts2(const aIPv6: TALIPv6Binary;var aLowestPart:UInt64; var aHigestPart: UInt64)'); CL.AddConstantN(cALHTTPCLient_MsgInvalidURL2','String').SetString('Invalid url ''%s''- only supports ''http'' and ''https'' schemes'); CL.AddConstantN('cALHTTPCLient_MsgInvalidHTTPRequest2','String').SetString('Invalid HTTP Request:Length is 0'); CL.AddConstantN('cALHTTPCLient_MsgEmptyURL2','String').SetString( 'Empty URL'); function ALHTTPEncode(const AStr: AnsiString): AnsiString;'); function ALHTTPDecode(const AStr: AnsiString): AnsiString;'); end; CL.AddDelphiFunction('procedure RunDosInMemo(DosApp: string; AMemo:TMemo);'); {type TTextHandler =} procedure TTextHandlerQ(const aText: string); begin memo2.lines.add(atext); end; writeln(itoa(JExecute('cmd /C dir *.*',@TTextHandlerQ, true, false))); writeln(itoa(JExecute3('cmd /C dir *.*',Nil, true, false))); memo2.lines.add(getIPs.text); srlist:= TStringlist.create; GetDNSServers(srlist) writeln(srlist.text) srlist.Free; https://presse.tuv.com/en/photovoltaics-tuv-rheinland-investigates-potential-for-applications-on-rail-infrastructure/ procedure SIRegister_TRestUtils(CL: TPSPascalCompiler); begin //with RegClassS(CL,'TOBJECT', 'TRestUtils') do with CL.AddClassN(CL.FindClass('TOBJECT'),'TRestUtils') do begin Function Base64Encode( const AValue : String) : String'); Function Base64Decode( const AValue : String) : String'); end; end; (*----------------------------------------------------------------------------*) procedure SIRegister_TStatusCode(CL: TPSPascalCompiler); begin //with RegClassS(CL,'TOBJECT', 'TStatusCode') do with CL.AddClassN(CL.FindClass('TOBJECT'),'TStatusCode') do begin Function CONTINUE : TReponseCode'); Function SWITCHING_PROTOCOLS : TReponseCode'); Function OK : TReponseCode'); Function CREATED : TReponseCode'); Function ACCEPTED : TReponseCode'); Function NON_AUTHORITATIVE_INFORMATION : TReponseCode'); Function NO_CONTENT : TReponseCode'); Function RESET_CONTENT : TReponseCode'); Function PARTIAL_CONTENT : TReponseCode'); Function MULTIPLE_CHOICES : TReponseCode'); Function MOVED_PERMANENTLY : TReponseCode'); Function FOUND : TReponseCode'); Function SEE_OTHER : TReponseCode'); Function NOT_MODIFIED : TReponseCode'); Function USE_PROXY : TReponseCode'); Function TEMPORARY_REDIRECT : TReponseCode'); Function BAD_REQUEST : TReponseCode'); Function UNAUTHORIZED : TReponseCode'); Function PAYMENT_REQUIRED : TReponseCode'); Function FORBIDDEN : TReponseCode'); Function NOT_FOUND : TReponseCode'); Function METHOD_NOT_ALLOWED : TReponseCode'); Function NOT_ACCEPTABLE : TReponseCode'); Function PROXY_AUTHENTICATION_REQUIRED : TReponseCode'); Function REQUEST_TIMEOUT : TReponseCode'); Function CONFLICT : TReponseCode'); Function GONE : TReponseCode'); Function LENGTH_REQUIRED : TReponseCode'); Function PRECONDITION_FAILED : TReponseCode'); Function REQUEST_ENTITY_TOO_LARGE : TReponseCode'); Function REQUEST_URI_TOO_LONG : TReponseCode'); Function UNSUPPORTED_MEDIA_TYPE : TReponseCode'); Function REQUESTED_RANGE_NOT_SATISFIABLE : TReponseCode'); Function EXPECTATION_FAILED : TReponseCode'); Function UNPROCESSABLE_ENTITY : TReponseCode'); Function INTERNAL_SERVER_ERROR : TReponseCode'); Function NOT_IMPLEMENTED : TReponseCode'); Function BAD_GATEWAY : TReponseCode'); Function SERVICE_UNAVAILABLE : TReponseCode'); Function GATEWAY_TIMEOUT : TReponseCode'); Function HTTP_VERSION_NOT_SUPPORTED : TReponseCode'); end; end; (*----------------------------------------------------------------------------*) procedure SIRegister_RestUtils(CL: TPSPascalCompiler); begin MediaType_Json','String').SetString( 'application/json'); MediaType_Xml','String').SetString( 'text/xml'); LOCALE_PORTUGUESE_BRAZILIAN','String').SetString( 'pt-BR'); LOCALE_US','String').SetString( 'en-US'); CL.AddTypeS('TReponseCode', 'record StatusCode : Integer; Reason : string; end'); SIRegister_TStatusCode(CL); SIRegister_TRestUtils(CL); end; procedure SIRegister_DataSetConverter4DUtil(CL: TPSPascalCompiler); begin CL.AddTypeS('TBooleanFieldType', '( bftUnknown, bftBoolean, bftInteger )'); TDataSetFieldType', '( dftUnknown, dftJSONObject, dftJSONArray )'); CL.AddDelphiFunction('Function DateTimeToISOTimeStamp( const dateTime : TDateTime) : string'); Function DateToISODate( const date : TDateTime) : string'); Function TimeToISOTime( const time : TTime) : string'); Function ISOTimeStampToDateTime( const dateTime : string) : TDateTime'); Function ISODateToDate( const date : string) : TDate'); Function ISOTimeToTime( const time : string) : TTime'); Function NewDataSetField(dataSet:TDataSet;const fieldType:TFieldType;const fieldName:string;const size:Integer;const origin:string; const displaylabel:string):TField'); Function BooleanToJSON( const value : Boolean) : TJSONValue'); Function BooleanFieldToType( const booleanField:TBooleanField): TBooleanFieldType'); Function DataSetFieldToType( const dataSetField:TDataSetField): TDataSetFieldType'); Function MakeValidIdent( const s : string) : string'); end; function wget3(aURL, afile: string; opendoc: boolean): boolean; procedure RegisterProtocol(const Name, Describtion, ExecuteStr: string)'); procedure UnregisterProtocol(const Name: string);'); function GetNetworkConnections: string; function GetNetworkDrives: string; wget3('https://external-content.duckduckgo.com/iu/?u=https%3A%2F%2Ffoodanddrink.scotsman.com%2Fwp-content%2Fuploads%2F2016%2F08%2Fitem-4-9-1024x683.jpg', exepath+'examples/downpic.png', true); procedure SIRegister_PSResources(CL: TPSPascalCompiler); begin CL.AddConstantN('_sBeginCompile','String').SetString( 'Compiling'); ('_sSuccessfullyCompiled','String').SetString( 'Succesfully compiled'); ('_sSuccessfullyExecuted','String').SetString( 'Succesfully executed'); ('_sRuntimeError','String').SetString( '[Runtime error] %s(%d:%d), bytecode(%d:%d): %s'); ('_sTextNotFound','String').SetString( 'Text not found'); ('_sUnnamed','String').SetString( 'Unnamed'); ('_sEditorTitle','String').SetString( 'Editor'); ('_sEditorTitleRunning','String').SetString( 'Editor - Running'); ('_sEditorTitlePaused','String').SetString( 'Editor - Paused'); ('_sEditorTitleStopped','String').SetString( 'Editor - Stopped'); ('_sInputBoxTiyle','String').SetString( 'Script'); ('_sFileNotSaved','String').SetString( 'File has not been saved, save now?'); ('_isRunningOrPaused','LongInt').Value.ts32 := ord(isRunning) or ord(isPaused); SIRegister_TPSUtils(CL); //https://github.com/fabriciocolombo/PascalScriptEx/tree/master/src CL.AddDelphiFunction('function list_functions: TStringlist;'); function list_functions2: TStringlist;'); procedure InternalRaiseException(E: Exception);'); function ListFiles(ADirectory, AFilter: String; AList: TStrings): Boolean;'); Procedure CommandToList(S : String; List : TStrings);'); end; CL.AddDelphiFunction('function list_functions: TStringlist;'); procedure InternalRaiseException(E: Exception);'); function ListFiles(ADirectory, AFilter: String; AList: TStrings) : Boolean; Procedure CommandToList(S : String; List : TStrings); CL.AddDelphiFunction('procedure SetSynchroTime'); CL.AddDelphiFunction('procedure letSynchroTime'); procedure TimeSync'); //get internettime service function HttpGetDirect(const Url: string): string; function HttpGetDirect2(const Url: string): string; function HttpGetDirect4(const Url, agent: string): string; function HttpGet_Direct(const Url: string): string;'); function wininet_HttpGetDirect(const Url: string): string;'); function GetWinInetError(ErrorCode:Cardinal): string; function HttpGetDirect3(const ServerName,Resource,sUserAgent:string;Var Response:AnsiString):Integer; procedure WinInetCheck(Success: Boolean; aFunction: PChar); function WebGetData(const UserAgent: string; const Server: string; const Resource: string):string; procedure WebPostData(const UserAgent: string; const Server: string; const Resource: string; const Data: AnsiString); function WebPostData2(const UserAgent:string;const Server:string; const Resource:string; const Data:AnsiString): String; function URLEncode3(const Url: string): string; function FloatAsInteger(X: single): integer; begin result:= PInteger(@X)^; end; function IntegerAsFloat(X: integer): single; begin result:= PSingle(@X)^; end; procedure ParseString4(s,sep: string; sl: TStrings);'); procedure LoadGridFromfile(SG: TStringGrid; fname: string); procedure SaveGridTofile(SG: TStringGrid; fname: string); procedure WriteVectorToGrid(SG: TStringGrid; vname: string; wval: TAffineVector); procedure WriteStringToGrid(SG: TStringGrid; vname: string; icol: longword; wval: string); procedure WriteFloatToGrid(SG: TStringGrid; vname: string; icol: longword; wval: double); https://github.com/P33a/SimTwo/blob/master/Utils.pas procedure ExtractIconFileToImageList(ImageList: TImageList; const Filename: string); procedure SIRegister_SynCrtSock(CL: TPSPascalCompiler); -->SIRegister_synTHttpRequest begin CL.AddConstantN('HTTP_RESP_STATICFILE','String').SetString( '!STATICFILE'); 'HTTP_RESP_NORESPONSE','String').SetString( '!NORESPONSE'); 'HTTP_DEFAULT_RESOLVETIMEOUT','LongInt').SetInt( 0); 'HTTP_DEFAULT_CONNECTTIMEOUT','LongInt').SetInt( 60000); 'HTTP_DEFAULT_SENDTIMEOUT','LongInt').SetInt( 30000); 'HTTP_DEFAULT_RECEIVETIMEOUT','LongInt').SetInt( 30000); CL.AddTypeS('SynUnicode', 'UnicodeString'); 'SockString', 'RawByteString'); 'SynUnicode', 'WideString'); 'SockString', 'AnsiString'); S('PPointer', '^Pointer // will not work'); 'synTTextLineBreakStyle', '( tlbsLF, tlbsCRLF )'); 'synUTF8String', 'AnsiString'); 'synUTF8Encode', 'AnsiString'); 'synPtrInt', 'NativeInt'); 'synPtrUInt', 'NativeUInt'); 'synPtrInt', 'integer'); 'synPtrUInt', 'cardinal'); THttpSocketCompress','function(var DataRawByteString: sockstring;Compress: boolean):AnsiString'); //CL.AddTypeS('PPtrInt', '^PtrInt // will not work'); //CL.AddTypeS('PPtrUInt', '^PtrUInt // will not work'); CL.AddTypeS('TSockHeaders','array of SockString'); SIRegister_ECrtSocket(CL); //CL.AddTypeS('TCrtSocketClass', 'class of TCrtSocket'); CL.AddTypeS('TCrtSocketLayer', '( cslTCP, cslUDP, cslUNIX )'); CL.AddTypeS('TCrtSocketPending', '( cspSocketError, cspNoData, cspDataAvailable )'); //CL.AddTypeS('PTextFile', '^TextFile // will not work'); SIRegister_TCrtSocket(CL); CL.AddTypeS('THttpSocketCompressRec', 'record Name : SockString; Func : THttp' +'SocketCompress; CompressMinSize : integer; end'); CL.AddTypeS('THttpSocketCompressRecDynArray', 'array of THttpSocketCompressRec'); CL.AddTypeS('THttpSocketCompressSet', 'Integer'); SIRegister_THttpSocket(CL); CL.AddClassN(CL.FindClass('TOBJECT'),'THttpServer'); SIRegister_THttpServerSocket(CL); SIRegister_THttpClientSocket(CL); //CL.AddTypeS('THttpClientSocketClass', 'class of THttpClientSocket'); CL.AddTypeS('TNotifyThreadEvent', 'Procedure ( Sender : TThread)'); SIRegister_TSynThread(CL); CL.AddClassN(CL.FindClass('TOBJECT'),'TSynThreadPoolTHttpServer'); SIRegister_THttpServerResp(CL); //CL.AddTypeS('THttpServerRespClass', 'class of THttpServerResp'); CL.AddClassN(CL.FindClass('TOBJECT'),'TSynThreadPool'); SIRegister_TSynThreadPoolSubThread(CL); SIRegister_TSynThreadPool(CL); SIRegister_TSynThreadPoolTHttpServer(CL); CL.AddClassN(CL.FindClass('TOBJECT'),'THttpServerGeneric'); CL.AddTypeS('THttpServerRequestAuthentication', '( hraNone, hraFailed, hraBas' +'ic, hraDigest, hraNtlm, hraNegotiate, hraKerberos )'); SIRegister_THttpServerRequest(CL); CL.AddTypeS('TOnHttpServerRequest','Function (Ctxt : THttpServerRequest):cardinal'); SIRegister_THttpServerGeneric(CL); CL.AddTypeS('synULONGLONG', 'Int64'); 'HTTP_OPAQUE_ID', 'ULONGLONG'); 'HTTP_URL_GROUP_ID', 'HTTP_OPAQUE_ID'); 'HTTP_SERVER_SESSION_ID', 'HTTP_OPAQUE_ID'); 'THttpApiLoggingType', '( hltW3C, hltIIS, hltNCSA, hltRaw )'); 'THttpApiLoggingRollOver', '( hlrSize, hlrDaily, hlrWeekly, hlrMonthly, hlrHourly )'); 'THttpApiLoggingFlag','( hlfLocalTimeRollover, hlfUseUTF' +'8Conversion, hlfLogErrorsOnly, hlfLogSuccessOnly )'); CL.AddTypeS('THttpApiLoggingFlags', 'set of THttpApiLoggingFlag'); CL.AddTypeS('THttpApiLogField', '( hlfDate, hlfTime, hlfClientIP, hlf' +'UserName, hlfSiteName, hlfComputerName, hlfServerIP, hlfMethod, hlfURIStem' +', hlfURIQuery, hlfStatus, hlfWIN32Status, hlfBytesSent, hlfBytesRecv, hlfT' +'imeTaken, hlfServerPort, hlfUserAgent, hlfCookie, hlfReferer, hlfVersion, hlfHost, hlfSubStatus )'); 'THttpApiLogFields', 'set of THttpApiLogField'); ('THttpApiRequestAuthentication', '( haBasic, haDigest, haNtlm, haNegotiate, haKerberos )'); ('THttpApiRequestAuthentications', 'set of THttpApiRequestAuthentication'); SIRegister_THttpApiServer(CL); SIRegister_THttpServer(CL); SIRegister_synTURI(CL); CL.AddTypeS('THttpRequestAuthentication', '( wraNone, wraBasic, wraDigest, wraNegotiate )'); CL.AddTypeS('THttpRequestExtendedOptions', 'record IgnoreSSLCertificateErrors' +' : Boolean; Auth : record UserName : SynUnicode; Password : SynUnicode; Sc' +'heme : THttpRequestAuthentication; end ; end'); {$IFDEF SIRegister_synTHttpRequest(CL); } //CL.AddTypeS('THttpRequestClass', 'class of THttpRequest'); SIRegister_TWinHttpAPI(CL); SIRegister_TWinINet(CL); SIRegister_EWinINet(CL); SIRegister_TWinHTTP(CL); CL.AddClassN(CL.FindClass('TOBJECT'),'EWinHTTP'); SIRegister_TCurlHTTP(CL); Function synOpenCrtSock(const aServer, aPort : SockString) : TCrtSocket'); Function synOpenHttp(const aServer, aPort : SockString) : THttpClientSocket'); Function synHttpGet(const server, port : SockString; const url : SockString) : SockString;'); Function synHttpGet1(const aURI : SockString) : SockString;'); Function synHttpPost(const server, port : SockString; const url, Data, DataType : SockString) : boolean'); Function synSendEmail(const Server,From,CSVDest,Subject,Text:SockString;const Headers:SockString;const User:SockString;const Pass:SockString; const Port:SockString;const TextCharSet:SockString):bool; Function synSendEmailSubject( const Text : string) : SockString'); 'STATUS_SUCCESS','LongInt').SetInt( 200); 'STATUS_CREATED','LongInt').SetInt( 201); 'STATUS_NOCONTENT','LongInt').SetInt( 204); 'STATUS_BADREQUEST','LongInt').SetInt( 400); 'STATUS_UNAUTHORIZED','LongInt').SetInt( 401); 'STATUS_FORBIDDEN','LongInt').SetInt( 403); 'STATUS_NOTFOUND','LongInt').SetInt( 404); 'STATUS_SERVERERROR','LongInt').SetInt( 500); 'STATUS_NOTIMPLEMENTED','LongInt').SetInt( 501); Function synStatusCodeToReason( Code : integer) : SockString'); Function synResolveName(const Name:SockString;Family:Integer;SockProtocol:Int;SockType:int):SockString'); Function synBase64Encode( const s : SockString) : SockString'); Function synBase64Decode( const s : SockString) : SockString'); Function synHtmlEncode( const s : SockString) : SockString'); Function synGetRemoteMacAddress(const IP : SockString) : SockString'); end; procedure SIRegister_THttpConnectionWinInet(CL: TPSPascalCompiler); begin //with RegClassS(CL,'TInterfacedObject', 'THttpConnectionWinInet') do with CL.AddClassN(CL.FindClass('TInterfacedObject'),'THttpConnectionWinInet') do begin OnConnectionLost', 'THTTPConnectionLostEvent', iptrw); Constructor Create( ARaiseExceptionOnError : Boolean)'); Procedure Free;'); Function SetAcceptTypes( AAcceptTypes : string) : IHttpConnection'); Function SetAcceptedLanguages( AAcceptedLanguages : string) : IHttpConnection'); Function SetContentTypes( AContentTypes : string) : IHttpConnection'); Function SetHeaders( AHeaders : TStrings):IHttpConnection'); Headers', 'TStrings', iptr); Procedure Get( AUrl : string; AResponse : TStream)'); Procedure Post( AUrl : string; AContent : TStream; AResponse : TStream)'); Procedure Put( AUrl : string; AContent : TStream; AResponse : TStream)'); Procedure Patch( AUrl : string; AContent : TStream; AResponse : TStream)'); Procedure Delete( AUrl : string; AContent : TStream; AResponse : TStream)'); Function GetResponseCode : Integer'); Function GetResponseHeader( const Header : string) : string'); Function GetEnabledCompression : Boolean'); Procedure SetEnabledCompression( const Value : Boolean)'); Function GetOnConnectionLost : THTTPConnectionLostEvent'); Procedure SetOnConnectionLost( AConnectionLostEvent : THTTPConnectionLostEvent)'); Function ConfigureTimeout( const ATimeOut : TTimeOut) : IHttpConnection'); Function ConfigureProxyCredentials( AProxyCredentials : TProxyCredentials) : IHttpConnection'); Procedure SetVerifyCert( const Value : boolean)'); Function GetVerifyCert : boolean'); Function SetAsync( const Value : Boolean) : IHttpConnection'); Procedure CancelRequest'); Function SetOnAsyncRequestProcess( const Value : TAsyncRequestProcessEvent) : IHttpConnection'); RegisterProperty(''ResponseErrorStatusText', 'string', iptrw); CertificateContext', 'PCERT_CONTEXT', iptrw); 'BasicAuthentication_UserName', 'string', iptrw); 'BasicAuthentication_Password', 'string', iptrw); 'CertificateCheckDate', 'Boolean', iptrw); 'CertificateCheckHostName', 'boolean', iptrw); 'CertificateCheckAuthority', 'boolean', iptrw); 'CertificateIgnoreRevocation', 'boolean', iptrw); 'RaiseExceptionOnError', 'Boolean', iptrw); end; end; procedure SIRegister_VelthuisFloatUtils(CL: TPSPascalCompiler); begin Function IsNegativeInfinity( const AValue : Single) : Boolean;'); Function IsNegativeInfinity1( const AValue : Double) : Boolean;'); Function IsNegativeInfinity2( const AValue : Extended) : Boolean;'); Function IsPositiveInfinity( const AValue : Single) : Boolean;'); Function IsPositiveInfinity1( const AValue : Double) : Boolean;'); Function IsPositiveInfinity2( const AValue : Extended) : Boolean;'); Function GetSignificand( const AValue : Single) : UInt32;'); Function GetSignificand1( const AValue : Double) : UInt64;'); Function GetSignificand2( const AValue : Extended) : UInt64;'); Function GetMantissa( const AValue : Single) : UInt32;'); Function GetMantissa1( const AValue : Double) : UInt64;'); Function GetMantissa2( const AValue : Extended) : UInt64;'); Function GetExponent( const AValue : Single) : Integer;'); Function GetExponent1( const AValue : Double) : Integer;'); Function GetExponent2( const AValue : Extended) : Integer;'); Function IsDenormal( const AValue : Single) : Boolean;'); Function IsDenormal1( const AValue : Double) : Boolean;'); Function IsDenormal2( const AValue : Extended) : Boolean;'); Function MakeSingle( Sign : byte; Significand: Longword; Exponent: Integer): Single'); Function MakeDouble( Sign : byte; Significand: UInt64; Exponent: Integer) : Double'); Function MakeExtended( Sign : byte; Significand: UInt64; Exponent: Integer):Extended'); //CL.AddTypeS('PUInt8', '^UInt8 // will not work'); //CL.AddTypeS('PUInt16', '^UInt16 // will not work'); //CL.AddTypeS('PUInt32', '^UInt32 // will not work'); //CL.AddTypeS('PExt80Rec', '^TExt80Rec // will not work'); CL.AddTypeS('TExt80Rec', 'record Significand : UInt64; ExponentAndSign : Word; end'); //CL.AddTypeS('PUInt64', '^UInt64 // will not work'); +'; end'); /'CSingleExponentShift','LongInt').SetInt( 23); ('CDoubleExponentShift','LongInt').SetInt( 52); ('CSingleExponentMask','LongWord').SetUInt( $FF); ('CDoubleExponentMask','LongWord').SetUInt( $7FF); ('CExtendedExponentMask','LongWord').SetUInt( $7FFF); ('CSingleBias','LongInt').SetInt( CSingleExponentMask shr 1); ('CDoubleBias','LongInt').SetInt( CDoubleExponentMask shr 1); ('CExtendedBias','LongInt').SetInt( CExtendedExponentMask shr 1); ('CSingleSignMask','LongInt').SetInt( UInt32 ( 1 ) shl 31); ('CDoubleSignMask','LongInt').SetInt( UInt64 ( 1 ) shl 63); end; function BytesToHex2(const Bytes: TBytes): string; {Creates a hexadecimal representation of the bytes in an array. @param Bytes [in] Byte array. return Hexadecimal representation of bytes in array. } function TryHexToBytes(HexStr: string; out Bytes: TBytes): Boolean; *) UHexUtils.pas CL.AddTypeS('TExeFileKind', '( fkUnknown, fkError, fkDOS, fkExe32, fkExe16, fkDLL32, fkDLL16, fkVXD )'); Function ExeFileType( const FileName : string) : TExeFileKind'); Function getExeFileType( const FileName : string) : TExeFileKind'); function ExeFileType(const FileName: string): TExeFileKind; UExeFileType.pas function ListFiles2(const Dir, Wildcard: string; const List: TStrings; IncludeDirs: Boolean = True; RelativeNames: Boolean = False): Boolean; Function LongToShortFilePath( const LongName : string) : string'); //Function IsDirectory( const DirName : string) : Boolean'); Function FloatToInt( const F : Double) : Int64'); Function RFC1123DateStamp : string'); Function NowGMT : TDateTime'); Function ParseSQLDateTime( const SQLDateTime : string) : TDateTime'); Function TryParseSQLDateTime( const SQLDateTime : string; out Value : TDateTime) : Boolean'); Procedure GetInterface( const Instance : IInterface; const IID : TGUID; out Intf)'); Function IsBaseFileName( const FileName : string) : Boolean'); Procedure SetPause( const ADelay : Cardinal)'); Procedure letPause( const ADelay : Cardinal)'); Function URIBaseName( const URI : string) : string'); Procedure StrSliceRight(URI, Length(URI) - LastSlashPos); Function CharInSet4(C: Char; const CharSet: CharSet):Bool; Function TryStrToCardinal( const S : string; out Value : Cardinal) : Boolean'); Function IsEqualBytes0( const BA1, BA2: TBytes; const Count:Cardinal): Boolean;'); Function IsEqualBytes1( const BA1, BA2: TBytes) : Boolean;'); Function TryStrToWord( const S : string; out W : Word) : Boolean'); function IsHexDigit(C: Char): Boolean; * RIRegister_TCompilerRunner Implements a class that executes a compiler and captures its output and exit * code. Also provides specialised exception object that captures information * about errors. depends on TConsoleApp Class procedure SIRegister_TCompilerRunner(CL: TPSPascalCompiler); begin //with RegClassS(CL,'TObject', 'TCompilerRunner') do with CL.AddClassN(CL.FindClass('TObject'),'TCompilerRunner') do begin Function Execute( const CommandLine,CurrentPath: string; const OutStream:TStream) : LongWord'); end; end; hStream:= TStringStream.Create(''); with TCompilerRunner.create do begin //writeln(itoa(errorcode)); Execute('cmd /c dir *.*', exepath, hstream) writeln(hstream.datastring); free end; (*----------------------------------------------------------------------------*) procedure SIRegister_TConsoleApp(CL: TPSPascalCompiler); begin //with RegClassS(CL,'TObject', 'TConsoleApp') do with CL.AddClassN(CL.FindClass('TObject'),'TConsoleApp') do begin Constructor Create'); Function Execute( const CmdLine, CurrentDir : string) : Boolean'); StdIn', 'THandle', iptrw); StdOut', 'THandle', iptrw); StdErr', 'THandle', iptrw); Visible', 'Boolean', iptrw); MaxExecTime', 'LongWord', iptrw); TimeSlice', 'Integer', iptrw); ProcessHandle', 'THandle', iptr); ExitCode', 'LongWord', iptr); ErrorCode', 'DWORD', iptr); ErrorMessage', 'string', iptr); OnWork', 'TNotifyEvent', iptrw); end; end; procedure SIRegister_TPipe(CL: TPSPascalCompiler); begin //with RegClassS(CL,'TObject', 'TPipe') do with CL.AddClassN(CL.FindClass('TObject'),'TPipe') do begin Constructor Create( const Size : LongWord)'); Procedure Free;'); Function AvailableDataSize : LongWord'); Function ReadData( var Buf : string; const BufSize : LongWord; var BytesRead : LongWord) : Boolean'); Procedure CopyToStream( const Stm : TStream; Count : LongWord)'); Procedure CopyFromStream( const Stm : TStream; Count : LongWord)'); Function WriteData( const Buf : string; const BufSize : LongWord) : LongWord'); Procedure CloseWriteHandle'); RegisterProperty('ReadHandle', 'THandle', iptr); WriteHandle', 'THandle', iptr); end; end; Exception Hierarchy CL.AddClassN(CL.FindClass('TOBJECT'),'TClass'); CL.AddClassN(CL.FindClass('Exception'),'EAbort'); SIRegister_EHeapException(CL); CL.AddClassN(CL.FindClass('EHeapException'),'EOutOfMemory'); SIRegister_EInOutError(CL); //CL.AddTypeS('PExceptionRecord', '^TExceptionRecord // will not work'); SIRegister_EExternal(CL); EIntError = class(EExternal); EDivByZero = class(EIntError); ERangeError = class(EIntError); EIntOverflow = class(EIntError); EMathError = class(EExternal); EInvalidOp = class(EMathError); EZeroDivide = class(EMathError); EOverflow = class(EMathError); EUnderflow = class(EMathError); EInvalidPointer = class(EHeapException); EInvalidCast = class(Exception); EConvertError = class(Exception); EAccessViolation = class(EExternal); EPrivilege = class(EExternal); EStackOverflow = class(EExternal) end deprecated; procedure SIRegister_IHttpConnection2(CL: TPSPascalCompiler); begin //with RegInterfaceS(CL,'IUNKNOWN', 'IHttpConnection') do with CL.AddInterface(Cl.FindInterface('IUnknown'),StringToGuid('{B9611100-5243-4874-A777-D91448517116}'), 'IHttpConnection2') do //with CL.AddInterface(CL.FindInterface('IUNKNOWN'),IHttpConnection2, 'IHttpConnection2') do begin (*----------------------------------------------------------------------------*) //https://github.com/maxkleiner/THTTPSender/blob/master/HTTPSender.pas procedure SIRegister_HTTPSender(CL: TPSPascalCompiler); begin CL.AddConstantN('__ABOUT__','String').SetString( '(c) Z.Razor 20.05.2013 mX4 2022'); CL.AddTypeS('THTTPMethodsend','( hmGetsend, hmPutsend, hmPostsend, hmDeletesend, hmHeadsend )'); CL.AddTypeS('THTTPCookie', 'record Domain : String; Name : String; Value : St' +'ring; Expires : String; Path : String; HTTPOnly : boolean; end'); THTTPCookieArray', 'array of THTTPCookie'); SIRegister_THTTPCookieCollection(CL); THTTPResponsesend', 'record StatusCode : Integer; StatusText : Strin' +'g; RawHeaders : String; ContentLength: Integer; ContentEncoding: String;' +' Location : String; Expires : String; end'); SIRegister_THTTPHeaders(CL); SIRegister_THTTPBasicAuth(CL); CL.AddTypeS('TCookieAddEvent', 'Procedure ( Sender : TObject; Cookie : THTTPCookie)'); TWorkBeginEventsend', 'Procedure ( Sender : TObject; WorkCountMax : int64)'); TWorkEventsend', 'Procedure ( Sender : TObject; WorkCount : int64)'); TWorkEndEventsend', 'Procedure ( Sender : TObject)'); THTTPPostContainerFormField', 'record Name : ansistring; Value : ansistring; end'); THTTPPostContainerFormFieldArray', 'array of THTTPPostContainerFormField'); THTTPPostContainerFile','record Name:ansistring;FileName:ansistring; ContentType:ansistring; end'); CL.AddTypeS('THTTPPostContainerFileArray', 'array of THTTPPostContainerFile'); SIRegister_THTTPPostContainer(CL); SIRegister_THTTPSender(CL); Function __HTTPEncode( const Text : String) : String'); Function __HTTPDecode( const Text : String) : String'); Function __HTMLDecode( const Text : String) : String'); //CL.AddDelphiFunction('Procedure Register'); end; procedure SIRegister_THTTPSender(CL: TPSPascalCompiler); begin //with RegClassS(CL,'TComponent', 'THTTPSender') do with CL.AddClassN(CL.FindClass('TComponent'),'THTTPSender') do begin RegisterProperty('DefaultEncoding', 'TEncoding', iptrw); Response', 'THTTPResponse', iptr); ResponseText', 'ansistring', iptr); Function Get( const URL : String) : String;'); Function Post( const URL : String; PostData : ansistring) : String;'); Function Post1( const URL : String; PostContainer : THTTPPostContainer) : String;'); Function Post2( const URL : String; PostData : TStringList) : String;'); Function Put( const URL : String) : String;'); Procedure Get1(const URL : String; Stream : TStream);'); Procedure Post3(const URL : String; PostData : ansistring; Stream : TStream);'); Procedure Post4(const URL : String; PostData : TStringList; Stream : TStream);'); Procedure Post5(const URL : String; PostContainer : THTTPPostContainer;Stream: TStream);'); Procedure Put1( const URL : String; Stream : TStream);'); Procedure Free'); Constructor Create( AOwner : TComponent)'); RegisterProperty('Cookies', 'THTTPCookieCollection', iptrw); Proxy', 'String', iptrw); ProxyBypass', 'String', iptrw); AllowCookies', 'boolean', iptrw); AutoRedirects', 'boolean', iptrw); ConnectTimeout', 'Integer', iptrw); ReadTimeout', 'Integer', iptrw); SendTimeout', 'Integer', iptrw); UseIECookies', 'boolean', iptrw); Headers', 'THTTPHeaders', iptrw); BasicAuth', 'THTTPBasicAuth', iptrw); OnCookieAdd', 'TCookieAddEvent', iptrw); OnWorkBegin', 'TWorkBeginEventsend', iptrw); OnWork', 'TWorkEventsend', iptrw); OnWorkEnd', 'TWorkEndEventsend', iptrw); About', 'String', iptr); end; end; procedure SIRegister_TRestResource(CL: TPSPascalCompiler); begin //with RegClassS(CL,'TOBJECT', 'TRestResource') do with CL.AddClassN(CL.FindClass('TOBJECT'),'TRestResource') do begin Function GetAcceptTypes : string'); Function GetURL : string'); Function GetContent : TStream'); Function GetContentTypes : string'); Function GetHeaders : TStrings'); Function GetAcceptedLanguages : string'); Function GetAsync : Boolean'); Function Accept( AcceptType : String) : TRestResource'); Function Async( const Value : Boolean) : TRestResource'); Function Authorization( Authorization : String) : TRestResource'); Function ContentType( ContentType : String) : TRestResource'); Function AcceptLanguage( Language : String) : TRestResource'); Function Header( Name : String; Value : string) : TRestResource'); Function Get : string;'); Procedure Get1( AHandler : TRestResponseHandler);'); Function Get2( EntityClass : TClass) : TObject;'); Function Post( Content : TStream) : String;'); Function Post1( Content : string) : String;'); Procedure Post2( Content : TStream; AHandler: TRestResponseHandler);'); Function Post3( Entity : TObject) : TObject;'); Function Post10( Content : string; ResultClass : TClass) : TObject;'); Function Post11( Content : TStream; ResultClass : TClass) : TObject;'); Function Post12( Entity : TObject; ResultClass : TClass) : TObject;'); Function Put13( Content : TStream) : String;'); Function Put14( Content : string) : string;'); Procedure Put15( Content : TStream; AHandler: TRestResponseHandler);'); Function Put16( Entity : TObject) : TObject;'); Function Put17( Content : string; ResultClass : TClass) : TObject;'); Function Put18( Content : TStream; ResultClass : TClass) : TObject;'); Function Put19( Entity : TObject; ResultClass : TClass) : TObject;'); Function Patch20( Content : TStream) : String;'); Function Patch21( Content : string) : string;'); Procedure Patch22( Content : TStream; AHandler: TRestResponseHandler);'); Function Patch23( Entity : TObject) : TObject;'); Function Patch24( Content : string; ResultClass : TClass) : TObject;'); Function Patch25( Content : TStream; ResultClass : TClass) : TObject;'); Function Patch26( Entity : TObject; ResultClass : TClass) : TObject;'); Procedure Delete27( );'); Procedure Delete28( Entity : TObject);'); Procedure Get29( AHandler : TRestResponseHandlerFunc);'); Procedure Post30( Content : TStream; AHandler : TRestResponseHandlerFunc);'); Procedure Post31( Entity : TObject; AHandler : TRestResponseHandlerFunc);'); Procedure Put32( Content : TStream; AHandler : TRestResponseHandlerFunc);'); Procedure Patch33( Content : TStream; AHandler: TRestResponseHandlerFunc);'); Function Get34( AListClass, AItemClass : TClass) : TObject;'); Function Post35( Adapter : IJsonListAdapter) : TObject;'); Function Put36( Adapter : IJsonListAdapter) : TObject;'); Function Patch37( Adapter : IJsonListAdapter) : TObject;'); Procedure GetAsDataSet38( ADataSet : TDataSet);'); Function GetAsDataSet39( ) : TDataSet;'); Function GetAsDataSet40( const RootElement: String): TDataSet;'); RegisterMethod('Procedure Delete2( );'); Procedure Delete3( Entity : TObject);'); Function Get35( AListClass: TObjectList; AItemClass : TObject) : TObject;'); Function Get3( AListClass: TObjectList; AItemClass : TObject) : TObject;'); end; end; (*----------------------------------------------------------------------------*) procedure SIRegister_TCookie(CL: TPSPascalCompiler); begin //with RegClassS(CL,'TOBJECT', 'TCookie') do with CL.AddClassN(CL.FindClass('TOBJECT'),'TCookie') do begin RegisterProperty('Name', 'String', iptr); RegisterProperty('Value', 'String', iptr); RegisterProperty('Version', 'Integer', iptr); RegisterProperty('Path', 'String', iptr); RegisterProperty('Domain', 'String', iptr); end; end; (*----------------------------------------------------------------------------*) procedure SIRegister_TRestClient(CL: TPSPascalCompiler); begin //with RegClassS(CL,'TComponent', 'TRestClient') do with CL.AddClassN(CL.FindClass('TComponent'),'TRestClient') do begin OnBeforeRequest', 'TRestOnRequestEvent', iptrw); OnAfterRequest', 'TRestOnRequestEvent', iptrw); OnResponse', 'TRestOnResponseEvent', iptrw); Constructor Create( Owner : TComponent)'); Procedure Free'); ResponseCode', 'Integer', iptr); ResponseHeader', 'string string', iptr); Function Resource( URL : String) : TRestResource'); Function UnWrapConnection : IHttpConnection'); Function SetCredentials(const ALogin, APassword : String): TRestClient'); OnConnectionLost', 'THTTPConnectionLostEvent', iptrw); OnError', 'THTTPErrorEvent', iptrw); OnAsyncRequestProcess', 'TAsyncRequestProcessEvent', iptrw); ConnectionType', 'THttpConnectionType', iptrw); EnabledCompression', 'Boolean', iptrw); VerifyCert', 'Boolean', iptrw); OnCustomCreateConnection', 'TCustomCreateConnection', iptrw); TimeOut', 'TTimeOut', iptr); ProxyCredentials', 'TProxyCredentials', iptr); end; end; procedure SIRegister_RestClient(CL: TPSPascalCompiler); begin CL.AddConstantN('DEFAULT_COOKIE_VERSION','LongInt').SetInt( 1); CL.AddTypeS('TRestRequestMethod', '( METHOD_GET, METHOD_POST, METHOD_PUT, METHOD_' +'PATCH, METHOD_DELETE )'); CL.AddTypeS('TRestResponseHandler', 'Procedure ( ResponseContent : TStream)'); CL.AddClassN(CL.FindClass('TOBJECT'),'TRestResource'); CL.AddTypeS('TCustomCreateConnection', 'Procedure ( Sender : TObject; AConnec' +'tionType : THttpConnectionType; out AConnection : IHttpConnection)'); SIRegister_TJsonListAdapter(CL); CL.AddClassN(CL.FindClass('TOBJECT'),'TRestClient'); CL.AddTypeS('TRestOnRequestEvent', 'Procedure ( ARestClient : TRestClient; AR' +'esource : TRestResource; AMethod : TRestRequestMethod)'); TRestOnResponseEvent','Procedure (ARestClient:TRestClient;ResponseCode:Int;const ResponseContent:string)'); CL.AddTypeS(THTTPErrorEvent', 'Procedure ( ARestClient: TRestClient; AResou' +rce: TRestResource; AMethod: TRestRequestMethod; AHTTPError:EHTTPError;var ARetryMode:THTTPRetryMode)'); SIRegister_TRestClient(CL); SIRegister_TRestCookie(CL); SIRegister_TRestResource(CL); //SIRegister_TMultiPartFormAttachment(CL); //SIRegister_TMultiPartFormData(CL); end; procedure TRestOnResponseEvent2(ARestClient: TRestClient; ResponseCode:Integer; const ResponseContent: string); begin print('@addr:'+objtostr(arestclient)); print('response cont: '+responsecontent) print('response code: '+itoa(responsecode)); print('enabled compression '+botostr(arestclient.EnabledCompression)); print('content-encoding:'+arestclient.responseheader['Content-Encoding']); print('verifycert: '+botostr(arestclient.verifycert)); end; function TRestResource3_AskChatGPT(askstream: string; aResponseHeader:TRestResponseHandler):string; var pstrm: TStream; JPostdat: string; jo: TJSON; arest: TRestResource; begin JPostDat:= '{'+ '"model": "text-davinci-003",'+ '"prompt": "%s",'+ '"max_tokens": 2048,'+ '"temperature": 0.15}'; with TRestClient.create(self) do begin arest:= Resource('https://api.openai.com/v1/completions'); arest.ContentType('application/json'); arest.Authorization('Bearer '+CHATGPT_APIKEY2); ConnectionType:= hctWinInet; try pstrm:= TStringStream.create(format(JPostDat,[askstream])); jo:= TJSON.Create(); jo.parse(arest.Post(pstrm)); writeln('respcode: '+itoa(responsecode)+' verifycert: '+botostr(verifycert)); result:= jo.values['choices'].asarray[0].asobject['text'].asstring; finally Free; jo.Free; pStrm.Free; end; end; //with end; Sending JSON to REST API Endpoint To post JSON to a REST API endpoint, you must send an HTTP POST request to the REST API server and provide JSON data in the body of the POST message. You must also specify the data type using the Content-Type: application/json request header. In this REST API POST example, we also send the Accept: application/json request header to tell the REST API server that the API client expects JSON in response. //} //https://github.com/fabriciocolombo/delphi-rest-client-api/blob/master/src/RestClient.pas RestClient:= TRestclient.create(nil); RestClient.ConnectionType:= hctWinInet; //RestClient.Resource('TESTURL').Post3(anewperson); RestClient.VerifyCert := true; RestClient.Resource(TESTURL).header('User-Agent',UAGENT); //RestClient.Resource(TESTURL).header('Referer',UAGENT); //RestClient.Header( Name : String; Value : string) : TRestResource'); //RestClient.Resource(TESTURL).ContentType('application/json'); writeln(RestClient.Resource(TESTURL).Get()); Restclient.free; procedure TRestOnResponseEvent2(ARestClient: TRestClient; ResponseCode:Integer; const ResponseContent: string); begin print(CRLF+'resp@addr:'+objtostr(arestclient.resource(''))); //print(' response cont: '+responsecontent) print(' response code: '+itoa(responsecode)); print(' enabled compression '+botostr(arestclient.EnabledCompression)); print(' content-type:'+arestclient.responseheader['Content-Type']); print(' server:'+arestclient.responseheader['Server']); print(' cookies:'+arestclient.responseheader['Set-Cookie']); print(' access:'+arestclient.responseheader['Access-Control-Allow-Origin']); print(' access:'+arestclient.responseheader['Access-Control-Request-Headers']); print(' uagent:'+arestclient.responseheader['User-Agent']); print(' referer:'+arestclient.responseheader['Referer']); print(' conlen:'+arestclient.responseheader['content-length']); print(' etag:'+arestclient.responseheader['etag']); print(' verifycert: '+botostr(arestclient.verifycert)); end; //content-length //https://developer.mozilla.org/en-US/docs/Glossary/Forbidden_header_name If you look in Chrome inspector, you probably see this error: XMLHttpRequest cannot load http://webapp.armadealo.com/home.json. Origin http://stackoverflow.com is not allowed by Access-Control-Allow-Origin. What this means is that the server doesn't want the client web page reading the file. The client isn't trusted. This is a basic security feature of XMLHttpRequest in order to prevent a site like mybank.evil.com from downloading data from mybank.com. It unfortunately makes testing from a local file challenging. If you trust any site with your data or a select number of sites, you can configure your server script to send Access-Control-Allow-Origin to allow certain sites through.//} procedure TRestOnRequestEvent2(ARestClient : TRestClient; AResource: TRestResource; AMethod: TRestRequestMethod); begin print(CRLF+'req@addr:'+objtostr(arestclient.resource(''))); print(' content-type:'+arestclient.responseheader['Content-Type']); print(' uagent:'+arestclient.responseheader['User-Agent']); print(' host:'+arestclient.responseheader['Host']); print(' referer:'+arestclient.responseheader['Referer']); print(' connect:'+arestclient.responseheader['Connection']); print(' verifycert: '+botostr(arestclient.verifycert)); end; //content-length function TRestClient4_WebscrapSimple4(askstream, style: string):string; var jo: TJSON; rest: TRestResource; jar2: TJsonArray2; begin with TRestClient.create(self) do begin ConnectionType:= hctWinInet; //Resource(TESTURL1).useragent writ('proxy:? '+botostr(ProxyCredentials.informed)); OnafterRequest:= @TRestOnRequestEvent2; rest:= Resource(TESTURL6).header('User-Agent',UAGENT); rest.ContentType('application/json'); rest.header('accept','application/json'); rest.header('host','jsonplaceholder.typicode.com'); rest.header('Connection','keep-alive'); OnResponse:= @TRestOnResponseEvent2; try //writeln('types:'+rest.GetAcceptTypes ); jo:= TJSON.Create(); writeln(CRLF+'URL:'+rest.GetURL ); writeln(CRLF+'Head:'+rest.GetHeaders.text); jo.parse(rest.Get()); result:= jo.jsonarray.items[0].asobject['title'].asstring; for it:= 0 to jo.jsonarray.count-1 do writ(itoa(it)+':'+jo.jsonarray.items[it].asobject['title'].asstring); finally Free; jo.Free; except writeln('EWI_Exc:'+ExceptiontoString(exceptiontype,exceptionparam)); end; end; //with end; procedure SIRegister_OpenApiUtils(CL: TPSPascalCompiler); begin CL.AddDelphiFunction('Function PercentEncode( const S : string) : string'); Procedure AppendQueryParam( var Query : string; const Name, Value : string)'); Function __EncodeBase64( const Input : TBytes) : string'); Function __DecodeBase64( const Input : string) : TBytes'); Function __DateTimeToISO( const Value : TDateTime) : string'); Function DateToISO( const Value : TDate) : string'); Function __ISOToDateTime( const Value : string) : TDateTime'); Function ISOToDate( const Value : string) : TDate'); CL.AddConstantN('SInvalidDateFormat','String').SetString( 'Value %s is not a valid datetime'); end; function postRequest(const AUrl, AData: AnsiString; blnSSL: Boolean): AnsiString;'); function CheckUrl(Url: string): boolean;'); function GetSHA1HashFromStream(AStream: TStream): string; function ToHexBytes(const AValue: TBytes): AnsiString; function SliceString(const AString: string; const ADelimiter: string): TStringArray; function FloatToJson(const value: Double): String; function CurrToJson(const value: Currency): String; function CheckUrl2(url: string): boolean;'); function GetAdapterInfo(Lana: Char): string;'); function IsConnectedToInternet: Boolean;'); function WindowsShellExecute(const aOperation: String; const aCommandline: string; const aDirectory: string; const aParameters: String; const aShow: Integer): Integer; function WindowsCaptureExecute(aCommandline: String; var aOutput: String): Integer; procedure WebBrowserLoadFromHTML(AWebBrowser: TWebBrowser; AHTML: tStringlist); procedure TNovusStreamUtilsCopyMemoryStreamToClipboard(St: TmemoryStream); procedure CopyMemoryStreamToClipboard(St: TmemoryStream); procedure CopyMemoryStreamFromClipboard(St: TmemoryStream); procedure MemoryStreamToStringList(St:TmemoryStream;Var AStringList:tStringlist); procedure SaveResourceToFile(const FileName, ResType: string; ResId: Integer); procedure ShowHintMsgCenter(s: string; _delay: Integer = 2000); function VarArrayToStr2(const vArray: variant): string; function VarStrNull2(const V: OleVariant): string; function CopyObject(Src, Dest: TObject; Related: Boolean = FALSE): Boolean; function VariantToString(V : OleVariant) : String; function OleVariantToString(const Value: OleVariant): string; function StringToOleVariant(const Value: string): OleVariant; function OleVariantToMemoryStream(const OV: OleVariant): TMemoryStream; function CreateWord(const aHiByte, aLoByte: byte): word; function ReverseBytesOrder(aBytes: TBytes): tBytes; function HexStrToBytes(aHexStr: String; aLittle_Endian: boolean): tBytes; function FilePathToURL(const aFilePath: string): string;'); procedure SIRegister_TWinHttpRequest(CL: TPSPascalCompiler); begin //with RegClassS(CL,'TOleServer', 'TWinHttpRequest') do with CL.AddClassN(CL.FindClass('TOleServer'),'TWinHttpRequest') do begin RegisterMethod('Constructor Create( AOwner : TComponent)'); Procedure Connect'); Procedure ConnectTo( svrIntf : IWinHttpRequest)'); Procedure Disconnect'); Procedure Free'); Procedure ConnectTo( svrIntf : IWinHttpRequest)'); Procedure SetProxy(ProxySetting: HTTPREQUEST_PROXY_SETTING);'); Procedure SetProxy1(ProxySetting: HTTPREQUEST_PROXY_SETTING; ProxyServer : OleVariant);'); Procedure SetProxy2(ProxySetting:HTTPREQUEST_PROXY_SETTING;ProxyServer:OleVariant;BypassList:OleVariant); Procedure SetCredentials(const UserName:WideString;const Password:WideString;Flags: HTTPREQUEST_SETCREDENTIALS_FLAGS); Procedure Open( const Method : WideString; const Url : WideString);'); Procedure Open1( const Method : WideString; const Url : WideString; Async: OleVariant);'); Procedure SetRequestHeader( const Header : WideString; const Value : WideString)'); Function GetResponseHeader( const Header : WideString) : WideString'); Function GetAllResponseHeaders : WideString'); Procedure Send;'); Procedure Send1( Body : OleVariant);'); Function WaitForResponse : WordBool;'); Function WaitForResponse1(Timeout : OleVariant) : WordBool;'); Procedure Abort'); Procedure SetTimeouts(ResolveTimeout:Int;ConnectTimeout:Int;SendTimeout:Int;ReceiveTimeout:Integer); Procedure SetClientCertificate( const ClientCertificate : WideString)'); Procedure SetAutoLogonPolicy( AutoLogonPolicy : WinHttpRequestAutoLogonPolicy)'); RegisterProperty('DefaultInterface', 'IWinHttpRequest', iptr); Status', 'Integer', iptr); StatusText', 'WideString', iptr); ResponseText', 'WideString', iptr); ResponseBody', 'OleVariant', iptr); ResponseStream', 'OleVariant', iptr); Option', 'OleVariant WinHttpRequestOption', iptrw); Server', 'TWinHttpRequestProperties', iptr); OnResponseStart', 'TWinHttpRequestOnResponseStart', iptrw); OnResponseDataAvailable', 'TWinHttpRequestOnResponseDataAvailable', iptrw); OnResponseFinished', 'TNotifyEvent', iptrw); OnError', 'TWinHttpRequestOnError', iptrw); end; end; procedure SIRegister_IWinHttpRequest(CL: TPSPascalCompiler); begin //with RegInterfaceS(CL,'IDispatch', 'IWinHttpRequest') do // with CL.AddInterface(CL.FindInterface('IDispatch'),IWinHttpRequest, 'IWinHttpRequest') do with CL.AddInterface(Cl.FindInterface('IDispatch'), StringToGuid('{016FE2EC-B2C8-45F8-B23B-39E53A75396B}'),'IWinHttpRequest') do begin RegisterMethod('Procedure SetProxy(ProxySetting:HTTPREQUEST_PROXY_SETTING;ProxyServer:OleVariant;BypassList : OleVariant)',CdStdCall); Procedure SetCredentials( const UserName : WideString; const Password : WideString; Flags : HTTPREQUEST_SETCREDENTIALS_FLAGS)', CdStdCall); Procedure Open( const Method:WideString;const Url:WideString; Async:OleVariant)', CdStdCall); Procedure SetRequestHeader( const Header : WideString; const Value : WideString)', CdStdCall); Function GetResponseHeader( const Header : WideString) : WideString', CdStdCall); Function GetAllResponseHeaders : WideString', CdStdCall); Procedure Send( Body : OleVariant)', CdStdCall); Function Get_Status : Integer', CdStdCall); Function Get_StatusText : WideString', CdStdCall); Function Get_ResponseText : WideString', CdStdCall); Function Get_ResponseBody : OleVariant', CdStdCall); Function Get_ResponseStream : OleVariant', CdStdCall); Function Get_Option( Option : WinHttpRequestOption) : OleVariant', CdStdCall); Procedure Set_Option( Option : WinHttpRequestOption; Value : OleVariant)', CdStdCall); Function WaitForResponse( Timeout : OleVariant) : WordBool', CdStdCall); Procedure Abort', CdStdCall); Procedure SetTimeouts(ResolveTimeout:Int;ConnectTimeout:Int;SendTimeout:Int;ReceiveTimeout:Int)',CdStdCall); Procedure SetClientCertificate( const ClientCertificate : WideString)', CdStdCall); Procedure SetAutoLogonPolicy( AutoLogonPolicy : WinHttpRequestAutoLogonPolicy)', CdStdCall); end; end; var EmptyParam: OleVariant; // "Empty parameter" standard constant which can be {$EXTERNALSYM EmptyParam} // passed as an optional parameter on a dual // interface. procedure SIRegister_TNovusConsole(CL: TPSPascalCompiler); begin //with RegClassS(CL,'TOBJECT', 'TNovusConsole') do with CL.AddClassN(CL.FindClass('TOBJECT'),'TNovusConsole') do begin Function IsAvailableKey( aHandle : THandle) : Boolean'); Function IsAvailableKeyEx( aHandle : THandle) : TKeyEvent3'); Function GetAvailableChar( aHandle : THandle) : char'); Function GetStdInputHandle : THandle'); Function GetStdOutputHandle : THandle'); end; end; V4.7.6.50 ---------------------------------- procedure SIRegister_Pas2JSUtils(CL: TPSPascalCompiler); begin Function ChompPathDelim2( const Path : string) : string'); Function GetNextDelimitedItem( const List:string;Delimiter:char; var Position:integer):string'); CL.AddTypeS('TChangeStamp', 'Int64'); Function IncreaseChangeStamp( Stamp : TChangeStamp) : TChangeStamp'); CL.AddConstantN('EncodingUTF8','String').SetString( 'UTF-8'); CL.AddConstantN('EncodingSystem2','String').SetString( 'System2'); Function NormalizeEncoding( const Encoding : string) : string'); Function IsASCII2 const s : string) : boolean'); CL.AddConstantN('UTF8BOM2','String').SetString( #$EF#$BB#$BF ); Function UTF8CharacterStrictLength( P : AnsiChar) : integer'); Function UTF8ToUTF16( const s : RawByteString) : UnicodeString'); Function UTF16ToUTF8( const s : UnicodeString) : RawByteString'); Function IsNonUTF8System : boolean'); Function GetWindowsEncoding( AConsole : Boolean) : string'); Function GetUnixEncoding : string'); Function NonUTF8System : boolean'); Function GetDefaultTextEncoding : string'); Procedure SplitCmdLineParams2(const Params:string;ParamList: TStrings;ReadBackslash: boolean)'); end; procedure SIRegister_Pas2jsFileUtils(CL: TPSPascalCompiler); begin Function jsFilenameIsAbsolute( const aFilename : string) : boolean'); Function jsFilenameIsWinAbsolute( const aFilename : string) : boolean'); Function jsFilenameIsUnixAbsolute( const aFilename : string) : boolean'); Function jsFileIsInPath( const Filename, Path : string) : boolean'); Function jsChompPathDelim( const Path : string) : string'); Function jsExpandFileNamePJ( const FileName : string; BaseDir : string) : string'); Function jsExpandDirectory( const aDirectory : string) : string'); Function jsIsUNCPath( const Path : String) : Boolean'); Function jsExtractUNCVolume( const Path : String) : String'); Function jsExtractFileRoot( FileName : String) : String'); Function jsTryCreateRelativePath(const Dest:String;const Source:String;UsePointDirectory:bool; AlwaysRequireSharedBaseFolder:Bool;out RelPath:String):Boolean; Function jsResolveDots( const AFilename : string) : string'); Procedure jsForcePathDelims( var FileName : string)'); Function jsGetForcedPathDelims( const FileName : string) : String'); Function jsExtractFilenameOnly( const aFilename : string) : string'); Function jsGetCurrentDirPJ : String'); Function jsCompareFilenames( const File1, File2 : string) : Integer'); Function jsFilenameToKey( const Filename : string) : string'); Function jsGetPhysicalFilename( const Filename : string; ExceptionOnError : boolean) : string'); Function jsResolveSymLinks( const Filename : string; ExceptionOnError : boolean) : string'); Function jsMatchGlobbing( Mask, Name : string) : boolean'); Function jsFileIsWritable( const AFilename : string) : boolean'); Function jsFileIsExecutable( const AFilename : string) : boolean'); Function jsGetEnvironmentVariableCountPJ : Integer'); Function jsGetEnvironmentStringPJ( Index : Integer) : string'); Function jsGetEnvironmentVariablePJ( const EnvVar : string) : String'); Function jsGetNextDelimitedItem(const List:string;Delimiter:char;var Position:Integer):string'); // CL.AddTypeS('TChangeStamp', 'SizeInt'); //CL.AddDelphiFunction('Procedure IncreaseChangeStamp( var Stamp : TChangeStamp)'); CL.AddConstantN('jsEncodingUTF8','String').SetString( 'UTF-8'); CL.AddConstantN('jsEncodingSystem','String').SetString( 'System'); Function jsNormalizeEncoding( const Encoding : string) : string'); Function jsIsNonUTF8System : boolean'); Function jsGetDefaultTextEncoding : string'); Function jsGetConsoleTextEncoding : string'); Function jsGetWindowsEncoding( AConsole : Boolean) : string'); Function jsGetUnixEncoding : string'); Function jsIsASCII( const s : AnsiString) : Boolean'); CL.AddConstantN('jsUTF8BOM','String').SetString( RawByteString ( #$EF#$BB#$BF )); //CL.AddDelphiFunction('Function UTF8CharacterStrictLength( const P : PAnsiChar) : Integer'); //Function UTF16CharacterStrictLength( const P : PWideChar) : Integer'); Function jsUTF8ToUTF16( const s : RawByteString) : UnicodeString'); Function jsUTF16ToUTF8( const s : UnicodeString) : RawByteString'); {Function jsUTF8ToSystemCP( const s : RawByteString) : RawByteString'); Function jsSystemCPToUTF8( const s : RawByteString) : RawByteString'); Function jsUTF16ToSystemCP( const s : UnicodeString) : RawByteString'); Function jsSystemCPToUTF16( const s : RawByteString) : UnicodeString'); Function jsUTF8ToConsole( const s : RawByteString) : RawByteString'); Function jsUTF16ToConsole( const s : UnicodeString) : RawByteString');} end; procedure SIRegister_TAsphyreTimer(CL: TPSPascalCompiler); begin //with RegClassS(CL,'TOBJECT', 'TAsphyreTimer') do with CL.AddClassN(CL.FindClass('TOBJECT'),'TAsphyreTimer') do begin RegisterProperty('Delta', 'Single', iptr); Latency', 'Single', iptr); FrameRate', 'Integer', iptr); Speed', 'Single', iptrw); MaxFPS', 'Integer', iptrw); Enabled', 'Boolean', iptrw); Precision', 'TPerformancePrecision', iptr); SingleCallOnly', 'Boolean', iptrw); OnTimer', 'TNotifyEvent', iptrw); OnProcess', 'TNotifyEvent', iptrw); RegisterMethod('Procedure Process( )'); Procedure Reset( )'); Constructor Create( )'); end; end; procedure SIRegister_uXmlStorage(CL: TPSPascalCompiler); begin SIRegister_TXmlStorage(CL); CL.AddDelphiFunction('Function XmlStorage : TXmlStorage'); end; procedure SIRegister_TProcess2(CL: TPSPascalCompiler); begin //with RegClassS(CL,'TComponent', 'TProcess2') do with CL.AddClassN(CL.FindClass('TComponent'),'TProcess2') do begin RegisterMethod(Constructor Create( AOwner : TComponent)'); Procedure Free;'); Procedure Execute'); Procedure CloseInput'); Procedure CloseOutput'); Procedure CloseStderr'); Function Resume : Integer'); Function Suspend : Integer'); Function Terminate( AExitCode : Integer) : Boolean'); Function WaitOnExit : Boolean'); RegisterProperty('WindowRect', 'Trect', iptrw); Handle', 'THandle', iptr); ProcessHandle', 'THandle', iptr); ThreadHandle', 'THandle', iptr); ProcessID', 'Integer', iptr); ThreadID', 'Integer', iptr); Input', 'TOutputPipeStream', iptr); Output', 'TInputPipeStream', iptr); Stderr', 'TinputPipeStream', iptr); ExitStatus', 'Integer', iptr); ExitCode', 'Integer', iptr); InheritHandles', 'Boolean', iptrw); OnForkEvent', 'TProcessForkEvent', iptrw); PipeBufferSize', 'cardinal', iptrw); Active', 'Boolean', iptrw); ApplicationName', 'String', iptrw); CommandLine', 'String', iptrw); Executable', 'String', iptrw); Parameters', 'TStrings', iptrw); ConsoleTitle', 'String', iptrw); CurrentDirectory', 'String', iptrw); Desktop', 'String', iptrw); Environment', 'TStrings', iptrw); Options', 'TProcessOptions2', iptrw); Priority', 'TProcessPriority2', iptrw); StartupOptions', 'TStartupOptions2', iptrw); Running', 'Boolean', iptr); ShowWindow', 'TShowWindowOptions2', iptrw); WindowColumns', 'Cardinal', iptrw); WindowHeight', 'Cardinal', iptrw); WindowLeft', 'Cardinal', iptrw); WindowRows', 'Cardinal', iptrw); WindowTop', 'Cardinal', iptrw); WindowWidth', 'Cardinal', iptrw); FillAttribute', 'Cardinal', iptrw); XTermProgram', 'String', iptrw); end; end; (*----------------------------------------------------------------------------*) procedure SIRegister_dprocess(CL: TPSPascalCompiler); begin CL.AddTypeS('TProcessOption2',(poRunSuspended2, poWaitOnExit2,poUsePipes2,poStderrToOutPut2,poNoConsole2, poNewConsole2, poDefaultErrorMode2,poNewProcessGroup2, poDebugProcess2, poDebugOnlyThisProcess2 )'); TShowWindowOptions2', '(swoNone2,swoHIDE2,swoMaximize2,swoMinimize2,swoRestore2,swoShow2, swoShowDefault2,swoShowMaximized2,swoShowMinimized2, swoshowMinNOActive2,swoShowNA2,swoShowNoActivate2, swoShowNormal2 )'); TStartupOption2','(suoUseShowWindow2,suoUseSize2,suoUsePosition2,suoUseCountChars2,suoUseFillAttribute2)'); CL.AddTypeS('TProcessPriority2','( ppHigh2, ppIdle2, ppNormal2, ppRealTime2 )'); CL.AddTypeS(TProcessOptions2', 'set of TProcessOption2'); CL.AddTypeS(TStartupOptions2', 'set of TStartupOption2'); CL.AddTypeS(TProcessForkEvent', 'Procedure ( Sender : TObject)'); SIRegister_TProcess2(CL); CL.AddClassN(CL.FindClass('TOBJECT'),'EProcess'); Procedure CommandToList2( S : String; List : TStrings)'); Function DetectXTerm : String'); Function RunCommandIndir(const curdir:string;const exename:string;const commands:array of string;out outputstring:ansistring;out exitstatus:integer;Options: TProcessOptions):integer;; Function RunCommandIndir1(const curdir:string; const exename:string;const commands:array of string;out outputstring:ansistring;Options:TProcessOptions):bool; Function RunCommand(const exename:string;const commands:array of string;out outputstring:ansistring;Options: TProcessOptions):boolean; Function RunCommandInDir2(const curdir,cmdline: string; out outputstring: ansistring):boolean;'); Function RunCommand1(const cmdline: string; out outputstring: ansistring): boolean;'); end; 1232 unit dwsWebUtils.pas - test for V5 function DecodeURLEncoded(const src : String; start: Integer): String;'); procedure ParseURLEncoded(const data : RawByteString; dest : TStrings)'); function EncodeURLEncoded(const src : String) : String;'); function IsValidCookieName(const s : String) : Boolean;'); function IsValidCookieValue(const s : String) : Boolean;'); function VariantToString4(const v : Variant) : String;'); function PopCount32_Pascal(v : Int32) : Integer; function PopCount32(v : Integer) : Integer; Function InRange (Lo,Hi,Val : Integer) : Boolean; CL.AddDelphiFunction('function getchatgpt: string;'); function getChatGPT: string;'); function getChatGPT2: string;'); Function PlayMidiFile(FileName:string):word; function GetPIDbyProcessName(processName:String):integer; function RunCommandSilent(const aCommandline:string;const aDirectory:string;const aParameters:String):Integer; function FindMenuItembyCaption (aCaptions:tCaptions; aMenuItems: tMenuItem): tMenuItem; function IsFileInUse(fName: string): boolean; function GetBuildNumber(aFilename: string = ''): String; Function DateDiff2(Period: Word; Date2, Date1: TDatetime): Longint; function FormatedMinutesBetween(aStart: tDateTime; aEnd: tDateTime): String;'); Function UnixTimeToJSONDate(aUnixTime: Int64): String;'); Function WNetGetNetworkInformation2(lpProvider:PChar;var lpNetInfoStruct:TNetInfoStruct2):DWORD; procedure FormatDotLine(var S: string);'); procedure FormatNonDotLine(var S: string);'); function GetClassProcessID(aclassname: string): DWORD; procedure ConvertBinDfmToText(const Filename: string); function FollowRelativeFilename(const RootDir: string; RelFilename: string): string; function PipeToFile(Filename: string; Cmd: string; Append: boolean): boolean; (* "\"\\/Date(1335205592410)\\/\"" .NET JavaScriptSerializer "\"\\/Date(1335205592410-0500)\\/\"" .NET DataContractJsonSerializer "2012-04-23T18:25:43.511Z" JavaScript built-in JSON object "2012-04-21T18:25:43-05:00" ISO 8601 *) procedure SIRegister_TNovusWindows(CL: TPSPascalCompiler); begin //with RegClassS(CL,'TNovusUtilities', 'TNovusWindows') do with CL.AddClassN(CL.FindClass('TNovusUtilities'),'TNovusWindows') do begin Function FormatMessStr( aString : String) : String'); Function GetStrRes( const Index : Integer) : String'); Function IsWin64 : Boolean'); Function CommonFilesDir : string'); Function WindowsSystemDir : String'); Function WindowsDir : string'); Function WindowsTempPath : String'); Function GetLocalComputerName : String'); Function SetEnvironmentVariableEx(const aVariableName:Str;const aValue:string;aIsSystemVariable:Bool):Int'); Function SetSysEnvironmentVariable(const aVariableName: String; aValue: string): Boolean'); Function IsProcess32Exists( aFileName : string) : Boolean'); Function IsStringUniCode( aString : String) : boolean'); Function GetModuleFileName : String'); end; end; procedure SIRegister_TNovusUtilities(CL: TPSPascalCompiler); begin //with RegClassS(CL,'TObject', 'TNovusUtilities') do with CL.AddClassN(CL.FindClass('TObject'),'TNovusUtilities') do begin Function GetExceptMess : String'); Function GetLastSysErrorMess : string'); Function CopyObject( Src, Dest : TObject; Related : Boolean) : Boolean'); Procedure FreeObject( q : TObject)'); Function FindStringListValue( const Strings : tstringlist; Name : String) : String'); Function FindFileSize( Afile : String) : Integer'); Function GetPropertyasClass( aObject : TObject; aPropertyName : string) : TObject'); Function IsProperty( aObject : TObject; aPropertyName : string) : Boolean'); Function GetParamValue( const aParamKey : string; var aValue : string) : Boolean'); Procedure ClearStringList( aStringList : TStringList)'); Procedure CloneStringList( aSource, aDestination : TStringList)'); Function RegExMatch( aInput : string; aPattern : string; aInversed : Boolean) : String'); end; end; procedure SIRegister_TNovusStringUtils(CL: TPSPascalCompiler); begin //with RegClassS(CL,'TNovusUtilities', 'TNovusStringUtils') do with CL.AddClassN(CL.FindClass('TNovusUtilities'),'TNovusStringUtils') do begin Function IsAlphaNumeric( aStr : string) : boolean'); Function RightTrim( aStr : String) : String'); Function LeftTrim( aStr : String) : String'); Function FormatMessStrOptions( aString : String; aFormatOptions : Integer) : String'); Function MemoryStreamToString( Stream : TMemoryStream) : string'); Function Str2Float( aStr : String) : single'); Function Str2Curr( aStr : String) : Currency'); Function Replicate( c : Char; iLen : Integer) : string'); Function _PadLeft( const s : string; iLen : Integer; const sFillChar : Char) : string'); Function JustFilename( const aPathName : String) : String'); Function JustPathname( const aPathName : String) : String'); Function Str2DateTime( s : String) : tDateTime'); Procedure ValLongInt( s : ShortString; var LI : Longint; var ErrorCode : Integer)'); Function Str2LongS( const s : ShortString; var I : Longint) : Boolean'); Function IsNumericChar( AChar : Char) : Boolean'); Function IsAlphaChar( AChar : Char) : Boolean'); Function IsNumeric( s : String) : Boolean'); Function IsAlpha( s : String) : Boolean'); Procedure GetNames( AText : string; AList : TStringList)'); Function SubstCharSim( P : string; OC, NC : ANSIChar) : string'); Function RootDirectory : String'); Function StripChar( s : String; Ch : Char) : string'); Function ReplaceChar( s : String; aFromCh, aToCh : Char) : String'); Function ReplaceBetweenPositions(const aSource,aReplaceWith:string;aStartPos:Int;aEndPos:Int) String; Function GetStrToken(const s:string;sTokens:array of string;var iPos:Integer;var sLastToken:String):string; Function GetStrTokenA( const s, sDelim : string; var iPos : Integer) : string'); Function Bool2Str( aValue : Boolean) : String'); Function Str2Int( aStr : String) : Integer'); Function Str2Int64( aStr : String) : Int64'); Function Str2Uint16( aStr : String) : UInt16'); Function FormatStrVar( const aFormat : string; const Args : array of Variant) : string'); Function StrChInsertL( const s : AnsiString; c : ANSIChar; Pos : Cardinal) : AnsiString'); Function IsIntStr( s : String) : Boolean'); Function MakeTmpFileName( AExt : string; AUseGUID : Boolean) : String'); Function ReplaceStrPos(const sString,sOldStr,sNewStr:string;APos:Int;AUseBlank:Bool):string; Function IsLowerChar( Ch : Char) : Boolean'); Function IsUpperChar( Ch : Char) : Boolean'); Function UpLower( AName : String; FirstOnly : Boolean) : String'); Function UpLowerA( AName : String; FirstOnly : Boolean) : String'); Function BooleanToStr( bValue : Boolean) : string'); Function StrToBoolean( const sValue : string) : Boolean'); Function CopyString( const aStr : string; aStartPos, aEndPos : Integer) : String'); Function ReplaceStr( const sString,sOldStr,sNewStr:string; ACheckUpper : Boolean): string'); Procedure ParseStringList( sDelimeter : string; sStr : string; var Lines : TStringList);'); Procedure ParseStringList1( aDelimeter : Char; sStr : string; var Lines : TStringList);'); Procedure String2StringList( aString : string; var AStringList : TStringList)'); Procedure String2Strings( aString : string; var AStrings : TStrings)'); Function VarArrayToStr( const vArray : variant) : string'); Function VarStrNull( const V : OleVariant) : string'); Function IsBoolean( const sValue : string) : Boolean'); Function StrToUInt64( const s : String) : UInt64'); Function StrToUInt8( const s : String) : UInt8'); Procedure ClearStringlist( aStringlist : tStringlist)'); Function PadLeft( const Str : string; Ch : Char; Count : Integer) : string'); Function PadRight( const Str : string; Ch : Char; Count : Integer) : string'); end; end; procedure SIRegister_TNovusNumUtils(CL: TPSPascalCompiler); begin //with RegClassS(CL,'TNovusUtilities', 'TNovusNumUtils') do with CL.AddClassN(CL.FindClass('TNovusUtilities'),'TNovusNumUtils') do begin Function HexToInt64( HexStr : String) : Int64'); Function HexToUInt64( HexStr : String) : UInt64'); Function StrToUInt64( aStr : String) : UInt64'); Function StrToUInt8( aStr : String) : byte'); Function HexToUint16( HexStr : String) : UInt16'); Function HexToUint8( HexStr : String) : byte'); Function Int64ToBin( IValue : Int64; NumBits : word) : string'); Function BinToInt64( BinStr : string) : Int64'); Function BinToUInt64( BinStr : string) : UInt64'); Function BinToUInt8( BinStr : string) : byte'); Function BinToUInt16( BinStr : string) : word'); Function StrToUInt16( aStr : String) : word'); Function CreateWord( const aHiByte, aLoByte : byte) : word'); Function HexStrToBytes( aHexStr : String; aLittle_Endian : boolean) : tBytes'); Function ReverseBytesOrder( aBytes : TBytes) : tBytes'); end; end; procedure SIRegister_TNovusFileUtils(CL: TPSPascalCompiler); begin //with RegClassS(CL,'tNovusUtilities', 'TNovusFileUtils') do with CL.AddClassN(CL.FindClass('tNovusUtilities'),'TNovusFileUtils') do begin Function SwapFilenameExtenion( aFilename, aNewExtenion : String) : String'); Function AppRootDirectory : String'); Function IsFileInUse( fName : string) : boolean'); Function FilePathToURL( const aFilePath : string) : string'); Function IsFileReadonly( fName : string) : boolean'); Function MoveDir( aFromDirectory, aToDirectory : String) : boolean'); Function CopyDir( aFromDirectory, aToDirectory : String) : boolean'); Function ExtractName( aFullFileName : String) : String'); Function ExtractFileExtA( aFileExt : String) : String'); Function IsJustFilenameOnly( aFilename : String) : Boolean'); Function AbsoluteFilePath( aFilename : String) : String'); Function TrailingBackSlash( const aFilename : string) : string'); Function GetWindowsSpecialFolder( const CSIDL : integer) : string'); Function IsOnlyFolder( aFolder : string) : boolean'); Function IsValidFolder( aFolder : String) : boolean'); Function IsTextFile( aFilename : String; var aEncoding : tEncoding) : integer'); end; end; (*----------------------------------------------------------------------------*) procedure SIRegister_WebUtils(CL: TPSPascalCompiler); //beta version - not stable! begin //with RegClassS(CL,'TOBJECT', 'WebUtils') do with CL.AddClassN(CL.FindClass('TOBJECT'),'WebUtils') do begin Procedure ParseURLEncoded( const data : RawByteString; dest : TStrings)'); Function DecodeURLEncoded( const src : RawByteString; start, count : Integer) : String;'); Function DecodeURLEncoded1( const src : RawByteString; start : Integer) : String;'); Function EncodeURLEncoded( const src : String) : String'); Procedure ParseMIMEHeaderValue( const src : RawByteString; dest : TStrings)'); Procedure ParseMultiPartFormData( const src, dashBoundary : RawByteString; var dest : TIMIMEBodyParts)'); Function DecodeHex2( p : PAnsiChar) : Integer'); Function HasFieldName( const list : TStrings; const name : String) : Boolean'); Function EncodeEncodedWord( const s : String) : String'); Function DateTimeToRFC822( const dt : TdwsDateTime) : String;'); Function DateTimeToRFC822_1( const dt : TDateTime) : String;'); Function RFC822ToDateTime( const str : String) : TDateTime'); Function HTMLTextEncode( const s : UnicodeString) : UnicodeString'); Function HTMLTextDecode( const s : UnicodeString) : UnicodeString'); Function HTMLCharacterDecode( p : PWideChar) : WideChar'); Function HTMLAttributeEncode( const s : UnicodeString) : UnicodeString'); Function HTMLAttributeDecode( const s : UnicodeString) : UnicodeString'); Function CSSTextEncode( const s : UnicodeString) : UnicodeString'); Function XMLTextEncode(const s:UnicodeString;unsupportedXML10CharactersMode:Int):UnicodeString; Function XMLTextDecode( const s : UnicodeString) : UnicodeString'); Function IsValidCookieName( const s : String) : Boolean'); Function IsValidCookieValue( const s : String) : Boolean'); end; end; procedure SIRegister_TOldPerson(CL: TPSPascalCompiler); begin //with RegClassS(CL,'TPersistent', 'TOldPerson') do with CL.AddClassN(CL.FindClass('TPersistent'),'TOldPerson') do begin RegisterMethod(Function NewFrom( Id : Integer; Name, EMail : String) : TOldPerson'); RegisterProperty('id', 'Integer', iptrw); RegisterProperty('name', 'String', iptrw); RegisterProperty('email', 'String', iptrw); RegisterProperty('createDate', 'TDateTime', iptrw); end; end; (*----------------------------------------------------------------------------*) procedure SIRegister_TPerson(CL: TPSPascalCompiler); begin //with RegClassS(CL,'TObject', 'TPerson') do with CL.AddClassN(CL.FindClass('TObject'),'TNewPerson') do begin RegisterProperty('id', 'Integer', iptrw); RegisterProperty('name', 'String', iptrw); RegisterProperty('email', 'String', iptrw); RegisterProperty('createDate', 'TDateTime', iptrw); RegisterMethod(Function NewFrom( Id : Integer; Name, EMail : String) : TNewPerson'); end; end; procedure SIRegister_superobject(CL: TPSPascalCompiler); begin CL.AddTypeS('suPtrInt', 'Int64'); CL.AddTypeS('suPtrUInt', 'UInt64'); CL.AddTypeS('suPtrInt', 'longint'); CL.AddTypeS('suPtrUInt', 'Longword'); CL.AddTypeS('suSuperInt', 'Int64'); CL.AddTypeS('suSOChar', 'WideChar'); CL.AddTypeS('suSOIChar', 'Word'); //CL.AddTypeS('PSOChar', 'PWideChar'); CL.AddTypeS('suSOStringu', 'UnicodeString'); CL.AddTypeS('suSOStringw', 'WideString'); CL.AddTypeS('suSOChar', 'Char'); CL.AddTypeS('suSOIChar', 'Word'); CL.AddTypeS('suPSOChar', 'PChar'); CL.AddTypeS('suSOString', 'string'); CL.AddConstantN('SUPER_ARRAY_LIST_DEFAULT_SIZE','LongInt').SetInt( 32); CL.AddConstantN('SUPER_TOKENER_MAX_DEPTH','LongInt').SetInt( 32); CL.AddClassN(CL.FindClass('TOBJECT'),'TSuperObject'); CL.AddInterface(CL.FindInterface('IUNKNOWN'),ISuperObject, 'ISuperObject'); CL.AddClassN(CL.FindClass('TOBJECT'),'TSuperArray'); //CL.AddTypeS('TSuperAvlBitArray', 'set of Integer'); CL.AddTypeS('TSuperAvlSearchType', '( sustEQual, sustLess, sustGreater )'); CL.AddTypeS('TSuperAvlSearchTypes', 'set of TSuperAvlSearchType'); CL.AddClassN(CL.FindClass('TOBJECT'),'TSuperAvlIterator'); SIRegister_TSuperAvlEntry(CL); SIRegister_TSuperAvlTree(CL); SIRegister_TSuperTableString(CL); SIRegister_TSuperAvlIterator(CL); //CL.AddTypeS('PSuperObjectArray', '^TSuperObjectArray // will not work'); SIRegister_TSuperArray(CL); SIRegister_TSuperWriter(CL); SIRegister_TSuperWriterString(CL); SIRegister_TSuperWriterStream(CL); SIRegister_TSuperAnsiWriterStream(CL); SIRegister_TSuperUnicodeWriterStream(CL); SIRegister_TSuperWriterFake(CL); SIRegister_TSuperWriterSock(CL); CL.AddTypeS('TSuperTokenizerError', '( suteSuccess, suteContinue, suteDepth, sutePars' +'eEof, suteParseUnexpected, suteParseNull, suteParseBoolean, suteParseNumber, sutePar' +'seArray, suteParseObjectKeyName, suteParseObjectKeySep, suteParseObjectValueSep,' +' suteParseString, suteParseComment,suteEvalObject,suteEvalArray,suteEvalMethod,suteEvalInt)'); CL.AddTypeS(TSuperTokenerState', '( sutsEatws, sutsStart, sutsFinish, sutsNull, sutsCo' +mmentStart, sutsComment, sutsCommentEol, sutsCommentEnd, sutsString, sutsStringEscap' +e, sutsIdentifier, sutsEscapeUnicode, sutsEscapeHexadecimal, sutsBoolean, sutsNumber' +, sutsArray, sutsArrayAdd, sutsArraySep, sutsObjectFieldStart, sutsObjectField, sutsOb' +jectUnquotedField, sutsObjectFieldEnd, sutsObjectValue, sutsObjectValueAdd, sutsOb' +jectSep, sutsEvalProperty, sutsEvalArray, sutsEvalMethod, sutsParamValue, sutsParamP' +ut, sutsMethodValue, sutsMethodPut )'); //CL.AddTypeS('PSuperTokenerSrec', '^TSuperTokenerSrec // will not work'); SIRegister_TSuperEnumerator(CL); SIRegister_ISuperObject(CL); SIRegister_TSuperObject(CL); CL.AddTypeS(TSuperTokenerSrec', 'record state : TSuperTokenerState; saved_st' +ate : TSuperTokenerState; obj : ISuperObject; current : ISuperObject; fiel' +d_name : suSOString; parent : ISuperObject; gparent : ISuperObject; end'); SIRegister_TSuperTokenizer(CL); CL.AddTypeS('TSuperType',(sustNull,sustBoolean,sustDouble,sustCurrency,sustInt,sustObject,sustArray,sustString,sustMethod )'); CL.AddTypeS('TSuperValidateError','( suveRuleMalformated, suveFieldIsRequired, suv' +'eInvalidDataType, suveFieldNotFound, suveUnexpectedField, suveDuplicateEntry, suve' +'ValueNotInEnum, suveInvalidLength, suveInvalidRange )'); CL.AddTypeS('TSuperFindOption', '( sufoCreatePath, sufoPutValue, sufoDelete, sufoCallMethod )'); CL.AddTypeS('TSuperFindOptions', 'set of TSuperFindOption'); CL.AddTypeS('TSuperCompareResult', '( sucpLess, sucpEqu, sucpGreat, sucpError )'); // } //SIRegister_TSuperEnumerator(CL); //SIRegister_ISuperObject(CL); //SIRegister_TSuperObject(CL); CL.AddClassN(CL.FindClass('TOBJECT'),'TSuperRttiContext'); SIRegister_TSuperAttribute(CL); CL.AddClassN(CL.FindClass('TOBJECT'),'SOName'); CL.AddClassN(CL.FindClass('TOBJECT'),'SODefault'); CL.AddClassN(CL.FindClass('TOBJECT'),'SOIgnore'); CL.AddClassN(CL.FindClass('TOBJECT'),'SOIgnoreSerialize'); SIRegister_TSuperRttiContext(CL); CL.AddTypeS('TSuperObjectIter', 'record key : suSOString; val : ISuperObject; Ite : TSuperAvlIterator; end'); Function suObjectIsError( obj : TSuperObject) : boolean'); Function suObjectIsType( const obj : ISuperObject; typ : TSuperType) : boolean'); Function suObjectGetType( const obj : ISuperObject) : TSuperType'); Function suObjectIsNull( const obj : ISuperObject) : Boolean'); Function suObjectFindFirst( const obj : ISuperObject; var F : TSuperObjectIter) : boolean'); Function suObjectFindNext( var F : TSuperObjectIter) : boolean'); Procedure suObjectFindClose( var F : TSuperObjectIter)'); Function suSO38( const s : suSOString) : ISuperObject;'); Function suSO39( const value : Variant) : ISuperObject;'); Function suSO40( const Args : array of const) : ISuperObject;'); Function suSA41( const Args : array of const) : ISuperObject;'); Function suJavaToDelphiDateTime( const dt : int64) : TDateTime'); Function suDelphiToJavaDateTime( const dt : TDateTime) : int64'); Function suTryObjectToDate( const obj : ISuperObject; var dt : TDateTime) : Boolean'); Function suUUIDToString( const g : TGUID) : suSOString'); Function siStringToUUID( const str : suSOString; var g : TGUID) : Boolean'); CL.AddTypeS('TSuperInvokeResult','( suirSuccess,suirMethothodError,suirParamError, suirError )'); //CL.AddDelphiFunction(Function TrySOInvoke42( var ctx : TSuperRttiContext; const obj : TValue; const method:string; const params:ISuperObject;var Return : ISuperObject) : TSuperInvokeResult;'); //CL.AddDelphiFunction('Function SOInvoke43(const obj:TValue;const method:string; const params:ISuperObject; ctx:TSuperRttiContext):ISuperObject;'); //CL.AddDelphiFunction(Function SOInvoke44(const obj:TValue; const method:string;const params:string;ctx : TSuperRttiContext):ISuperObject;'); //CL.AddDelphiFunction(Function IsGenericType( TypeInfo : PTypeInfo) : Boolean'); //Function GetDeclaredGenericType( RttiContext : TRttiContext; TypeInfo : PTypeInfo) : TRttiType'); //Function IsList( RttiContext : TRttiContext; TypeInfo : PTypeInfo) : Boolean'); //Function CreateInstance( RttiContext : TRttiContext; TypeInfo : PTypeInfo) : TValue'); end; procedure SIRegister_TRestDM(CL: TPSPascalCompiler); begin //with RegClassS(CL,'TDataModule', 'TDM') do with CL.AddClassN(CL.FindClass('TDataModule'),'TRestDM') do begin RegisterProperty('RestClient', 'TRestClient', iptrw); end; end; (*----------------------------------------------------------------------------*) procedure SIRegister_uDM(CL: TPSPascalCompiler); begin CL.AddConstantN('REST_CONTEXT_PATH','String').SetString('http://localhost:8080/java-rest-server/rest/'); //CL.AddClassN(CL.FindClass('TOBJECT'),'EProcess'); CL.AddClassN(CL.FindClass('TComponent'),'TRestClient'); SIRegister_TRestDM(CL); end; type TSHFileOpStruct = record hwnd: HWND; wFunc: UINT; pFrom: string; pTo: string; fFlags: Word; fAnyOperationsAborted: BOOL; hNameMappings: HWND; lpszProgressTitle: string; end; CL.AddTypeS(_NETINFOSTRUCT2', 'record cbStructure : DWORD; dwProviderVersion ' +: DWORD; dwStatus : DWORD; dwCharacteristics : DWORD; dwHandle : DWORD; wN' +etType : Word; dwPrinters : DWORD; dwDrives : DWORD; end'); Function SHFileOperation( const lpFileOp : TSHFileOpStruct) : Integer'); Function SHFileOperationA( const lpFileOp : TSHFileOpStructA) : Integer'); procedure SIRegister_dpipes(CL: TPSPascalCompiler); begin CL.AddClassN(CL.FindClass('TOBJECT'),'EPipeError2'); TOBJECT'),'EPipeSeek2'); TOBJECT'),'EPipeCreation2'); SIRegister_TInputPipeStream2(CL); SIRegister_TOutputPipeStream2(CL); Function CreatePipeHandles2( var Inhandle,OutHandle:THandle;APipeBufferSize:Cardinal): Boolean'); Procedure CreatePipeStreams2( var InPipe : TInputPipeStream2; var OutPipe : TOutputPipeStream2)'); CL.AddConstantN('EPipeMsg2','String').SetString( 'Failed to create pipe.'); CL.AddConstantN('ENoSeekMsg2','String').SetString( 'Cannot seek on pipes'); end; procedure SIRegister_tNovusStringBuilder(CL: TPSPascalCompiler); begin //with RegClassS(CL,'tStringBuilder', 'tNovusStringBuilder') do with CL.AddClassN(CL.FindClass('tStringBuilder'),'tNovusStringBuilder') do begin Function AppendasString( const Value : string) : TStringBuilder'); Function ToStringAll : String'); Function SaveToFile( aFilename : String) : boolean'); end; end; (*----------------------------------------------------------------------------*) procedure SIRegister_TNovusDateUtils(CL: TPSPascalCompiler); begin //with RegClassS(CL,'tNovusUtilities', 'TNovusDateUtils') do with CL.AddClassN(CL.FindClass('tNovusUtilities'),'TNovusDateUtils') do begin Function IsValidYear( sStr : String) : Boolean'); Function IsValidMonth( iMonth : Integer) : Boolean'); Function isLeapYear( year : Integer) : Boolean'); Function GetIntMonth( sStr : String) : Integer'); Function GetIntYear( sStr : String; iPos : Integer) : Integer'); Function UnixTimeToDateTime( const aUnixDate : Int64) : TDateTime'); Function DateTimeToISO8601( const aDateTime : TDateTime) : string'); Function JSONDateToDatetime( aJSONDate : string) : TDateTime'); end; end; (*----------------------------------------------------------------------------*) procedure SIRegister_NovusDateUtils(CL: TPSPascalCompiler); begin CL.AddConstantN('novUnixStartDate','Extended').setExtended( 25569.0); noviMinYIndex','LongInt').SetInt( 1); noviMaxYIndex','LongInt').SetInt( 10); novTWOZERO','String').SetString( '20'); novONENINE','String').SetString( '19'); novMonthOnly','String').SetString( 'm'); novDayOnly','String').SetString( 'd'); novYearOnly','String').SetString( 'y'); SIRegister_TNovusDateUtils(CL); end; procedure SIRegister_TPJCBViewer(CL: TPSPascalCompiler); begin //with RegClassS(CL,'TComponent', 'TPJCBViewer') do //https://github.com/ddablib/cbview with CL.AddClassN(CL.FindClass('TComponent'),'TPJCBViewer') do begin RegisterMethod('Constructor Create( AOwner : TComponent)'); RegisterMethod('Procedure Free;'); RegisterProperty('OnClipboardChanged', 'TNotifyEvent', iptrw); TriggerOnCreation', 'Boolean', iptrw); RegisterProperty(Enabled', 'Boolean', iptrw); end; end; procedure TDemoFormPJCBViewer1ClipboardChanged(Sender: TObject); begin // Clipboard has changed - emit beep and decide whether to enable memo2 // (only if text is on clipboard) MessageBeep(0); if ClipBoard.HasFormat(CF_TEXT) then Memo2.lines.add(ClipBoard.AsText); end; Example: with TPJCBViewer.create(self) do begin //RegisterMethod('Constructor Create( AOwner : TComponent)'); //RegisterProperty('OnClipboardChanged', 'TNotifyEvent', iptrw); //RegisterProperty('TriggerOnCreation', 'Boolean', iptrw); OnClipboardChanged:= @TDemoFormPJCBViewer1ClipboardChanged; Enabled:= true; free; end; procedure SIRegister_TNovusWinVersionUtils(CL: TPSPascalCompiler); begin //with RegClassS(CL,'TNovusUtilities', 'TNovusWinVersionUtils') do CL.AddTypeS(novTTranslation', 'record Language : word; CharSet : Word; end'); with CL.AddClassN(CL.FindClass('TNovusUtilities'),'TNovusWinVersionUtils') do begin Function GetFixedFileInfo( FileInfo : __Pointer) : PVSFixedFileInfo'); Function GetFullVersionNumber( aFileName : String) : string'); Function GetReleaseNumber( aFileName : String) : String'); Function GetMagMinVersionNumber( aFileName : String) : String'); Function CreateFileInfo( aFileName : String) : __Pointer'); Procedure FreeFileInfo( FileInfo : __Pointer)'); Function GetProductName( aFileName : String) : String'); Function GetLegalCopyright( aFileName : String) : String'); Function GetTranslationCount( FileInfo : __Pointer) : UINT'); Function GetTranslation( FileInfo : __Pointer; i : UINT) : novTTranslation'); Function GetFileInfoString(FileInfo:__Pointer;Translation:novTTranslation;StringName:string):string; RegisterMethod('Function GetBuildNumber( aFilename : string) : String'); end; end; procedure SIRegister_PJResFile(CL: TPSPascalCompiler); begin CL.AddConstantN('pjRES_MF_MOVEABLE','LongWord').SetUInt( $0010); pjRES_MF_PURE','LongWord').SetUInt( $0020); pjRES_MF_PRELOAD','LongWord').SetUInt( $0040); pjRES_MF_DISCARDABLE','LongWord').SetUInt( $1000); pjRT_HTML','LongInt').SetInt( ( 23 )); pjRT_MANIFEST','LongInt').SetInt( ( 24 )); // CL.AddTypeS('TBytes', 'array of Byte'); CL.AddClassN(CL.FindClass('TOBJECT'),'TPJResourceEntry'); SIRegister_TPJResourceFileEnumerator(CL); SIRegister_TPJResourceFile(CL); SIRegister_TPJResourceEntry(CL); CL.AddClassN(CL.FindClass('TOBJECT'),'EPJResourceFile'); Function IsIntResource2( const ResID : PChar) : Boolean'); Function IsEqualResID2( const R1, R2 : PChar) : Boolean'); Function ResIDToStr2( const ResID : PChar) : string'); end; Example with subfunction____________________________________: function GetClassProcessID(aclassname: string): DWORD; function EnumWinProc(Wnd: HWnd; var ProcessID: Integer): Bool; stdcall; var Buf: array[Byte] of Char; begin Result:= True; GetClassName(wnd, Buf, sizeof(Buf)); if (StrIComp(Buf, pansichar(aclassname)) = 0) then begin Result:= False; GetWindowThreadProcessId(Wnd, @ProcessID); end; end; begin EnumWindows(@EnumWinProc, Integer(@Result)); end; procedure ConvertBinDfmToText(const Filename: string); var InStream, OutStream: TStream; begin OutStream:= TMemoryStream.Create; try InStream:= TFileStream.Create(Filename, fmOpenRead or fmShareDenyWrite); try ObjectResourceToText(InStream, OutStream); finally InStream.Free; end; TMemoryStream(OutStream).SaveToFile(Filename); // overwrite file finally OutStream.Free; end; end; procedure Set_Test; //loop with a condition at the top: var s: TSet; iset: TSetMember; begin s:= [C,E, F,H]; s:= s- [C]; writeln('setsize: '+itoa(high(TSetMember(iset)))); for it:= Low(TSetMember(iset)) to High(iset) do begin iset:= TSetMember(ord(it)); if not (iset in s) then Continue; writeln(itoa(it)+itoa(ord(iset))); //writeln(botostr(iset in s)); // It's in the set. Do some stuff. // Out of Record Fields Range at 27.190 end; end; procedure SIRegister_JVCLHelpUtils(CL: TPSPascalCompiler); begin CL.AddConstantN('jvclSpaceChar','Char').SetString( #32); jvclTabChar','Char').SetString( #8); MaxGuidListSize','LongInt').SetInt( Maxint div 32); cUnknownGroupStr','String').SetString( 'JVCL.??'); cSummaryDefaultText','String').SetString( 'Write here a summary (1 line)'); cSummaryDefaultTextForBuild','String').SetString( 'Not documented'); cDescriptionDefaultText','String').SetString( 'Write here a description'); cEditLink','String').SetString('%s'); cDescriptionDefaultTextForBuild','String').SetString('This topic is undocumented. Click on "Edit topic" to document it.'); cDescriptionOverrideDefaultText','String').SetString( 'This is an overridden method, you don''t have to describe these if it does ' + 'same as the inherited method'); cDescriptionOverloadDefaultText','String').SetString( 'This is an overloaded function/procedure, if possible you may combine ' + 'description of all these functions into 1 general description. If you do so, ' + ' combine all "Parameter" lists into 1 list, and leave the "Summary", "Description" ' + 'etc. fields empty for all other overloaded functions with the same name.'); cSeeAlsoDefaultText','String').SetString( 'List here other properties, methods (comma seperated) Remove the ''See Also'' ' + 'section if there are no references'); cParameterDefaultText','String').SetString( 'Description for this parameter'); cParameterDefaultTextForBuild','string').SetString( 'cSummaryDefaultTextForBuild'); cReturnValueDefaultText','String').SetString( 'Describe here what the function returns'); cEnumerateDefaultText','String').SetString( 'Description for %s'); cEnumerateDefaultTextForBuild','string').SetString( 'cSummaryDefaultTextForBuild'); CL.AddTypeS('TTopicToken', '( tkSummary, tkNote, tkReturnValue, tkDescription' +', tkParameters, tkSeeAlso, tkJVCLInfo, tkGroup, tkFlag, tkAuthor, tkAlias,' +' tkAliasOf, tkCombine, tkCombineWith, tkTitle, tkTitleImg, xtkHasTocEntry,' +' tkDonator, tkGroup2, tkHasPasFileEntry, tkPlatform, tkTopicOrder, tkOther)'); TSymbolToken', '( toEOF, toString, toEmpty, toDot, toNumber, xto' +Link, toTableBegin, toTableEnd, toBoldBegin, toBoldEnd, toItalicBegin, toI' +talicEnd, toUnderlineBegin, toUnderlineEnd, toParagraph, toPreBegin, toPre' +End, toCodeBegin, toCodeEnd, toExtLinkBegin, toExtLinkEnd, toImage, toAuto' +Link, toNoWhiteSpace, toBOF, toInclude, toColorBegin, toColorEnd, toFlag, ' +toKeyWords, toImplementation, toVersionSpecific, toDelphiLink )'); CL.AddTypeS('TDtxSelectionKind', '( dskMax, dskPercentage, dskSpecific )'); CL.AddClassN(CL.FindClass('TOBJECT'),'TGuidList'); //CL.AddTypeS('PGuidItem', '^TGuidItem // will not work'); CL.AddTypeS('TGuidItem', 'record FGuid : TGuid; FObject : TObject; end'); //CL.AddTypeS('PGuidItemList', '^TGuidItemList // will not work'); SIRegister_TGUIDList(CL); SIRegister_TIntegerList2(CL); SIRegister_TStringStack(CL); SIRegister_ITaskManager(CL); SIRegister_TProgress2(CL); SIRegister_TTask(CL); SIRegister_TXMLWriter(CL); SIRegister_TDtxBaseItem(CL); SIRegister_TSimpleDtxComment(CL); SIRegister_TSimpleDtxTopic(CL); SIRegister_TSimpleDtxList(CL); CL.AddClassN(CL.FindClass('TOBJECT'),'TStringObjectList'); SIRegister_TStringObjectList(CL); SIRegister_TRegisteredComponents(CL); SIRegister_TOwnedStringList(CL); Function jvclPad( const S : string; const Width : Integer; const PadChar : Char) : string'); Procedure jvclWrap( var S : string; const Width, Indent, NextIndent : Integer)'); Function jvclMaxWordLengthInString( const S : string) : Integer'); Function jvclLinkStr( const S : string) : string'); Procedure jvclGetFirstToken(const Source : string; out Token: string; out RestIndex: Integer)'); Procedure jvclEatChars( var S : string; const Chars : TSysCharSet)'); Procedure jvclEatChar( var S : string; const Chars : TSysCharSet)'); Function jvclIsNullStr( const S : string) : Boolean'); Procedure jvclStatusMsg( const Msg : string)'); Procedure jvclStatusMsgFmt( const Msg : string; const Args : array of const)'); Procedure jvclErrorMsg( const Msg : string)'); Procedure jvclErrorMsgFmt( const Msg : string; const Args : array of const)'); Procedure jvclWarningMsg( const Msg : string)'); Procedure jvclWarningMsgFmt( const Msg : string; const Args : array of const)'); Procedure jvclErrorHeaderFmt( const Msg : string; const Args : array of const)'); Procedure jvclErrorHeader( const Msg : string)'); Procedure jvclHintMsg( const Msg : string)'); Procedure jvclHintMsgFmt( const Msg : string; const Args : array of const)'); Procedure jvclEnsureMinCount( SS : TStrings; const MinCount : Integer);'); Procedure jvclEnsureMinCount1( SS : TList; const MinCount : Integer);'); Function jvclIsParam( const S : string) : Boolean;'); Function jvclIsParam1( const S : string; out Token: string; out RestIndex: Integer): Boolean;'); Function jvclStartWith2Spaces( const S : string) : Boolean'); Procedure jvclDiffLists(Source1,Source2,InBoth,NotInSource1,NotInSource2:TStrings;const CaseSensitive:Bool)'); Function jvclHasDuplicates( Strings : TStrings) : Boolean'); Function jvclIsReadonlyFile( const AFileName : string) : Boolean'); Function jvclCheckDir( const ADir : string) : Boolean'); Function jvclCheckFile( const AFileName : string) : Boolean'); Function jvclAfterDot( const S : string) : string'); Function jvclBeforeDot( const S : string) : string'); Procedure jvclGetAllFilesFrom(const ADir,AFilter:string;AFiles:TStrings;const IncludeSubDirs:Boolean;const StripExtAndPath:Boolean)'); Function jvclPackageToTopicName( const S : string) : string'); Function jvclStripOverloadAt( const S : string) : string'); Function jvclLocateString(Strings:TStrings;const StartIndex:Integer; const S:string): Integer'); Function jvclIsPrefix( const Prefix, S : string) : Boolean'); Function jvclIsPostfix( const Postfix, S : string) : Boolean'); Function jvclIsSubString( const SubString, S : string) : Boolean'); Function jvclLocatePrefix(Strings:TStrings;const StartIndex:Integer;const S : string):Integer'); Function jvclLocatePostfix( Strings: TStrings;const StartIndex:Integer;const S:string):Integer'); Function jvclLocateSubString(Strings:TStrings;const StartIndex:Integer;SubStr:string):Integer'); Function jvclChangeSubString( const S, OldStr, NewStr : string) : string'); Function jvclRegisteredClassNameToImageFileName( const ARegisteredClassName : string): string'); Function jvclHasDot( const S : string) : Boolean'); Function jvclHasAt( const S : string) : Boolean'); end; procedure SIRegister_TJvCreateProcess3(CL: TPSPascalCompiler); begin //with RegClassS(CL,'TJvComponent', 'TJvCreateProcess') do with CL.AddClassN(CL.FindClass('TJvComponent'),'TJvCreateProcess2') do begin RegisterMethod('Constructor Create( AOwner : TComponent)'); Procedure Free'); Function CloseApplication( SendQuit : Boolean) : Boolean'); Procedure Run'); Procedure StopWaiting'); Procedure Terminate'); Function Write( const S : AnsiString) : Boolean'); Function WriteLn( const S : AnsiString) : Boolean'); ProcessInfo', 'TProcessInformation', iptr); State', 'TJvCPSState2', iptr); ConsoleOutput', 'TStrings', iptr); InputReader', 'TJvBaseReader2', iptr); ErrorReader', 'TJvBaseReader2', iptr); ApplicationName', 'string', iptrw); CommandLine', 'string', iptrw); CreationFlags', 'TJvCPSFlags2', iptrw); CurrentDirectory', 'string', iptrw); Environment', 'TStrings', iptrw); Priority', 'TJvProcessPriority2', iptrw); StartupInfo', 'TJvCPSStartupInfo', iptrw); WaitForTerminate', 'Boolean', iptrw); ConsoleOptions', 'TJvConsoleOptions2', iptrw); OnTerminate', 'TJvCPSTerminateEvent2', iptrw); OnRead', 'TJvCPSReadEvent2', iptrw); OnRead2', 'TJvCPSReadEvent2', iptrw); OnRawRead', 'TJvCPSRawReadEvent2', iptrw); OnErrorRead', 'TJvCPSReadEvent2', iptrw); OnErrorRawRead', 'TJvCPSRawReadEvent2', iptrw); end; end; procedure SIRegister_JvCreateProcess2(CL: TPSPascalCompiler); begin CL.AddConstantN('CCPS_BufferSize','LongInt').SetInt( 1024); CCPS_MaxBufferSize',LongInt').SetInt( 65536); CL.AddTypeS('EJvProcessError', 'EJVCLException'); TJvProcessPriority2', '( ppIdle2, ppNormal2, ppHigh2, ppRealTime2 )'); TJvConsoleOption2', '( coOwnerData2, coRedirect2, coSeparateError2 )'); TJvConsoleOptions2', 'set of TJvConsoleOption2'); TJvCPSRawReadEvent2', 'Procedure ( Sender : TObject; const S : string)'); TJvCPSReadEvent2','Procedure (Sender: TObject; const S:string; const StartsOnNewLine: Boolean)'); TJvCPSReadEvent3','Procedure (Sender: TObject; const S:string; const StartsOnNewLine: Boolean)'); TJvCPSTerminateEvent2', 'Procedure ( Sender : TObject; ExitCode : DWORD)'); SIRegister_TJvProcessEntry2(CL); TJvCPSState2', '( psReady2, psRunning2, psWaiting2 )'); TJvCPSFlag2', '( cfDefaultErrorMode2, cfNewConsole2, cfNewProcGroup2' +, cfSeparateWdm2, cfSharedWdm2, cfSuspended2, cfUnicode2, cfDetached2 )'); TJvCPSFlags2', 'set of TJvCPSFlag2'); TJvCPSShowWindow2', '( swHide2, swMinimize2, swMaximize2, swNormal2 )'); SIRegister_TJvCPSStartupInfo2(CL); CL.AddClassN(CL.FindClass('TOBJECT'),'TJvCreateProcess'); CL.AddClassN(CL.FindClass('TOBJECT'),'TJvCreateProcess2'); //CL.AddTypeS('TJvCreateProcess2', 'TJvCreateProcess'); //type TJvCreateProcess2 = TJvCreateProcess; SIRegister_TJvBaseReader2(CL); SIRegister_TJvBaseReader3(CL); SIRegister_TJvCreateProcess2(CL); SIRegister_TJvCreateProcess3(CL); //CL.AddClassN(CL.FindClass('TOBJECT'),'TJvCreateProcess2'); //SIRegister_TJvBaseReader3(CL); end; procedure SIRegister_TModuleLoader(CL: TPSPascalCompiler); begin //with RegClassS(CL,'TObject', 'TModuleLoader') do with CL.AddClassN(CL.FindClass('TObject'),'TModuleLoader') do begin Function IsAvaliable( const ADLLName : string; const AProcName : string) : Boolean'); Constructor Create( const ADLLName : string; LoadMethods : TModuleLoadMethods)'); Procedure Free'); Function GetProcedure( const AName : string; var AProc : __Pointer) : Boolean'); Function GetExportedSymbol( const AName : string; var Buffer, Size: Integer): Boolean'); Function SetExportedSymbol( const AName : string; var Buffer, Size: Integer): Boolean'); RegisterProperty('Loaded', 'Boolean', iptr); DLLName', 'string', iptr); Handle', 'TModuleHandle', iptr); end; end; (*----------------------------------------------------------------------------*) procedure SIRegister_JvLogClasses(CL: TPSPascalCompiler); begin CL.AddTypeS('TJvLogEventSeverity', '( lesError, lesWarning, lesInformation )'); SIRegister_TJvLogRecord(CL); SIRegister_TJvLogRecordList(CL); Function GetSeverityString( const Severity : TJvLogEventSeverity) : string'); Function GetSeverityFromString( const SeverityString : string) : TJvLogEventSeverity'); end; Procedure wGetStartupInfo( var lpStartupInfo : TStartupInfo2)'); function DeleteFileEx2(const FileName: string): Boolean; function DeleteFileEx2(const FileName: string): Boolean; const cSuffix = '_del_'; begin if FileExists(FileName) then begin Result:= RenameFile(FileName, FileName + cSuffix); if Result then Result:= DeleteFile(Pansichar(FileName + cSuffix)); end else Result := False; end; function BytesOf(const Value: AnsiString): TBytes; begin SetLength(Result, Length(Value)); if Value <> '' then Move(Pointer(Value)^, Result[0], Length(Value)); end; procedure SIRegister_uExporter(CL: TPSPascalCompiler); begin CL.AddTypeS('TExporterNavigateDirections', '( ndBeginning, ndPrevious, ndNext, ndEnd )'); CL.AddTypeS('TExporterNavigateResult', '( nrBOF, nrOK, nrEOF )'); CL.AddTypeS('TExporterPos', 'array of Integer'); SIRegister_TExporterSourceBase(CL); SIRegister_TExporterSource1DBase(CL); SIRegister_TExporterSource2DBase(CL); SIRegister_TExporterSource3DBase(CL); SIRegister_TExporterDestinationBase(CL); //CL.AddTypeS('TExporterDestinationBaseClass', 'class of TExporterDestinationBase'); SIRegister_TExporter(CL); SIRegister_uExporterDestinationCSV(CL); end; procedure SIRegister_uOptionParser(CL: TPSPascalCompiler); begin //CL.AddConstantN('DefaultIgnoreCase','Boolean')BoolToStr( true); //CL.AddConstantN('DefaultIgnoreCase','Boolean')BoolToStr( true); CL.AddConstantN('DefaultOptionChars','String').SetString( '-'); DefaultValueChars','String').SetString( '='); SErrDuplicateOption','String').SetString( 'Duplicate option "%s"'); SErrRequiredValue','String').SetString( 'Option "%s" requires a value'); SErrRequiredOption','String').SetString( 'Missing required option "%s"'); SErrNoValueNeeded','String').SetString( 'Option "%s" need no value'); CL.AddClassN(CL.FindClass('TOBJECT'),'TOptionParser'); CL.AddClassN(CL.FindClass('TOBJECT'),'TOptionDefs'); CL.AddTypeS('TOptionFlag', '(ofRequired, ofValuePossible, ofValueRequired, ofAllowMultiple )'); CL.AddTypeS('TOptionFlags', 'set of TOptionFlag'); SIRegister_TOptionDef(CL); SIRegister_TOptionDefs(CL); CL.AddTypeS('TExceptionMode', '( emIgnore, emCollect, emRaise )'); TParsingFlag', '( pfIgnoreCase )'); TParsingFlags', 'set of TParsingFlag'); TParserEnvironment', 'record ParamIndex : Integer; ParamValue : ' +String; LongOption : String; ShortOption : Char; OptionValue : String; end'); EOptionParserException', 'Exception'); SIRegister_TOptionParser(CL); end; procedure SIRegister_GUIUtils(CL: TPSPascalCompiler); begin CL.AddConstantN('CChildControlNameToken','String').SetString( '/'); CChildControlNameWindowToken','String').SetString( '@'); Function duFindControlInstance( const AComp : TComponent; const AControlName: string) : TControl;'); Function duFindControlInstance1(const AParentHwnd:HWND;const AControlName:string;var AX:Int;var AY:Int):HWND; Function duFindParentWinControl( const AControl : TControl) : TWinControl'); Function duGetWinControl(var AControl:TControl;var AX:Integer;var AY:Int;const AIsTargetControl:Bool):bool'); Function duFindComponentNested( const AParent : TComponent; const AName : string) : TComponent'); Function duWindowClassName( const AHwnd : HWND) : string'); Function duWindowText( const AHwnd : HWND) : string'); Function duGetTopmostWindow : HWND'); //CL.AddDelphiFunction('Procedure SaveScreenshot( const AHwnd : HWND; const AFileName : string)'); end; procedure SIRegister_GUIAutomation(CL: TPSPascalCompiler); begin CL.AddConstantN('rcs_id_gui','string').SetString('#(@)$Id: GUIAutomation.pas,v 1.35 2010/05/04 09:55:00 jarrodh Exp $'); //CL.AddConstantN('VK_TAB','').SetString( KEY_TAB); 'CDefaultControlWaitInterval','LongInt').SetInt( 5000); 'CDefaultWindowChangeWaitInterval','LongInt').SetInt( 10000); 'CDefaultMouseMovePixelsPerSecond','LongInt').SetInt( 1000); CL.AddClassN(CL.FindClass('TOBJECT'),'EGUIAutomation'); CL.AddClassN(CL.FindClass('TOBJECT'),'EGUIAutomationControlNotFound'); CL.AddTypeS('TOnGetContinueExecutionEvent', 'Procedure ( var AContinueExecution : boolean)'); SIRegister_TGUIAutomation(CL); 'CDefaultGUIActionDelay','LongInt').SetInt( 100); 'CDefaultGUIMouseMoveDelay','LongInt').SetInt( 100); 'CDefaultGUIKeyDownDelay','LongInt').SetInt( 50); 'CDefaultGUITextEntryDelay','LongInt').SetInt( 100); 'CDefaultGUIControlWaitPeriod','LongInt').SetInt( 1000); 'CGUIPositionalClickDelay','LongInt').SetInt( 400); 'CChildControlNameToken','String').SetString( '/'); 'CChildControlNameWindowToken','String').SetString( '@'); end; procedure SIRegister_TGUIAutomation(CL: TPSPascalCompiler); begin //with RegClassS(CL,'TObject', 'TGUIAutomation') do with CL.AddClassN(CL.FindClass('TObject'),'TGUIAutomation') do begin Constructor Create'); Procedure Free;'); Procedure ThreadedExecute( AProc : TThreadProcedure)'); Function FindControl13( const AControlName : string; const AAddrs : __Pointer) : TControl;'); Function FindControl14(const AComp:TComponent;const AControlName:string;const AAddrs:__Pointer):TControl; Function FindControlWindow15(const AParentHwnd:HWND;const AControlName:string;var AX:Int;var AY: Int;const AAddrs:__Pointer):HWND;'); Function FindControlWindow16(const AControlName:string;var AX:Int;var AY:Int;const AAddrs:__Pointer):HWND;; Function FindWinControl(const AControlName:string;var AX:Int;var AY:Int;const AAddrs:__Pointer):TWinControl; Function WaitForWindowChange17(const AInterval : Cardinal) : boolean;'); Function WaitForWindowChange18(const AWindowCaption:string;const AInterval:Cardinal):bool;'); Function ControlExists( const AControlName : string) : boolean'); Function ControlVisible( const AControlName : string) : boolean'); Function ControlEnabled( const AControlName : string) : boolean'); Function WaitForControlExists(const AControlName:string;const AExists:Bool;const AInterval:Cardinal): bool; Function WaitForControlVisible(const AControlName:string;const AVisible:Bool;const AInterval:Cardinal):bool; Function WaitForControlEnabled(const AControlName:string;const AEnabled:Bool;const AInterval:Cardinal):bool; Procedure MoveMouseTo19(const AHwnd:HWND;const AX:Int;const AY:Int;const APixelInterval:Int; const APixelsPerSecond:Integer); Procedure LeftMouseDownAt( const AX : Integer; const AY : Integer)'); Procedure LeftMouseUpAt( const AX : Integer; const AY : Integer)'); Procedure LeftClickAt( const AX : Integer; const AY : Integer)'); Procedure LeftDoubleClickAt( const AX : Integer; const AY : Integer)'); Procedure RightMouseDownAt( const AX : Integer; const AY : Integer)'); Procedure RightMouseUpAt( const AX : Integer; const AY : Integer)'); Procedure RightClickAt( const AX : Integer; const AY : Integer)'); Procedure RightDoubleClickAt( const AX : Integer; const AY : Integer)'); Procedure MoveMouseTo20(const AX:Int;const AY:Int;const APixelInterval:Int;const APixelsPerSecond:Int);'); Procedure LeftMouseDown21( const AX : Integer; const AY : Integer);'); Procedure LeftMouseUp22( const AX : Integer; const AY : Integer);'); Procedure LeftClick23( const AX : Integer; const AY : Integer);'); Procedure LeftDoubleClick24( const AX : Integer; const AY : Integer);'); Procedure RightMouseDown25( const AX : Integer; const AY : Integer);'); Procedure RightMouseUp26( const AX : Integer; const AY : Integer);'); Procedure RightClick27( const AX : Integer; const AY : Integer);'); Procedure RightDoubleClick28( const AX : Integer; const AY : Integer);'); Procedure MoveMouseTo29(const AControlName:string;const AX:Int;const AY:Int;const APixelInterval : Integer;const APixelsPerSecond:Int); Procedure MoveMouseTo30(const AControl:TControl;const AX:Int;const AY:Int;const APixelInterval:Int;const APixelsPerSecond:Int; Procedure LeftMouseDown31(const AControlName:string; const AX:Integer; const AY : Integer);'); Procedure LeftMouseDown32(const AControl:TControl; const AX : Integer; const AY : Integer);'); Procedure LeftMouseUp33(const AControlName:string; const AX : Integer; const AY : Integer);'); Procedure LeftMouseUp34( const AControl : TControl; const AX : Integer; const AY: Integer);'); Procedure LeftClick35( const AControlName : string; const AX : Integer; const AY: Integer);'); Procedure LeftClick36( const AControl : TControl; const AX : Integer; const AY : Integer);'); Procedure LeftDoubleClick37(const AControlName:string;const AX:Integer;const AY: Integer);'); Procedure LeftDoubleClick38(const AControl:TControl;const AX : Integer;const AY: Integer);'); Procedure RightMouseDown39(const AControlName:string; const AX:Integer;const AY: Integer);'); Procedure RightMouseDown40(const AControl:TControl; const AX:Integer; const AY : Integer);'); Procedure RightMouseUp41(const AControlName:string; const AX : Integer;const AY : Integer);'); Procedure RightMouseUp42( const AControl : TControl; const AX : Integer;const AY: Integer);'); Procedure RightClick43( const AControlName : string; const AX : Integer;const AY: Integer);'); Procedure RightClick44( const AControl : TControl; const AX : Integer; const AY : Integer);'); Procedure RightDoubleClick45(const AControlName:string; const AX:Integer;const AY: Integer);'); Procedure RightDoubleClick46(const AControl:TControl;const AX:Integer; const AY : Integer);'); Procedure EnterKey47(const AKey:Word; const AShiftState:TShiftState;const ACount : Integer);'); Procedure EnterKeyInto48(const AControlHwnd:HWND;const AKey:Word;const AShiftState:TShiftState;const ACount: Integer);'); Procedure EnterKeyInto49(const AControl:TControl;const AKey:Word;const AShiftState:TShiftState;const ACount:Integer);'); Procedure EnterKeyInto50(const AControlName:string;const AKey:Word;const AShiftState:TShiftState;const ACount: Integer);'); Procedure EnterKey51(const AKey:Char; const AShiftState:TShiftState;const ACount: Integer);'); Procedure EnterKeyInto52( const AControlHwnd : HWND; const AKey : Char; const AShiftState : TShiftState; const ACount: Integer);'); Procedure EnterKeyInto53(const AControl:TControl;const AKey:Char;const AShiftState:TShiftState;const ACount: Int);'); Procedure EnterKeyInto54(const AControlName:string;const AKey:Char;const AShiftState:TShiftState;const ACount:Int);'); Procedure EnterText( const AText : string)'); Procedure EnterTextInto55( const AControlHwnd : HWND; const AText : string);'); Procedure EnterTextInto56( const AControl : TControl; const AText : string);'); Procedure EnterTextInto57( const AControlName : string; const AText : string);'); Procedure SelectMenuItem( const AID : Integer)'); Procedure HorizontalScroll58(const AControlHwnd:HWND;const ACommand:Word;const ACount:Integer;const APosition: Word);'); Procedure HorizontalScroll59(const AControl:TControl;const ACommand:Word;const ACount:Integer;const APosition: Word);'); Procedure HorizontalScroll60(const AControlName:string;const ACommand:Word;const ACount:Integer;const APosition: Word);'); Procedure HorizontalScroll61(const AX:Integer;const AY:Int;const ACommand:Word;const ACount:Int;const APosition:Word);'); Procedure HorizontalScroll62(const ACommand:Word;const ACount:Integer;const APosition:Word);'); Procedure VerticalScroll63(const AControlHwnd:HWND;const ACommand:Word;const ACount:Int;const APosition :Word);'); Procedure VerticalScroll64(const AControl:TControl;const ACommand:Word;const ACount:Integer;const APosition :Word);'); Procedure VerticalScroll65(const AControlName:string;const ACommand:Word;const ACount:Integer;const APosition:Word);'); Procedure VerticalScroll66(const AX:Integer;const AY:Integer;const ACommand:Word;const ACount:Integer;const APosition:Word);'); Procedure VerticalScroll67(const ACommand:Word; const ACount:Integer;const APosition:Word);'); Procedure Show68( const AControl : TControl; AOnOff : boolean);'); Procedure Show69( const AControlName : string; AOnOff : boolean);'); Procedure Hide70( const AControl : TControl);'); Procedure Hide71( const AControlName : string);'); Procedure Tab( n : Integer)'); Procedure SetFocus72( const AControl : TControl; const AAddrs : __Pointer);'); Procedure SetFocus73( const AControlName : string);'); Procedure SyncSleep( const AInterval : Cardinal)'); Procedure WakeUp'); RegisterProperty('ActionDelay', 'Cardinal', iptrw); MouseMoveDelay', 'Cardinal', iptrw); KeyDownDelay', 'Cardinal', iptrw); TextEntryDelay', 'Cardinal', iptrw); ControlWaitPeriod', 'Cardinal', iptrw); MoveMouseCursor', 'boolean', iptrw); OnGetContinueExecution', 'TOnGetContinueExecutionEvent', iptrw); end; end; procedure SIRegister_GUIActionRecorder(CL: TPSPascalCompiler); begin CL.AddConstantN('rcs_id_guirec','string').SetString('#(@)$Id: GUIActionRecorder.pas,v 1.35 2010/05/04 09:55:00 jarrodh Exp $'); CL.AddConstantN('CWindowChangeCommandName','String').SetString( 'WaitForWindowChange'); CEnterTextIntoCommandName','String').SetString( 'EnterTextInto'); CEnterKeyIntoCommandName','String').SetString( 'EnterKeyInto'); CEnterTextCommandName','String').SetString( 'EnterText'); CEnterKeyCommandName','String').SetString( 'EnterKey'); CSelectMenuItemCommandName','String').SetString( 'SelectMenuItem'); CHorizontalScrollCommandName','String').SetString( 'HorizontalScroll'); CVerticalScrollCommandName','String').SetString( 'VerticalScroll'); CLeftButtonCommand','String').SetString( 'Left'); CRightButtonCommand','String').SetString( 'Right'); CMiddleButtonCommand','String').SetString( 'Middle'); CMouseMoveCommand','String').SetString( 'Move'); CMouseCommand','String').SetString( 'Mouse'); CMouseDownCommand','String').SetString( 'Down'); CMouseUpCommand','String').SetString( 'Up'); CDoubleClickCommand','String').SetString( 'Double'); CClickCommand','String').SetString( 'Click'); CClickAtCommand','String').SetString( 'At'); CClickToCommand','String').SetString( 'To'); CChildControlNameToken','String').SetString( '/'); CChildControlNameWindowToken','String').SetString( '@'); CL.AddClassN(CL.FindClass('TOBJECT'),'TGUIActionAbs'); CL.AddClassN(CL.FindClass('TOBJECT'),'TGUIActionMouseButtonAbs'); CL.AddClassN(CL.FindClass('TOBJECT'),'TGUIActionRecorder'); CL.AddTypeS('TGUIActionRecorderEvent', 'Procedure ( Sender : TGUIActionRecorder)'); CL.AddTypeS('TGUIActionRecorderStopRecordingEvent','Procedure (Sender : TGU' +'IActionRecorder; var AStopRecording: boolean)'); CL.AddTypeS(TGUIActionRecorderActionEvent','Procedure(AAction:TGUIActionAbs;var AContinue:bool); CL.AddTypeS(TMouseClickState', '( mcsSingle, mcsDouble )'); CL.AddTypeS(TGUIActionCommandFormat', '( acfNative, acfScript )'); CL.AddTypeS(TGUIActionMode', '( amMonitor, amRecord )'); SIRegister_TGUIActionAbs(CL); SIRegister_TGUIActionList(CL); SIRegister_TGUIActionRecorder(CL); SIRegister_TGUIActionWindowChange(CL); SIRegister_TGUIActionEnterTextInto(CL); SIRegister_TGUIActionEnterKey(CL); SIRegister_TGUIActionMouseAbs(CL); SIRegister_TGUIActionMouseMove(CL); SIRegister_TGUIActionMouseButtonAbs(CL); SIRegister_TGUIActionMouseDown(CL); SIRegister_TGUIActionMouseUp(CL); SIRegister_TGUIActionClick(CL); SIRegister_TGUIActionSelectMenuItem(CL); SIRegister_TGUIActionScrollAbs(CL); //CL.AddTypeS('TGUIActionScrollClass', 'class of TGUIActionScrollAbs'); SIRegister_TGUIActionHorizontalScroll(CL); SIRegister_TGUIActionVerticalScroll(CL); Function GGUIActionRecorder : TGUIActionRecorder'); function NextWord(var P: pchar): String; end; function GGUIActionRecorder: TGUIActionRecorder; begin if Assigned(URecorder) then Result:= URecorder else Result:= TGUIActionRecorder.Create; end; https://github.com/coderserdar/DelphiComponents/blob/main/Other/API%20Pack/API_source/API_base.pas procedure SIRegister_API_base(CL: TPSPascalCompiler); begin //CL.AddConstantN('DTMONESECOND','LongInt').SetInt( 1 / ( 24 * 60 * 60 )); CL.AddConstantN('aBIT0','LongInt').SetInt( 1); CL.AddConstantN('aBIT1','LongInt').SetInt( 2); CL.AddConstantN('aBIT2','LongInt').SetInt( 4); CL.AddConstantN('aBIT3','LongInt').SetInt( 8); CL.AddConstantN('aBIT4','LongInt').SetInt( 16); CL.AddConstantN('aBIT5','LongInt').SetInt( 32); CL.AddConstantN('aBIT6','LongInt').SetInt( 64); CL.AddConstantN('aBIT7','LongInt').SetInt( 128); CL.AddConstantN('aBIT8','LongInt').SetInt( 256); CL.AddConstantN('aBIT9','LongInt').SetInt( 512); CL.AddConstantN('aBIT10','LongInt').SetInt( 1024); CL.AddConstantN('aBIT11','LongInt').SetInt( 2048); CL.AddConstantN('aBIT12','LongInt').SetInt( 4096); CL.AddConstantN('aBIT13','LongInt').SetInt( 8192); CL.AddConstantN('aBIT14','LongInt').SetInt( 16384); CL.AddConstantN('aBIT15','LongInt').SetInt( 32768); SIRegister_TAPI_Custom_Component(CL); SIRegister_TAPI_Custom_PaintBox(CL); SIRegister_TAPI_Custom_Panel(CL); SIRegister_TAPI_Custom_ListBox(CL); SIRegister_TAPI_Custom_Edit(CL); SIRegister_TAPI_Custom_Label(CL); Procedure apiSetBit( var OfByte : Integer; const BitIndex : integer; const State : Boolean);'); Procedure apiSetBit1( var OfByte : Byte; const BitIndex : byte; const State : Boolean);'); Function apiBitIsSet( const OfByte, BitIndex : Integer) : Boolean'); Function apiBinToInt( const ABinStr: AnsiString) : Integer'); Function apiCeil( const value : double) : integer'); Function apiFloor( const value : double) : integer'); Function TickDiff( const StartTick, EndTick : LongWord) : LongWord'); Function LoadAndRunDLLProcedure(const DLLfile,FunctionName:AnsiString;const ShowMessages:Bool):bool; end; https://github.com/coderserdar/DelphiComponents/blob/main/Other/API%20Pack/API_source/API_audio.pas procedure SIRegister_API_audio(CL: TPSPascalCompiler); begin CL.AddTypeS('TmmMode', '( ampNotReady, ampStopped, ampPlaying, ampRecording, ampSe' +'eking, ampPaused, ampOpen, ampUnknown )'); CL.AddTypeS('TmmTimeFormat', '( atfMilliseconds, atfHMS, atfMSF, atfFrames, atfSMP' +'TE24, atfSMPTE25, atfSMPTE30, atfSMPTE30Drop, atfBytes, atfSamples, atfTMSF )'); SIRegister_TAPI_audiofile(CL); SIRegister_TAPI_audio(CL); //CL.AddDelphiFunction('Procedure Register'); end; procedure SIRegisterTFILESTREAM(Cl: TPSPascalCompiler); begin with Cl.AddClassN(cl.FindClass('THandleStream'), 'TFileStream') do begin RegisterMethod('constructor Create(FileName:String;Mode:Word)'); constructor Create1(FileName:String;Mode:Word;Rights: Cardinal)'); // constructor Create(const AFileName: string; Mode: Word; Rights: Cardinal); overload; //RegisterMethod('function ReadInt(var Buffer;Count:LongInt):LongInt'); //RegisterMethod('function WriteInt(const Buffer: integer;Count:integer):integer'); function WriteByteArray(const Buffer:TByteArray;Count:LongInt):LongInt'); function ReadByteArray(var Buffer: TByteArray;Count:LongInt):LongInt'); function Testint(aint: integer): integer'); function ReadBytes(var Buffer: TByteDynArray;Count:LongInt):LongInt'); function WriteBytes(const Buffer:TByteDynArray;Count:LongInt):LongInt'); function ReadChars(var Buffer: TCharDynArray;Count:LongInt):LongInt'); RegisterMethod('Procedure Free'); RegisterProperty('FileName', 'string', iptr); //property FileName: string read FFileName; end; end; //https://github.com/coderserdar/DelphiComponents/blob/main/Other/API%20Pack/API_source/API_ledgrid.pas procedure SIRegister_API_ledgrid(CL: TPSPascalCompiler); begin SIRegister_TAPI_ledgrid(CL); //CL.AddDelphiFunction('Procedure Register'); function BitmapToRTF(Const pict: TBitmap): Ansistring; BMP:= TBitmap.Create; bmp.loadfromfile('C:\maXbox\maxbox3\maxbox3\maXbox3\examples2\max_locomotion.bmp') writeln(BitmapToRTF(bmp)); bmp.free; end; procedure SIRegister_API_graphics(CL: TPSPascalCompiler); begin Procedure apiTextOut( ACanvas : TCanvas; Angle, X, Y : Integer; Text : string)'); Function apiCaptureScreenRect( ARect : TRect) : TBitmap'); Function apiCaptureClientImage( Control : TControl) : TBitmap'); Function apiInvertColor( color : TColor) : TColor'); Function apiInvertBitmap( MyBitmap : TBitmap) : TBitmap'); Procedure apiScaleBitmap( bitmp : TBitmap; Percent : Double);'); Procedure apiScaleBitmap1( bitmp : TBitmap; Percent : Integer);'); Procedure apiReSizeBitmap( bitmp : TBitmap; const MaxWidth, MaxHeight : Integer)'); Procedure apiHighlight( aSource, ATarget : TBitmap; AColor : TColor);'); Procedure apiHighlight1( src : TBitmap; ARect : TRect; WhiteWashValue : integer);'); Procedure apiEmboss( ABitmap : TBitmap; Amount : Integer)'); Procedure apiGrayscale( Bmp : TBitmap)'); Procedure apiMosaic( Bitmap : TBitmap; Size : Integer)'); Procedure apiFlipHorizontal( src : Tbitmap)'); Procedure apiFlipVertical( src : Tbitmap)'); Procedure apiPosterize( src, dst : tbitmap; amount : integer)'); Function BitmapToRTF2( const pict : TBitmap) : Ansistring'); CL.AddTypeS('TGradientStyle', '(gsHorizontal,gsVertical,gsEllipse, gsHorCenter, gsVerCenter )'); Procedure apiGradientFill(Canvas:TCanvas;Rect:TRect;StartColor,EndColor:TColor; Style: TGradientStyle)'); end; procedure SIRegister_API_files(CL: TPSPascalCompiler); begin CL.AddTypeS('TAPIOnFileFoundEvent', 'Procedure ( Sender : TObject; const Found : string)'); CL.AddTypeS('TAPIOnFileSearchReady', 'Procedure ( sender : tobject; const count : integer)'); SIRegister_TAPI_files(CL); //CL.AddDelphiFunction('Procedure Register'); Function apiAddBackSlash( const Path : string) : string'); Function apiDeleteBackSlash( const Path : string) : string'); Function apiPathAppend( const Path, DirToAdd : string) : string'); Function apiGetUniversalName( const Filename : string) : string'); Function apiFileExtension( const Filename : String) : string;'); Function apiFileExtension1( const Filename, NewExtension : String) : String;'); Function apiPathCombine( const Folder1, Folder2 : AnsiString) : AnsiString'); Function apiFileInUse( filename : string) : boolean'); Function apiGetFileSize( const Filename : string) : int64'); Function apiIsOnLocalDrive( fname : string) : boolean'); Function apiGetFileType( const strFilename : string) : string'); Function apiGetRevision( fname : String; var major, minor, release, build : dword) : boolean'); Function apiIsASCIIFile( const Filename : string; const CheckOnlyBeginning: Boolean): Boolean'); Function apiFileTimeToTDateTime( const AFileTime : TFileTime) : TDateTime'); Function apiTDateTimeToFileTime( const ADateTime : TDateTime) : TFileTime'); Function apiFileDateTime( const FileName : string; NewDateTime : TDateTime) : Boolean;'); Function apiFileDateTime1( const filename : string) : tdatetime;'); Function apiGetFileTimes(const FileName:string;var Created:TDateTime;var Accessed:TDateTime;var Modified:TDateTime):Bool; Function apiAssociatedIcon( FName : String; Idx : Word; var Icon : TIcon) : Boolean'); Function apiIconFromFile( FName : String; idx : Word; var Icon : TIcon) : Boolean'); Procedure apiAssociateFile( const Ext, Filetype, Description, Appname : string)'); Function apiExtractIcon( const Filename : string) : ticon'); Function apiGetFileOwner( const FileName : string; var Domain, Username : string) : Boolean'); Function apiStartAssociatedExe( const FileName : string; var ErrorCode : Cardinal) : Boolean'); Function apiDriveSerial( const Drive : Char) : String'); Function apiParseListDetails(const ListItem:String;var AFileName:String;var AFileTime:TDateTime; var AFileSize:int64;var AAttributes:integer; const ASeparatorForDetails:char):Boolean'); Function apiLastChanged( const Folder:string;const Filter:String;const IncludeSubs:Boolean): tdatetime'); Function apiFindFiles(List:Tstrings;const AFolder:String;const AFilter:String;const ARelativeRoot:String;const AIncludeSubs:Boolean; const AReadOnly:Boolean;const AHidden:Boolean; const ASeparatorForDetails:char;const ABreakOnFirstFileFound:Boolean):int64'); Function apiGetSpecialFolder( const fCLSID : integer) : string'); Function apiIsEmptyFolder( const Folder : String) : boolean'); Procedure apiFindFolders(List: Tstrings;const Folder:string;const ReadOnly:Bool;const Hidden:Bool; Function apiAppDataFolder(const ApplicationName,CompanyName:String;const Personal:Boolean const CreateDirectory:Boolean):String'); Function apiBrowseFolderDialog(const Caption,startfolder:string;CreateFolders:boolean): string'); Function apiCopyDir(const fromDir,toDir: string;const AShowProgress:Boolean;const AConfirm:Boolean; const AAllowUndo:Boolean;const ARenameOnCollision:Boolean):boolean'); Function apiMoveDir(const fromDir,toDir:string;const AShowProgress:Bool;const AConfirm:Bool;const AAllowUndo:Bool):bool'); Function apiDeleteDir(const dir:string;const AShowProgress:Bool;const AConfirm:Bool;const AAllowUndo:Bool):bool; Function apiCopyFile(const Source,Dest:String; const AShowProgress:Bool;const AConfirm:Bool;const AAllowUndo:Bool;const ARenameOnCollision:Bool):Bool'); Function apiMoveFile( const Source, Dest : String; const AShowProgress : Boolean; const AConfirm : Boolean; const AAllowUndo : Boolean): Boolean'); Function apiDeleteFile(const Filename:string; const AShowProgress: Boolean;const AConfirm : Boolean; const AAllowUndo : Boolean): boolean'); Function apiRenameFile(const source,dest:string;const AShowProgress:Boolean;const AConfirm:Boolean; const AAllowUndo:Boolean):boolean'); Function apiUpdateFiles(const FromFolder,ToFolder: String;const AIncludeSubs:Boolean;const AIncludeHiddenFiles:Boolean; const AShowProgress:Boolean;const AConfirm: Boolean; const ACreateFolders Boolean): boolean'); Function apiCombineFiles( const ATargetFilename : String; AFileList: TStrings) : Boolean'); Function apiGetTempFilename : String'); Function apiGetTempFile( const Extension : string) : string'); Function apiCreateLink(const filename,Description,ShortcutTo,Parameters,WorkingDir, IconFilename: String;iconIndex,ShowCmd:Integer):Boolean; Function apiCRC32( p : __pointer; ByteCount : dword) : dword;'); Function apiCRC321( Filename : string) : dword;'); Procedure apiPasteFilenamesFromClipboard( Filenames : TStrings)'); Function apiCopyFilenamesToClipboard( Filenames : TStrings) : Boolean'); Function apiCompareFiles( const File1, File2 : TFileName) : Boolean'); Function apiGetDiskFreeSpace( sDrv : string; var cFree, cSize : int64) : Boolean'); end; procedure SIRegister_API_tools(CL: TPSPascalCompiler); begin CL.AddTypeS('texittype', '( apiLogOff, apiShutDown, apiReboot, apiPowerOff, apiHibernate )'); CL.AddTypeS('tostype', '( apiWin95, apiWin98, apiWinMe, apiWinNT, apiWin2000, apiWinXP, apiWin2003, apiWinVista, apiWinUnknown )'); SIRegister_TAPI_tools(CL); //CL.AddDelphiFunction('Procedure Register'); Function apiBrowseURL( const URL : string) : boolean'); Procedure apiShowBalloonToolTip(Control:TWinControl;icon:integer;Title:pchar;Text:WideChar;BackCL,TextCL: TColor); Procedure apiOsBuildInfo( var v1, v2, v3, v4 : word)'); Function apiConnectedToInternet : boolean'); Function apiGetIfTable( pIfTable : __Pointer; var pdwSize : LongInt; bOrder : LongInt) : LongInt'); Function apiNetSend( dest, Source, Msg : string) : Longint'); Procedure apiGetNetworkAddresses(var IPAddress:string;var SubnetMask:string;var Gateway:string)'); end; https://github.com/coderserdar/DelphiComponents/blob/main/Other/API%20Pack/API_source/API_winprocess.pas procedure SIRegister_API_winprocess(CL: TPSPascalCompiler); begin CL.AddTypeS('tprocesspriorities', '( _high_priority_class, _idle_priority_cla' +'ss, _normal_priority_class, _realtime_priority_class )'); SIRegister_TAPI_winprocess(CL); //CL.AddDelphiFunction('Procedure Register'); end; procedure SIRegister_TAPI_winprocess(CL: TPSPascalCompiler); begin //with RegClassS(CL,'TComponent', 'TAPI_winprocess') do with CL.AddClassN(CL.FindClass('TComponent'),'TAPI_winprocess') do begin RegisterMethod('Constructor Create( aowner : tcomponent)'); Procedure Free;'); Procedure show'); Procedure hide'); Procedure restore'); Procedure minimize'); Procedure shownoactive'); Function running : boolean'); Function run( showmode : integer; waitforidle : boolean) : boolean'); Function kill( justhandle : boolean) : boolean'); RegisterProperty('Version', 'string', iptrw); SetPriorities', 'boolean', iptrw); WaitIdleTime', 'cardinal', iptrw); Filename', 'string', iptrw); ProcessPriority', 'integer', iptrw); ThreadPriority', 'integer', iptrw); LastError', 'string', iptrw); OnError', 'tnotifyevent', iptrw); AfterRun', 'tnotifyevent', iptrw); AfterKill', 'tnotifyevent', iptrw); end; end; procedure SIRegister_TAPI_services(CL: TPSPascalCompiler); begin //with RegClassS(CL,'TComponent', 'TAPI_services') do with CL.AddClassN(CL.FindClass('TComponent'),'TAPI_services') do begin RegisterMethod('Constructor Create( aowner : tcomponent)'); RegisterMethod('Procedure Free;'); RegisterProperty('Version', 'string', iptr); RegisterProperty('Computer', 'string', iptrw); RegisterProperty('Service', 'string', iptrw); RegisterProperty('Running', 'boolean', iptrw); RegisterProperty('Services', 'tstringlist', iptrw); end; end; procedure SIRegister_API_strings(CL: TPSPascalCompiler); begin CL.AddConstantN('RETRYCOUNTONREADINGORWRITINGFILE','LongInt').SetInt( 10); Function apiPos(const LocateThis,FromThisStr:Ansistr;const NoCase:Bool;const StartFrom:Int):int'); Function apiPosFromEnd(const LocateThis,FromThisString:AnsiString;const NoCase:boolean):integer'); Procedure apiCharReplace( var InputString : AnsiString; const OldCh, NewCh : AnsiChar)'); Procedure apiCharsReplace( var InputString : AnsiString; const OldChs, NewChs : AnsiString)'); Procedure apiStringReplace(var InputString Ansistring;const OldS,NewS:AnsiString;NoCase:Bool)'); Function apiReplaceFirst( const SourceStr, FindStr, ReplaceStr : Ansistring) : AnsiString'); Function apiLowerCase( s : Ansistring) : Ansistring'); Function apiUpperCase( s : Ansistring) : Ansistring'); Function apiIntToStr( I : int64; LeadingZeros : Integer) : string'); Function apiBytesToStr( const Size : Int64) : string'); Function apiTimeToString( T : TDateTime) : string'); Function apiStringToTime( const S : String; var T : TDateTime) : boolean'); Function RFC1123ToDateTime( Date : string) : TDateTime'); Function apiDateTimeToRFC1123( aDate : TDateTime) : string'); Function apiBinToString( stream : tstream) : string'); Function apiStringToBin( s : string; stream : tstream) : boolean'); Function apiStrToPchar( var S : String) : PChar'); Function apiShortenString(const S:AnsiString;const MaxLength:Integer;ReplaceCRWith:AnsiString;ReplaceLFWith:AnsiString):AnsiString'); Procedure apiSwapStrings( var s1, s2 : string)'); Function apiQuoteIfSpaces( const InputString : AnsiString): AnsiString'); Function apiGetNextToken(var SourceString,TokenFound:String;const Separators:AnsiString):bool'); Procedure apiSplitString( const S:String; var List: TStringlist;const Separators: AnsiString)'); Function apiCompareStringsInPercent( const Str1, Str2 : Ansistring) : Byte'); Procedure apiSort( var Strings : TStrings; const Start : Integer; const Stop : Integer)'); Function apiListToString( const List : TStrings; const Separator : AnsiChar) : AnsiString;'); Procedure apiListToString1(const List:TStrings;var OutputStr:AnsiString;const Separator:AnsiChar); Procedure apiStringToList(const InputString:AnsiString;List:Tstrings;const Separator: AnsiChar)'); Function apiOpenFileToStrings(const Filename:String;Strings:tstrings;const AllowRetry:Bool):bool; Function apiOpenFileToString(const FileName:string; var S: String;const AllowRetry:Bool):bool'); Function apiSaveStringsToFile(const Filename:String; Strings:tstrings;const AllowRetry:Bool):bool; Function apiSaveStringToFile( const Filename, S : string; const AllowRetry : Boolean) : boolean'); Function apiAppendStringsToFile( const Filename : String; Strings : tstrings) : boolean'); Function apiAppendStringToFile( const Filename, S : String) : boolean'); Function apiStreamWrite( const Str : string; Stream : TStream) : Int64'); Function apiStreamWriteLn(const S:String;Stream:TStream;const Append:Bool;const EOLN:String):Int64; Function apiStreamReadLn( Stream : TStream; const EOLN : String) : String'); Function apiMatch( const N1, N2 : AnsiString; const NoCase : Boolean) : Boolean'); Function apiSameString( const s1, s2 : AnsiString; const Nocase : Boolean) : boolean'); Function apiStringExists(const LookFor,FromThisString:AnsiString;const NoCase:Boolean): boolean'); Function apiStringBeginsWith(const LookFor,FromThisString:AnsiString;const NoCase:Bool):boolean'); Function apiStringEndsWith(const LookFor,FromThisString:AnsiString;const NoCase:Boolean):boolean'); Function apiAddBackslash( const AFilename : AnsiString) : AnsiString'); Function apiRemoveBackslash( const AFilename : AnsiString) : AnsiString'); Function apiFindTagText( const OrigText:AnsiString;StartFrom:Integer;var Position:integer;var TagContentStart:integer;var TagLength:integer; const StartTag:AnsiString;const EndTag:AnsiString): AnsiString;'); Function apiFindTagText1(const OrigText:Ansistring;StartFrom:int;StartTag:AnsiString;EndTag:AnsiString):Ansistring; Function apiFindTagText2(const OrigText:Ansistring;StartFrom:integer;var Position:integer;StartTag:AnsiString;EndTag:AnsiString):AnsiString;'); Function apiHtmlParamsToString( S : Ansistring) : Ansistring'); Function apiURLDecode( Value : Ansistring) : Ansistring'); Function apiStringToHtmlParams( Str : Ansistring) : Ansistring'); Function apiURLEncode( Value : Ansistring) : Ansistring'); Function apiBitmapToRTF( pict : TBitmap) : string'); Function apiEncode64( S : Ansistring) : AnsiString'); Function apiDecode64( S : Ansistring) : AnsiString'); Function apiEncrypt(const InString:Ansistring;StartKey,MultKey,AddKey:Integer): Ansistring'); Function apiDecrypt(const InString:Ansistring;StartKey, MultKey,AddKey:Integer): Ansistring'); Function apiHash( const text : AnsiString) : Integer'); Function apiGeneratePass( syllables, numbers : Byte) : string'); end; ***************************************************************** Release Notes maXbox 4.7.6.50 June 2023 mX476 **************************************************************** Add 51 Units + 14 Tutorials 1527 unit uPSI_dprocess; TProcess2 1528 unit uPSI_uXmlStorage.pas 1529 unit uPSI_AsphyreTimer.pas 1530 unit uPSI_Pas2JSUtils.pas 1531 unit uPSI_pacMain; (Form1pac: TForm1pac;) 1532 unit dwsWebUtils.pas; DWS 1533 unit uPSI_dwsWebUtils.pas; DWS beta 1534 unit uPSI_RestUtils2.pas; 1535 unit uPSI_Pas2jsFileUtils.pas; beta 1536 unit uPSI_JPerson.pas; 1537 unit uPSI_OldRttiMarshal; 1538 unit uPSI_superxmlparser; 1539 unit uPSI_superobject.pas; beta 1540 uPSI_NovusWindows.pas 1541 uPSI_NovusStringUtils.pas 1542 unit uPSI_NovusUtilities.pas; 1543 unit uPSI_NovusNumUtils; 1544 unit uPSI_NovusFileUtils; 1545 unit uPSI_NovuscURLUtils.pas; curl beta 1546 unit uPSI_uDM.pas; 1547 unit uPSI_dpipes.pas; 1548 unit uPSI_ShellAPI2; 1549 uPSI_NovusStringBuilder.pas 1550 unit NovusDateDiffUtil.pas 1551 unit NovusDateUtils; 1552 unit NovusDateStringUtils; 1553 unit uPSI_PJCBView; 1554 uPSI_NovusWinVersionUtils.pas 1555 unit uPSI_PJResFile.pas; 1556 unit PJResFile_Routines2; 1557 unit uPSI_JvCreateProcess2 1558 unit uPSI_JVCLHelpUtils.pas; 1559 unit uPSI_ModuleLoader; 1560 unit uPSI_JvLogClasses; 1561 uPSI_uExporter.pas; 1562 unit uExporterDestinationCSV.pas; 1563 uPSI_uOptionParser.pas 1564 uPSI_TOptionDefs; 1565 unit uPSI_GUIUtils.pas //dunit 1566 unit uPSI_GUIAutomation.pas; //dunit 1567 unit uPSI_GUIActionRecorder; //dunit 1568 unit TypeHelpers.pas //dunit 1569 unit uPSI_API_base; //API 1570 unit uPSI_API_audio; //API 1571 unit uPSI_API_ledgrid; 1572 uPSI_API_graphics.pas; 1573 uPSI_API_files.pas; 1574 uPSI_API_tools.pas; 1575 unit uPSI_API_winprocess; 1576 unit API_strings.pas; 1577 unit uPSI_API_services.pas Total of Function Calls: 37372 SHA1: 4.7.6.50 D047DBD5412C3E4A436089018B9C7FACF17A2EB5 CRC32: 38562FA8 34.04 MB (35,697,944 bytes) Compilation Timestamp 2023-06-15 06:40:19 UTC Signtime 15 June 2023 08:42:33 Entry Point 25484072 - Contained Sections 10 sha1: d047dbd5412c3e4a436089018b9c7facf17a2eb5 sha256: 193679043c46821c4b2460269111ff112e7c67b49e9cd9d951854e61bceedac7 Docu: http://www.softwareschule.ch/maxbox_functions.txt ZIP maxbox4.zip SHA1: CEAB242D25E264FB95D5792EBC569C4EAD31B732 https://www.hybrid-analysis.com/sample/193679043c46821c4b2460269111ff112e7c67b49e9cd9d951854e61bceedac7 ***************************************************************** Release Notes maXbox 4.7.6.50 June 2023 mX476 **************************************************************** Add 42 Units + 12 Tutorials 1527 unit uPSI_dprocess; TProcess2 1528 unit uPSI_uXmlStorage.pas 1529 unit uPSI_AsphyreTimer.pas 1530 unit uPSI_Pas2JSUtils.pas 1531 unit uPSI_pacMain; (Form1pac: TForm1pac;) 1532 unit dwsWebUtils.pas; DWS 1533 unit uPSI_dwsWebUtils.pas; DWS beta 1534 unit uPSI_RestUtils2.pas; 1535 unit uPSI_Pas2jsFileUtils.pas; beta 1536 unit uPSI_JPerson.pas; 1537 unit uPSI_OldRttiMarshal; 1538 unit uPSI_superxmlparser; 1539 unit uPSI_superobject.pas; beta 1540 uPSI_NovusWindows.pas 1541 uPSI_NovusStringUtils.pas 1542 unit uPSI_NovusUtilities.pas; 1543 unit uPSI_NovusNumUtils; 1544 unit uPSI_NovusFileUtils; 1545 unit uPSI_NovuscURLUtils.pas; curl beta 1546 unit uPSI_uDM.pas; 1547 unit uPSI_dpipes.pas; 1548 unit uPSI_ShellAPI2; 1549 uPSI_NovusStringBuilder.pas 1550 unit NovusDateDiffUtil.pas 1551 unit NovusDateUtils; 1552 unit NovusDateStringUtils; 1553 unit uPSI_PJCBView; 1554 uPSI_NovusWinVersionUtils.pas 1555 unit uPSI_PJResFile.pas; 1556 unit PJResFile_Routines2; 1557 unit uPSI_JvCreateProcess2 1558 unit uPSI_JVCLHelpUtils.pas; 1559 unit uPSI_ModuleLoader; 1560 unit uPSI_JvLogClasses; 1561 uPSI_uExporter.pas; 1562 unit uExporterDestinationCSV.pas; 1563 uPSI_uOptionParser.pas 1564 uPSI_TOptionDefs; 1565 unit uPSI_GUIUtils.pas 1566 unit uPSI_GUIAutomation.pas; 1567 unit uPSI_GUIActionRecorder; //dunit 1568 unit TypeHelpers.pas //dunit Total of Function Calls: 37121 SHA1: 4.7.6.50 9E9D9D10762AE0D0BC8AFD747C2381EA5478AE49 CRC32: 01B431EE 33.91 MB (35,558,168 bytes) Compilation Timestamp 2023-06-12 13:17:28 UTC Signtime 12 June 2023 15:20:10 Entry Point 25377544 - Contained Sections 10 sha1: 9e9d9d10762ae0d0bc8afd747c2381ea5478ae49 sha256: fa0f30abf34292e91070a5bd4682040eb6af79a8f6c7f55111c9692153120988 Docu: http://www.softwareschule.ch/maxbox_functions.txt Recompiled: dir /s /o N *.dcu | find "11/06/2023" > C:\maXbox\maxboxunitalldisk_sort.txt 11/06/2023 23:12 489,126 fMain.dcu 11/06/2023 23:12 71,764 ALHttpClient2.dcu 11/06/2023 23:12 13,520 BlocksUnit.dcu 11/06/2023 23:12 5,720 FPCTypes.dcu 11/06/2023 23:10 49,763 GUIAutomation.dcu 11/06/2023 22:57 7,645 GUIUtils.dcu 11/06/2023 23:14 30,858 MathsLib.dcu 11/06/2023 23:12 7,881 NovusDateUtils.dcu 11/06/2023 23:12 9,464 NovusNumUtils.dcu 11/06/2023 23:12 26,397 NovusStringUtils.dcu 11/06/2023 23:12 6,566 PXLTiming.dcu 11/06/2023 23:12 7,427 PythonAction.dcu 11/06/2023 23:12 278,921 PythonEngine.dcu 11/06/2023 23:12 6,446 SeSHA256.dcu 11/06/2023 23:12 126,239 SuperObject.dcu 11/06/2023 18:48 153,589 uPSI_AfUtils.dcu 11/06/2023 23:12 66,636 uPSI_ALHttpClient2.dcu 11/06/2023 23:12 20,496 uPSI_BlocksUnit.dcu 11/06/2023 22:57 37,828 uPSI_GUIAutomation.dcu 11/06/2023 21:28 4,798 uPSI_GUIUtils.dcu 11/06/2023 23:12 14,466 uPSI_NovusStringUtils.dcu 11/06/2023 23:12 20,134 uPSI_NovusUtilities.dcu 11/06/2023 21:05 124,494 uPSI_PsAPI.dcu 11/06/2023 23:12 8,645 uPSI_PXLTiming.dcu 11/06/2023 23:12 175,131 uPSI_PythonEngine.dcu 11/06/2023 23:12 9,517 uPSI_VelthuisFloatUtils.dcu 11/06/2023 23:12 46,249 VarPyth.dcu 11/06/2023 23:12 5,682 VelthuisFloatUtils.dcu 06/06/2023 15:47 30,882 uPSUtils.dcu 06/06/2023 07:55 64,580 JVCLHelpUtils.dcu 06/06/2023 15:47 30,854 MathsLib.dcu 06/06/2023 15:47 105,422 uPSI_AzuliaUtils.dcu 06/06/2023 08:10 46,235 uPSI_JVCLHelpUtils.dcu 06/06/2023 08:31 26,153 uPSI_LazFileUtils.dcu 06/06/2023 15:14 112,192 uPSI_PersistSettings.dcu 05/06/2023 21:20 488,462 fMain.dcu 05/06/2023 21:20 71,768 ALHttpClient2.dcu 05/06/2023 21:20 13,520 BlocksUnit.dcu 05/06/2023 21:20 5,720 FPCTypes.dcu 05/06/2023 20:11 63,516 JvCreateProcess.dcu 05/06/2023 21:20 7,879 NovusDateUtils.dcu 05/06/2023 21:20 9,465 NovusNumUtils.dcu 05/06/2023 21:20 26,408 NovusStringUtils.dcu 05/06/2023 21:20 6,566 PXLTiming.dcu 05/06/2023 21:20 7,429 PythonAction.dcu 05/06/2023 21:20 278,927 PythonEngine.dcu 05/06/2023 21:20 6,446 SeSHA256.dcu 05/06/2023 21:20 126,255 SuperObject.dcu 05/06/2023 21:20 66,640 uPSI_ALHttpClient2.dcu 05/06/2023 21:20 20,494 uPSI_BlocksUnit.dcu 05/06/2023 20:44 36,468 uPSI_JvCreateProcess.dcu 05/06/2023 15:39 19,024 uPSI_JvSysComp.dcu 05/06/2023 21:20 14,466 uPSI_NovusStringUtils.dcu 05/06/2023 21:20 20,134 uPSI_NovusUtilities.dcu 05/06/2023 21:20 8,645 uPSI_PXLTiming.dcu 05/06/2023 21:20 175,131 uPSI_PythonEngine.dcu 05/06/2023 21:20 9,517 uPSI_VelthuisFloatUtils.dcu 05/06/2023 21:20 46,252 VarPyth.dcu 05/06/2023 21:20 5,682 VelthuisFloatUtils.dcu Recompiled: dir /s /o N *.dcu | find "30/05/2023" > C:\maXbox\maxboxunitalldisk_sort.txt 29/05/2023 23:35 255,335 uPSI_ComCtrls.dcu 30/05/2023 08:32 16,685 uPSI_ShellAPI.dcu 30/05/2023 09:04 26,921 dprocess.dcu 30/05/2023 00:02 33,458 RestClient.dcu 30/05/2023 00:02 1,664 uDM.dcu 30/05/2023 09:58 23,975 uPSI_dprocess.dcu 30/05/2023 00:13 30,416 uPSI_RestClient.dcu 30/05/2023 00:02 25,875 uPSI_RestUtils.dcu 30/05/2023 08:32 16,685 uPSI_ShellAPI.dcu 30/05/2023 11:13 8,158 dpipes.dcu 30/05/2023 15:17 30,863 MathsLib.dcu 30/05/2023 15:03 7,884 NovusDateUtils.dcu 30/05/2023 13:49 2,281 NovusStringBuilder.dcu 30/05/2023 14:31 102,632 uPSI_AzuliaUtils.dcu 30/05/2023 15:08 16,776 uPSI_NovusUtilities.dcu Recompiled: c:\>dir /s /o N *.dcu | find "31/05/2023" > C:\maXbox\maxboxunitalldisk_sort.txt 31/05/2023 10:25 30,854 MathsLib.dcu 31/05/2023 09:31 7,618 NovusWinVersionUtils.dcu 31/05/2023 09:01 5,177 PJCBView.dcu 31/05/2023 09:27 104,722 uPSI_AzuliaUtils.dcu 31/05/2023 09:43 20,141 uPSI_NovusUtilities.dcu 31/05/2023 10:24 121,280 uPSI_PsAPI.dcu 31/05/2023 14:30 488,274 fMain.dcu 31/05/2023 14:04 316,953 uPSCompiler.dcu 31/05/2023 14:05 20,906 uPSPreProcessor.dcu 31/05/2023 14:03 257,726 uPSRuntime.dcu 31/05/2023 14:33 71,774 ALHttpClient2.dcu 31/05/2023 14:33 13,510 BlocksUnit.dcu 31/05/2023 14:33 5,720 FPCTypes.dcu 31/05/2023 14:44 30,869 MathsLib.dcu 31/05/2023 14:33 7,889 NovusDateUtils.dcu 31/05/2023 14:33 9,475 NovusNumUtils.dcu 31/05/2023 14:33 26,441 NovusStringUtils.dcu 31/05/2023 09:31 7,618 NovusWinVersionUtils.dcu 31/05/2023 09:01 5,177 PJCBView.dcu 31/05/2023 14:07 24,904 PJResFile.dcu 31/05/2023 14:33 6,567 PXLTiming.dcu 31/05/2023 14:33 7,434 PythonAction.dcu 31/05/2023 14:33 278,926 PythonEngine.dcu 31/05/2023 14:33 6,446 SeSHA256.dcu 31/05/2023 14:33 126,287 SuperObject.dcu 31/05/2023 14:33 66,636 uPSI_ALHttpClient2.dcu 31/05/2023 09:27 104,722 uPSI_AzuliaUtils.dcu 31/05/2023 14:33 20,494 uPSI_BlocksUnit.dcu 31/05/2023 14:33 14,466 uPSI_NovusStringUtils.dcu 31/05/2023 14:33 20,138 uPSI_NovusUtilities.dcu 31/05/2023 14:30 14,168 uPSI_PJResFile.dcu 31/05/2023 10:24 121,280 uPSI_PsAPI.dcu 31/05/2023 14:33 8,642 uPSI_PXLTiming.dcu 31/05/2023 14:33 175,125 uPSI_PythonEngine.dcu 31/05/2023 14:33 9,515 uPSI_VelthuisFloatUtils.dcu 31/05/2023 14:33 46,241 VarPyth.dcu 31/05/2023 14:33 5,682 VelthuisFloatUtils.dcu 2023-05 Cumulative Update for Windows 10 Version 22H2 for x64-based Systems (KB5026361) Feature update to Windows 10, version 22H2 Contains ModulesCountEnd___: 3506 Total of Function Calls: 36781 SHA1: 4.7.6.50 FBC9E7794EEF888DCBE94350D8F53A8FD05BD51F fbc9e7794eef888dcbe94350d8f53a8fd05bd51f CRC32: 94780E06 33.37 MB (34,993,432 bytes) Compilation Timestamp 2023-05-26 07:25:55 UTC Signtime 26 May 2023 09:30:37 Entry Point 25209520 - Contained Sections 10 sha1: fbc9e7794eef888dcbe94350d8f53a8fd05bd51f sha256: c9f275808708fa8bbee56f816a6ae90f2438dd8a7085ecf8e4bbcff1e1747571 Recompiled V4.7.6.50 II c:\>dir /s /o N *.dcu | find "31/05/2023" > C:\maXbox\maxboxunitalldisk_sort.txt 31/05/2023 10:25 30,854 MathsLib.dcu 31/05/2023 09:31 7,618 NovusWinVersionUtils.dcu 31/05/2023 09:01 5,177 PJCBView.dcu 31/05/2023 09:27 104,722 uPSI_AzuliaUtils.dcu 31/05/2023 09:43 20,141 uPSI_NovusUtilities.dcu 31/05/2023 10:24 121,280 uPSI_PsAPI.dcu Recompiled V4.7.6.50 I 26/05/2023 09:25 30,854 MathsLib.dcu 26/05/2023 08:57 10,314 NovusFileUtils.dcu 26/05/2023 08:33 9,451 NovusNumUtils.dcu 26/05/2023 09:25 101,764 uPSI_AzuliaUtils.dcu 26/05/2023 09:02 12,574 uPSI_NovusUtilities.dcu 24/05/2023 17:38 71,721 uPSI_ExtCtrls2.dcu 24/05/2023 15:21 3,679 JPerson.dcu 24/05/2023 16:44 21,941 Pas2jsFileUtils.dcu 24/05/2023 22:14 33,155 RestClient.dcu 24/05/2023 15:47 19,789 uPSI_LazFileUtils.dcu 24/05/2023 17:02 110,118 uPSI_PersistSettings.dcu 25/05/2023 22:21 488,230 fMain.dcu 25/05/2023 22:04 316,943 uPSCompiler.dcu 25/05/2023 22:04 20,897 uPSPreProcessor.dcu 25/05/2023 22:04 257,656 uPSRuntime.dcu 25/05/2023 22:21 30,877 uPSUtils.dcu 25/05/2023 22:24 71,784 ALHttpClient2.dcu 25/05/2023 22:24 13,520 BlocksUnit.dcu 25/05/2023 22:24 5,720 FPCTypes.dcu 25/05/2023 22:44 30,868 MathsLib.dcu 25/05/2023 22:24 26,424 NovusStringUtils.dcu 25/05/2023 21:47 7,201 NovusUtilities.dcu 25/05/2023 21:50 2,452 NovusVariants.dcu 25/05/2023 21:58 8,942 NovusWindows.dcu 25/05/2023 13:09 6,176 OldRttiMarshal.dcu 25/05/2023 22:24 6,567 PXLTiming.dcu 25/05/2023 22:24 7,434 PythonAction.dcu 25/05/2023 22:24 278,942 PythonEngine.dcu 25/05/2023 22:24 6,446 SeSHA256.dcu 25/05/2023 22:24 126,275 SuperObject.dcu 25/05/2023 13:25 24,484 superxmlparser.dcu 25/05/2023 22:24 66,632 uPSI_ALHttpClient2.dcu 25/05/2023 16:42 100,168 uPSI_AzuliaUtils.dcu 25/05/2023 22:24 20,494 uPSI_BlocksUnit.dcu 25/05/2023 22:24 14,466 uPSI_NovusStringUtils.dcu 25/05/2023 22:21 5,662 uPSI_NovusUtilities.dcu 25/05/2023 22:21 7,167 uPSI_NovusWindows.dcu 25/05/2023 13:14 3,272 uPSI_OldRttiMarshal.dcu 25/05/2023 22:42 120,317 uPSI_PsAPI.dcu 25/05/2023 22:24 8,642 uPSI_PXLTiming.dcu 25/05/2023 22:24 175,127 uPSI_PythonEngine.dcu 25/05/2023 15:45 64,679 uPSI_superobject.dcu 25/05/2023 15:03 4,192 uPSI_superxmlparser.dcu 25/05/2023 22:24 9,515 uPSI_VelthuisFloatUtils.dcu 25/05/2023 22:24 46,226 VarPyth.dcu 25/05/2023 22:24 5,682 VelthuisFloatUtils.dcu c:\maXbox>dir /s /o N *.dcu | find "26/05/2023" > C:\maXbox\maxboxunitalldisk_sort.txt Recompiled V4.7.6.20 IX C:\maXbox>dir /s /o N *.dcu | find "26/01/2023" > C:\maXbox\maxboxunitalldisk_sort.txt 26/01/2023 16:36 30,869 MathsLib.dcu 26/01/2023 13:37 2,826 NovusConsole.dcu 26/01/2023 16:19 97,116 uPSI_AzuliaUtils.dcu 26/01/2023 14:52 40,631 uPSI_HttpConnectionWinInet.dcu 26/01/2023 16:21 24,727 uPSI_RestUtils.dcu 26/01/2023 14:13 20,468 uPSI_UBigIntsV4.dcu C:\maXbox>dir /s /o N *.dcu | find "22/01/2023" > C:\maXbox\maxboxunitalldisk_sort.txt 22/01/2023 16:29 485,422 fMain.dcu 22/01/2023 16:31 71,769 ALHttpClient2.dcu 22/01/2023 16:31 13,520 BlocksUnit.dcu 22/01/2023 15:08 2,317 HttpConnectionFactory.dcu 22/01/2023 13:50 2,909 JsonConverter.dcu 22/01/2023 14:26 693 JsonListAdapter.dcu 22/01/2023 15:12 6,783 JsonToDataSetConverter.dcu 22/01/2023 23:21 30,866 MathsLib.dcu 22/01/2023 15:40 10,859 OldRttiUnMarshal.dcu 22/01/2023 16:31 6,566 PXLTiming.dcu 22/01/2023 16:31 7,427 PythonAction.dcu 22/01/2023 16:31 278,957 PythonEngine.dcu 22/01/2023 16:05 33,172 RestClient.dcu 22/01/2023 14:27 2,533 RestException.dcu 22/01/2023 16:31 6,446 SeSHA256.dcu 22/01/2023 16:31 126,388 SuperObject.dcu 22/01/2023 16:31 66,636 uPSI_ALHttpClient2.dcu 22/01/2023 23:20 75,718 uPSI_AzuliaUtils.dcu 22/01/2023 16:31 20,496 uPSI_BlocksUnit.dcu 22/01/2023 14:21 9,758 uPSI_neuralbit.dcu 22/01/2023 16:31 8,645 uPSI_PXLTiming.dcu 22/01/2023 16:31 175,131 uPSI_PythonEngine.dcu 22/01/2023 16:55 29,665 uPSI_RestClient.dcu 22/01/2023 13:52 8,071 uPSI_RestJsonUtils.dcu 22/01/2023 16:31 9,516 uPSI_VelthuisFloatUtils.dcu 22/01/2023 16:31 46,253 VarPyth.dcu 22/01/2023 16:31 5,682 VelthuisFloatUtils.dcu 15/12/2022 14:50 485,115 fMain.dcu 15/12/2022 15:10 71,781 ALHttpClient2.dcu 15/12/2022 15:10 13,520 BlocksUnit.dcu 15/12/2022 12:12 2,593 DataSetUtils.dcu 15/12/2022 13:48 9,213 HttpConnection.dcu 15/12/2022 15:19 36,445 HTTPSender.dcu 15/12/2022 15:45 30,863 MathsLib.dcu 15/12/2022 15:10 6,568 PXLTiming.dcu 15/12/2022 15:10 7,434 PythonAction.dcu 15/12/2022 15:10 278,943 PythonEngine.dcu 15/12/2022 15:10 6,446 SeSHA256.dcu 15/12/2022 15:10 66,632 uPSI_ALHttpClient2.dcu 15/12/2022 12:17 69,868 uPSI_AzuliaUtils.dcu 15/12/2022 15:10 20,494 uPSI_BlocksUnit.dcu 15/12/2022 12:17 3,523 uPSI_DataSetUtils.dcu 15/12/2022 14:16 10,563 uPSI_HttpConnection.dcu 15/12/2022 14:10 20,018 uPSI_HttpConnectionWinInet.dcu 15/12/2022 15:30 25,313 uPSI_HTTPSender.dcu 15/12/2022 15:10 8,645 uPSI_PXLTiming.dcu 15/12/2022 15:10 175,123 uPSI_PythonEngine.dcu 15/12/2022 15:10 9,511 uPSI_VelthuisFloatUtils.dcu 15/12/2022 15:10 46,228 VarPyth.dcu 15/12/2022 15:10 5,682 VelthuisFloatUtils.dcu Recompiled Dez. 4.7.6.20 07/10/2022 21:16 16,829 FindReplDlg.dcu 07/10/2022 20:53 483,995 fMain.dcu 07/10/2022 21:16 35,172 gsUtils.dcu 07/10/2022 21:16 194,742 IFSI_WinForm1puzzle.dcu 07/10/2022 21:16 145,651 uPSI_fMain.dcu 07/10/2022 21:16 10,776 uPSI_IdPOP3.dcu 07/10/2022 21:16 5,649 uPSI_JvParsing.dcu 07/10/2022 21:16 21,122 uPSI_uTPLb_AES.dcu 07/10/2022 21:16 25,457 VListView.dcu 07/10/2022 21:16 70,846 WinForm1.dcu 07/10/2022 17:59 82,034 uPSI_Chart.dcu 07/10/2022 21:16 11,936 uPSI_SynEditMiscProcs.dcu 07/10/2022 11:08 10,972 uPSI_SynHighlighterPas.dcu 07/10/2022 17:44 100,843 uPSI_TeCanvas.dcu 07/10/2022 18:28 177,508 uPSI_TeEngine.dcu 07/10/2022 17:52 74,924 uPSI_TeeProcs.dcu 07/10/2022 21:16 105,297 AdoMain.dcu 07/10/2022 21:16 71,777 ALHttpClient2.dcu 07/10/2022 21:16 13,508 BlocksUnit.dcu 07/10/2022 21:16 11,799 frmExportMain.dcu 07/10/2022 21:16 30,871 MathsLib.dcu 07/10/2022 21:16 37,441 neuraldatasets.dcu 07/10/2022 21:16 50,133 neuralfit.dcu 07/10/2022 21:16 317,297 neuralnetworkCAI.dcu 07/10/2022 21:16 114,799 neuralvolume.dcu 07/10/2022 21:16 11,119 PSResources.dcu 07/10/2022 21:16 6,569 PXLTiming.dcu 07/10/2022 21:16 7,434 PythonAction.dcu 07/10/2022 21:16 278,943 PythonEngine.dcu 07/10/2022 21:16 6,447 SeSHA256.dcu 07/10/2022 21:16 3,879 simplecomport.dcu 07/10/2022 21:16 11,331 U_Splines.dcu 07/10/2022 21:16 66,636 uPSI_ALHttpClient2.dcu 07/10/2022 21:16 20,494 uPSI_BlocksUnit.dcu 07/10/2022 21:16 16,019 uPSI_DFFUtils.dcu 07/10/2022 11:08 12,554 uPSI_frmExportMain.dcu 07/10/2022 21:16 25,351 uPSI_JclSysUtils.dcu 07/10/2022 21:16 24,307 uPSI_neuraldatasets.dcu 07/10/2022 20:55 6,188 uPSI_PSResources.dcu 07/10/2022 21:16 8,644 uPSI_PXLTiming.dcu 07/10/2022 21:16 175,125 uPSI_PythonEngine.dcu 07/10/2022 21:16 46,231 VarPyth.dcu 07/10/2022 21:16 19,484 ViewToDoFm.dcu 07/10/2022 11:08 28,736 uconvMain.dcu 07/10/2022 16:52 63,798 uPSI_Series.dcu 07/10/2022 11:08 19,799 uPSI_uconvMain.dcu 07/10/2022 11:45 47,688 SynHighlighterPas.dcu 08/10/2022 00:43 484,364 fMain.dcu 08/10/2022 13:00 82,689 uPSI_Chart.dcu 08/10/2022 12:22 102,809 uPSI_TeCanvas.dcu 08/10/2022 12:46 75,065 uPSI_TeeProcs.dcu 08/10/2022 00:44 71,779 ALHttpClient2.dcu 08/10/2022 00:44 13,517 BlocksUnit.dcu 08/10/2022 16:05 30,866 MathsLib.dcu 08/10/2022 14:53 19,247 process.dcu 08/10/2022 16:03 13,555 PSResources.dcu 08/10/2022 00:44 6,568 PXLTiming.dcu 08/10/2022 00:44 7,433 PythonAction.dcu 08/10/2022 00:44 278,838 PythonEngine.dcu 08/10/2022 00:44 6,446 SeSHA256.dcu 08/10/2022 00:44 66,636 uPSI_ALHttpClient2.dcu 08/10/2022 00:33 37,434 uPSI_AzuliaUtils.dcu 08/10/2022 00:44 20,494 uPSI_BlocksUnit.dcu 08/10/2022 14:50 17,956 uPSI_process.dcu 08/10/2022 14:53 6,869 uPSI_PSResources.dcu 08/10/2022 00:44 8,643 uPSI_PXLTiming.dcu 08/10/2022 00:44 175,123 uPSI_PythonEngine.dcu 08/10/2022 00:44 46,252 VarPyth.dcu 08/10/2022 14:50 22,801 W32VersionInfo.dcu 09/10/2022 16:35 211,349 IFSI_SysUtils_max.dcu 09/10/2022 16:54 195,259 IFSI_WinForm1puzzle.dcu 09/10/2022 19:16 30,861 MathsLib.dcu 09/10/2022 19:14 14,498 PSResources.dcu 09/10/2022 17:54 48,542 uPSI_AzuliaUtils.dcu 09/10/2022 18:12 7,017 uPSI_PSResources.dcu 13/10/2022 16:31 82,689 uPSI_Chart.dcu 13/10/2022 18:24 178,625 uPSI_TeEngine.dcu 13/10/2022 16:36 75,069 uPSI_TeeProcs.dcu 13/10/2022 19:00 30,862 MathsLib.dcu 13/10/2022 17:01 49,467 uPSI_AzuliaUtils.dcu 15/10/2022 12:08 348,647 TeEngine.dcu 15/10/2022 12:05 179,899 uPSI_TeEngine.dcu 15/10/2022 17:57 30,859 MathsLib.dcu 15/10/2022 17:53 59,779 neuralfit.dcu 15/10/2022 13:45 53,663 uPSI_AzuliaUtils.dcu 15/10/2022 16:33 29,161 uPSI_neuralfit.dcu 16/10/2022 17:27 484,338 fMain.dcu 16/10/2022 17:30 71,766 ALHttpClient2.dcu 16/10/2022 17:30 13,517 BlocksUnit.dcu 16/10/2022 17:25 59,939 neuralfit.dcu 16/10/2022 17:30 6,566 PXLTiming.dcu 16/10/2022 17:30 7,427 PythonAction.dcu 16/10/2022 17:30 278,951 PythonEngine.dcu 16/10/2022 17:30 6,446 SeSHA256.dcu 16/10/2022 17:30 66,636 uPSI_ALHttpClient2.dcu 16/10/2022 17:30 20,495 uPSI_BlocksUnit.dcu 16/10/2022 17:30 8,645 uPSI_PXLTiming.dcu 16/10/2022 17:30 175,131 uPSI_PythonEngine.dcu 16/10/2022 17:30 46,237 VarPyth.dcu 17/10/2022 11:11 49,666 JclNTFS2.dcu 17/10/2022 11:27 30,846 MathsLib.dcu 17/10/2022 11:26 56,533 uPSI_AzuliaUtils.dcu 17/10/2022 11:16 47,572 uPSI_JclNTFS2.dcu C:\maXbox>dir /s /o N *.dcu | find "23/09/2022" > C:\maXbox\maxboxunitalldisk_sort.txt 23/09/2022 16:15 483,806 fMain.dcu 23/09/2022 10:00 194,750 IFSI_WinForm1puzzle.dcu 23/09/2022 12:43 81,932 uPSI_Chart.dcu 23/09/2022 11:39 97,061 uPSI_TeCanvas.dcu 23/09/2022 11:39 177,404 uPSI_TeEngine.dcu 23/09/2022 11:20 73,888 uPSI_TeeProcs.dcu 23/09/2022 16:16 71,782 ALHttpClient2.dcu 23/09/2022 16:16 13,522 BlocksUnit.dcu 23/09/2022 17:45 30,862 MathsLib.dcu 23/09/2022 16:16 6,568 PXLTiming.dcu 23/09/2022 16:16 7,434 PythonAction.dcu 23/09/2022 16:16 278,867 PythonEngine.dcu 23/09/2022 16:06 10,517 RestUtils.dcu 23/09/2022 16:16 6,446 SeSHA256.dcu 23/09/2022 16:16 66,632 uPSI_ALHttpClient2.dcu 23/09/2022 17:45 31,846 uPSI_AzuliaUtils.dcu 23/09/2022 16:16 20,494 uPSI_BlocksUnit.dcu 23/09/2022 16:16 8,642 uPSI_PXLTiming.dcu 23/09/2022 16:16 175,123 uPSI_PythonEngine.dcu 23/09/2022 16:15 11,240 uPSI_RestUtils.dcu 23/09/2022 16:16 46,235 VarPyth.dcu 23/09/2022 15:11 63,422 uPSI_Series.dcu ***************************************************************** Release Notes maXbox 4.7.6.50 May 2023 mX476 **************************************************************** Add 8 Units + 12 Tutorials 1527 unit uPSI_dprocess; TProcess2 1528 unit uPSI_uXmlStorage.pas 1229 unit uPSI_AsphyreTimer.pas 1230 unit uPSI_Pas2JSUtils.pas 1231 unit uPSI_pacMain; (Form1pac: TForm1pac;) 1232 unit dwsWebUtils.pas; DWS 1233 unit uPSI_dwsWebUtils.pas; DWS 1234 unit uPSI_RestUtils2.pas; Total of Function Calls: 36449 SHA1: 4.7.6.50 C56F0A26DFBE706E6A1A9D0E23B6114AFCC09CDC CRC32: 29BCAE4D 33.1 MB (34,724,120 bytes) Compilation Timestamp 2023-05-21 13:42:16 UTC Signtime 21 May 2023 15:45:22 Entry Point 25102976 - Contained Sections 10 http://www.softwareschule.ch/maxbox_functions.txt 2023-05 Cumulative Update for Windows 10 Version 22H2 for x64-based Systems (KB5026361) Feature update to Windows 10, version 22H2 ***************************************************************** Release Notes maXbox 4.7.6.20 January 2023 mX476 **************************************************************** Add 81 Units + 25 Tutorials 1441 unit uPSI_neuralgeneric.pas; CAI 1442 unit uPSI_neuralthread.pas; CAI 1443 unit uPSI_uSysTools; TuO 1444 unit upsi_neuralsets; mX4 1445 unit uPSI_uWinNT.pas mX4 1446 unit uPSI_URungeKutta4.pas ICS 1447 unit uPSI_UrlConIcs.pas ICS 1448 unit uPSI_OverbyteIcsUtils.pas ICS 1449 unit uPSI_Numedit2 mX4 1450 unit uPSI_PsAPI_3.pas mX4 1451 unit uPSI_SeSHA256.pas 1452 unit IdHashMessageDigest_max2; 1453 unit uPSI_BlocksUnit.pas 1454 unit uPSI_DelticsCommandLine.pas 1455 unit uPSI_DelticsStrUtils; 1456 unit uPSI_DelticsBitField; 1457 unit uPSI_DelticsSysUtils; 1458 unit uPSI_ALIniFiles2.pas 1459 unit uPSI_StarCalc2.pas 1460 unit uPSI_IdHashMessageDigest2.pas 1461 unit uPSI_U_Splines; 1462 unit uPSI_U_CoasterB.pas; 1463 U_SpringMass2.pas 1464 uPSI_MARSCoreUtils; 1465 unit uPSI_clJsonParser.pas 1466 unit uPSI_SynHighlighterPython.pas 1467 unit uPSI_DudsCommonDelphi; 1468 unit uPSI_AINNNeuron; 1469 unit uPSI_PJConsoleApp2; 1470 unit uPSI_PJPipeFilters2; 1471 unit uPSI_uHTMLBuilder; 1472 unit uPSI_PJPipe2; 1473 uPSI_WinApiDownload, 1474 uPSI_pxQRcode, //beta 1475 unit uPSI_neuralplanbuilder2 1476 unit uPSI_DelphiZXingQRCode; 1477 unit uPSI_RestJsonUtils; 1478 unit UtilsTimeCode; 1479 unit uPSC_classes2.pas; //TList 1480 unit uPSC_std2.pas 1481 unit uPSI_maxIniFiles.pas 1482 unit uROPSImports.pas 1483 unit uROPSServerLink.pas 1484 unit uPSI_KLibUtils; 1485 unit uPSI_PathFunc2; //inno setup 1486 unit KLibVC_Redist.pas; 1487 unit HTTPApp2.pas; 1488 unit uPSI_XCollection2; 1489 unit uPSI_KLibWindows; 1490 unit KlibConstants; 1491 unit uPSI_AzuliaUtils.pas 1492 unit uPSI_ALHttpClient2; 1493 unit uPSI_ALWininetHttpClient2; 1494 unit uPSI_UtilsMax41.pas 1495 unit uPSI_JclSysUtils1; 1496 unit uPSI_RestUtils; 1497 unit uPSI_TeEngine2.pas 1498 unit uPSI_Chart2.pas; (uPSI_TeCanvas2.pas) 1499 unit uPSI_PSResources.pas 1500 unit uPSI_TeCanvas2_1.pas 1501 unit uPSI_DataSetConverter4DUtil; 1502 unit uPSI_neuralfit2.pas; 1503 unit uPSI_SynCrtSock.pas 1504 uPSI_RunElevatedSupport.pas 1505 unit synTHttpRequest.pas; 1506 unit uPSI_VelthuisFloatUtils.pas 1507 unit HttpConnection.pas 1508 unit uPSI_HttpConnectionWinInet.pas 1509 unit UHexUtils.pas 1510 unit UExeFileType.pas 1511 unit uPSI_UConsoleApp.pas 1512 unit uPSI_CompilersURunner.pas 1513 unit uPSI_HttpConnection.pas 1514 unit uPSI_DataSetUtils.pas 1515 unit uPSI_HTTPSender.pas 1516 unit AES_Cryptobox4.pas 1517 unit uPSI_JsonConverter.pas 1518 unit uPSI_RestClient.pas 1519 unit JsonToDataSetConverter; 1520 unit JsonListAdapter; (superobject) 1521 unit uPSI_OpenApiUtils.pas; 1522 unit uPSI_WinHttp_TLB.pas; Total of Function Calls: 36317 SHA1: 4.7.6.20 D90222BDC9D9648E75A3A749D4C8EE1DF4655C30 CRC32: 4A7231F8 32.7 MB (34,309,912 bytes) Compilation Timestamp 2023-01-24 21:15:08 UTC Signing time 24 Jan2023 22:18:14 Entry Point 25025064 - Contained Sections 10 Amount of Functions: 21538 Amount of Procedures: 12755 Amount of Constructors: 2010 Amount of Destructors: 14 Totals of Calls: 36317 SHA1: of 4.7.6.20 D90222BDC9D9648E75A3A749D4C8EE1DF4655C30 CRC32: 6CB990C1: 34309912 bytes  mX4 executed: 24/01/2023 23:23:35 Runtime: 0:15:16.661 Memload: 44% use Total of Function Calls: 36317 SHA1: 4.7.6.20 D90222BDC9D9648E75A3A749D4C8EE1DF4655C30 CRC32: 6CB990C1 32.7 MB (34,309,912 bytes) Compilation Timestamp 2023-01-24 21:15:08 UTC Signing time 24 Jan2023 22:18:14 Entry Point 25025064 - Contained Sections 10 ---------------------------------------------------------------- Total of Function Calls: 35958 SHA1: 4.7.6.20 D4619B18E231839334AB0FE0B90D4018DC6276A7 CRC32: 9E995FA2 32.2 MB (33,805,592 bytes) Compilation Timestamp 2022-10-17 09:27:44 UTC Signing time 17 Oct 2022 11:48:48 Entry Point 24783132 - Contained Sections 10 Amount of Functions: 21314 Amount of Procedures: 12650 Amount of Constructors: 1980 Amount of Destructors: 14 Totals of Calls: 35958 SHA1: of 4.7.6.20 D4619B18E231839334AB0FE0B90D4018DC6276A7 CRC32: 9E995FA2: 33805592 bytes  mX4 executed: 17/10/2022 12:23:45 Runtime: 0:14:16.719 Memload: 36% use **************************************************************** Release Notes maXbox 4.7.6.10 II November 2021 mX476 **************************************************************** Add 10 Units + 3 Tutorials 1441 unit uPSI_neuralgeneric.pas; CAI 1442 unit uPSI_neuralthread.pas; CAI 1443 unit uPSI_uSysTools; TuO 1444 unit upsi_neuralsets; mX4 1445 unit uPSI_uWinNT.pas mX4 1446 unit uPSI_URungeKutta4.pas ICS 1447 unit uPSI_UrlConIcs.pas ICS 1448 unit uPSI_OverbyteIcsUtils.pas ICS 1449 unit uPSI_Numedit2 mX4 1450 unit uPSI_PsAPI_3.pas mX4 Total of Function Calls: 35078 SHA1: of 4.7.6.10 D4B0A36E42E9E89642A140CCEE2B7CCDDE3D041A CRC32: B8F2450F 30.6 MB (32,101,704 bytes) Amount of Functions: 20591 Amount of Procedures: 12332 Amount of Constructors: 1943 Amount of Destructors: 14 Totals of Calls: 34880 SHA1: of 4.7.6.10 CF939E3A8D4723DB1DEF383C5FC961E06728C58F CRC32: 38F88218: 32022344 bytes  mX4 executed: 14/11/2021 11:02:18 Runtime: 0:12:36.968 Memload: 42% use **************************************************************** Tech Notes maXbox 4.7.5.90 V October 2021 mX47 **************************************************************** add uPSI_flcFloats.pas to complete Fundamentals5 Registermethod: count, capacity in TNNetList with CL.Add(TNNetList) do RegisterMethod(@TNNetList.Count, 'Count'); alias flots() - floattostr() Function flots( const A : Float) : String'); plus resources MOON_FULL, maxbox4logo.jpg, EARTH.bmp Bugfix TSize Type CL.AddClassN(CL.FindClass('TOBJECT'),'TInteger'); Bigints for BigFloat - RegisterMethod(FindClass('TObject'),'TBigFloat'),'Procedure Assign4( A : TInteger); fix type TSize, add type TIntegerArray CL.AddTypeS('TSize', record cx: Longint; cy: Longint; end'); //not anymore in JvVCLUtils asize:= MakeSize(2,34); wGetTextExtentPoint32(aDC, 'f' ,4, asize) writeln(botostr(GetViewportExtEx( adc, asize))); Function AddLayer( pLayer : TNNetLayer) : TNNetLayer; Function AddLayer1( strData : string) : TNNetLayer; Function AddLayer2( pLayers : array of TNNetLayer) : TNNetLayer; TestConvolutionAPI Routine internal Docu of main Neural Unit for maXbox: http://www.softwareschule.ch/examples/uPSI_NeuralNetworkCAI.txt http://www.softwareschule.ch/examples/uPSI_neuralnetworkcai.txt http://www.softwareschule.ch/examples/uPSI_neuralvolume.txt http://www.softwareschule.ch/examples/uPSI_neuraldatasets.txt http://www.softwareschule.ch/examples/uPSI_neuralfit.txt Source https://github.com/joaopauloschuler/neural-api ******************************************************************************* Procedure Proc SIZE 12456 Proc ****************************Now the Proc list******************* Procedure( ACol, ARow : Int; Items : TStrings) Procedure( Agg : TAggregate) Procedure( ASender : TComponent; const AReplyStatus : TReplyStatus) Procedure( ASender : TComponent; const AString :Str; var AMsg : TIdMessage) Procedure( ASender : TComponent; var AMsg : TIdMessage) Procedure( ASender : TObject; const ABytes : Int) Procedure( ASender : TObject; VStream : TStream) Procedure( AThread : TIdThread) Procedure( AWebModule : TComponent) Procedure( Column : TColumn) Procedure(const AUsername:Str; const APassword:Str; AAuthenticationResult: Bool) Procedure( const iStart : Int; const sText :Str) Procedure(Control:TCustomTabControl; TabIndex:Int; const Rect : TRect; Active :Bool) Procedure( Database : TDatabase; LoginParams : TStrings) Proc DataSet:TCustomClientDataSet;E:EReconcileError;UpdateKind:TUpdateKind;var Action:TReconcileAction) Proc ( DATASET : TDATASET) Proc ( DataSet:TDataSet;E:EDatabaseError;UpdateKind:TUpdateKind;var UpdateAction: TUpdateAction) Procedure( DATASET : TDATASET; E : TObject; var ACTION : TDATAACTION) Procedure( DataSet : TDataSet; UpdateKind: TUpdateKind; var UpdateAction: TUpdateAction) Procedure( DATASET : TDATASET; var ACCEPT :Bool) Procedure( DBCtrlGrid : TDBCtrlGrid; Index : Int) Procedure( Done : Int) Procedure( HeaderControl : TCustomHeaderControl; Section : THeaderSection) Procedure(HeaderControl:TCustomHeaderControl;Sect:THeaderSection;const Rect:TRect;Pressed:Bool) Procedure(HeaderControl:TCustomHeaderControl;Sect:THeaderSection;Width:Int;State:TSectionTrackState) Procedure( HeaderControl : THeaderControl; Section : THeaderSection) Procedure(HeaderControl:THeaderControl;Section:THeaderSection;const Rect:TRect;Pressed:Bool) Procedure(HeaderControl:THeaderControl;Sectin:THeaderSection;Width:Int;State:TSectionTrackState) Procedure(Sender:TCustomListView;const ARect:TRect;Stage:TCustomDrawStage;var DefaultDraw: Bool) Procedure(Sender: TCustomListView; const ARect : TRect; var DefaultDraw :Bool) Procedure(Sender: TCustomListView; Item : TListItem; Rect : TRect; State : TOwnerDrawState) Procedure(Sender: TCustomTreeView; const ARect : TRect; var DefaultDraw :Bool) Procedure(SENDER: TFIELD; const TEXT :Str) Procedure(SENDER: TFIELD; var TEXT :Str; DISPLAYTEXT :Bool) Procedure(Sender: TIdTelnet; const Buffer :Str) Procedure(Sender: TIdTelnet; Status : TIdTelnetCommand) Procedure(SENDER: TOBJECT; ACANVAS : TCANVAS; ARECT : TRECT; SELECTED :Bool) Procedure(SENDER: TOBJECT; ACANVAS : TCANVAS; ARECT : TRECT; STATE : TOWNERDRAWSTATE) Procedure(SENDER: TOBJECT; ACANVAS : TCANVAS; var WIDTH, HEIGHT : Int) Procedure(Sender: TObject; ACol, ARow : Longint; const Value :Str) Procedure(Sender: TObject; ACol, ARow : Longint; Rect : TRect; State : TGridDrawState) Procedure(Sender: TObject; ACol, ARow : Longint; var CanSelect :Bool) Procedure(Sender: TObject; ACol, ARow : Longint; var Value :Str) Procedure(Sender: TObject; Button : TMPBtnType) Procedure(Sender: TObject; Button : TMPBtnType; var DoDefault :Bool) Procedure(Sender: TObject; Button : TUDBtnType) Procedure(Sender: TObject; Canvas: TCanvas; PageRect:TRect; var DoneDrawing:Bool) Procedure(SenderTObject;ClientSocket:TServerClientWinSocket;var SocketThread: TServerClientThread) Procedure(Sender: TObject; Column : TListColumn) Procedure(Sender: TObject; Column : TListColumn; Point : TPoint) Procedure(Sender: TObject; Connecting :Bool) Procedure(Sender:TObject;const PapSize:SmallInt;const Orient:TPrtOrient;const PageTy:TPageTy;var DoneDraw:Bool Procedure(Sendr:TObject;const Rect:TRect;DataCol:Int;Column:TColumn;State:TGridDrawState) Procedure( Sender : TObject; const Rect : TRect; Field : TField; State : TGridDrawState) Procedure(Sender:TObject;const UserStr:str;var DateAndTime:TDateTime;var AllowChange:Bool) Procedure(Sender:TObject; E : Exception; var Handled :Bool) Procedure(Sender:TObject; FromIndex, ToIndex : Longint) Procedure(Sender:TObject; FromSection,ToSection: THeaderSection; var AllowDrag:Bool) Procedure(Sender:TObject; Index : LongInt) Procedure(Sender:TObject; Item : TListItem) Procedure(Sender:TObject; Item : TListItem; Change : TItemChange) Procedure(Sender:TObject;Item: TListItem; Change:TItemChange;var AllowChange:Boolean) Procedure(Sender:TObject; Item : TListItem; Selected :Bool) Procedure(Sender:TObject; Item : TListItem; var AllowEdit :Bool) Procedure(Sender:TObject; Item : TListItem; var S :Str) Procedure(Sender:TObject; Item1, Item2 : TListItem; Data : Int; var Compare : Int) Procedure(Sender:TObject; ModalResult : TModalResult; var CanClose :Bool) Procedure(Sender:TObject; Month : LongWord; var MonthBoldInfo : LongWord) Procedure(Sender:TObject; NewTab : Int; var AllowChange :Bool) Procedure(Sender:TObject; Node : TTreeNode) Procedure(Sender:TObject; Node : TTreeNode; var AllowChange :Bool) Procedure(Sender:TObject; Node : TTreeNode; var AllowCollapse :Bool) Procedure(Sender:TObject; Node : TTreeNode; var AllowEdit :Bool) Procedure(Sender:TObject; Node : TTreeNode; var AllowExpansion :Bool) Procedure(Sender:TObject; Node : TTreeNode; var S :Str) Procedure(Sender:TObject; Node1, Node2 : TTreeNode; Data : Int; var Compare : Int) Procedure(Sender : TObject; NumObjects, NumChars : Int; var SaveClipboard :Bool) Procedure(Sender : TObject; Rect : TRect) Procedure(Sender:TObject; Request:TWebRequest;Response:TWebResponse; var Handled:Bool) Procedure(Sender:TObject;Shift:TShiftState;X,Y:Int;Orient:TPageScrollerOrientation;var Delta:Int Procedure(Sender TObject; Socket : TCustomWinSocket) Procedure(Sender:TObject;Socket:TCustomWinSocket;ErrorEvent:TErrorEvent;var ErrorCode: Int) Procedure( Sender : TObject; Socket : TCustomWinSocket; SocketEvent : TSocketEvent) Procedure(Sender: TObject; Socket : TSocket; var ClientSocket: TServerClientWinSocket) Procedure(SENDER: TOBJECT; SOURCE : TMENUITEM; REBUILD :Bool) Procedure(Sender: TObject; StartPos, EndPos : Int; var AllowChange :Bool) Procedure(Sender: TObject; TabCanvas: TCanvas;R:TRect; Index: Int; Selected :Bool) Procedure(Sender: TObject; TabIndex : Int; var ImageIndex : Int) Procedure(Sender: TObject; Thread : TServerClientThread) Procedure(Sender: TObject; TickCount :Card; var Reset :Bool) Procedure(Sender: TObject; Username, Password :Str) Procedure(Sender: TObject; var AllowChange :Bool) Procedure(Sender: TObject; var AllowChange:Boolean; NewValue:SmallInt; Direction:TUpDownDirection) Procedure(Sender: TObject; var Caption :Str; var Alignment : THTMLCaptionAlignment) Procedure( Sender : TObject; var Continue :Bool) Procedure(Sender:TObject;var dest:str;var NumRedirect:Int;var Handled:bool;var VMethod:TIdHTTPMethod) Procedure(Sender : TObject; var Username :Str) Procedure(Sender : TObject; Wnd : HWND) Procedure(Sender : TToolbar; Button : TToolButton) Procedure(Sender:TToolBar;const ARect:TRect;Stage:TCustomDrawStage;var DefaultDraw:Bool) Procedure(Sender : TToolBar; const ARect : TRect; var DefaultDraw :Bool) Procedure(Sender : TToolbar; Index : Int; var Allow :Bool) Procedure(Sender : TToolbar; Index : Int; var Button : TToolButton) Procedure(StatusBar : TCustomStatusBar; Panel : TStatusPanel; const Rect : TRect) Procedure(StatusBar : TStatusBar; Panel : TStatusPanel; const Rect : TRect) Procedure(var FieldNames:TWideStrings;SQL:WideStr;var BindAllFields:Bool;var TableName:WideStr) Procedure(var FieldNames : TWideStrings; SQL : WideString; var TableName : WideString) procedure(Sender: TObject) procedure(Sender: TObject; var Done:Bool) procedure(Sender: TObject; var Key: Word; Shift: TShiftState); Proc _T(Name: tbtString; v: Variant); Proc AbandonSignalHandler( RtlSigNum : Int) Proc Abort Proc About1Click( Sender : TObject) Proc Accept( Socket : TSocket) Proc AESSymetricExecute(const plaintext, ciphertext, password:Str) Proc AESEncryptFile(const plaintext, ciphertext, password:Str) Proc AESDecryptFile(const replaintext, ciphertext, password:Str) Proc AESEncryptString(const plaintext:str;var ciphertext:str;password:Str) Proc AESDecryptString(var plaintext:str;const ciphertext:str;password:Str) Proc Add(Addend1, Addend2 : TMyBigInt) Proc ADD(const AKEY, AVALUE : VARIANT) Proc Add(const Key :Str; Value : Int) Proc ADD(const NAME, FIELDS :Str; OPTIONS : TINDEXOPTIONS) Proc ADD(FIELD : TFIELD) Proc ADD(ITEM : TMENUITEM) Proc ADD(POPUP : TPOPUPMENU) Proc AddCharacters( xCharacters : TCharSet) Proc AddDriver( const Name :Str; List : TStrings) Proc AddImages( Value : TCustomImageList) Proc AddIndex(const Name,Fields:str;Options:TIndexOptions;const DescFields:str) Proc AddLambdaTransitionTo( oState : TniRegularExpressionState) Proc AddLoader( Loader : TBitmapLoader) Proc ADDPARAM( VALUE : TPARAM) Proc AddPassword( const Password :Str) Proc AddStandardAlias( const Name, Path, DefaultDriver :Str) Proc AddState( oState : TniRegularExpressionState) Proc AddStrings( Strings : TStrings); Proc AddStrings(Strings: TStrings); Proc AddStrings1( Strings : TWideStrings); Proc AddStringTerm(var sString:str;const sTerm:str;const sSeparator:str) Proc AddToRecentDocs( const Filename :Str) Proc AddTransitionTo( oState : TniRegularExpressionState; xCharacters : TCharset) Proc AllFunctionsList1Click( Sender : TObject) Proc AllObjectsList1Click(Sender: TObject); Proc Allocate( AAllocateBytes : Int) Proc AllResourceList1Click(Sender: TObject); Proc AnsiAppend( var dst : Ansistr; const src : Ansistr) Proc AnsiAssign( var dst : Ansistr; var src : Ansistr) Proc AnsiDelete( var dst : Ansistr; index, count : Int) Proc AnsiFree( var s : Ansistr) Proc AnsiFromWide( var dst : Ansistr; const src : WideString) Proc AnsiInsert( var dst : Ansistr; const src : Ansistr; index : Int) Proc AnsiSetLength( var dst : Ansistr; len : Int) Proc Ansistr_to_stream( const Value : Ansistr; Destin : TStream) Proc AntiFreeze; Proc APPEND Proc Append( const S : WideString) Proc Append(S:Str); Proc AppendByte( var VBytes : TIdBytes; AByte : byte) Proc AppendBytes( var VBytes : TIdBytes; AAdd : TIdBytes) Proc AppendChunk( Val : OleVariant) Proc AppendData( const Data : OleVariant; HitEOF :Bool) Proc AppendStr( var Dest :Str; S :Str) Proc AppendString( var VBytes : TIdBytes; const AStr :Str; ALength : Int) Proc ApplyRange Proc Arc(X1, Y1, X2, Y2, X3, Y3, X4, Y4: Int); Proc Arrange( Code : TListArrangement) Proc Assert(expr :Bool; const msg:Str); Proc Assert2(expr :Bool; const msg:Str); Proc Assign( AList : TCustomBucketList) Proc Assign( Other : TObject) Proc Assign( Source : TDragObject) Proc Assign( Source : TPersistent) Proc Assign(Source: TPersistent) Proc Assign2(mystring, mypath:Str); Proc AssignCurValues( Source : TDataSet); Proc AssignCurValues1( const CurValues : Variant); Proc ASSIGNFIELD( FIELD : TFIELD) Proc ASSIGNFIELDVALUE( FIELD : TFIELD; const VALUE : VARIANT) Proc AssignFile(var F: Text; FileName:Str) Proc AssignFile(var F: TextFile; FileName:Str) Proc AssignFileRead(var mystring, myfilename:Str); Proc AssignFileWrite(mystring, myfilename:Str); Proc AssignTo( Other : TObject) Proc AssignValues( Value : TParameters) Proc ASSIGNVALUES( VALUE : TPARAMS) Proc AssociateExtension( IconPath, ProgramName, Path, Extension :Str) Proc Base64_to_stream( const Base64 : Ansistr; Destin : TStream) Proc Base64ToVar( NatData : Pointer; const SoapData : WideString); Proc Base64ToVar1( var V : Variant; const SoapData : WideString); Proc BcdAdd( const bcdIn1, bcdIn2 : TBcd; var bcdOut : TBcd) Proc BcdDivide( Dividend, Divisor :Str; var bcdOut : TBcd); Proc BcdDivide1( const Dividend, Divisor : TBcd; var bcdOut : TBcd); Proc BcdDivide2( const Dividend : TBcd; const Divisor : Double; var bcdOut : TBcd); Proc BcdDivide3( const Dividend : TBcd; const Divisor :Str; var bcdOut : TBcd); Proc BcdMultiply( const bcdIn1, bcdIn2 : TBcd; var bcdOut : TBcd); Proc BcdMultiply1( const bcdIn : TBcd; const DoubleIn : Double; var bcdOut : TBcd); Proc BcdMultiply2( const bcdIn : TBcd; const StringIn :Str; var bcdOut : TBcd); Proc BcdMultiply3( StringIn1, StringIn2 :Str; var bcdOut : TBcd); Proc BcdSubtract( const bcdIn1, bcdIn2 : TBcd; var bcdOut : TBcd) Proc BcdToBytes( Value : TBcd; Bytes : array of byte) Proc Beep Proc BeepOk Proc BeepQuestion Proc BeepHand Proc BeepExclamation Proc BeepAsterisk Proc BeepInformation Proc BEGINDRAG(IMMEDIATE:BOOLEAN) Proc BeginLayout Proc BeginTimer( const Delay, Resolution :Card) Proc BeginUpdate Proc BeginUpdate; Proc BigScreen1Click(Sender: TObject); Proc BinToHex(Buffer: PChar; Text: PChar; BufSize: Int); Proc BitsToBooleans( const Bits : Byte; var B : TBooleanArray; AllBits :Bool); Proc BitsToBooleans1( const Bits : Word; var B : TBooleanArray; AllBits :Bool); Proc BitsToBooleans2( const Bits : Int; var B : TBooleanArray; AllBits :Bool); Proc BitsToBooleans3( const Bits : Int64; var B : TBooleanArray; AllBits:Bool); Proc BoldDays(Days : array of LongWord; var MonthBoldInfo : LongWord) Proc BooleansToBits( var Dest : Byte; const B : TBooleanArray); Proc BooleansToBits1( var Dest : Word; const B : TBooleanArray); Proc BooleansToBits2( var Dest : Int; const B : TBooleanArray); Proc BooleansToBits3( var Dest : Int64; const B : TBooleanArray); Proc BreakPointMenuClick( Sender : TObject) Proc BRINGTOFRONT Proc BringToFront; Proc btnBackClick( Sender : TObject) Proc btnBrowseClick( Sender : TObject) Proc BtnClick( Index : TNavigateBtn) Proc btnLargeIconsClick( Sender : TObject) Proc BuildAndSendRequest( AURI : TIdURI) Proc BuildCache Proc BurnMemory( var Buff, BuffLen : Int) Proc BurnMemoryStream( Destructo : TMemoryStream) Proc CalculateFirstSet Proc Cancel Proc CancelDrag; Proc CancelEdit Proc CANCELHINT Proc CancelRange Proc CancelUpdates Proc CancelWriteBuffer Proc Capture1(ADest:TStream;out VLineCount:Int;const ADelim:str;const AIsRFCMessage:Bool; Proc Capture2(ADest: TStrings; const ADelim:Str; const AIsRFCMessage:Boolean); Proc Capture3(ADest:TStrings;out VLineCount:Int;const ADelim:str;const AIsRFCMessage:Bool Proc CaptureScreenFormat(vname:Str; vextension:Str); Proc CaptureScreenPNG(vname:Str); Proc CardinalsToI64(var I: Int64; const LowPart, HighPart:Card); Proc CASCADE Proc CastNativeToSoap(Info:PTypeInfo;var SoapData:WideStr;NatData:Pointer;var IsNull:Bool) Proc CastSoapToVariant(SoapInfo:PTypeInfo;const SoapData:WideString;NatData:Pointer); Proc cbPathClick( Sender : TObject) Proc cbPathKeyDown( Sender : TObject; var Key : Word; Shift : TShiftState) Proc cedebugAfterExecute( Sender : TPSScript) Proc cedebugBreakpoint(Sender: TObject;const FileName:str;Position,Row,Col:Card) Proc cedebugCompile( Sender : TPSScript) Proc cedebugExecute( Sender : TPSScript) Proc cedebugIdle( Sender : TObject) Proc cedebugLineInfo(Sender:TObject; const FileName:Str; Position,Row,Col:Card) Proc CenterHeight( const pc, pcParent : TControl) Proc CenterDlg(AForm: TForm; MForm: TForm); { Zentriert Forms } Proc CenterForm(AForm: TForm; MForm: TForm); { Zentriert Forms } Proc Change Proc ChangeBiDiModeAlignment(var Alignment: TAlignment); Proc Changed Proc ChangeDir( const ADirName :Str) Proc ChangeDirUp Proc ChangeEntryTransitions( oNewState : TniRegularExpressionState) Proc ChangeLevelBy( Value : TChangeRange) Proc ChDir(const s:Str) Proc Check(Status: Int) Proc CheckCommonControl( CC : Int) Proc CHECKFIELDNAME( const FIELDNAME :Str) Proc CHECKFIELDNAMES( const FIELDNAMES :Str) Proc CheckForDisconnect(const ARaiseExceptionIfDisconnected:bool;const AIgnoreBuffer:bool) Proc CheckForGracefulDisconnect( const ARaiseExceptionIfDisconnected :Bool) Proc CheckToken( T : Char) Proc CheckToken(t:char) Proc CheckTokenSymbol( const S :Str) Proc CheckTokenSymbol(s:str) Proc CheckToolMenuDropdown( ToolButton : TToolButton) Proc Chord(X1, Y1, X2, Y2, X3, Y3, X4, Y4: Int); Proc CIED65ToCIED50( var X, Y, Z : Extended) Proc CIELABToBGR( const Source, Target : Pointer; const Count :Card); Proc CipherFile1Click(Sender: TObject); Proc Clear; Proc Clear1Click( Sender : TObject) Proc ClearColor( Color : TColor) Proc CLEARITEM( AITEM : TMENUITEM) Proc ClearMapping Proc ClearSelection( KeepPrimary :Bool) Proc ClearWriteBuffer Proc Click Proc Close Proc closeMP3; Proc Close1Click( Sender : TObject) Proc CloseDatabase( Database : TDatabase) Proc CloseDataSets Proc CloseDialog Proc CloseFile(var F: Text); Proc Closure Proc CMYKToBGR(const Source,Target:Pointer;const BitsPerSample:Byte;Count:Card); Proc CMYKToBGR1(const C,M,Y,K, Target:Pointer;const BitsPerSample: Byte; Count:Card); Proc CodeCompletionList1Click( Sender : TObject) Proc ColEnter Proc Collapse Proc Collapse( Recurse :Bool) Proc ColorRGBToHLS( clrRGB : TColorRef; var Hue, Luminance, Saturation : Word) Proc CommaSeparatedToStringList( AList : TStrings; const Value :Str) Proc CommitFreeAndNil( var Transaction : TDBXTransaction) Proc Compile1Click( Sender : TObject) Proc ComponentCount1Click(Sender: TObject); Proc Compress(azipfolder, azipfile:Str) Proc DeCompress(azipfolder, azipfile:Str) Proc XZip(azipfolder, azipfile:Str) Proc XUnZip(azipfolder, azipfile:Str) Proc Connect( const ATimeout : Int) Proc Connect( Socket : TSocket) Proc Console1Click(Sender: TObject); Proc Continue Proc ContinueCount( var Counter : TJclCounter) Proc CONTROLDESTROYED(CONTROL:TCONTROL) Proc ConvertStreamFromAnsiToUTF8( Src, Dst : TStream; cp : Int) Proc ConvertStreamFromUTF8ToAnsi( Src, Dst : TStream; cp : Int) Proc ConvertImage(vsource, vdestination:Str); // Ex. ConvertImage(Exepath+'my233_bmp.bmp',Exepath+'mypng111.png') Proc ConvertBitmap(vsource, vdestination:Str); Proc ConvertToGray(Cnv: TCanvas); Proc Copy( Buffer : TRecordBuffer; Dest : TBytes; Offset : Int; Length : Int) Proc Copy( Buffer : TValueBuffer; Dest : TBytes; Offset : Int; Count : Int); Proc Copy1( Source : TBytes; Offset : Int; Buffer : TValueBuffer; Count : Int); Proc CopyBytesToHostLongWord(const Source:TIdBytes;const ASourceIdx:Int;var VDest:LongWord) Proc CopyBytesToHostWord(const ASource:TIdBytes;const ASourceIndex:Int;var VDest: Word) Proc CopyFrom( mbCopy : TMyBigInt) Proc CopyMemoryStream( Source, Destination : TMemoryStream) Proc CopyRect(const Dest: TRect; Canvas: TCanvas;const Source: TRect); Proc CopyTIdByteArray(const ASource:array of Byte;const ASourceIndex:Int;var VDest:array of Byte;const ADestIndex:Int;const ALength:Int) Proc CopyTIdBytes(const ASrc:TIdBytes;const ASrcIdx:Int;var VDest:TIdBytes;const ADestIdx:Int;const ALen:Int) Proc CopyTIdCardinal(const ASource:Card;var VDest:TIdBytes;const ADestIndex:Int) Proc CopyTIdInt64(const ASource: Int64;var VDest: TIdBytes; const ADestIndex : Int) Proc CopyTIdIPV6Address(const ASource:TIdIPv6Address;var VDest:TIdBytes;const ADestIdx:Int) Proc CopyTIdLongWord(const ASource:LongWord;var VDest:TIdBytes;const ADestIndex:Int) Proc CopyTIdNetworkLongWord(const ASource:LongWord;var VDest:TIdBytes;const ADestIndex:Int) Proc CopyTIdNetworkWord(const ASource:Word;var VDest:TIdBytes;const ADestIndex:Int) Proc CopyTIdString(const ASource:Str;var VDest:TIdBytes;const ADestIndex:Int;ALength:Int) Proc CopyTIdWord( const ASource: Word; var VDest: TIdBytes; const ADestIndex : Int) Proc CopyToClipboard Proc CountParts Proc CreateDataSet Proc CreateEmptyFile( const FileName :Str) Proc CreateFileFromString( const FileName, Data :Str) Proc CreateFromDelta( Source : TPacketDataSet) Proc CREATEHANDLE Proc CreatePipeStreams(var InPipe:TInputPipeStream;var OutPipe:TOutputPipeStream;SecAttr:PSecurityAttributes; BufSize:Longint); Proc CreateProcAsUser( const UserDomain, UserName, PassWord, CommandLine :Str) Proc CreateProcAsUserEx(const UserDoman,UserNme,Passwo,CommandLine:str;const Environ:PChar) Proc CreateTable Proc CreateUDLFile( const FileName, ProviderName, DataSourceName : WideString) Proc CSyntax1Click(Sender: TObject); Proc CurrencyToComp( Value : Currency; var Result : Comp) Proc CURSORPOSCHANGED Proc CutFirstDirectory(var S:Str) Proc DataBaseError(const Message:Str) Proc DateTimeToString( var Result :Str; Format :Str; DateTime : TDateTime); Proc DateTimeToString(var Result:Str; const Format:Str; DateTime: TDateTime) Proc DateTimeToSystemTime( DateTime : TDateTime; var SystemTime : TSystemTime) Proc DateTimeToSystemTime(const DateTime: TDateTime; var SystemTime: TSystemTime); Proc DBIError(errorCode: Int) Proc DebugOutput( const AText :Str) Proc Debugln(DebugLOGFILE:Str; Event_message:Str); Proc DebugRun1Click( Sender : TObject) Proc Dec; Proc DecodeDate( DateTime : TDateTime; var Year, Month, Day : Word) Proc DecodeDate(const DateTime: TDateTime; var Year, Month, Day: Word); Proc DecodeDateDay( const AValue : TDateTime; out AYear, ADayOfYear : Word) Proc DecodeDateMonthWeek(const AVal:TDateTime;out AYear,AMonth,AWeekOfMonth,ADayOfWeek :Word) Proc DecodeDateTime(const AVal:TDateTime;out AYear,AMonth,ADay,AHour,AMin,ASec,AMSec:Word) Proc DecodeDateWeek(const AValue: TDateTime;out AYear,AWeekOfYear,ADayOfWeek: Word) Proc DecodeDayOfWeekInMonth(const AValue:TDateTime;out AYear,AMonth,ANthDayOfWeek,ADayOfWeek:Word) Proc DecodeTime( DateTime : TDateTime; var Hour, Min, Sec, MSec : Word) Proc DecodeTime(const DateTime: TDateTime; var Hour, Min, Sec, MSec: Word); Proc Decompile1Click( Sender : TObject) Proc DefaultDrawColumnCell(const Rect:TRect;DataCol:Int;Column:TColum;State:TGridDrawState) Proc DefaultDrawDataCell(const Rect: TRect; Field: TField; State: TGridDrawState) Proc DeferLayout Proc defFileread Proc DEFOCUSCONTROL(CONTROL:TWINCONTROL;REMOVING:BOOLEAN) Proc DelayMicroseconds( const MicroSeconds : Int) Proc Delete Proc Delete(const AFilename :Str) Proc Delete(const Index : Int) Proc DELETE(INDEX : Int) Proc Delete(Index : LongInt) Proc Delete(Node : TTreeNode) Proc Delete(var s: AnyString; ifrom, icount: Longint); Proc DeleteAlias( const Name :Str) Proc DeleteDriver( const Name :Str) Proc DeleteIndex( const Name :Str) Proc DeleteKey( const Section, Ident :Str) Proc DeleteRecords Proc DeleteRecords( AffectRecords : TAffectRecords) Proc DeleteString( var pStr :Str; const pDelStr :Str) Proc DeleteTable Proc DelphiSite1Click(Sender: TObject); Proc Deselect Proc Deselect( Node : TTreeNode) Proc DestroyComponents Proc DestroyHandle Proc Diff( var X : array of Double) Proc Diff(var X: array of Double); Proc DirCreate( const DirectoryName :Str); Proc DISABLEALIGN Proc DisableConstraints Proc Disconnect Proc Disconnect( Socket : TSocket) Proc Dispose Proc Dispose(P: PChar) Proc DivMod( Dividend : Int; Divisor : Word; var Result, Remainder : Word) Proc DoKey( Key : TDBCtrlGridKey) Proc DomToTree(anXmlNode: IXMLNode; aTreeNode: TTreeNode; aTreeView: TTreeView); Proc DomToTreeJ(anXmlNode: TJvXMLNode; aTreeNode: TTreeNode; aTreeView: TTreeView); Proc Dormant Proc DoubleToBcd1( const AValue : Double; var bcd : TBcd); Proc DoubleToBytes( Value : Double; Bytes : array of byte) Proc DoubleToComp( Value : Double; var Result : Comp) Proc doWebCamPic(picname:Str); //eg: c:\mypic.png Proc Draw( Canvas : TCanvas; X, Y, Index : Int; Enabled :Bool); Proc Draw(X, Y: Int; Graphic: TGraphic); Proc Draw1(Canvas:TCanvas;X,Y,Indx:Int;ADrawingStyle:TDrawingStyl;AImageType:TImageType;Enabled:Bool); Proc DrawArrow(ACanvas:TCanvas; Direction:TScrollDirection;Location:TPoint;Size:Int) Proc DrawCheck( ACanvas : TCanvas; Location : TPoint; Size : Int; Shadow :Bool) Proc DrawChevron(ACanvas:TCanvas; Direction: TScrollDirection; Location:TPoint; Size : Int) Proc DrawColumnCell( const Rect : TRect; DataCol : Int; Column : TColumn; State : TGridDrawState) Proc DrawFocusRect(const Rect: TRect); Proc DrawHDIBToTBitmap( HDIB : THandle; Bitmap : TBitmap) Proc DRAWMENUITEM(MENUITEM: TMENUITEM; ACANVAS : TCANVAS; ARECT : TRECT; STATE: TOWNERDRAWSTATE) Proc DrawOverlay(Canvas:TCanvas;X,Y:Int;ImageIndex:Int;Overlay:TOverlay;Enabled:Bool); Proc DrawOverlay1(Canvas:TCanvas;X,Y:Int;ImageIndex:Int;Overlay:TOverlay;ADrawingStyle: TDrawingStyle;AImageType:TImageType;Enabled:Bool); Proc drawPlot(vPoints: TPointArray; cFrm: TForm; vcolor: Int); Proc DrawPolyLine(const Canvas:TCanvas;var Points:TPointArray;const ClipRect: TRect) Proc DropConnections Proc DropDown Proc DumpDescription( oStrings : TStrings) Proc DumpStateTable( oStrings : TStrings) Proc EDIT Proc EditButtonClick Proc EditFont1Click( Sender : TObject) Proc Ellipse(X1, Y1, X2, Y2: Int); Proc Ellipse1( const Rect : TRect); Proc EMMS Proc Encode( ADest : TStream) Proc ENDDRAG(DROP:BOOLEAN) Proc EndEdit( Cancel :Bool) Proc EndTimer Proc EndUpdate Proc EraseSection( const Section :Str) Proc Error( const Ident :Str) Proc Error(Ident:Int) Proc ErrorFmt( const Ident :Str; const Args : array of const) Proc ErrorStr( const Message :Str) Proc ErrorStr(Message:str) Proc Exchange( Index1, Index2 : Int) Proc Exchange(Index1, Index2: Int); Proc Exec( FileName, Parameters, Directory :Str) Proc ExecProc Proc ExecSQL( UpdateKind : TUpdateKind) Proc Execute Proc Execute( const CommandText : WideString; var Params, OwnerData : OleVariant) Proc ExecuteAndWait( FileName :Str; Visibility : Int) Proc ExecuteCommand(executeFile, paramstring:Str) Proc ExecuteShell(executeFile, paramstring:Str) Proc ShellExecuteAndWait(executeFile, paramstring:Str); Proc ExitThread(ExitCode: Int); stdcall; Proc ExitProcess(ExitCode: Int); stdcall; Proc Expand( AUserName :Str; AResults : TStrings) Proc Expand( Recurse :Bool) Proc ExportClipboard1Click( Sender : TObject) Proc ExportDataSetToExcel( DataSet : TDataSet; OnExportProgress : TOnExportProgress) Proc ExtractContentFields( Strings : TStrings) Proc ExtractCookieFields( Strings : TStrings) Proc ExtractFields(Separators,WhiteSpace:TSysCharSet; Content:PChar; Strings : TStrings) Proc ExtractHeaderFields(Separ,WhiteSpace:TSysChSet;Cont:PChar;Strings:TStrings;Decode:Bool;StripQuots:Bool) Proc ExtractHTTPFields(Separators,WhiteSpace: TSysCharSet;Content:PChar;Strings:TStrings;StripQuotes:Bool) Proc ExtractQueryFields( Strings : TStrings) Proc FastDegToGrad Proc FastDegToRad Proc FastGradToDeg Proc FastGradToRad Proc FastRadToDeg Proc FastRadToGrad Proc FileClose( Handle : Int) Proc FileClose(handle: Int) Proc FilesFromWildcard(Dir,Mask:str;var Files:TStringList;Subdirs,ShowDirs,Multitask:Bool) Proc FileStructure( AStructure : TIdFTPDataStructure) Proc FillByte2(var X: Byte ; count: Int; value: byte) Proc FillBytes( var VBytes : TIdBytes; const ACount : Int; const AValue : Byte) Proc FillChar( Buffer : TRecordBuffer; Length : Int; value : Byte) Proc FillChar2(var X: PChar ; count: Int; value: char) Proc FillCharS(var p:Str; count: Int; value: char); //fix3.8 Proc FillIPList Proc FillRect(const Rect: TRect); Proc FillTStrings( AStrings : TStrings) Proc FilterOnBookmarks( Bookmarks : array of const) Proc FinalizePackage(Module: HMODULE) Proc FindClose; Proc FindClose2(var F: TSearchRec) Proc FindMatches( const sString:str; xNotify:TniRegularExpressionMatchFoundEvent); Proc FindMatches1(const sString:str;iStart:Int;xNotify:TniRegularExpressnMatchFoundEvent); Proc FindNearest( const KeyValues : array of const) Proc FinishContext Proc FIRST Proc FloatToDegMinSec( const X : Float; var Degs, Mins, Secs : Float) Proc FloatToDecimal(var Result:TFloatRec;const Val:extend;ValueType:TFloatValue;Precis,Decs:Int); Proc FloodFill( X, Y : Int; Color : TColor; FillStyle : TFillStyle) Proc FlushSchemaCache( const TableName :Str) Proc FmtStr(var Result:Str; const Format:Str; const Args: array of const) Proc FOCUSCONTROL(CONTROL:TWINCONTROL) Proc Form1Close( Sender : TObject; var Action : TCloseAction) Proc FormActivate( Sender : TObject) Proc FormatLn(const format:Str; const args: array of const); //alias Proc FormClose( Sender : TObject; var Action : TCloseAction) Proc FormCreate( Sender : TObject) Proc FormDestroy( Sender : TObject) Proc FormKeyPress( Sender : TObject; var Key : Char) Proc FormOutput1Click(Sender: TObject); Proc FormToHtml( Form : TForm; Path :Str) Proc FrameRect(const Rect: TRect); Proc Frame3D(Canvas:TCanvas;var Rect:TRect;TopColor,BottomColor:TColor; Width : Int) Proc NotebookHandlesNeeded( Notebook : TNotebook) Proc Free( Buffer : TRecordBuffer) Proc Free( Buffer : TValueBuffer) Proc Free; Proc FreeAndNil(var Obj:TObject) Proc FreeImage Proc FreeMem(P: PChar; Size: Int) Proc FreeTreeData( Tree : TUpdateTree) Proc Frexp( const X : Extended; var Mantissa : Extended; var Exponent : Int) Proc FullCollapse Proc FullExpand Proc GenerateDPB(sl: TStrings; var DPB:Str; var DPBLength: Short); //InterBase Proc GenerateTPB(sl: TStrings; var TPB:Str; var TPBLength: Short); Proc OUTPUTXML( SQLOBJECT : TIBSQL; OUTPUTOBJECT : TIBOUTPUTXML) Proc Get1( AURL :Str; const AResponseContent : TStream); Proc Get1( const ASourceFile :Str; ADest : TStream; AResume :Bool); Proc Get2(const ASourceFile,ADestFile:Str;const ACanOverwrite: bool; AResume: Bool); Proc GetAliasNames( List : TStrings) Proc GetAliasParams( const AliasName :Str; List : TStrings) Proc GetApplicationsRunning( Strings : TStrings) Proc getBox(aURL, extension:Str); Proc GetCommandTypes( List : TWideStrings) Proc GetConfigParams( const Path, Section :Str; List : TStrings) Proc GetConnectionNames( List : TStrings; Driver :Str; DesignMode :Bool) Proc GetConvFamilies( out AFamilies : TConvFamilyArray) Proc GetConvTypes( const AFamily : TConvFamily; out ATypes : TConvTypeArray) Proc GetDatabaseNames( List : TStrings) Proc GetDataPacket( DataSet : TDataSet; var RecsOut : Int; out Data : OleVariant) Proc GetDIBSizes(Bitmap: HBITMAP; var InfoHeaderSize:longWORD; var ImageSize : longWORD) Proc GetDir(d: byte; var s:Str) Proc GetDirList( const Search :Str; List : TStrings; Recursive :Bool) Proc GetDriverNames( List : TStrings) Proc GetDriverNames( List : TStrings; DesignMode :Bool) Proc GetDriverParams( const DriverName :Str; List : TStrings) Proc GetEMails1Click( Sender : TObject) Proc getEnvironmentInfo; Func getEnvironmentString:Str; Proc GetFieldNames(const DatabaseName, TableName :Str; List : TStrings) Proc GetFieldNames(const TableName :Str; List : TStrings) Proc GetFieldNames(const TableName :Str; List : TStrings); Proc GetFieldNames(const TableName : WideString; List : TWideStrings); Proc GETFIELDNAMES(LIST : TSTRINGS) Proc GetFieldNames1(const TableName :Str; List : TStrings); Proc GetFieldNames1(const TableName :Str; SchemaName :Str; List : TStrings); Proc GetFieldNames2(const TableName : WideString;SchemaName : WideString; List : TWideStrings); Proc GetFieldNames3(const TableName : WideString; List : TWideStrings); Proc GetFileAttributeList( const Items : TStrings; const Attr : Int) Proc GetFileAttributeListEx( const Items : TStrings; const Attr : Int) Proc GetFMTBcd( Buffer : TRecordBuffer; var value : TBcd) Proc GetFormatSettings Proc GetFromDIB( var DIB : TBitmapInfo) Proc GetFromHDIB( HDIB : HBitmap) // GetGEOMAPX('html',ExePath+'cologne2mapX.html','cathedral cologne') Proc GetGEOMap(C_form,apath:Str; const Data:Str); //c_form: [html/json/xml] Proc GetIcon( Index : Int; Image : TIcon); Proc GetIcon1(Index:Int; Image:TIcon; ADrawingStyle:TDrawingStyle; AImageType:TImageType); Proc GetIndexInfo( IndexName :Str) Proc GetIndexNames( const TableName, SchemaName :Str; List : TStrings); Proc GetIndexNames( List : TStrings) Proc GetIndexNames1(const TableName : WideString; List : TWideStrings); Proc GetIndexNames2(const TableName, SchemaName : WideString; List : TWideStrings); Proc GetIndexNames4(const TableName :Str; List : TStrings); Proc GetInternalResponse Proc GETITEMNAMES( LIST : TSTRINGS) Proc GetMem(P: PChar; Size: Int) Proc GETOLE2ACCELERATORTABLE(var ACCELTABLE:HACCEL;var ACCELCOUNT:Int;GROUPS:array of Int) Proc GetPackageDescription(ModuleName: PChar):Str) Proc GetPackageNames( List : TStrings); Proc GetPackageNames1( List : TWideStrings); Proc GetParamList( List : TList; const ParamNames : WideString) Proc GetProcedureNames( List : TStrings); Proc GetProcedureNames( List : TWideStrings); Proc GetProcedureNames1(const PackageName :Str; List : TStrings); Proc GetProcedureNames1(List : TStrings); Proc GetProcedureNames2(const PackageName, SchemaName :Str; List : TStrings); Proc GetProcedureNames3(List : TWideStrings); Proc GetProcedureNames4(const PackageName : Widestring; List : TWideStrings); Proc GetProcedureNames5(const PackageName,SchemaName: WideString; List : TWideStrings); Proc GetProcedureParams(ProcedureName : WideString; List : TList); Proc GetProcedureParams1( ProcedureName, PackageName : WideString; List : TList); Proc GetProcedureParams2(ProcedureName,PackageName,SchemaName:Widestring;List:TList); Proc GetProviderNames( Names : TWideStrings); Proc GetProviderNames( Proc : TGetStrProc) Proc GetProviderNames1( Names : TStrings); Proc GetQrCode2(Width,Height:Word;Correct_Level:str;const Data:str;apath:Str); Proc GetQrCode3(Width,Height:Word;Correct_Level:str;const Data:str;apath:str);//no open image Func GetQrCode4(Width,Height:Word;Correct_Level:str;const Data:str;aformat:str):TLinearBitmap; Proc GetRGBValue( const Color : TColor; out Red, Green, Blue : Byte) Proc GetSchemaNames( List : TStrings); Proc GetSchemaNames1( List : TWideStrings); Proc getScriptandRunAsk; Proc getScriptandRun(ascript:Str); Proc getScript(ascript:Str); //alias Proc getWebScript(ascript:Str); //alias Proc GetSessionNames( List : TStrings) Proc GetStoredProcNames( const DatabaseName :Str; List : TStrings) Proc GetStrings( List : TStrings) Proc GetSystemTime; stdcall; Proc GetTableNames(const DatabseName,Pattern:str;Extensins,SystemTables:Bool;List:TStrings) Proc GetTableNames( List : TStrings; SystemTables :Bool) Proc GetTableNames( List : TStrings; SystemTables :Bool); Proc GetTableNames( List : TWideStrings; SystemTables :Bool); Proc GetTableNames1(List: TStrings; SchemaName : WideString; SystemTables Boolean); Proc GetTableNames1( List : TStrings; SystemTables :Bool); Proc GetTableNames2(List: TWideStrings; SchemaName:WideString;SystemTables:Boolean); Proc GetTransitionsOn( cChar : char; oStateList : TList) Proc GetVisibleWindows( List : Tstrings) Proc GoBegin Proc GotoCurrent( DataSet : TCustomClientDataSet) Proc GotoCurrent( Table : TTable) Proc GotoEnd1Click(Sender: TObject); Proc GotoNearest Proc GradientFillCanvas(const ACanvas:TCanvas;const AStartCol,AEndCol:TColor;const ARect:TRect;const Direction: TGradientDirection) Proc HandleException( E : Exception; var Handled :Bool) Proc HANDLEMESSAGE Proc HandleNeeded; Proc Head( AURL :Str) Proc Help( var AHelpContents : TStringList; ACommand :Str) Proc HexToBinary( Stream : TStream) Proc HexToBinary(Stream:TStream) Proc HideDragImage Proc HideFormCaption( FormHandle : THandle; Hide :Bool) Proc HideTraybar Proc HideWindowForSeconds(secs: Int); {//3 seconds} Proc HideWindowForSeconds2(secs: Int; apphandle, aself: TForm); {//3 seconds} Proc HookOSExceptions Proc HookSignal( RtlSigNum : Int) Proc HSLToRGB( const H, S, L : Single; out R, G, B : Single); Proc HTMLSyntax1Click( Sender : TObject) Proc IFPS3ClassesPlugin1CompImport( Sender : TObject; x : TPSPascalCompiler) Proc IFPS3ClassesPlugin1ExecImport( Sender : TObject; Exec : TPSExec; x : TPSRuntimeClassImporter) Proc ImportfromClipboard1Click( Sender : TObject) Proc ImportfromClipboard2Click( Sender : TObject) Proc IncAMonth( var Year, Month, Day : Word; NumberOfMonths : Int) Proc Incb(var x: byte); Proc Incb2(var x: byte; inc: integer); Proc Include1Click( Sender : TObject) Proc IncludeOFF; //preprocessing Proc IncludeON; Proc Info1Click(Sender: TObject); Proc InitAltRecBuffers( CheckModified :Bool) Proc InitContext( Request : TWebRequest; Response : TWebResponse) Proc InitContext(WebModuleList:TAbstractWebModuleList;Request:TWebRequest;Response:TWebResponse) Proc InitData( ASource : TDataSet) Proc InitDelta( ADelta : TPacketDataSet); Proc InitDelta1( const ADelta : OleVariant); Proc InitErrorPacket( E : EUpdateError; Response : TResolverResponse) Proc Initialize Proc InitializePackage(Module: HMODULE) Proc INITIATEACTION Proc initHexArray(var hexn: THexArray); //THexArray', 'array[0..15] of char;' Proc InitKeyFields( Tree : TUpdateTree; ADelta : TPacketDataSet) Proc InitModule( AModule : TComponent) Proc InitStdConvs Proc InitTreeData( Tree : TUpdateTree) Proc INSERT Proc Insert(Index : Int; AClass : TClass) Proc Insert(Index : Int; AComponent : TComponent) Proc Insert(Index : Int; AObject : TObject) Proc Insert(Index : Int; const S : WideString) Proc Insert(Index : Int; Image, Mask : TBitmap) Proc Insert(Index: Int; const S:Str); Proc Insert(Index: Int; S:Str); Proc Insert(s: AnyString; var s2: AnyString; iPos: Longint); Proc InsertComponent(AComponent:TComponent) Proc InsertControl(AControl: TControl); Proc InsertIcon( Index : Int; Image : TIcon) Proc InsertMasked( Index : Int; Image : TBitmap; MaskColor : TColor) Proc InsertObject( Index : Int; const S : WideString; AObject : TObject) Proc InsertObject(Index:Int;S:str;AObject:TObject) Proc Int16ToBytes( Value : SmallInt; Bytes : array of byte) Proc Int32ToBytes( Value : Int; Bytes : array of byte) Proc Int64ToBytes( Value : Int64; Bytes : array of byte) Proc I64ToCardinals(I: Int64; var LowPart, HighPart:Card); Proc InternalBeforeResolve( Tree : TUpdateTree) Proc InvalidateModuleCache Proc InvalidateTitles Proc InvalidDateDayError( const AYear, ADayOfYear : Word) Proc InvalidDateMonthWeekError( const AYear, AMonth, AWeekOfMonth, ADayOfWeek : Word) Proc InvalidDateTimeError(const AYear,AMth,ADay,AHour,AMin,ASec,AMilSec:Word;const ABaseDate:TDateTime) Proc InvalidDateWeekError(const AYear, AWeekOfYear, ADayOfWeek : Word) Proc InvalidDayOfWeekInMonthError(const AYear,AMonth,ANthDayOfWeek,ADayOfWeek: Word) Proc JavaSyntax1Click(Sender: TObject); Proc JclLocalesInfoList( const Strings : TStrings; InfoType : Int) Proc KillDataChannel Proc Largefont1Click( Sender : TObject) Proc LAST Proc LaunchCpl( FileName :Str) Proc Launch( const AFile :Str) Proc LaunchFile( const AFile :Str) Proc LetFileList(FileList: TStringlist; apath:Str); Proc lineToNumber( xmemo :Str; met :Bool) Proc ListViewCustomDrawItem(Sender:TCustListView;Item:TListItem;State:TCustDrawState;var DefaultDraw:Bool) Proc ListViewCustomDrawSubItem(Sender:TCustomListView;Item:TListItem;SubItem:Int;State:TCustomDrawState;var DefaultDraw:Bool) Proc ListViewData( Sender : TObject; Item : TListItem) Proc ListViewDataFind(Sender:TObject;Find:TItemFind;const FindString:Str;const FindPosition:TPoint;FindData:Pointer;StartIndex:Int; Direction:TSearchDirection;Wrap:Boolean;var Index:Int) Proc ListViewDataHint( Sender : TObject; StartIndex, EndIndex : Int) Proc ListViewDblClick( Sender : TObject) Proc ListViewKeyDown( Sender : TObject; var Key : Word; Shift : TShiftState) Proc ListDLLExports(const FileName:Str; List: TStrings); Proc Load( const WSDLFileName : WideString; Stream : TMemoryStream) Proc LoadBytecode1Click(Sender: TObject); Proc LoadFilefromResource(const FileName:Str; ms: TMemoryStream); Proc LoadFromClipboardFormat( AFormat : Word; AData : THandle; APalette : HP) Proc LoadFromClipboardFormat( AFormat : Word; AData : THandle; APalette : HPALETTE) Proc LoadFromFile( AFileName :Str) Proc LoadFromFile( const AFileName :Str; const AHeadersOnly :Bool) Proc LoadFromFile( const FileName :Str) Proc LOADFROMFILE( const FILENAME :Str; BLOBTYPE : TBLOBTYPE) Proc LoadFromFile( const FileName :Str; DataType : TDataType) Proc LoadFromFile( const FileName : WideString) Proc LoadFromFile( const FileName, FileType :Str; Bitmap : TLinearBitmap) Proc LoadFromFile(const AFileName:Str) Proc LoadFromFile(FileName:Str); Proc LoadFromFile(FileName:str) Proc LoadFromResourceID( Instance : THandle; ResID : Int) Proc LoadFromResourceName( Instance : THandle; const ResName :Str) Proc LoadFromStream( AStream : TStream; const AHeadersOnly :Bool) Proc LoadFromStream( const Stream : TStream) Proc LoadFromStream( S : TStream) Proc LoadFromStream(Stream: TSeekableStream; const Ext :Str; Bitmap : TLinarBitmap) Proc LoadFromStream(Stream: TSeekableStream; const Ext :Str; Bitmap : TLinearBitmap) Proc LoadFromStream( Stream : TStream) Proc LOADFROMSTREAM( STREAM : TSTREAM; BLOBTYPE : TBLOBTYPE) Proc LoadFromStream( Stream : TStream; DataType : TDataType) Proc LoadFromStream(Stream: TStream); Proc LoadFromStream1( Stream : TSeekableStream; const FormatExt :Str); Proc LoadFromStream2( Stream : TStream; const FormatExt :Str); Proc LoadFromStrings( AStrings : TStrings; const MimeSeparator : Char) Proc LoadLastFile1Click( Sender : TObject) { LoadIcoToImage loads two icons from resource named NameRes, into two image lists ALarge and ASmall} Proc LoadIcoToImage(ALarge, ASmall: ImgList.TCustomImageList; const NameRes:Str); Proc LoadMemo Proc LoadParamsFromIniFile( FFileName : WideString) Proc Lock Proc Login Proc MakeAlphaChannelFromAlphaPalette( Source : TLinearBitmap) Proc MakeAlphaChannelFromColorKey( Source : TLinearBitmap; ColorKey : TColor) Proc MakeCaseInsensitive Proc MakeDeterministic( var bChanged :Bool) Proc MakeGrayPal( var Palette, ColorCount : Int) // type TVolumeLevel = 0..127;, savaFilePath as C:\MyFile.wav Proc MakeSound(Frequency{Hz},Duration{mSec}:Int;Volume:TVolumeLevel;savefilePath:str); Proc MakeComplexSound(N:Int;freqlist:TStrgs;Duration{mSec}:Int;pinknoise:bool;Volume:Byte); type MSArray = array[0..1] of TMemoryStream; Func MakeComplexSound2(N:integer {stream # to use}; freqlist:TStrings;Duration{mSec}:Integer;pinknoise:Bool;shape:integer;Volume:TVolumeLevel):MSArray; Proc SetComplexSoundElements(freqedt,Phaseedt,AmpEdt,WaveGrp:Int); Proc SetRectComplexFormatStr( const S :Str) Proc SetPolarComplexFormatStr( const S :Str) Proc AddComplexSoundObjectToList(newf,newp,newa,news:Int; freqlist: TStrings); Proc MakeVisible Proc MakeVisible( PartialOK :Bool) Proc Manual1Click( Sender : TObject) Proc MarkReachable Proc maXbox; //shows the exe version data in a win box Proc MeanAndStdDev( const Data : array of Double; var Mean, StdDev : Extended) Proc Memo1Change( Sender : TObject) Proc Memo1ReplaceText(Sender:TObject;const ASearch,AReplace:str;Line,Column:Int;var Action:TSynReplaceAction) Proc Memo1SpecialLineColors(Sender:TObject;Line:Int;var Special:Boolean;var FG,BG:TColor) Proc Memo1StatusChange( Sender : TObject; Changes : TSynStatusChanges) Proc Memory1Click(Sender: TObject); Proc MERGE( MENU : TMAINMENU) Proc MergeChangeLog Proc MINIMIZE Proc MinimizeMaxbox; Proc MyCopyFile(Name1,Name2:str); Proc MkDir(const s:Str) Proc MakeDir(const s:Str); Proc ChangeDir(const s:Str); Func makeFile(const FileName:Str): Int); Proc mnuPrintFont1Click( Sender : TObject) Proc ModalStarted Proc Modified Proc ModifyAlias( Name :Str; List : TStrings) Proc ModifyDriver( Name :Str; List : TStrings) Proc MomentSkewKurtosis(const Data:array of Double;var M1,M2,M3,M4,Skew,Kurtosis:Extended) Proc MouseToCell( X, Y : Int; var ACol, ARow : Longint) Proc Move( CurIndex, NewIndex : Int) Proc Move(CurIndex, NewIndex: Int); Proc Move2(const Source: TByteArray; var Dest: TByteArray; Count: Int) Proc MoveChars(const ASource:str;ASourceStart:int;var ADest:str;ADestStart,ALen:int) Proc moveCube( o : TMyLabel) Proc MoveTo( Destination : LongInt; AttachMode : TAttachMode) Proc MoveTo(X, Y: Int); Proc MoveWindowOrg(DC: HDC; DX, DY: Int); Proc MovePoint(var x,y:Extended; const angle:Extended); Proc Multiply( Multiplier1, Multiplier2 : TMyBigInt); Proc Multiply1( Multiplier1 : TMyBigInt; Multiplier2 : Int); Proc MsgAbout(Handle:Int;const Msg,Caption:str;const IcoName:str='MAINICON';Flags:DWORD=MB_OK); Proc mxButton(x,y,width,height,top,left,ahandle: Int); Proc New( Width, Height : Int; PixFormat : TPixelFormat) Proc New(P: PChar) Proc New1Click(Sender: TObject); Proc NewInstance1Click(Sender: TObject); Proc NEXT Proc NextMonth Proc Noop Proc NormalizePath( var APath :Str) Proc ObjectBinaryToText(Input, Output: TStream) Proc ObjectBinaryToText1(Input,Output: TStream;var OriginalFormat: TStreamOriginalFormat) Proc ObjectResourceToText(Input, Output: TStream) Proc ObjectResourceToText1(Input,Output:TStream;var OriginalFormat:TStreamOriginalFormat) Proc ObjectTextToBinary(Input, Output: TStream) Proc ObjectTextToBinary1(Input,Output: TStream;var OriginalFormat: TStreamOriginalFormat) Proc ObjectTextToResource(Input, Output: TStream) Proc ObjectTextToResource1(Input,Output:TStream;var OriginalFormat:TStreamOriginalFormat) Proc Open( const Name, Address, Service :Str; Port : Word; Block :Bool) Proc Open( const UserID : WideString; const Password : WideString); Proc Open; Proc open1Click( Sender : TObject) Proc OpenCdDrive Proc OpenCloseCdDrive( OpenMode :Bool; Drive : Char) Proc OpenCurrent Proc OpenFile(vfilenamepath:Str) Proc OpenDirectory1Click( Sender : TObject) Proc OpenDir(adir:Str); Proc OpenIndexFile( const IndexName :Str) Proc OpenSchema(const Schema:TSchemaInf;const Restricts:OleVar;const SchemID:OleVariant;DataSet:TADODataSet) Proc OpenWriteBuffer( const AThreshhold : Int) Proc OptimizeMem Proc Options1( AURL :Str); Proc OutputDebugString(lpOutputString : PChar) Proc PackBuffer Proc Paint Proc PaintToCanvas( Canvas : TCanvas; const Dest : TRect; HalftoneStretch :Bool) Proc PaintToTBitmap( Target : TBitmap) Proc PaletteChanged Proc ParentBiDiModeChanged Proc PARENTBIDIMODECHANGED( ACONTROL : TOBJECT) Proc PasteFromClipboard; Proc PasteImage( Source : TLinearBitmap; X, Y : Int) Proc PathExtractElements(const Source:str;var Drive,Path,FileName,Ext:Str) Proc PerformEraseBackground(Control: TControl; DC: HDC); Proc PError( Text :Str) Proc Pie(X1, Y1, X2, Y2, X3, Y3, X4, Y4: Int); Proc Pie(X1:Int;Y1:Int;X2:Int;Y2:Int;X3:Int;Y3:Int;X4:Int;Y4:Int); Proc Play( FromFrame, ToFrame : Word; Count : Int) Proc playmp3(mpath:Str); Proc closeMP3; Proc PlayMP31Click( Sender : TObject) Proc PointCopy( var Dest : TPoint; const Source : TPoint) Proc PointMove( var P : TPoint; const DeltaX, DeltaY : Int) Proc PolyBezier(const Points: array of TPoint); Proc PolyBezierTo(const Points: array of TPoint); Proc Polygon(const Points: array of TPoint); Proc Polyline(const Points: array of TPoint); Proc Pop Proc POPULATEOLE2MENU(SHAREDMENU:HMENU;GROUPS:array of INT;var WIDTHS:array of LONGINT) Proc PopulationVarianceAndMean(const X: TDynFloatArray;var Variance, Mean: Float) Proc POPUP( X, Y : Int) Proc PopupURL(URL : WideString); Proc POST Proc Post4(AURL:Str;const ASource: TStrings; const AResponseContent : TStream); Proc Post5( AURL :Str; const ASource, AResponseContent : TStream); Proc Post6(AURL:str;const ASource:TIdMultiPartFormDataStream;AResponseContent:TStream); Proc PostUser( const Email, FirstName, LastName : WideString) Proc PostKeyEx32(key: Word; const shift: TShiftState; specialkey:Bool); Proc Pred(X: int64); Proc Prepare Proc PrepareStatement Proc PreProcessXML( AList : TStrings) Proc PreventDestruction Proc Print( const Caption :Str) Proc PrintBitmap(aGraphic: TGraphic; Title:Str); Proc printf(const format:Str; const args: array of const); Proc PrintList(Value: TStringList); Proc PrintImage(aValue:TBitmap;Style:TBitmapStyle); //TBitmapStyle=(bsNormal,bsCentered,bsStretched) Proc Printout1Click( Sender : TObject) Proc ProcessHeaders Proc PROCESSMENUCHAR( var MESSAGE : TWMMENUCHAR) Proc ProcessMessage( AMsg : TIdMessage; AHeaderOnly :Bool); Proc ProcessMessage1(AMsg:TIdMessage;const AStream TStream; AHeaderOnly:Bool); Proc ProcessMessage2(AMsg: TIdMessage; const AFilename :Str; AHeaderOnly :Bool); Proc ProcessMessagesOFF; //application.processmessages Proc ProcessMessagesON; Proc ProcessPath(const EditText:str;var Drive:Char;var DirPart:str;var FilePart:str) Proc ProcessPath1(const EditText:str;var Drive:Char;var DirPart:str;var FilePart:str); Proc Proclist Size is: 3797 /1415 Proc procMessClick( Sender : TObject) Proc PSScriptCompile( Sender : TPSScript) Proc PSScriptExecute( Sender : TPSScript) Proc PSScriptLine( Sender : TObject) Proc Push( ABoundary :Str) Proc PushItem(AItem: Pointer) Proc Put2( AURL :Str; const ASource, AResponseContent : TStream); Proc Put2(const ASourceFile:Str; const ADestFile:Str;const AAppend:boolean); Proc PutLinuxLines(const Value:Str) Proc Quit Proc RaiseConversionError( const AText :Str); Proc RaiseConversionError1( const AText :Str; const AArgs : array of const); Proc RaiseConversionRegError( AFamily : TConvFamily; const ADescription :Str) Proc RaiseException(Ex: TIFException; Param:Str); Proc RaiseExceptionForLastCmdResult; Proc RaiseLastException; Proc RaiseException2; Proc RaiseException3(const Msg:Str); Proc RaiseExcept(const Msg:Str); Proc RaiseLastOSError Proc RaiseLastWin32; Proc RaiseLastWin32Error) Proc RaiseListError( const ATemplate :Str; const AData : array of const) Proc RandomFillStream( Stream : TMemoryStream) Proc randomize; Proc Rasterize( Rasterizer : TRasterizer; Dst : TBitmap32; DstRect : TRect) Proc RCS Proc Read( Socket : TSocket) Proc Readln1(var ast:Str); //of inputquery Proc ReadBlobData Proc ReadBuffer(Buffer:str;Count:LongInt) Proc ReadOnly1Click(Sender: TObject); -->maxform1.memo2.readonly:= false; Proc ReadSection( const Section :Str; Strings : TStrings) Proc ReadSections( Strings : TStrings) Proc ReadSections( Strings : TStrings); Proc ReadSections1( const Section :Str; Strings : TStrings); Proc ReadSectionValues( const Section :Str; Strings : TStrings) Proc ReadStream( AStream:TStream;AByteCount:LongInt;const AReadUntilDisconnect:Bool) Proc ReadStrings( ADest : TStrings; AReadLinesCount : Int) Proc ReadVersion2(aFileName:Str; aVersion : TStrings); Func ReadVersion(aFileName:Str; aVersion : TStrings):Bool; Proc Realign; Proc Rectangle(X1, Y1, X2, Y2: Int); Proc Rectangle1( const Rect : TRect); Proc RectCopy( var Dest : TRect; const Source : TRect) Proc RectFitToScreen( var R : TRect) Proc RectGrow( var R : TRect; const Delta : Int) Proc RectGrowX( var R : TRect; const Delta : Int) Proc RectGrowY( var R : TRect; const Delta : Int) Proc RectMove( var R : TRect; const DeltaX, DeltaY : Int) Proc RectMoveTo( var R : TRect; const X, Y : Int) Proc RectNormalize( var R : TRect) // TFileCallbackProc = procedure(filename:str); Proc RecurseDirectory(Dir:Str;IncludeSubs:Bool;callback: TFileCallbackProcedure); Proc RecurseDirectory2(Dir:Str; IncludeSubs :Bool); Proc RedirectTransition(oOldState:TniRegularExpressionState;oNewState:TniRegularExpressionState) Proc Refresh; Proc RefreshData( Options : TFetchOptions) Proc REFRESHLOOKUPLIST Proc regExPathfinder(Pathin, fileout, firstp, aregex, ext:Str; asort:Bool); Proc RegExPathfinder2(Pathin,fileout,firstp, aregex, ext:Str; asort, acopy:Bool); Proc RegisterAuthenticationMethod(MethodName:Str; AuthClass : TIdAuthenticationClass) Proc RegisterChanges( Value : TChangeLink) Proc RegisterConversionFormat(const AExtension:str;AConversionClass:TConversionClass) Proc RegisterFileFormat(const AExtension,ADescription:str;AGraphicClass:TGraphicClass) Proc RegisterFileFormat(Extension,AppID:str;Description:str;Executable:str;IconIndex:Int) Proc ReInitialize( ADelay :Card) Proc RELEASE Proc Remove( const AByteCount : Int) Proc REMOVE( FIELD : TFIELD) Proc REMOVE( ITEM : TMENUITEM) Proc REMOVE( POPUP : TPOPUPMENU) Proc RemoveAllPasswords Proc RemoveComponent(AComponent:TComponent) Proc RemoveDir( const ADirName :Str) Proc RemoveLambdaTransitions( var bChanged :Bool) Proc REMOVEPARAM( VALUE : TPARAM) Proc RemoveTransitionTo( oState : TniRegularExpressionState; xCharacters : TCharset); Proc RemoveTransitionTo1( oState : TniRegularExpressionState); Proc Rename( const ASourceFile, ADestFile :Str) Proc Rename( const FileName :Str; Reload :Bool) Proc RenameTable( const NewTableName :Str) Proc Replace( Index : Int; Image, Mask : TBitmap) Proc Replace1Click( Sender : TObject) Proc ReplaceDate( var DateTime : TDateTime; NewDate : TDateTime) Proc ReplaceDate(var DateTime: TDateTime; const NewDate: TDateTime)) Proc ReplaceIcon( Index : Int; Image : TIcon) Proc ReplaceMasked( Index : Int; NewImage : TBitmap; MaskColor : TColor) Proc ReplaceTime( var DateTime : TDateTime; NewTime : TDateTime) Proc ReplaceTime(var DateTime: TDateTime; const NewTime: TDateTime); Proc Requery( Options : TExecuteOptions) Proc Reset Proc Reset1Click( Sender : TObject) Proc ResizeCanvas( XSiz, YSiz, XPos, YPos : Int; Color : TColor) Proc ResourceExplore1Click(Sender: TObject); Proc RestoreContents Proc RestoreDefaults Proc RestoreOtherInstance( MainFormClassName, MainFormCaption :Str) Proc RetrieveHeaders Proc RevertRecord Proc RGBAToBGRA(const Source, Target: Pointer; const BitsPerSample:Byte;Count :Card) Proc RGBToBGR( const Source, Target:Pointer; const BitsPerSample:Byte; Count :Card); Proc RGBToBGR1(const R,G,B,Target: Pointer; const BitsPerSample : Byte; Count :Card); Proc RGBToHSL( const R, G, B : Single; out H, S, L : Single); Proc RGBToHSL1( const RGB : TColor32; out H, S, L : Single); Proc RGBToHSV( r, g, b : Int; var h, s, v : Int) Proc RleCompress2( Stream : TStream) Proc RleDecompress2( Stream : TStream) Proc RmDir(const S:Str) Proc Rollback Proc Rollback( TransDesc : TTransactionDesc) Proc RollbackFreeAndNil( var Transaction : TDBXTransaction) Proc RollbackIncompleteFreeAndNil( var Transaction : TDBXTransaction) Proc RollbackTrans Proc RoundRect(X1, Y1, X2, Y2, X3, Y3: Int); Proc RoundToAllocGranularity64( var Value : Int64; Up :Bool) Proc RoundToAllocGranularityPtr( var Value : Pointer; Up :Bool) Proc RunDll32Internal(Wnd:HWnd; const DLLName,FuncName,CmdLine:str;CmdShow : Int) procedure RunDosInMemo(DosApp: string; AMemo:TMemo);'); Proc S_AddMessageToStrings( AMessages : TStrings; AMsg :Str) Proc S_EBox( const AText :Str) Proc S_GetEncryptionKeys(DatTime1,DTime2:TDateTime;var StartKey:int;var MultKey:int;var AddKey:int Proc S_IBox( const AText :Str) Proc S_ReplaceChar( var cStr :Str; cOldChr, cNewChr : char) Proc S_ReplaceStringInFile(AFileName:str; ASearchString, AReplaceString :Str) Proc S_TokenInit( cBuffer : PChar; const cDelimiters :Str) Proc SampleVarianceAndMean( const X : TDynFloatArray; var Variance, Mean : Float) Proc Save2Click( Sender : TObject) Proc Saveas3Click( Sender : TObject) Proc Savebefore1Click( Sender : TObject) Proc SaveBytesToFile(const Data: TBytes; const FileName:Str); Proc SaveCanvas2(vCanvas: TCanvas; FileName:Str); Proc SaveConfigFile Proc SaveOutput1Click( Sender : TObject) Proc SaveScreenshotClick(Sender: TObject); Proc SaveLn(pathname,content:Str); //Saveln(exepath+'mysavelntest.txt', memo2.text); Proc SaveToClipboardFormat(var AFormat:Word; var AData: THandle; var APalette: HPALETTE) Proc SaveToClipboardFormat(var Format: Word; var Data : THandle; var APalette: HPALETTE) Proc SaveToFile( AFileName :Str) Proc SAVETOFILE( const FILENAME :Str) Proc SaveToFile( const FileName : WideString) Proc SaveToFile( const FileName : WideString; Format : TPersistFormat) Proc SaveToFile( const FileName, FileType :Str; Bitmap : TLinearBitmap) Proc SaveToFile(FileName:Str); Proc SaveToFile(FileName:str) Proc SaveToStream( AStream : TStream; const AHeadersOnly :Bool) Proc SaveToStream(OutStream TSeekableStream; const Ext :Str; Bitmap : TLinarBitmap) Proc SaveToStream( S : TStream) Proc SaveToStream( Stream : TSeekableStream; const Ext :Str; Bitmap : TLinearBitmap) Proc SaveToStream( Stream : TStream) Proc SaveToStream( Stream : TStream; Format : TDataPacketFormat) Proc SaveToStream(Stream: TStream); Proc SaveToStream(Stream:TStream) Proc SaveToStream1( Stream : TSeekableStream; const FormatExt :Str); Proc SaveToStream2( Stream : TStream; const FormatExt :Str); Proc SaveToStrings( AStrings : TStrings; const MimeSeparator : Char) Proc Say(const sText:Str) Proc SBytecode1Click( Sender : TObject) Proc ScaleImage(const SourceBitmap, ResizedBitmap:TBitmap;const ScaleAmount:Double) Proc ScriptExplorer1Click(Sender: TObject); Proc Scroll( Distance : Int) Proc Scroll( DX, DY : Int) Proc ScrollBy(DeltaX, DeltaY: Int); Proc SCROLLINVIEW(ACONTROL:TCONTROL) Proc ScrollTabs( Delta : Int) Proc Search1Click( Sender : TObject) Proc SearchAndOpenDoc(vfilenamepath:Str) Proc SearchAndOpenFile(vfilenamepath:Str) Proc SearchAndReplace(aStrList: TStrings; aSearchStr, aNewStr:Str) Proc SearchAndCopy(aStrList: TStrings; aSearchStr, aNewStr:Str; offset: Int); Proc SearchNext1Click( Sender : TObject) Proc Select( Node : TTreeNode; ShiftState : TShiftState); Proc Select1( const Nodes : array of TTreeNode); Proc Select2( Nodes : TList); Proc SelectNext( Direction :Bool) Proc SelectNextPage( GoForward :Bool; CheckTabVisible :Bool) Proc SelfTestPEM //unit uPSI_cPEM Proc Send( AMsg : TIdMessage) //config forst in const MAILINIFILE = 'maildef.ini'; //ex.: SendEmail('max@kleiner.ch','max@kleiner.com','this test7','maxbox the SSL fox',' Proc SendEmail(mFrom, mTo, mSubject, mBody, mAttachment: variant); Proc SendMail(mFrom, mTo, mSubject, mBody, mAttachment: variant); Proc SendMsg( AMsg : TIdMessage; const AHeadersOnly :Bool) Proc SendMsg(AMsg: TIdMessage; const AHeadersOnly:Bool = False) Proc SendResponse Proc SendStream( AStream : TStream) Proc SendMCICommand(Cmd:Str); ! Proc Set8087CW( NewCW : Word) Proc SetAll( One, Two, Three, Four : Byte) Proc SetAltRecBuffers( Old, New, Cur : PChar) Proc SetAppDispatcher( const ADispatcher : TComponent) Proc SetArrayLength; Proc SetArrayLength2String(arr: T2StringArray; asize1, asize2: Int); //2 dimension Proc SetArrayLength2Int(arr: T2IntArray; asize1, asize2: Int); Proc SetArrayLength2String2(arr: T2StringArray; asize1, asize2: Int); //all init Proc SetArrayLength2Int2(arr: T2IntArray; asize1, asize2: Int); Proc SetArrayLength2Char2(var arr: T2CharArray; asize1, asize2: Int);; Proc Set2DimStrArray(var arr: T2StringArray; asize1, asize2: Int);; Proc Set2DimIntArray(var arr: T2IntArray; asize1, asize2: Int);; Proc Set3DimIntArray(var arr: T3IntArray; asize1, asize2, asize3: Int); Proc Set3DimStrArray(var arr: T3StringArray; asize1, asize2, asize3: Int); Proc SetAsHandle( Format : Word; Value : THandle) Proc SetBounds(ALeft, ATop, AWidth, AHeight: Int) Proc SetCaptureControl(Control: TControl); Proc SetColumnAttributes Proc SetCookieField(Values:TStrings;const ADoman,APath:str;AExpires:TDateTime;ASecure:Bool) Proc SetCustomHeader( const Name, Value :Str) Proc SetExprParams(const Text:Widestring;Opts:TFilterOpts;ParserOpts:TParserOpts;const FieldName:Widestring) Proc SetFMTBcd( Buffer : TRecordBuffer; value : TBcd) Proc SetFocus Proc SetFocus; virtual; Proc SetInitialState Proc SetKey Proc SetLastError(ErrorCode: Int) Proc SetLength; Proc SetLength2(var S:Str; NewLength: Int); Proc SetLineBreakStyle( var T : Text; Style : TTextLineBreakStyle) Proc SETOLE2MENUHANDLE( HANDLE : HMENU) Proc SetParams( ADataset : TDataset; UpdateKind : TUpdateKind); Proc SETPARAMS(APOSITION,AMIN,AMAX:Int) Proc SetParams1( UpdateKind : TUpdateKind); Proc SetPassword( const Password :Str) Proc SetPointer( Ptr : Pointer; Size : Longint) Proc SetPrimalityTest( const Method : TPrimalityTestMethod) Proc SetPrinter( ADevice, ADriver, APort : PChar; ADeviceMode : THandle) Proc SetProvider( Provider : TComponent) Proc SetProxy( const Proxy :Str) Proc SetPSResult( var PSResult : TPSResult; Value : TObject) Proc SetRange( const StartValues, EndValues : array of const) Proc SetRangeEnd Proc SetRate( const aPercent, aYear : Int) Proc SetRate(const aPercent, aYear: Int) Proc Set_ReportMemoryLeaksOnShutdown(abo:Bool) Proc SetSafeCallExceptionMsg( Msg :Str) Proc SETSELTEXTBUF(BUFFER:PCHAR) Proc SetSize( AWidth, AHeight : Int) Proc SetSize(NewSize:LongInt) Proc SetString(var s:Str; buffer: PChar; len: Int) Proc SetStrings( List : TStrings) Proc SetText( Text : PwideChar) Proc SetText(Text: PChar); Proc SetTextBuf( Buffer : PChar) Proc SETTEXTBUF(BUFFER:PCHAR) Proc SetTick( Value : Int) Proc SetTimeout( ATimeOut : Int) Proc SetTraceEvent( Event : TDBXTraceEvent) Proc SetUserName( const UserName :Str) Proc SetWallpaper( Path :Str); Proc ShellStyle1Click(Sender: TObject); Proc SHORTCUTTOKEY( SHORTCUT : TSHORTCUT; var KEY : WORD; var SHIFT : TSHIFTSTATE) Proc ShowFileProperties( const FileName :Str) Proc ShowInclude1Click( Sender : TObject) Proc ShowInterfaces1Click( Sender : TObject) Proc ShowLastException1Click( Sender : TObject) Proc ShowMessage( const Msg :Str) Proc ShowMessageBig(const aText :Str); Proc ShowMessageBig2(const aText :Str; aautosize:Bool); Proc ShowMessageBig3(const aText :Str; fsize: byte; aautosize:Bool); Proc MsgBig(const aText :Str); //alias Proc showmessage(mytext:Str); Proc ShowMessageFmt( const Msg :Str; Params : array of const) Proc ShowMessageFmt(const Msg:Str; Params: array of const)) Proc ShowMessagePos( const Msg :Str; X, Y : Int) Proc ShowMessagePos(const Msg:Str; X: Int; Y: Int)) Proc ShowSearchDialog( const Directory :Str) Proc ShowSpecChars1Click( Sender : TObject) Proc ShowBitmap(bmap: TBitmap); //draw in a form! Proc ShredFile( const FileName :Str; Times : Int) Proc Shuffle(vQ: TStringList); Proc ShuffleList( var List : array of Int; Count : Int) Proc SimulateKeystroke( Key : byte; Shift : TShiftState) Proc SinCos( const Theta : Extended; var Sin, Cos : Extended) Proc SinCosE( X : Extended; out Sin, Cos : Extended) Proc Site( const ACommand :Str) Proc SkipEOL Proc Sleep( ATime :Card) Proc Sleep( milliseconds :Card) Func SleepEx( dwMilliseconds : DWORD; bAlertable : BOOL) : DWORD Proc Slinenumbers1Click( Sender : TObject) Proc Sort Proc SortColorArray(ColorArray:TColorArr;L,R:Int;SortType:TColorArraySortType;Reverse:Bool) Proc SoundAlarm; //beep seq Proc Speak(const sText:Str) //async like voice Proc Speak2(const sText:Str) //sync Proc Split(Str:Str; SubStr:Str; List: TStrings); Proc SplitNameValue( const Line :Str; var Name, Value :Str) Proc SplitColumns( const AData :Str; AStrings : TStrings; const ADelim :Str) Proc SplitColumnsNoTrim(const AData:str; AStrings:TStrings;const ADelim :Str) Proc SplitLines( AData : PChar; ADataSize : Int; AStrings : TStrings) Proc SplitString( const AStr, AToken :Str; var VLeft, VRight :Str) Proc SQLSyntax1Click(Sender: TObject); Proc SRand( Seed : RNG_IntType) Proc Start Proc StartCount( var Counter : TJclCounter; const Compensate :Bool) Proc StartFileFinder3(spath,aext,searchstr:Str; arecursiv:Bool; reslist: TStringlist); //Ex. StartFileFinder3(exepath+'exercices','*.pas','record',false,seclist); Proc StartTransaction( TransDesc : TTransactionDesc) Proc Status( var AStatusList : TStringList) Proc StatusBar1DblClick( Sender : TObject) Proc StepInto1Click( Sender : TObject) Proc StepIt Proc StepOut1Click( Sender : TObject) Proc Stop Proc stopmp3; Proc StartWeb(aurl:Str); Proc Str(aint: Int; astr:Str); //of system Proc StrDispose( Str : PChar) Proc StrDispose(Str: PChar) Proc StrReplace(var Str:Str; Old, New:Str); Proc StretchDIBits( DC : THandle; const Dest : TRect; HalftoneStretch: Bool) Proc StretchDraw(const Rect: TRect; Graphic: TGraphic); Proc StringToBytes( Value :Str; Bytes : array of byte) Proc StrSet(c : Char; I : Int; var s :Str); Proc StrSplitP(const Delimiter: Char; Input:Str; const Strings: TStrings); Proc StructureMount( APath :Str) Proc STYLECHANGED(SENDER:TOBJECT) Proc Subselect( Node : TTreeNode; Validate :Bool) Proc Succ(X: int64); Proc SumsAndSquares( const Data : array of Double; var Sum, SumOfSquares:Extended) Proc SwapChar(var X,Y: char); //swapX follows Proc SwapFloats( var X, Y : Float) Proc SwapGrid(grd: TStringGrid); Proc SwapOrd( var I, J : Byte); Proc SwapOrd( var X, Y : Int) Proc SwapOrd1( var I, J : Shortint); Proc SwapOrd2( var I, J : Smallint); Proc SwapOrd3( var I, J : Word); Proc SwapOrd4( var I, J : Int); Proc SwapOrd5( var I, J :Card); Proc SwapOrd6( var I, J : Int64); Proc SymetricCompareFiles(const plaintext, replaintext:Str) Proc Synchronize1( Method : TMethod); Proc SyntaxCheck1Click(Sender: TObject); Proc SysFreeString(const S: WideString); stdcall; Proc TakeOver( Other : TLinearBitmap) Proc Talkln(const sText:Str) //async voice Proc tbtn6resClick(Sender: TObject); Proc tbtnUseCaseClick( Sender : TObject) Proc TerminalStyle1Click(Sender: TObject); Proc Terminate Proc texSyntax1Click( Sender : TObject) Proc TextOut(X, Y: Int; Text:Str); Proc TextRect( Rect : TRect; X, Y : Int; const Text :Str); Proc TextRect(Rect: TRect; X: Int; Y: Int; const Text:Str); Proc TextRect1( var Rect : TRect; var Text :Str; TextFormat:TTextFormat); Proc TextStart Proc TILE Proc TimeStampToBytes( Value : TBcd; Bytes : array of byte) Proc TitleClick( Column : TColumn) Proc ToDo Proc Tone(500 hz, 10000 ms length); Proc toolbtnTutorialClick(Sender: TObject); Proc Trace1( AURL :Str; const AResponseContent : TStream); Proc TransferMode( ATransferMode : TIdFTPTransferMode) Proc Truncate Proc Tutorial101Click(Sender: TObject); Proc Tutorial10Statistics1Click(Sender: TObject); Proc Tutorial11Forms1Click(Sender: TObject); Proc Tutorial12SQL1Click(Sender: TObject); Proc tutorial1Click( Sender : TObject) Proc tutorial21Click( Sender : TObject) Proc tutorial31Click( Sender : TObject) Proc tutorial4Click( Sender : TObject) Proc Tutorial5Click( Sender : TObject) Proc Tutorial6Click(Sender: TObject); Proc Tutorial91Click(Sender: TObject); Proc UnhookSignal( RtlSigNum : Int; OnlyIfHooked :Bool) Proc UniqueString(var str: Ansistr) Proc UnloadLoadPackage(Module: HMODULE) Proc Unlock Proc UNMERGE( MENU : TMAINMENU) Proc UnRegisterChanges( Value : TChangeLink) Proc UnregisterConversionFamily( const AFamily : TConvFamily) Proc UnregisterConversionType( const AType : TConvType) Proc UnRegisterProvider( Prov : TCustomProvider) Proc UPDATE Proc UpdateBatch( AffectRecords : TAffectRecords) Proc UPDATECURSORPOS Proc UpdateFile Proc UpdateItems( FirstIndex, LastIndex : Int) Proc UpdateResponse( AResponse : TWebResponse) Proc UpdateScrollBar Proc UpdateView1Click( Sender : TObject) Proc UpdateExeResource(Const Source,Dest:str); //! Proc Val(const s:Str; var n, z: Int) Proc VarArraySet(c : Variant; I : Int; var s : Variant); Proc VarFMTBcdCreate( var ADest : Variant; const ABcd : TBcd); Proc VariantAdd( const src : Variant; var dst : Variant) Proc VariantAnd( const src : Variant; var dst : Variant) Proc VariantArrayRedim( var V : Variant; High : Int) Proc VariantCast( const src : Variant; var dst : Variant; vt : Int) Proc VariantClear( var V : Variant) Proc VariantCpy( const src : Variant; var dst : Variant) Proc VariantDiv( const src : Variant; var dst : Variant) Proc VariantMod( const src : Variant; var dst : Variant) Proc VariantMul( const src : Variant; var dst : Variant) Proc VariantOr( const src : Variant; var dst : Variant) Proc VariantPutElement( var V : Variant; const data : Variant; i1 : Int); Proc VariantPutElement1( var V : Variant; const data : Variant; i1, i2 : Int); Proc VariantPutElement2( var V : Variant; const data : Variant; i1, i2, i3 : Int); Proc VariantPutElement3(var V: Variant; const data : Variant; i1, i2, i3, i4 : Int); Proc VariantPutElement4(var V:Variant;const data: Variant; i1,i2,i3, i4, i5 : Int); Proc VariantShl( const src : Variant; var dst : Variant) Proc VariantShr( const src : Variant; var dst : Variant) Proc VariantSub( const src : Variant; var dst : Variant) Proc VariantXor( const src : Variant; var dst : Variant) Proc VarCastError; Proc VarCastError1( const ASourceType, ADestType : TVarType); Proc VarInvalidOp Proc VarInvalidNullOp Proc VarOverflowError( const ASourceType, ADestType : TVarType) Proc VarRangeCheckError( const ASourceType, ADestType : TVarType) Proc VarArrayCreateError Proc VarResultCheck( AResult : HRESULT); Proc VarResultCheck1( AResult : HRESULT; ASourceType, ADestType : TVarType); Proc HandleConversionException( const ASourceType, ADestType : TVarType) Func VarTypeAsText( const AType : TVarType) :Str Proc Voice(const sText:Str) //async Proc Voice2(const sText:Str) //sync Proc WaitMiliSeconds( AMSec : word) Proc WaitMS( AMSec : word); Proc WebCamPic(picname:Str); //eg: c:\mypic.png Proc WideAppend( var dst : WideString; const src : WideString) Proc WideAssign( var dst : WideString; var src : WideString) Proc WideDelete( var dst : WideString; index, count : Int) Proc WideFree( var s : WideString) Proc WideFromAnsi( var dst : WideString; const src : Ansistr) Proc WideFromPChar( var dst : WideString; src : PChar) Proc WideInsert( var dst : WideString; const src : WideString; index : Int) Proc WideSetLength( var dst : WideString; len : Int) Proc WideString2Stream( aWideString : WideString; oStream : TStream) Proc WideStringToBytes( Value : WideString; Bytes : array of byte) Proc WinColorToOpenGLColor( const Color : TColor; out Red, Green, Blue : Float) Proc WinInet_HttpGet(const Url:Str; Stream:TStream); Proc HttpGet(const Url:Str; Stream:TStream); Proc WordToTwoBytes( AWord : Word; ByteArray : TIdBytes; Index : Int) Proc WordWrap1Click( Sender : TObject) Proc Write( const AOut :Str) Proc Write( Socket : TSocket) Proc Write(S:Str); Proc WriteBinaryStream( const Section, Name :Str; Value : TStream) Proc WriteBool( const Section, Ident :Str; Value :Bool) Proc WriteBuffer( const ABuffer, AByteCount : Longint; const AWriteNow :Bool) Proc WriteBuffer(Buffer:str;Count:LongInt) Proc WriteCardinal( AValue :Card; const AConvert :Bool) Proc WriteChar( AValue : Char) Proc WriteDate( const Section, Name :Str; Value : TDateTime) Proc WriteDateTime( const Section, Name :Str; Value : TDateTime) Proc WriteFloat( const Section, Name :Str; Value : Double) Proc WriteHeader( AHeader : TStrings) Proc WriteInt( AValue : Int; const AConvert :Bool) Proc WriteInt( const Section, Ident :Str; Value : Longint) Proc WriteLn( const AOut :Str) Proc Println( AOut :Str) Proc Writeln(s:Str); Proc WriteLog( const FileName, LogLine :Str) Proc WriteRFCReply( AReply : TIdRFCReply) Proc WriteRFCStrings( AStrings : TStrings) Proc WriteSmallInt( AValue : SmallInt; const AConvert :Bool) Proc WriteStream(AStream:TStream;const AAll:Bool;const AWriteByteCnt:Bool;const ASize:Int) Proc WriteString( const Section, Ident, Value :Str) Proc WriteStrings( AValue : TStrings; const AWriteLinesCount :Bool) Proc WriteTime( const Section, Name :Str; Value : TDateTime) Proc WriteObjectResourceHeader( ObjStream, Output : TStream) Proc Write16bitResourceHeader(const AName: TBytes; DataSize : Int; Output:TStream) Proc Write32bitResourceHeader(const AName: TBytes; DataSize : Int; Output:TStream) Proc WriteDataSetToCSV(DataSet: TDataSet; FileName:Str); Proc WStrSet(c : AnyString; I : Int; var s : AnyString); Proc XMLSyntax1Click(Sender: TObject); Proc XOR_Streams2( Dest, Srce : TMemoryStream) Proc XOR_Streams3( Dest, SrceA, SrceB : TMemoryStream) Proc ZeroFillStream( Stream : TMemoryStream) Proc XMLSyntax1Click(Sender: TObject); Proc ZeroMemory( Ptr : Pointer; Length : Longint) procedure(Control: TWinControl; Index: Int; Rect: TRect; State: Byte) procedure(Control: TWinControl; Index: Int; var Height: Int) procedure(Sender,Source: TObject; X, Y: Int; State: TDragState; var Accept:Bool) procedure(Sender,Source: TObject;X, Y: Int) procedure(Sender,Target: TObject; X, Y: Int) procedure(Sender:TObject; ASection, AWidth: Int) procedure(Sender:TObject; ScrollCode: TScrollCode;var ScrollPos: Int) procedure(Sender:TObject; Shift: TShiftState; X, Y: Int); procedure(Sender:TObject; var Action: TCloseAction) procedure(Sender:TObject; var CanClose:Bool) procedure(Sender:TObject; var Key: Char); ProcedureName ProcedureNames ProcedureParametersCursor@ *************Now Constructors constructor ************* Size is: 1727 1640 1588 Attach( VersionInfoData : Pointer; Size : Int) constructor Create( ABuckets : TBucketListSizes) Create(ACallBackWnd : HWND) Create(AClient : TCustomTaskDialog) Create(AClient : TIdTelnet) Create(ACollection : TCollection) Create(ACollection : TFavoriteLinkItems) Create(ACollection : TTaskDialogButtons) Create(AConnection : TIdCustomHTTP) Create(ACreateSuspended :Bool) Create(ADataSet : TCustomSQLDataSet) CREATE(ADATASET : TDATASET) Create(Aggregates : TAggregates; ADataSet : TCustomClientDataSet); Create(AGrid : TCustomDBGrid) Create(AGrid : TStringGrid; AIndex : Longint) Create(AHTTP : TIdCustomHTTP) Create(AListItems : TListItems) Create(AOnBytesRemoved : TIdBufferBytesRemoved) Create(AOnBytesRemoved : TIdBufferBytesRemoved) Create(AOwner : TCommonCalendar) Create(AOwner : TComponent) CREATE(AOWNER : TCOMPONENT) Create(AOwner : TCustomListView) Create(AOwner : TCustomOutline) Create(AOwner : TCustomRichEdit) Create(AOwner : TCustomRichEdit; AttributeType : TAttributeType) Create(AOwner : TCustomTreeView) Create(AOwner : TIdUserManager) Create(AOwner : TListItems) Create(AOwner:TObj;Handl:hDBICur;CBTyp:CBType;CBBuf:Ptr;CBBufSiz:Int;CallbkEvt:TBDECallbkEvt;Chain:Bool) CREATE(AOWNER : TPERSISTENT) Create(AOwner : TPersistent) Create(AOwner : TTable) Create(AOwner : TTreeNodes) Create(AOwner : TWinControl; const ClassName :Str) Create(AParent : TIdCustomHTTP) Create(AParent : TUpdateTree; AResolver : TCustomResolver) Create(AProvider : TBaseProvider) Create(AProvider : TCustomProvider); Create(AProvider : TDataSetProvider) Create(ASocket : TCustomWinSocket; TimeOut : Longint) Create(ASocket : TSocket) Create(AStrings : TWideStrings) Create(AToolBar : TToolBar) Create(ATreeNodes : TTreeNodes) Create(Autofill :Bool) Create(AWebPageInfo : TAbstractWebPageInfo) Create(AWebRequest : TWebRequest) Create(Collection : TCollection) Create(Collection : TIdMessageParts; ABody : TStrings) Create(Collection : TIdMessageParts; const AFileName : TFileName) Create(Column : TColumn) Create(const AConvFamily : TConvFamily; const ADescription :Str) Create(const AConvFamily TConvFamily;const ADescription:str;const AFactor: Double) Create(const AConvFamily:TConvFamily;const ADescription:str;const AToCommonProc,AFromComProc:TConversionProc) Create(const AInitialState :Bool; const AManualReset :Bool) Create(const ATabSet : TTabSet) Create(const Compensate :Bool) Create(const FileMap:TJclCustomFileMapping; Access,Size :Card; ViewOffset : Int64) Create(const FileName :Str) Create(const FileName :Str;FileMode:Card; const Name:str; Protect:Card; const MaximumSize : Int64; const SecAttr : PSecurityAttributes); Create(const FileName :Str; FileMode : WordfmShareDenyWrite) Create(const MaskValue :Str) Create(const Name:str; Protect:Card;const MaximumSize:Int64;const SecAttr:PSecurityAttributes) Create(const Prefix :Str) Create(const sRegularExpression :Str; xFlags : TniRegularExpressionMatchFlags) Create(const sRule :Str; xFlags : TniRegularExpressionMatchFlags) Create(const sRule :Str; xFlags : TniRegularExpressionMatchFlags) Create(CoolBar : TCoolBar) Create(CreateSuspended :Bool; ASocket : TServerClientWinSocket) Create(CreateSuspended :Bool; ASocket : TServerWinSocket) Create(DataSet:TDataSet;const Text:Widestring;Options:TFilterOptions;ParserOptions:TParserOptions;const FieldName:Widestring;DepFields: TBits;FieldMap:TFieldMap) Create(DBCtrlGrid : TDBCtrlGrid) Create(DSTableProducer : TDSTableProducer) Create(DSTableProducer : TDSTableProducer; ColumnClass : THTMLTableColumnClass) Create(ErrorCode : DBIResult) Create(Field : TBlobField; Mode : TBlobStreamMode) Create(Grid : TCustomDBGrid; ColumnClass : TColumnClass) Create(HeaderControl : TCustomHeaderControl) Create(HTTPRequest : TWebRequest) Create(iStart : Int; sText :Str) Create(iValue : Int) Create(Kind : TMmTimerKind; Notification : TMmNotificationKind) Create(MciErrNo : MCIERROR; const Msg :Str) Create(MemoryStream:TCustomMemStream;FreeStream:Boolean;const AIndexOption:TJclMappedTextReaderIndex); Create(Message :Str; ErrorCode : DBResult) Create(Msg :Str) Create(NativeError, Context :Str; ErrCode, PrevError : Int; E : Exception) Create(NativeError, Context :Str; ErrorCode, PreviousError : DBResult) Create(oExpression : TniRegularExpression; eType : TniRegularExpressionStateType) Create(oOwner : TniRegularExpression; xFlags : TniRegularExpressionMatchFlags) Create(oSorce:TniRegularExpressState;oDestinat:TniRegularExprState;xCharacts:TCharSet;bLambda:bool) Create(Owner: EDBEngineError; ErrorCode: DBIResult; NativeError:Longint;Message: PChar) Create(Owner: TCustomComboBoxEx) CREATE(OWNER TINDEXDEFS; const NAME, FIELDS:Str; OPTIONS: TINDEXOPTIONS) Create(Owner: TPersistent) Create(Params: TStrings) Create( Size :Card) Create(Socket: TSocket; ServerWinSocket : TServerWinSocket) Create(StatusBar: TCustomStatusBar) Create(WebDispatcher : TCustomWebDispatcher; ItemClass : TCollectionItemClass) Create(WebResponse : TWebResponse; ItemClass : TCollectionItemClass) Create(AHandle:Int) Create(AOwner: TComponent); virtual; Create(const AURI :Str) Create(FileName:str;Mode:Word) Create(Instance:THandle;ResName:str;ResType:PChar) Create(Stream : TStream) Create1( ADataset : TDataset); Create1(const FileHandle:THandle;const Name:str;Protect:Card;const MaximumSize:Int64;const SecAttr:PSecurityAttributes); Create1( const FileName :Str; const AIndexOption : TJclMappedTextReaderIndex); Create2( Other : TObject); CreateAt(FileMap: TJclCustomFileMapping;Access,Size:Card;ViewOffset:Int64;Address:Pointer) CreateError(const anErrCode: Int;const asReplyMessage:Str; const asErrorMessage:Str) CreateFmt( MciErrNo : MCIERROR; const Msg :Str; const Args : array of const) CreateFromId(Instance:THandle;ResId:Int;ResType:PChar) CreateLinked( DBCtrlGrid : TDBCtrlGrid) CREATENEW(AOWNER:TCOMPONENT; Dummy: Int) CreateRes(Ident : Int); CreateRes(MciErrNo : MCIERROR; Ident : Int) CreateRes(ResStringRec : PResStringRec); CreateResHelp( Ident : Int; AHelpContext : Int); CreateResHelp( ResStringRec : PResStringRec; AHelpContext : Int); CreateShadow( AOwner : TComponent; ControlSide : TControlSide) CreateSize( AWidth, AHeight : Int) Open(const Name:Str; const InheritHandle:Bool; const DesiredAccess :Card) ------------------------------------------------------------------------------- unit uPSI_MathMax; ------------------------------------------------------------------------------- CONSTS Bernstein: Float = 0.2801694990238691330364364912307; // Bernstein constant Cbrt2: Float = 1.2599210498948731647672106072782; // CubeRoot(2) Cbrt3: Float = 1.4422495703074083823216383107801; // CubeRoot(3) Cbrt10: Float = 2.1544346900318837217592935665194; // CubeRoot(10) Cbrt100: Float = 4.6415888336127788924100763509194; // CubeRoot(100) CbrtPi: Float = 1.4645918875615232630201425272638; // CubeRoot(PI) Catalan: Float = 0.9159655941772190150546035149324; // Catalan constant PiJ: Float = 3.1415926535897932384626433832795; // PI PI: Extended = = 3.1415926535897932384626433832795); PiOn2: Float = 1.5707963267948966192313216916398; // PI / 2 PiOn3: Float = 1.0471975511965977461542144610932; // PI / 3 PiOn4: Float = 0.78539816339744830961566084581988; // PI / 4 Sqrt2: Float = 1.4142135623730950488016887242097; // Sqrt(2) Sqrt3: Float = 1.7320508075688772935274463415059; // Sqrt(3) Sqrt5: Float = 2.2360679774997896964091736687313; // Sqrt(5) Sqrt10: Float = 3.1622776601683793319988935444327; // Sqrt(10) SqrtPi: Float = 1.7724538509055160272981674833411; // Sqrt(PI) Sqrt2Pi: Float = 2.506628274631000502415765284811; // Sqrt(2 * PI) TwoPi: Float = 6.283185307179586476925286766559; // 2 * PI ThreePi: Float = 9.4247779607693797153879301498385; // 3 * PI Ln2: Float = 0.69314718055994530941723212145818; // Ln(2) Ln10: Float = 2.3025850929940456840179914546844; // Ln(10) LnPi: Float = 1.1447298858494001741434273513531; // Ln(PI) Log2J: Float = 0.30102999566398119521373889472449; // Log10(2) Log3: Float = 0.47712125471966243729502790325512; // Log10(3) LogPi: Float = 0.4971498726941338543512682882909; // Log10(PI) LogE: Float = 0.43429448190325182765112891891661; // Log10(E) E: Float = 2.7182818284590452353602874713527; // Natural constant hLn2Pi: Float = 0.91893853320467274178032973640562; // Ln(2*PI)/2 inv2Pi: Float = 0.15915494309189533576888376337251436203445964574046; // 0.5/Pi TwoToPower63: Float = 9223372036854775808.0; // 2^63 GoldenMean: Float = 1.618033988749894848204586834365638; // GoldenMean EulerMascheroni: Float = 0.5772156649015328606065120900824; // Euler GAMMA RadCor : Double = 57.29577951308232; {number of degrees in a radian} StDelta : Extended = 0.00001; {delta for difference equations} StEpsilon : Extended = 0.00001; {epsilon for difference equations} StMaxIterations : Int = 100; {max attempts for convergence} Proc SIRegister_StdConvs(CL: TPSPascalCompiler); begin MetersPerInch = 0.0254; // [1] MetersPerFoot = MetersPerInch * 12; MetersPerYard = MetersPerFoot * 3; MetersPerMile = MetersPerFoot * 5280; MetersPerNauticalMiles = 1852; MetersPerAstronomicalUnit = 1.49598E11; // [4] MetersPerLightSecond = 2.99792458E8; // [5] MetersPerLightYear = MetersPerLightSecond * 31556925.9747; // [7] MetersPerParsec = MetersPerAstronomicalUnit * 206264.806247096; // 60 * 60 * (180 / Pi) MetersPerCubit = 0.4572; // [6][7] MetersPerFathom = MetersPerFoot * 6; MetersPerFurlong = MetersPerYard * 220; MetersPerHand = MetersPerInch * 4; MetersPerPace = MetersPerInch * 30; MetersPerRod = MetersPerFoot * 16.5; MetersPerChain = MetersPerRod * 4; MetersPerLink = MetersPerChain / 100; MetersPerPoint = MetersPerInch * 0.013837; // [7] MetersPerPica = MetersPerPoint * 12; SquareMetersPerSquareInch = MetersPerInch * MetersPerInch; SquareMetersPerSquareFoot = MetersPerFoot * MetersPerFoot; SquareMetersPerSquareYard = MetersPerYard * MetersPerYard; SquareMetersPerSquareMile = MetersPerMile * MetersPerMile; SquareMetersPerAcre = SquareMetersPerSquareYard * 4840; SquareMetersPerSquareRod = MetersPerRod * MetersPerRod; CubicMetersPerCubicInch = MetersPerInch * MetersPerInch * MetersPerInch; CubicMetersPerCubicFoot = MetersPerFoot * MetersPerFoot * MetersPerFoot; CubicMetersPerCubicYard = MetersPerYard * MetersPerYard * MetersPerYard; CubicMetersPerCubicMile = MetersPerMile * MetersPerMile * MetersPerMile; CubicMetersPerAcreFoot = SquareMetersPerAcre * MetersPerFoot; CubicMetersPerAcreInch = SquareMetersPerAcre * MetersPerInch; CubicMetersPerCord = CubicMetersPerCubicFoot * 128; CubicMetersPerCordFoot = CubicMetersPerCubicFoot * 16; CubicMetersPerUSFluidGallon = CubicMetersPerCubicInch * 231; // [2][3][7] CubicMetersPerUSFluidQuart = CubicMetersPerUSFluidGallon / 4; CubicMetersPerUSFluidPint = CubicMetersPerUSFluidQuart / 2; CubicMetersPerUSFluidCup = CubicMetersPerUSFluidPint / 2; CubicMetersPerUSFluidGill = CubicMetersPerUSFluidCup / 2; CubicMetersPerUSFluidOunce = CubicMetersPerUSFluidCup / 8; CubicMetersPerUSFluidTablespoon = CubicMetersPerUSFluidOunce / 2; CubicMetersPerUSFluidTeaspoon = CubicMetersPerUSFluidOunce / 6; CubicMetersPerUSDryGallon = CubicMetersPerCubicInch * 268.8025; // [7] CubicMetersPerUSDryQuart = CubicMetersPerUSDryGallon / 4; CubicMetersPerUSDryPint = CubicMetersPerUSDryQuart / 2; CubicMetersPerUSDryPeck = CubicMetersPerUSDryGallon * 2; CubicMetersPerUSDryBucket = CubicMetersPerUSDryPeck * 2; CubicMetersPerUSDryBushel = CubicMetersPerUSDryBucket * 2; CubicMetersPerUKGallon = 0.00454609; // [2][7] CubicMetersPerUKPottle = CubicMetersPerUKGallon / 2; CubicMetersPerUKQuart = CubicMetersPerUKPottle / 2; CubicMetersPerUKPint = CubicMetersPerUKQuart / 2; CubicMetersPerUKGill = CubicMetersPerUKPint / 4; CubicMetersPerUKOunce = CubicMetersPerUKPint / 20; CubicMetersPerUKPeck = CubicMetersPerUKGallon * 2; CubicMetersPerUKBucket = CubicMetersPerUKPeck * 2; CubicMetersPerUKBushel = CubicMetersPerUKBucket * 2; GramsPerPound = 453.59237; // [1][7] GramsPerDrams = GramsPerPound / 256; GramsPerGrains = GramsPerPound / 7000; GramsPerTons = GramsPerPound * 2000; GramsPerLongTons = GramsPerPound * 2240; GramsPerOunces = GramsPerPound / 16; GramsPerStones = GramsPerPound * 14; MaxAngle 9223372036854775808.0; MaxTanH 5678.2617031470719747459655389854); MaxFactorial( 1754); MaxFloatingPoint(1.189731495357231765085759326628E+4932); MinFloatingPoint',(3.3621031431120935062626778173218E-4932); MaxTanH( 354.89135644669199842162284618659); MaxFactorial'LongInt'( 170); MaxFloatingPointD(1.797693134862315907729305190789E+308); MinFloatingPointD(2.2250738585072013830902327173324E-308); MaxTanH( 44.361419555836499802702855773323); MaxFactorial'LongInt'( 33); MaxFloatingPointS( 3.4028236692093846346337460743177E+38); MinFloatingPointS( 1.1754943508222875079687365372222E-38); PiExt( 3.1415926535897932384626433832795); RatioDegToRad( PiExt / 180.0); RatioGradToRad( PiExt / 200.0); RatioDegToGrad( 200.0 / 180.0); RatioGradToDeg( 180.0 / 200.0); Crc16PolynomCCITT'LongWord $1021); Crc16PolynomIBM'LongWord $8005); Crc16Bits'LongInt'( 16); Crc16Bytes'LongInt'( 2); Crc16HighBit'LongWord $8000); NotCrc16HighBit','LongWord $7FFF); Crc32PolynomIEEE','LongWord $04C11DB7); Crc32PolynomCastagnoli','LongWord $1EDC6F41); Crc32Koopman','LongWord $741B8CD7); Crc32Bits','LongInt'( 32); Crc32Bytes','LongInt'( 4); Crc32HighBit','LongWord $80000000); NotCrc32HighBit','LongWord $7FFFFFFF); MinByte = Low(Byte); MaxByte = High(Byte); MinWord = Low(Word); //MaxWord = High(Word); MaxWord2 = High(Word); MinShortInt = Low(ShortInt); MaxShortInt = High(ShortInt); MinSmallInt = Low(SmallInt); MaxSmallInt = High(SmallInt); MinLongWord = LongWord(Low(LongWord)); MaxLongWord = LongWord(High(LongWord)); MinLongInt = LongInt(Low(LongInt)); MaxLongInt = LongInt(High(LongInt)); MinInt64 = Int64(Low(Int64)); MaxInt64 = Int64(High(Int64)); MinInt = Int(Low(Int)); MaxInt = Int(High(Int)); MinCardinal = Cardinal(Low(Cardinal)); MaxCardinal = Cardinal(High(Cardinal)); MinNativeUInt = NativeUInt(Low(NativeUInt)); MaxNativeUInt = NativeUInt(High(NativeUInt)); MinNativeInt = NativeInt(Low(NativeInt)); MaxNativeInt = NativeInt(High(NativeInt)); Func CosH( const Z : Float) : Float; Func SinH( const Z : Float) : Float; Func TanH( const Z : Float) : Float; //***********from DMath.Dll Lib of types.inc in source\dmath_dll InvLn2 = 1.44269504088896340736; { 1/Ln(2) } InvLn10 = 0.43429448190325182765; { 1/Ln(10) } TwoPi = 6.28318530717958647693; { 2*Pi } PiDiv2 = 1.57079632679489661923; { Pi/2 } SqrtPi = 1.77245385090551602730; { Sqrt(Pi) } Sqrt2Pi = 2.50662827463100050242; { Sqrt(2*Pi) } InvSqrt2Pi = 0.39894228040143267794; { 1/Sqrt(2*Pi) } LnSqrt2Pi = 0.91893853320467274178; { Ln(Sqrt(2*Pi)) } Ln2PiDiv2 = 0.91893853320467274178; { Ln(2*Pi)/2 } Sqrt2 = 1.41421356237309504880; { Sqrt(2) } Sqrt2Div2 = 0.70710678118654752440; { Sqrt(2)/2 } Gold = 1.61803398874989484821; { Golden Mean = (1 + Sqrt(5))/2 } CGold = 0.38196601125010515179; { 2 - GOLD } MachEp = 2.220446049250313E-16; { 2^(-52) } MaxNum = 1.797693134862315E+308; { 2^1024 } MinNum = 2.225073858507202E-308; { 2^(-1022) } MaxLog = 709.7827128933840; MinLog = -708.3964185322641; MaxFac = 170; MaxGam = 171.624376956302; MaxLgm = 2.556348E+305; SingleCompareDelta = 1.0E-34; DoubleCompareDelta = 1.0E-280; {$IFDEF CLR} ExtendedCompareDelta = DoubleCompareDelta; {$ELSE} ExtendedCompareDelta = 1.0E-4400; {$ENDIF} Bytes1KB = 1024; Bytes1MB = 1024 * Bytes1KB; Bytes1GB = 1024 * Bytes1MB; Bytes64KB = 64 * Bytes1KB; Bytes64MB = 64 * Bytes1MB; Bytes2GB = 2 * LongWord(Bytes1GB); clBlack32', $FF000000 )); clDimGray32', $FF3F3F3F )); clGray32', $FF7F7F7F )); clLightGray32', $FFBFBFBF )); clWhite32', $FFFFFFFF )); clMaroon32', $FF7F0000 )); clGreen32', $FF007F00 )); clOlive32', $FF7F7F00 )); clNavy32', $FF00007F )); clPurple32', $FF7F007F )); clTeal32', $FF007F7F )); clRed32', $FFFF0000 )); clLime32', $FF00FF00 )); clYellow32', $FFFFFF00 )); clBlue32', $FF0000FF )); clFuchsia32', $FFFF00FF )); clAqua32', $FF00FFFF )); clAliceBlue32', $FFF0F8FF )); clAntiqueWhite32', $FFFAEBD7 )); clAquamarine32', $FF7FFFD4 )); clAzure32', $FFF0FFFF )); clBeige32', $FFF5F5DC )); clBisque32', $FFFFE4C4 )); clBlancheDalmond32', $FFFFEBCD )); clBlueViolet32', $FF8A2BE2 )); clBrown32', $FFA52A2A )); clBurlyWood32', $FFDEB887 )); clCadetblue32', $FF5F9EA0 )); clChartReuse32', $FF7FFF00 )); clChocolate32', $FFD2691E )); clCoral32', $FFFF7F50 )); clCornFlowerBlue32', $FF6495ED )); clCornSilk32', $FFFFF8DC )); clCrimson32', $FFDC143C )); clDarkBlue32', $FF00008B )); clDarkCyan32', $FF008B8B )); clDarkGoldenRod32', $FFB8860B )); clDarkGray32', $FFA9A9A9 )); clDarkGreen32', $FF006400 )); clDarkGrey32', $FFA9A9A9 )); clDarkKhaki32', $FFBDB76B )); clDarkMagenta32', $FF8B008B )); clDarkOliveGreen32', $FF556B2F )); clDarkOrange32', $FFFF8C00 )); clDarkOrchid32', $FF9932CC )); clDarkRed32', $FF8B0000 )); clDarkSalmon32', $FFE9967A )); clDarkSeaGreen32', $FF8FBC8F )); clDarkSlateBlue32', $FF483D8B )); clDarkSlateGray32', $FF2F4F4F )); clDarkSlateGrey32', $FF2F4F4F )); clDarkTurquoise32', $FF00CED1 )); clDarkViolet32', $FF9400D3 )); clDeepPink32', $FFFF1493 )); clDeepSkyBlue32', $FF00BFFF )); clDodgerBlue32', $FF1E90FF )); clFireBrick32', $FFB22222 )); clFloralWhite32', $FFFFFAF0 )); clGainsBoro32', $FFDCDCDC )); clGhostWhite32', $FFF8F8FF )); clGold32', $FFFFD700 )); clGoldenRod32', $FFDAA520 )); clGreenYellow32', $FFADFF2F )); clGrey32', $FF808080 )); clHoneyDew32', $FFF0FFF0 )); clHotPink32', $FFFF69B4 )); clIndianRed32', $FFCD5C5C )); clIndigo32', $FF4B0082 )); clIvory32', $FFFFFFF0 )); clKhaki32', $FFF0E68C )); clLavender32', $FFE6E6FA )); clLavenderBlush32', $FFFFF0F5 )); clLawnGreen32', $FF7CFC00 )); clLemonChiffon32', $FFFFFACD )); clLightBlue32', $FFADD8E6 )); clLightCoral32', $FFF08080 )); clLightCyan32', $FFE0FFFF )); clLightGoldenRodYellow32', $FFFAFAD2 )); clLightGreen32', $FF90EE90 )); clLightGrey32', $FFD3D3D3 )); clLightPink32', $FFFFB6C1 )); clLightSalmon32', $FFFFA07A )); clLightSeagreen32', $FF20B2AA )); clLightSkyblue32', $FF87CEFA )); clLightSlategray32', $FF778899 )); clLightSlategrey32', $FF778899 )); clLightSteelblue32', $FFB0C4DE )); clLightYellow32', $FFFFFFE0 )); clLtGray32', $FFC0C0C0 )); clMedGray32', $FFA0A0A4 )); clDkGray32', $FF808080 )); clMoneyGreen32', $FFC0DCC0 )); clLegacySkyBlue32', $FFA6CAF0 )); clCream32', $FFFFFBF0 )); clLimeGreen32', $FF32CD32 )); clLinen32', $FFFAF0E6 )); clMediumAquamarine32', $FF66CDAA )); clMediumBlue32', $FF0000CD )); clMediumOrchid32', $FFBA55D3 )); clMediumPurple32', $FF9370DB )); clMediumSeaGreen32', $FF3CB371 )); clMediumSlateBlue32', $FF7B68EE )); clMediumSpringGreen32', $FF00FA9A )); clMediumTurquoise32', $FF48D1CC )); clMediumVioletRed32', $FFC71585 )); clMidnightBlue32', $FF191970 )); clMintCream32', $FFF5FFFA )); clMistyRose32', $FFFFE4E1 )); clMoccasin32', $FFFFE4B5 )); clNavajoWhite32', $FFFFDEAD )); clOldLace32', $FFFDF5E6 )); clOliveDrab32', $FF6B8E23 )); clOrange32', $FFFFA500 )); clOrangeRed32', $FFFF4500 )); clOrchid32', $FFDA70D6 )); clPaleGoldenRod32', $FFEEE8AA )); clPaleGreen32', $FF98FB98 )); clPaleTurquoise32', $FFAFEEEE )); clPaleVioletred32', $FFDB7093 )); clPapayaWhip32', $FFFFEFD5 )); clPeachPuff32', $FFFFDAB9 )); clPeru32', $FFCD853F )); clPlum32', $FFDDA0DD )); clPowderBlue32', $FFB0E0E6 )); clRosyBrown32', $FFBC8F8F )); clRoyalBlue32', $FF4169E1 )); clSaddleBrown32', $FF8B4513 )); clSalmon32', $FFFA8072 )); clSandyBrown32', $FFF4A460 )); clSeaGreen32', $FF2E8B57 )); clSeaShell32', $FFFFF5EE )); clSienna32', $FFA0522D )); clSilver32', $FFC0C0C0 )); clSkyblue32', $FF87CEEB )); clSlateBlue32', $FF6A5ACD )); clSlateGray32', $FF708090 )); clSlateGrey32', $FF708090 )); clSnow32', $FFFFFAFA )); clSpringgreen32', $FF00FF7F )); clSteelblue32', $FF4682B4 )); clTan32', $FFD2B48C )); clThistle32', $FFD8BFD8 )); clTomato32', $FFFF6347 )); clTurquoise32', $FF40E0D0 )); clViolet32', $FFEE82EE )); clWheat32', $FFF5DEB3 )); clWhitesmoke32', $FFF5F5F5 )); clYellowgreen32', $FF9ACD32 )); clTrWhite32', $7FFFFFFF )); clTrBlack32', $7F000000 )); clTrRed32', $7FFF0000 )); clTrGreen32', $7F00FF00 )); clTrBlue32', $7F0000FF )); // Fixed point math constants FixedOne = $10000; FixedHalf = $7FFF; FixedPI = Round(PI * FixedOne); FixedToFloat = 1/FixedOne; Special Types ***************************************************** type Complex = record //for complex numbers X, Y : Float; end; type TComplex', 'record Form : ComplexForm; X : Float; Y : Float; R :' + Float; Theta : Float; end; type TVector = array of Float; TIntVector = array of Int; TCompVector = array of Complex; TBoolVector = array of Boolean; TStrVector = array of String; TMatrix = array of TVector; TIntMatrix = array of TIntVector; TCompMatrix = array of TCompVector; TBoolMatrix = array of TBoolVector; TStrMatrix = array of TStrVector; TByteArray = array[0..32767] of byte; ! THexArray = array [0..15] of Char; // = '0123456789ABCDEF'; TBitmapStyle = (bsNormal, bsCentered, bsStretched); T2StringArray = array of array of string; T2IntArray = array of array of Int; AddTypeS('INT_PTR', 'Int AddTypeS('LONG_PTR', 'Int AddTypeS('UINT_PTR', 'Cardinal AddTypeS('ULONG_PTR', 'Cardinal AddTypeS('DWORD_PTR', 'ULONG_PTR TIntDynArray', 'array of Int TCardinalDynArray', 'array of Cardinal TWordDynArray', 'array of Word TSmallIntDynArray', 'array of SmallInt TByteDynArray', 'array of Byte TShortIntDynArray', 'array of ShortInt TInt64DynArray', 'array of Int64 TLongWordDynArray', 'array of LongWord TSingleDynArray', 'array of Single TDoubleDynArray', 'array of Double TBooleanDynArray', 'array of Boolean TStringDynArray', 'array of string TWideStringDynArray', 'array of WideString TDynByteArray = array of Byte; TDynShortintArray = array of Shortint; TDynSmallintArray = array of Smallint; TDynWordArray = array of Word; TDynIntArray = array of Int; TDynLongintArray = array of Longint; TDynCardinalArray = array of Cardinal; TDynInt64Array = array of Int64; TDynExtendedArray = array of Extended; TDynDoubleArray = array of Double; TDynSingleArray = array of Single; TDynFloatArray = array of Float; TDynPointerArray = array of Pointer; TDynStringArray = array of string; TSynSearchOption = (ssoMatchCase, ssoWholeWord, ssoBackwards, ssoEntireScope, ssoSelectedOnly, ssoReplace, ssoReplaceAll, ssoPrompt); TSynSearchOptions = set of TSynSearchOption; TFloat = single Float = double /* Project:IFSI_WinForm1puzzle.pas BaseInclude RunTimeLib for maXbox *: pas_includebox.inc ---------------------------------------------------------------------------- Proc drawPolygon(vPoints: TXYVector; cFrm: TForm); Proc drawPlot(vPoints: TXYVector; cFrm: TForm; vcolor: Int); Proc SaveCanvas(vCanvas: TCanvas; FileName:Str); Proc SaveCanvas2(vCanvas: TCanvas; FileName:Str); Func CheckStringSum(vstring:Str): Int; Func HexToInt(HexNum:Str): LongInt; Func IntToBin(Int: Int):Str; Func BinToInt(Binary:Str): Int; Func HexToBin(HexNum:Str):Str; external2 Func BinToHex(Binary:Str):Str; Func IntToFloat(i: Int): double; Func AddThousandSeparator(S:Str; myChr: Char):Str; Func Max3(const X,Y,Z: Int): Int; Proc Swap(var X,Y: char); // faster without inline Proc ReverseString(var S:Str); Func CharToHexStr(Value: Char):Str; Func CharToUniCode(Value: Char):Str; Func Hex2Dec(Value: Str002): Byte; Func HexStrCodeToStr(Value:Str):Str; Func HexToStr(i: Int; value:Str):Str; Func UniCodeToStr(Value:Str):Str; Func CRC16(statement:Str):Str; Func SearchForSubstrings(aStrList: TStrings; aSearchStr1, aSearchStr2:Str):Str; Proc SearchAndReplace(aStrList: TStrings; aSearchStr, aNewStr:Str); Proc SearchAndCopy(aStrList: TStrings; aSearchStr, aNewStr:Str; offset: Int); Proc ExecuteCommand(executeFile, paramstring:Str); Proc ShellExecuteAndWait(executeFile, paramstring:Str); Func ExecConsoleApp(const AppName, Parameters:Str; AppOutput: TStrings): DWORD; Proc SearchAndOpenDoc(vfilenamepath:Str); Proc ShowInterfaces(myFile:Str); Func Fact2(av: Int): extended; Func BoolToStr(B:Bool):Str; Func GCD(x, y : LongInt) : LongInt; Func LCM(m,n: longint): longint; Func GetASCII:Str; Func GetItemHeight(Font: TFont): Int; Func myPlaySound(s: pchar; flag,syncflag: Int):Bool; Func myGetWindowsDirectory(lpBuffer: PChar; uSize: longword): longword; Func getHINSTANCE: longword; Func getHMODULE: longword; Func GetASCII:Str; Func ByteIsOk(const AByte:Str; var VB: Byte):Bool; Func WordIsOk(const AWord:Str; var VW: Word):Bool; Func TwentyFourBitValueIsOk(const AValue:Str; var VI: Int):Bool; Func LongIsOk(const ALong:Str; var VC:Card):Bool; Func SafeStr(const s:Str):Str; Func ExtractUrlPath(const FileName:Str):Str; Func ExtractUrlName(const FileName:Str):Str; Func IsInternet:Bool; Func RotateLeft1Bit_u32( Value: uint32): uint32; Proc LinearRegression(const KnownY:array of Double;const KnownX:array of Double;NData:Int;var LF:TStLinEst;ErrorStats:Bool); Proc getEnvironmentInfo; Proc AntiFreeze; Func GetCPUSpeed: Double; Func IsVirtualPcGuest :Bool; Func IsVmWareGuest :Bool; Proc StartSerialDialog; Func IsWoW64:Bool; Func IsWow64String(var s:Str):Bool; Proc StartThreadDemo; Func RGB(R,G,B: Byte): TColor; Func Sendln(amess:Str):Bool; Proc maXbox; Func AspectRatio(aWidth, aHeight: Int):Str; Func wget(aURL, afile:Str):Bool; Proc PrintList(Value: TStringList); Proc PrintImage(aValue: TBitmap; Style: TBitmapStyle); Proc getEnvironmentInfo; Proc AntiFreeze; Func getBitmap(apath:Str): TBitmap; Proc ShowMessageBig(const aText :Str); Func YesNoDialog(const ACaption, AMsg:Str):Bool; Proc SetArrayLength2String(arr: T2StringArray; asize1, asize2: Int); Proc SetArrayLength2Int(arr: T2IntArray; asize1, asize2: Int); //Func myStrToBytes(const Value:Str): TBytes; //Func myBytesToStr(const Value: TBytes):Str; Func SaveAsExcelFile(AGrid:TStringGrid;ASheetName,AFileName:str;open:boolean):Bool; Func getBitmap(apath:Str): TBitmap; Proc ShowMessageBig(const aText :Str); Func StrToBytes(const Value:Str): TBytes; Func BytesToStr(const Value: TBytes):Str; Func SaveAsExcelFile(AGrid: TStringGrid;ASheetName,AFileName:Str;open:boolean):Bool; Func ReverseDNSLookup(const IPAdrs:str;const DNSServer:str;Timeout,Retris:Int;var HostName:str):Bool; Func FindInPaths(const fileName, paths :Str) :Str; Proc initHexArray(var hexn: THexArray); Func josephusG(n,k: Int; var graphout:Str): Int; Func isPowerof2(num: int64):Bool; Func powerOf2(exponent: Int): int64; Func getBigPI:Str; Proc MakeSound(Frequency{Hz},Duration{mSec}:Int;Volume:TVolumeLevel;savefilePath:str); Func GetASCIILine:Str; Proc MakeComplexSound(N:Int{stream # to use};freqlist:TStrings;Duration{mSec}: Int; pinknoise:Bool; shape: Int; Volume: TVolumeLevel); Proc SetComplexSoundElements(freqedt,Phaseedt,AmpEdt,WaveGrp:Int); Proc AddComplexSoundObjectToList(newf,newp,newa,news:Int; freqlist: TStrings); Func mapfunc(ax, in_min, in_max, out_min, out_max: Int): Int; Func mapmax(ax, in_min, in_max, out_min, out_max: Int): Int; Func isKeypressed:Bool; Func Keypress:Bool; Proc StrSplitP(const Delimiter: Char; Input:Str; const Strings: TStrings); Func ReadReg(Base: HKEY; KeyName, ValueName:Str):Str; Func ReadRegistry(Base: HKEY; KeyName, ValueName:Str):Str; Func GetOSName:Str; Func GetOSVersion:Str; Func GetOSNumber:Str; Func getEnvironmentString:Str; Proc StrReplace(var Str:Str; Old, New:Str); Proc SendEmail(mFrom, mTo, mSubject, mBody, mAttachment: variant); Func getTeamViewerID:Str; Proc RecurseDirectory(Dir:str; IncludeSubs:boolean; callback:TFileCallbackProcedure); Proc RecurseDirectory2(Dir :Str; IncludeSubs :Bool); Proc WinInet_HttpGet(const Url:Str; Stream:TStream); Proc GetQrCode2(Width,Height: Word;Correct_Level:str;const Data:str;apath:str); Func StartSocketService:Bool; Proc StartSocketServiceForm; Func GetFileList(FileList: TStringlist; apath:Str): TStringlist; Func GetFileList1(apath:Str): TStringlist; Proc LetFileList(FileList: TStringlist; apath:Str); Proc StartWeb(aurl:Str); Func GetTodayFiles(startdir, amask:Str): TStringlist; Func PortTCPIsOpen(dwPort : Word; ipAddressStr:Str):Bool; Func JavahashCode(val:Str): Int; Proc PostKeyEx32(key: Word; const shift: TShiftState; specialkey:Bool); Proc SaveBytesToFile2(const Data: Sysutils.TBytes; const FileName:Str); Proc HideWindowForSeconds(secs: Int); {//3 seconds} Proc HideWindowForSeconds2(secs: Int; apphandle, aself: TForm); {//3 seconds} Proc ConvertToGray(Cnv: TCanvas); Func GetFileDate(aFile:str; aWithTime:Boolean):str; Proc ShowMemory; Func ShowMemory2:Str; Func getHostIP:Str; Proc ShowBitmap(bmap: TBitmap); Func GetOsVersionInfo: TOSVersionInfo; //thx to wischnewski Func CreateDBGridForm(dblist: TStringList): TListbox; Func isService:Bool; Func isApplication:Bool; Func isTerminalSession:Bool; Func SetPrivilege(privilegeName:Str; enable:Bool):Bool; Proc getScriptandRunAsk; Proc getScriptandRun(ascript:Str); Func VersionCheckAct:Str; Proc getBox(aurl, extension:Str); Func CheckBox:Str; Func isNTFS:Bool; //Proc doWebCamPic; Proc doWebCamPic(picname:Str); Func readm:Str; Proc getGEOMapandRunAsk; //APIKey needed Func GetMapX(C_form,apath:Str; const Data:Str):Bool; Proc GetGEOMap(C_form,apath:Str; const Data:Str); Func GetMapXGeoReverse(C_form:Str; const lat,long:Str):Str; //Func RoundTo(const AValue:Extended; const ADigit: TRoundToEXRangeExtended):Extended; Func GetGeocodeCoord(C_form:Str; const data:str; atxt:Bool):Str; Func GetGeoCoord(C_form:Str; const data:str; atxt:Bool):Str; ex.: writeln(GetGeoCoord('xml','church cefalu sicily',true)) Func DownloadFile(SourceFile, DestFile:Str):Bool; Func DownloadFileOpen(SourceFile, DestFile:Str):Bool; Func OpenMap(const Data:Str):Bool; Func GetGeoCode(C_form,apath:Str; const data:Str; sfile:Bool):Str; Func getFileCount(amask:Str): Int; Func CoordinateStr(Idx: Int; PosInSec: Double; PosLn: TNavPos):Str; Proc Debugln(DebugLOGFILE:Str; E:Str); Func IntToFloat(i: Int): double; Func AddThousandSeparator(S:Str; myChr: Char):Str; Func mymciSendString(cmd: PChar; ret: PChar; len: Int; callback: Int):Card; Func RoundTime(ADate:Str; Rounding: Int; bRound:Bool):Str; Func DynamicDllCallName(Dll:Str;const Name:Str;HasResult:Bool;var Returned:Card;const Parameters:array of Int):Bool; Func DynamicDllCall(Dll:Str;const Name:str;HasResult:Bool;var Returned:Card;const Parameters:array of Int):Bool; Func GetSpecialFolderID( const Path :Str) : Int; Func GetSpecialFolderPath2( FolderID : Int) :Str; End C:\maXbook\maxbox3\mX3999\maxbox3\source\IFSI_WinForm1puzzle.pas File loaded // News of 3.9.8 up Halt-Stop Program in Menu,WebServer2,Stop Event Recompile, Conversion Routines, Prebuild Forms, more RCData, DebugOutString CodeSearchEngine to search code patterns in /examples JvChart - TJvChart Component - 2009 Public MemoryLeakReport in ini-file (MEMORYREPORT=Y) PerlRegEx PCRE obj lib included, Perl & Python Syntax Editor, bitbox3 logic example TAdoQuery.SQL.Add() fixed, ShLwAPI extensions, Indy HTTPHeader Extensions DMath DLL included incl. Demos Interface Navigator menu/View/Intf Navigator Unit Explorer menu/Debug/Units Explorer EKON 16 Slides ..\maxbox3\docs\utils Excel Export maXcel Tutorial 19 WinCOM with Arduino Tutorial 20 RegEx Coding Script History to 9 Files WebServer light /Options/Addons/WebServer Full Text Finder, JVSimLogic Simulator Package Halt-Stop Program in Menu, WebServer2, Stop Event , Conversion Routines, Prebuild Forms, CodeSearch Halt-Stop Program in Menu, WebServer2, Stop Event Recompile, Conversion Routines, Prebuild Forms, more RCData, DebugOutString CodeSearchEngine to search code patterns in /examples JvChart - TJvChart Component - 2009 Public, mXGames, JvgXMLSerializer, TJvPaintFX Compress-Decompress Zip, Services Tutorial22, Synopse framework, PFDLib SynEdit API, Macro, Macro Recorder, DLL Spy, Configuration Tutorial IDE Reflection API, Session Service Shell S3 additional SynEdit API, isKeyPressed Routine,Bookmarks,OpenToolsAPI Catalog (OTAC) Class TMonitor, Configuration Tutorial maxbox_starter25.pdf, Chess.dll Game arduino map() function, PMRandom Generator StBarCode Lib, StreamReaderClass, BarCode Package, Astro Package more ShellAPI, add 32 more units, Simulated Annealing, GenAlgo REST Test Lib, Multilang Component, Forth Interpreter New Macros, Sendmail (instant email), DevCUnits, Tetris Addon DCOM, MDAC, MIDI, TLS support, Posmarks, Utils Addon Routines for LaTeX/PS, Utils Addon, Indy Package3, TAR Archive, @Callbacks Routines for LaTeX/PS, Utils Addon, Indy Package3, TAR Archive, @Callbacks First LCL of Lazarus, CmdLine API, ToDo List, 36 more Units preCompiled QRCode Service, add more CFunctions like CDateTime of Synapse Gamma Functions, IndyPackage4, HotLog Threadable, FormTemplateLibrary FTL Nonlinear regression, ADO Workbench Addon, Assign fixing, IntfNavigator fixing, Applet 30 more Units preCompiled, QRCode Indy Service, more CFunctions like CFill or SRand RestartDialog, RTF, SQL Scanner, RichEdit, 15 more Units Tool Section, SOAP Tester, Hot Log Logger2, TCPPortScan, 28 more Units BOLD Package, Indy Package5, maTRIx. MATHEMAX SPS Utils WDOS, Plc BitBus (PetriNet), 40 more units emax layers: system-package-component-unit-class-function-block HighPrecision Timers, Indy Package6, AutoDetect, UltraForms Reversi, GOL, bugfixing, 8 more units, Tutorial 24 Clean Code Tutorial 18_3 RGB LED, OpenGL Geometry, maxpix, statictext OpenGL Game Demo: ..Options/Add Ons/Reversi IBUtils Refactor, InterBase Package, DotNet Routines (JvExControls) add 31 units, mX4 Introduction Paper, more Socket&Streams, ShortString Routines 7% performance gain (hot spot profiling) PEP -Pascal Education Program , GSM Module, CGI, PHP Runner add 42 + 22 (64 units), memcached database, autobookmark, Alcinoe PAC, IPC Lib Orpheus PAC, AsyncFree Library advapi32 samples, FirebirdExp+MySQL units FBX Lib, psAPI, SMS Cell Module, OpenGL, Borland Tools, Zeus add routines in 3.9.7.5 097: Proc RIRegister_BarCodeScaner_Routines(S: TPSExec); 996: Proc RIRegister_DBCtrls_Routines(S: TPSExec); 069: Proc RIRegister_IdStrings_Routines(S: TPSExec); 516: Proc RIRegister_JclMultimedia_Routines(S: TPSExec); 215: Proc RIRegister_PNGLoader_Routines(S: TPSExec); 374: Proc RIRegister_SerDlgs_Routines(S: TPSExec); 777: Proc RIRegister_LinarBitmap_Routines(S: TPSExec); 1216 Proc RIRegistger_uPSI_KDialogs, TKBrowseFolderDialog; ///////////////////////// TestUnits ////////////////////////// Proc SelftestPEM; SelfTestCFundamentUtils; SelfTestCFileUtils; SelfTestCDateTime; SelfTestCTimer; SelfTestCRandom; SelftestAES; SelfTestASN1; SelfTestX509; TestDes:Bool; Test3Des:Bool; TestAes:Bool; SelfTestcTLSUtils; SelfTestCFundamentUtils; SelfTestcHTTPUtils SelfTestcXMLFunctions SelfTestHugeWord SelfTestRSA Test with e.g.: Assert(PathHasDriveLetter('A:'), 'PathHasDriveLetter Assert(WinPathToUnixPath('\c\d.f') = '/c/d.f', 'WinPathToUnixPath //Note: There's no need for installing a client certificate in the // webbrowser. The server asks the webbrowser to send a certificate but // if nothing is installed the software will work because the server // doesn't check to see if a client certificate was supplied. If you want you can install: file: c_cacert.p12 password: c_cakey TKObject = class(TObject) private FParent: TKObjectList; Proc SetParent(const Value: TKObjectList); protected FUpdateLock: Int; Proc CallBeforeUpdate; virtual; Proc CallAfterUpdate; virtual; Proc ParentChanged; virtual; public constructor Create; virtual; Proc Assign(ASource: TKObject); virtual; Func EqualProperties(AValue: TKObject):Bool; virtual; Proc LockUpdate; virtual; Proc UnLockUpdate; virtual; Func UpdateUnlocked:Bool; virtual; property Parent: TKObjectList read FParent write SetParent; end; TKObjectClass = class of TKObject; TKObjectList = class(TObjectList) protected FUpdateLock: Int; Proc CallBeforeUpdate; virtual; Proc CallAfterUpdate; virtual; public constructor Create; virtual; Func Add(AObject: TObject): Int; Proc Assign(ASource: TKObjectList); virtual; Func EqualProperties(AValue: TKObjectList):Bool; virtual; Proc Insert(Index: Int; AObject: TObject); Proc LockUpdate; virtual; Proc UnLockUpdate; virtual; Func UpdateUnlocked:Bool; virtual; end; TGraphicControl = class(TControl) private FCanvas: TCanvas; Proc WMPaint(var Message: TWMPaint); message WM_PAINT; protected Proc Paint; virtual; property Canvas: TCanvas read FCanvas; public constructor Create(AOwner: TComponent); override; destructor Destroy; override; end; TCustomControl = class(TWinControl) private FCanvas: TCanvas; Proc WMPaint(var Message: TWMPaint); message WM_PAINT; protected Proc Paint; virtual; Proc PaintWindow(DC: HDC); override; property Canvas: TCanvas read FCanvas; public constructor Create(AOwner: TComponent); override; destructor Destroy; override; end; RegisterPublishedProperties; ('ONCHANGE', 'TNotifyEvent', iptrw); ('ONCLICK', 'TNotifyEvent', iptrw); ('ONDBLCLICK', 'TNotifyEvent', iptrw); ('ONENTER', 'TNotifyEvent', iptrw); ('ONEXIT', 'TNotifyEvent', iptrw); ('ONKEYDOWN', 'TKeyEvent', iptrw); ('ONKEYPRESS', 'TKeyPressEvent', iptrw); ('ONMOUSEDOWN', 'TMouseEvent', iptrw); ('ONMOUSEMOVE', 'TMouseMoveEvent', iptrw); ('ONMOUSEUP', 'TMouseEvent', iptrw); //************************************************************************ // To stop the while loop, click on Options/Show Include (boolean switch)! Control a loop in a script with a form event: IncludeON; //control the while loop while maxform1.ShowInclude1.checked do begin //menu event Options/Show Include repeat {for it:= 1 to n do} until is keypressed //keypress in output window below (memo2) include example: {$I .\web\mX47520\flcMaths.inc} //---------------------------------------------------------------------------- //**************mX4 ini-file Configuration************************************** //------------------------------------------------------------------------------ using config file maxboxdef.ini menu/Help/Config File //*** Definitions for maXbox mX47 *** [FORM] LAST_FILE=E:\maXbox\maxbox3\examples\140_drive_typedemo.txt //history up to 10 files FONTSIZE=14 EXTENSION=txt SCREENX=1386 SCREENY=1077 MEMHEIGHT=350 PRINTFONT=Courier New //GUI Settings FONTNAME= Courier New //GUI Settings for editor LINENUMBERS=Y //line numbers at gutter in editor at left side EXCEPTIONLOG=Y //store excepts+success in 2 log files see below! –menu Debug/Show Last Exceptions EXECUTESHELL=Y //prevents execution of ExecuteShell() or ExecuteCommand() BOOTSCRIPT=Y //enabling load a boot script MEMORYREPORT=Y //shows memory report on closing maXbox MACRO=Y //expand macros (see below) incode e.g. #path:C:\maXbox\works2021\maxbox4\docs\ NAVIGATOR=N //shows Func list at the right side of editor NAVWIDTH=350 //width of the right side interface list >=200 AUTOBOOKMARK=Y //sets on all functions a bookmark to jump DEP=Y // activate Data Execution Prevention INDENT=Y //shows indent vertical lines! (prepare for code folding) stop it with=N [WEB] IPPORT=8080 //for internal webserver – menu /Options/Add Ons/WebServer IPHOST=192.168.1.53 //run as Administrator! ROOTCERT=filepathY SCERT=filepathY RSAKEY=filepathY VERSIONCHECK=Y //set to =N for better starttime and less web traffic! APP=C:\WINDOWS\System32\calc.exe //set path to an external app MYSCRIPT=E:\maxbox4\mXGit39991\examples\330_myclock.txt //start script of menu /View/MyScript using Logfile: maxboxlog.log , Exceptionlogfile: maxboxerrorlog.txt Also possible to set report memory in script to override ini setting Proc Set_ReportMemoryLeaksOnShutdown(abo:Bool) After Change the ini file you can reload the file with ../Help/Config Update //---------------------------------------------------------------------------- //**************mX4 maildef.ini ini-file Configuration********************* //---------------------------------------------------------------------------- //*** Definitions for maXMail *** //sendemail, HOST=mail.hover.com, PORT=465 (SSL) [MAXMAIL] HOST=getmail.softwareschule.ch USER=mailusername PASS=password PORT=110 SSL=Y BODY=Y LAST=5 Command Line Interface CLI -f-s-m-r-t as ParamStr(2); compile with -c ----------------------------------------------------------- Ex.: S_ShellExecute(ExtractFilePath(ParamStr(0))+'maXbox4.exe', myscript + ParamStr(2),seCmdOpen) Ex.: C:\maXbox\mx4\mx4_v38\mx4\source>maxbox4_7.exe -c examples\440_xml_tutor2.txt if (ParamStr(2) = '-f') then begin Application.BringToFront; //maximize? //maxform1.Show; end; if (ParamStr(2) = '-s') then begin maxform1.Show; end; Compile1Click(self); maxform1.memo2.lines.add('CLI Console Call Log at: ' +DateTimeToStr(Now)); hlog.Add('>>>> Start Console Call Exe: {App_name} v{App_ver}{80@}{now}'); if (ParamStr(2) = 'm') then begin //Compile1Click(self);! Application.Minimize; end; if (ParamStr(2) = 'r') then begin Application.run; end; if (ParamStr(2) = '-t') then begin //new4 Application.terminate; end; ---------------------------------------------------------- S_ShellExecute(ExePath+'maXbox4.exe', ExePath+'examples\773_streamfibonacci_first.txt t',secmdopen); -terminate ADO Connection String: Provider=MSDASQL;DSN=mx3base;Uid=sa;Pwd=admin \452_dbtreeview2access.txt \452_dbtrv3accessUML2.txt program TestDbTreeViewMainForm2_ACCESS; ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' +Exepath+'\examples\detail.mdb;Persist Security Info=False'; Provider=MSDASQL.1;Persist Security Info=False;ExtendedProperties="DSN=FB_EMPLOYEE;Driver=Firebird/InterBase(r) driver;Dbname=C:\maXbook\maxbox3\examples\EMPLOYEE.FDB;CHARSET=NONE;UID=SYSDBA;Role=Admin;"' Func CreateAccessDatabase(FileName:Str):Str; var cat: OLEVariant; begin Result:= ''; try cat:= CreateOleObject('ADOX.Catalog'); cat.Create('Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' + FileName + '; cat:= NULL; except writeln(ExceptionToString(ExceptionType, ExceptionParam)); writeln('ADOX.Catalog create failed '); //on e: Exception do Result := e.message; end; end; function CreateAccessDatabase64(FileName: string): string; var cat: OLEVariant; begin Result := ''; try cat:= CreateOleObject('ADOX.Catalog'); //cat.Create('Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' + FileName + ';'); old 32 bit cat.Create('Provider=Microsoft.ACE.OLEDB.12.0;Data Source=' + FileName + ';'); //64-bit cat:= NULL; except writeln(ExceptionToString(ExceptionType, ExceptionParam)); writeln('ADOX.Catalog create failed '); //on e: Exception do Result := e.message; end; end; ADOCommand1.CommandText:= 'CREATE TABLE TABLE1 (' +'ID AUTOINCREMENT,' +'FirstName varchar(255) NOT NULL,' +'LastName varchar(255),' +'Age int )'; OpenSSL Lib: unit ssl_openssl_lib; {$IFDEF CIL} const {$IFDEF LINUX} DLLSSLName = 'libssl.so'; DLLUtilName = 'libcrypto.so'; {$ELSE} DLLSSLName = 'ssleay32.dll'; DLLUtilName = 'libeay32.dll'; {$ENDIF} {$ELSE} var {$IFNDEF MSWINDOWS} {$IFDEF DARWIN} DLLSSLName:Str = 'libssl.dylib'; DLLUtilName:Str = 'libcrypto.dylib'; {$ELSE} DLLSSLName:Str = 'libssl.so'; DLLUtilName:Str = 'libcrypto.so'; {$ENDIF} {$ELSE} DLLSSLName:Str = 'ssleay32.dll'; DLLSSLName2:Str = 'libssl32.dll'; DLLUtilName:Str = 'libeay32.dll'; {$ENDIF} {$ENDIF} Proc getHTTP_PNG(vimage: TImage; vURL:Str); var pngStream: TMemoryStream; begin with TLinearBitmap.Create do try pngStream:= TMemoryStream.Create; try HTTPget(vURL, pngStream) except showmessage(E.message) end pngStream.Position:= 0; LoadFromStream2(pngstream,'JPG'); vimage.Picture:= NIL; AssignTo(vimage.picture); //SaveToFile(ExePath+'mX4_open.png'); finally Dispose; Free; pngStream.Free; end; end; Proc ByteArray2Stream(ASource: TBytes; ADest: TStream); var i: Integer; begin for i:= 0 to Length(ASource)-1 do ADest.Write(chr(ASource[i]), 1); end; buffstr:Str; ADest:= TMemoryStream.create; ByteArray2Stream([0,23,3,234,8,45,255], aDest); SetLength(buffstr,1); ADest.Position:= 0; for it:= 0 to adest.size-1 do begin adest.read(buffstr, 1); writeln('decode: '+itoa(ord(buffstr[1]))); end; aDest.free; Proc SearchByteSeq(AHexString:Str; adata: RawByteString); var dataToSearch: RawByteString; nextValueStr:Str; nextValueByte: integer; //byte; errorPos, index: integer; begin repeat AHexString:= Trim(AHexString); nextValueStr:= copy(AHexString,1,2); delete(AHexString,1,2); val('$'+nextValueStr, nextValueByte, errorPos); //Func ValBinary( const S :Str; var code : Int) : longint; writeln(itoa(errorpos)) if errorPos = 0 then dataToSearch:= datatoSearch + chr(nextValueByte); until AHexString = ''; if length(dataToSearch) > 0 then begin index:= pos(dataToSearch, adata)-1; if index = 0 then writeln('Data not found') else writeln('Data found at position '+itoa( index)); end; end; Pictures from: http://www.softwareschule.ch/images/atomimage1.png http://www.softwareschule.ch/images/atomimage2.png http://www.softwareschule.ch/images/maxboxlogo.bmp http://www.softwareschule.ch/images/maxlindau2.png http://www.softwareschule.ch/images/citymax.bmp http://www.softwareschule.ch/images/oposlogo.gif //---------------------------------------------------------------------------- //**************mX4 Macro Tags ************************************************ //-------------------------------------------------------- --------------------- asm #name #hostmAPSN2APSN211le, #head,max: APSN21: 04.01.2014 19:05:50 E:\maxbox\docs\maxbox_extract_funclist399.txt end //Tag Macros in ini-file configure asm #name, #date, #host, #path, #file, #head, #sign #tech #net end //Tag Macros 10188: SearchAndCopy(memo1.lines, '#name', getUserNameWin, 11); 10189: SearchAndCopy(memo1.lines, '#date', datetimetoStr(now), 11); 10190: SearchAndCopy(memo1.lines, '#host', getComputernameWin, 11); 10191: SearchAndCopy(memo1.lines, '#path', fpath, 11); 10192: SearchAndCopy(memo1.lines, '#file', fname, 11); 10199 SearchAndCopy(memo1.lines, '#fils', fname +' '+SHA1(Act_Filename), 11); 10193: SearchAndCopy(memo1.lines, '#locs', intToStr(getCodeEnd), 11); 10194: SearchAndCopy(memo1.lines, '#perf', perftime, 11); 10195: SearchAndCopy(memo1.lines, '#sign', Format('%s: %s: %s', [getUserNameWin, getComputernameWin, datetimetoStr(now), 10196: SearchAndCopy(memo1.lines, '#head',Format('%s: %s: %s %s ', 10197: [getUserNameWin, getComputernameWin, datetimetoStr(now), Act_Filename]),11); [getUserNameWin, getComputernameWin, datetimetoStr(now), Act_Filename]),11); 10198: SearchAndCopy(memo1.lines, '#tech',Format('perf: %s threads: %d %s %s', [perftime numprocessthreads,getIPAddress(getComputerNameWin), timetoStr(time), mbversion]),11); 10298: SearchAndCopy(memo1.lines, '#net',Format('DNS: %s; local IPs: %s; local IP: %s', [getDNS, GetLocalIPs, getIPAddress(getComputerNameWin)]), 10); //#tech!perf: 0:0:29.297 threads: 3 192.168.174.1 19:26:30 //#tech!perf: 0:0:2.116 threads: 15 192.168.56.1 14:40:27 4.2.5.10 //Replace Macros SearchAndCopy(memo1.lines, ' timet14:40:27oStr(time), 6); SearchAndCopy(memo1.lines, 'atetoS17/02/2017tr(date), 6); SearchAndCopy(memo1.lines, 'C:\maXbox\maxbox3\maxbox3\maXbox3\docs\ SearchAndCopy(memo1.lines, 'C:\maXbox\maxbox3\maxbox3\maXbox3\ SearchAndCopy(memo1.lines, 'maxbox_functions.txt SearchAndCopy(memo1.lines, 'C:\maXbox\maxbox3\maxbox3\maXbox3\Source ref: netcologne.dl.sourceforge.net/project/maxbox/maxbox3.zip SearchAndCopy(memo1.lines,'#tech'perf:0:0:2.116 threads: 15 192.168.56.1 14:40:27 4.2.5.10 [perftime,numprocessthreads,getIPAddress(getComputerNameWin),timetoStr(time),mbversion]), 11); //#tech!perf: 0:0:2.116 threads: 15 192.168.56.1 14:40:27 4.2.5.10 SearchAndCopy(memo1.lines, 'maxbox_extract_funclist399.txt SearchAndCopy(memo1.lines, 'maxbox_extract_funclist476.txt //---------------------------------------------------------------------------- //**************mX4 ToDo List Tags ../Help/ToDo List************************** //-------------------------------------------------------- ------------------- while I < sl.Count do begin // if MatchesMask(sl[I], '*/? TODO ([a-z0-9_]*#[1-9]#)*:*') then if MatchesMask(sl[I], '*/? TODO (?*#?#)*:*') then BreakupToDo(Filename, sl, I, 'TODO', True, True) // full info TODO else if MatchesMask(sl[I], '*/? DONE (?*#?#)*:*') then BreakupToDo(Filename, sl, I, 'DONE', True, True) // full info DONE else if MatchesMask(sl[I], '*/? TODO (#?#)*:*') then BreakupToDo(Filename, sl, I, 'TODO', False, True) //only priority info TODO else if MatchesMask(sl[I], '*/? DONE (#?#)*:*') then BreakupToDo(Filename, sl, I, 'DONE', False, True) //only priority info DONE else if MatchesMask(sl[I], '*/?*TODO*:*') then BreakupToDo(Filename, sl, I, 'TODO', False, False) // custom TODO else if MatchesMask(sl[I], '*/?*DONE*:*') then BreakupToDo(Filename, sl, I, 'DONE', False, False); // custom DONE Inc(I); end; //---------------------------------------------------------------------------- //**************mX4 Public Tools API ****************************************** //------------------------------------------------------------------------------ file : unit uPSI_fMain.pas; {$OTAP} Open Tools API Catalog // Those functions concern the editor and preprocessor, all of the IDE Example: Call it with maxform1.Info1Click(self) Note: Call all Methods with maxForm1., e.g.: maxForm1.ShellStyle1Click(self); Proc SIRegister_fMain(CL: TPSPascalCompiler); begin Const('BYTECODE','String 'bytecode.txt' Const('PSTEXT','String PS Scriptfiles (*.txt)|*.TXT)' Const('PSMODEL','String PS Modelfiles (*.uc)|*.UC Const('PSPASCAL','String PS Pascalfiles (*.pas)|*.PAS Const('PSINC','String PS Includes (*.inc)|*.INC Const('DEFFILENAME','String 'firstdemo.txt Const('DEFINIFILE','String 'maxboxdef.ini Const('EXCEPTLOGFILE','String 'maxboxerrorlog.txt Const('ALLFUNCTIONSLIST','String 'upsi_allfunctionslist.txt Const('ALLFUNCTIONSLISTPDF','String 'maxbox_functions_all.pdf Const('ALLOBJECTSLIST','String 'docs\VCL.pdf Const('ALLRESOURCELIST','String 'docs\upsi_allresourcelist.txt Const('ALLUNITLIST','String 'docs\maxbox3_9.xml; Const('INCLUDEBOX','String 'pas_includebox.inc Const('BOOTSCRIPT','String 'maxbootscript.txt Const('MBVERSION','String '4.7.6.20 Const('VERSION','String'4.7.6.20 Const('MBVER','String '476 Const('MBVERI','Int'(476); Const('MBVERIALL','Int'(47620); Const('EXENAME','String 'maXbox4.exe Const('MXSITE','String 'http://www.softwareschule.ch/maxbox.htm Const('MXVERSIONFILE','String 'http://www.softwareschule.ch/maxvfile.txt Const('MXVERSIONFILE2','String 'http://www.softwareschule.ch/maxvfile2.txt Const('MXINTERNETCHECK','String 'www.ask.com Const('MXMAIL','String 'max@kleiner.com Const('TAB',Char #$09); Const('CODECOMPLETION','String 'bds_delphi.dci SIRegister_TMaxForm1(CL); end; with FindClass('TForm'),'TMaxForm1') do begin memo2', 'TMemo', iptrw); memo1', 'TSynMemo', iptrw); CB1SCList', 'TComboBox', iptrw); mxNavigator', 'TComboBox', iptrw); IPHost', 'string', iptrw); IPPort', 'Int', iptrw); COMPort', 'Int', iptrw); //3.9.6.4 Splitter1', 'TSplitter', iptrw); PSScript', 'TPSScript', iptrw); PS3DllPlugin', 'TPSDllPlugin', iptrw); MainMenu1', 'TMainMenu', iptrw); Program1', 'TMenuItem', iptrw); Compile1', 'TMenuItem', iptrw); Files1', 'TMenuItem', iptrw); open1', 'TMenuItem', iptrw); Save2', 'TMenuItem', iptrw); Options1', 'TMenuItem', iptrw); Savebefore1', 'TMenuItem', iptrw); Largefont1', 'TMenuItem', iptrw); sBytecode1', 'TMenuItem', iptrw); Saveas3', 'TMenuItem', iptrw); Clear1', 'TMenuItem', iptrw); Slinenumbers1', 'TMenuItem', iptrw); About1', 'TMenuItem', iptrw); Search1', 'TMenuItem', iptrw); SynPasSyn1', 'TSynPasSyn', iptrw); memo1', 'TSynMemo', iptrw); SynEditSearch1', 'TSynEditSearch', iptrw); WordWrap1', 'TMenuItem', iptrw); XPManifest1', 'TXPManifest', iptrw); SearchNext1', 'TMenuItem', iptrw); Replace1', 'TMenuItem', iptrw); PSImport_Controls1', 'TPSImport_Controls', iptrw); PSImport_Classes1', 'TPSImport_Classes', iptrw); ShowInclude1', 'TMenuItem', iptrw); SynEditPrint1', 'TSynEditPrint', iptrw); Printout1', 'TMenuItem', iptrw); mnPrintColors1', 'TMenuItem', iptrw); dlgFilePrint', 'TPrintDialog', iptrw); dlgPrintFont1', 'TFontDialog', iptrw); mnuPrintFont1', 'TMenuItem', iptrw); Include1', 'TMenuItem', iptrw); CodeCompletionList1', 'TMenuItem', iptrw); IncludeList1', 'TMenuItem', iptrw); ImageList1', 'TImageList', iptrw); ImageList2', 'TImageList', iptrw); CoolBar1', 'TCoolBar', iptrw); ToolBar1', 'TToolBar', iptrw); tbtnLoad', 'TToolButton', iptrw); ToolButton2', 'TToolButton', iptrw); tbtnFind', 'TToolButton', iptrw); tbtnCompile', 'TToolButton', iptrw); tbtnTrans', 'TToolButton', iptrw); tbtnUseCase', 'TToolButton', iptrw); //3.8 toolbtnTutorial', 'TToolButton', iptrw); tbtn6res', 'TToolButton', iptrw); ToolButton5', 'TToolButton', iptrw); 'ToolButton1', 'TToolButton', iptrw); ToolButton3', 'TToolButton', iptrw); 'statusBar1', 'TStatusBar', iptrw); SaveOutput1', 'TMenuItem', iptrw); 'ExportClipboard1', 'TMenuItem', iptrw); Close1', 'TMenuItem', iptrw); 'Manual1', 'TMenuItem', iptrw); About2', 'TMenuItem', iptrw); 'loadLastfile1', 'TMenuItem', iptrw); imglogo', 'TImage', iptrw); 'cedebug', 'TPSScriptDebugger', iptrw); debugPopupMenu1', 'TPopupMenu', iptrw); BreakPointMenu', 'TMenuItem', iptrw); Decompile1', 'TMenuItem', iptrw); StepInto1', 'TMenuItem', iptrw); StepOut1', 'TMenuItem', iptrw); Reset1', 'TMenuItem', iptrw); DebugRun1', 'TMenuItem', iptrw); PSImport_ComObj1', 'TPSImport_ComObj', iptrw); PSImport_StdCtrls1', 'TPSImport_StdCtrls', iptrw); PSImport_Forms1', 'TPSImport_Forms', iptrw); PSImport_DateUtils1', 'TPSImport_DateUtils', iptrw); tutorial4', 'TMenuItem', iptrw); ExporttoClipboard1', 'TMenuItem', iptrw); ImportfromClipboard1', 'TMenuItem', iptrw); N4','TMenuItem', iptrw); N5', 'TMenuItem', iptrw);N6', 'TMenuItem', iptrw); ImportfromClipboard2', 'TMenuItem', iptrw); tutorial1', 'TMenuItem', iptrw); N7', 'TMenuItem', iptrw); ShowSpecChars1', 'TMenuItem', iptrw); OpenDirectory1', 'TMenuItem', iptrw); procMess', 'TMenuItem', iptrw); tbtnUseCase', 'TToolButton', iptrw); ToolButton7', 'TToolButton', iptrw); EditFont1', 'TMenuItem', iptrw); UseCase1', 'TMenuItem', iptrw); tutorial21', 'TMenuItem', iptrw); OpenUseCase1', 'TMenuItem', iptrw); PSImport_DB1', 'TPSImport_DB', iptrw); tutorial31', 'TMenuItem', iptrw); SynHTMLSyn1', 'TSynHTMLSyn', iptrw); HTMLSyntax1', 'TMenuItem', iptrw); ShowInterfaces1', 'TMenuItem', iptrw); Tutorial5', 'TMenuItem', iptrw); AllFunctionsList1', 'TMenuItem', iptrw); ShowLastException1', 'TMenuItem', iptrw); PlayMP31', 'TMenuItem', iptrw); SynTeXSyn1', 'TSynTeXSyn', iptrw); texSyntax1', 'TMenuItem', iptrw); N8', 'TMenuItem', iptrw); GetEMails1', 'TMenuItem', iptrw); SynCppSyn1', 'TSynCppSyn', iptrw); CSyntax1', 'TMenuItem', iptrw); Tutorial6', 'TMenuItem', iptrw); New1', 'TMenuItem', iptrw); AllObjectsList1', 'TMenuItem', iptrw); LoadBytecode1', 'TMenuItem', iptrw); CipherFile1', 'TMenuItem', iptrw); N9', 'TMenuItem', iptrw); 'N10', 'TMenuItem', iptrw); Tutorial11', 'TMenuItem', iptrw); Tutorial71', 'TMenuItem', iptrw); UpdateService1', 'TMenuItem', iptrw); PascalSchool1', 'TMenuItem', iptrw); Tutorial81', 'TMenuItem', iptrw); DelphiSite1', 'TMenuItem', iptrw); Output1', 'TMenuItem', iptrw); TerminalStyle1', 'TMenuItem', iptrw); ReadOnly1', 'TMenuItem', iptrw); ShellStyle1', 'TMenuItem', iptrw); BigScreen1', 'TMenuItem', iptrw); Tutorial91', 'TMenuItem', iptrw); SaveOutput2', 'TMenuItem', iptrw); N11', 'TMenuItem', iptrw); SaveScreenshot', 'TMenuItem', iptrw); Tutorial101', 'TMenuItem', iptrw); SQLSyntax1', 'TMenuItem', iptrw); SynSQLSyn1', 'TSynSQLSyn', iptrw); Console1', 'TMenuItem', iptrw); SynXMLSyn1', 'TSynXMLSyn', iptrw); XMLSyntax1', 'TMenuItem', iptrw); ComponentCount1', 'TMenuItem', iptrw); NewInstance1', 'TMenuItem', iptrw); toolbtnTutorial', 'TToolButton', iptrw); Memory1', 'TMenuItem', iptrw); SynJavaSyn1', 'TSynJavaSyn', iptrw); JavaSyntax1', 'TMenuItem', iptrw); SyntaxCheck1', 'TMenuItem', iptrw); Tutorial10Statistics1', 'TMenuItem', iptrw); ScriptExplorer1', 'TMenuItem', iptrw); FormOutput1', 'TMenuItem', iptrw); ArduinoDump1', 'TMenuItem', iptrw); AndroidDump1', 'TMenuItem', iptrw); GotoEnd1', 'TMenuItem', iptrw); AllResourceList1', 'TMenuItem', iptrw); ToolButton4', 'TToolButton', iptrw); tbtn6res', 'TToolButton', iptrw); Tutorial11Forms1', 'TMenuItem', iptrw); Tutorial12SQL1', 'TMenuItem', iptrw); ResourceExplore1', 'TMenuItem', iptrw); Info1', 'TMenuItem', iptrw); N12', 'TMenuItem', iptrw); CryptoBox1', 'TMenuItem', iptrw); Tutorial13Ciphering1', 'TMenuItem', iptrw); CipherFile2', 'TMenuItem', iptrw); N13', 'TMenuItem', iptrw); ModulesCount1', 'TMenuItem', iptrw); AddOns2', 'TMenuItem', iptrw); N4GewinntGame1', 'TMenuItem', iptrw); DocuforAddOns1', 'TMenuItem', iptrw); Tutorial14Async1', 'TMenuItem', iptrw); Lessons15Review1', 'TMenuItem', iptrw); SynPHPSyn1', 'TSynPHPSyn', iptrw); PHPSyntax1', 'TMenuItem', iptrw); Breakpoint1', 'TMenuItem', iptrw); SerialRS2321', 'TMenuItem', iptrw); N14', 'TMenuItem', iptrw); SynCSSyn1', 'TSynCSSyn', iptrw); CSyntax2', 'TMenuItem', iptrw); Calculator1', 'TMenuItem', iptrw); tbtnSerial', 'TToolButton', iptrw); ToolButton8', 'TToolButton', iptrw); Tutorial151', 'TMenuItem', iptrw); N15', 'TMenuItem', iptrw); N16', 'TMenuItem', iptrw); ControlBar1', 'TControlBar', iptrw); ToolBar2', 'TToolBar', iptrw); BtnOpen', 'TToolButton', iptrw); BtnSave', 'TToolButton', iptrw); BtnPrint', 'TToolButton', iptrw); BtnColors', 'TToolButton', iptrw); btnClassReport', 'TToolButton', iptrw); BtnRotateRight', 'TToolButton', iptrw); BtnFullSize', 'TToolButton', iptrw); BtnFitToWindowSize', 'TToolButton', iptrw); BtnZoomMinus', 'TToolButton', iptrw); BtnZoomPlus', 'TToolButton', iptrw); Panel1', 'TPanel', iptrw); LabelBrettgroesse', 'TLabel', iptrw); CB1SCList', 'TComboBox', iptrw); ImageListNormal', 'TImageList', iptrw); spbtnexplore', 'TSpeedButton', iptrw); spbtnexample', 'TSpeedButton', iptrw); spbsaveas', 'TSpeedButton', iptrw); imglogobox', 'TImage', iptrw); EnlargeFont1', 'TMenuItem', iptrw); EnlargeFont2', 'TMenuItem', iptrw); ShrinkFont1', 'TMenuItem', iptrw); ThreadDemo1', 'TMenuItem', iptrw); HEXEditor1', 'TMenuItem', iptrw); HEXView1', 'TMenuItem', iptrw); HEXInspect1', 'TMenuItem', iptrw); SynExporterHTML1', 'TSynExporterHTML', iptrw); ExporttoHTML1', 'TMenuItem', iptrw); ClassCount1', 'TMenuItem', iptrw); HTMLOutput1', 'TMenuItem', iptrw); HEXEditor2', 'TMenuItem', iptrw); Minesweeper1', 'TMenuItem', iptrw); N17', 'TMenuItem', iptrw); PicturePuzzle1', 'TMenuItem', iptrw); sbvclhelp', 'TSpeedButton', iptrw); DependencyWalker1', 'TMenuItem', iptrw); WebScanner1', 'TMenuItem', iptrw); View1', 'TMenuItem', iptrw); mnToolbar1', 'TMenuItem', iptrw); mnStatusbar2', 'TMenuItem', iptrw); mnConsole2', 'TMenuItem', iptrw); mnCoolbar2', 'TMenuItem', iptrw); mnSplitter2', 'TMenuItem', iptrw); WebServer1', 'TMenuItem', iptrw); Tutorial17Server1', 'TMenuItem', iptrw); Tutorial18Arduino1', 'TMenuItem', iptrw); SynPerlSyn1', 'TSynPerlSyn', iptrw); PerlSyntax1', 'TMenuItem', iptrw); SynPythonSyn1', 'TSynPythonSyn', iptrw); PythonSyntax1', 'TMenuItem', iptrw); DMathLibrary1', 'TMenuItem', iptrw); IntfNavigator1', 'TMenuItem', iptrw); EnlargeFontConsole1', 'TMenuItem', iptrw); ShrinkFontConsole1', 'TMenuItem', iptrw); SetInterfaceList1', 'TMenuItem', iptrw); popintfList', 'TPopupMenu', iptrw); intfAdd1', 'TMenuItem', iptrw); intfDelete1', 'TMenuItem', iptrw); intfRefactor1', 'TMenuItem', iptrw); Defactor1', 'TMenuItem', iptrw); Tutorial19COMArduino1', 'TMenuItem', iptrw); Tutorial20Regex', 'TMenuItem', iptrw); N18', 'TMenuItem', iptrw); ManualE1', 'TMenuItem', iptrw); FullTextFinder1', 'TMenuItem', iptrw); Move1', 'TMenuItem', iptrw); FractalDemo1', 'TMenuItem', iptrw); Tutorial21Android1', 'TMenuItem', iptrw); Tutorial0Function1', 'TMenuItem', iptrw); SimuLogBox1', 'TMenuItem', iptrw); OpenExamples1', 'TMenuItem', iptrw); SynJScriptSyn1', 'TSynJScriptSyn', iptrw); JavaScriptSyntax1', 'TMenuItem', iptrw); Halt1', 'TMenuItem', iptrw); CodeSearch1', 'TMenuItem', iptrw); SynRubySyn1', 'TSynRubySyn', iptrw); RubySyntax1', 'TMenuItem', iptrw); Undo1', 'TMenuItem', iptrw); SynUNIXShellScriptSyn1', 'TSynUNIXShellScriptSyn', iptrw); LinuxShellScript1', 'TMenuItem', iptrw); Rename1', 'TMenuItem', iptrw); spdcodesearch', 'TSpeedButton', iptrw); Preview1', 'TMenuItem', iptrw); Tutorial22Services1', 'TMenuItem', iptrw); Tutorial23RealTime1', 'TMenuItem', iptrw); Configuration1', 'TMenuItem', iptrw); MP3Player1', 'TMenuItem', iptrw); DLLSpy1', 'TMenuItem', iptrw); SynURIOpener1', 'TSynURIOpener', iptrw); SynURISyn1', 'TSynURISyn', iptrw); URILinksClicks1', 'TMenuItem', iptrw); EditReplace1', 'TMenuItem', iptrw); GotoLine1', 'TMenuItem', iptrw); ActiveLineColor1', 'TMenuItem', iptrw); ConfigFile1', 'TMenuItem', iptrw); Sort1Intflist', 'TMenuItem', iptrw); Redo1', 'TMenuItem', iptrw); Tutorial24CleanCode1', 'TMenuItem', iptrw); Tutorial25Configuration1', 'TMenuItem', iptrw); IndentSelection1', 'TMenuItem', iptrw); UnindentSection1', 'TMenuItem', iptrw); SkyStyle1', 'TMenuItem', iptrw); N19', 'TMenuItem', iptrw); CountWords1', 'TMenuItem', iptrw); imbookmarkimages', 'TImageList', iptrw); Bookmark11', 'TMenuItem', iptrw); N20', 'TMenuItem', iptrw); Bookmark21', 'TMenuItem', iptrw); Bookmark31', 'TMenuItem', iptrw); Bookmark41', 'TMenuItem', iptrw); SynMultiSyn1', 'TSynMultiSyn', iptrw); Proc IFPS3ClassesPlugin1CompImport( Sender : TObject; x : TPSPascalCompiler) Proc IFPS3ClassesPlugin1ExecImport(Sender:TObject;Exec:TPSExec;x:TPSRuntimeClassImporter); Proc PSScriptCompile( Sender : TPSScript) Proc Compile1Click( Sender : TObject) Proc PSScriptExecute( Sender : TPSScript) Proc open1Click( Sender : TObject) Proc Save2Click( Sender : TObject) Proc Savebefore1Click( Sender : TObject) Proc Largefont1Click( Sender : TObject) Proc FormActivate( Sender : TObject) Proc SBytecode1Click( Sender : TObject) Proc FormKeyPress( Sender : TObject; var Key : Char) Proc Saveas3Click( Sender : TObject) Proc Clear1Click( Sender : TObject) Proc Slinenumbers1Click( Sender : TObject) Proc About1Click( Sender : TObject) Proc Search1Click( Sender : TObject) Proc FormCreate( Sender : TObject) Proc Memo1ReplaceText(Sender:TObject;const ASearch,AReplace:str;Line,Column:Int; var Action : TSynReplaceAction) Proc Memo1StatusChange( Sender : TObject; Changes : TSynStatusChanges) Proc WordWrap1Click( Sender : TObject) Proc SearchNext1Click( Sender : TObject) Proc Replace1Click( Sender : TObject) Func PSScriptNeedFile(Sdr:TObject;const OrginFileName:Str;var FName,Output:Str):Bool; Proc ShowInclude1Click( Sender : TObject) Proc Printout1Click( Sender : TObject) Proc mnuPrintFont1Click( Sender : TObject) Proc Include1Click( Sender : TObject) Proc FormDestroy( Sender : TObject) Proc FormClose( Sender : TObject; var Action : TCloseAction) Proc UpdateView1Click( Sender : TObject) Proc CodeCompletionList1Click( Sender : TObject) Proc SaveOutput1Click( Sender : TObject) Proc ExportClipboard1Click( Sender : TObject) Proc Close1Click( Sender : TObject) Proc Manual1Click( Sender : TObject) Proc LoadLastFile1Click( Sender : TObject) Proc Memo1Change( Sender : TObject) Proc Decompile1Click( Sender : TObject) Proc StepInto1Click( Sender : TObject) Proc StepOut1Click( Sender : TObject) Proc Reset1Click( Sender : TObject) Proc cedebugAfterExecute( Sender : TPSScript) Proc cedebugBreakpoint(Sender:TObject;const FileName:str;Position,Row,Col:Card) Proc cedebugCompile( Sender : TPSScript) Proc cedebugExecute( Sender : TPSScript) Proc cedebugIdle( Sender : TObject) Proc cedebugLineInfo(Sender:TObject;const FileName:str;Position,Row,Col:Card) Proc Memo1SpecialLineColors(Sender:TObject;Line:Int;var Speci:Bool;var FG,BG:TColor); Proc BreakPointMenuClick( Sender : TObject) Proc DebugRun1Click( Sender : TObject) Proc tutorial4Click( Sender : TObject) Proc ImportfromClipboard1Click( Sender : TObject) Proc ImportfromClipboard2Click( Sender : TObject) Proc tutorial1Click( Sender : TObject) Proc ShowSpecChars1Click( Sender : TObject) Proc StatusBar1DblClick( Sender : TObject) Proc PSScriptLine( Sender : TObject) Proc OpenDirectory1Click( Sender : TObject) Proc procMessClick( Sender : TObject) Proc tbtnUseCaseClick( Sender : TObject) Proc EditFont1Click( Sender : TObject) Proc tutorial21Click( Sender : TObject) Proc tutorial31Click( Sender : TObject) Proc HTMLSyntax1Click( Sender : TObject) Proc ShowInterfaces1Click( Sender : TObject) Proc Tutorial5Click( Sender : TObject) Proc ShowLastException1Click( Sender : TObject) Proc PlayMP31Click( Sender : TObject) Proc AllFunctionsList1Click( Sender : TObject) Proc texSyntax1Click( Sender : TObject) Proc GetEMails1Click( Sender : TObject) Proc DelphiSite1Click(Sender: TObject); Proc TerminalStyle1Click(Sender: TObject); Proc ReadOnly1Click(Sender: TObject); -->maxform1.memo2.readonly:= false; Proc ShellStyle1Click(Sender: TObject); Proc Console1Click(Sender: TObject); //3.2 Proc BigScreen1Click(Sender: TObject); Proc Tutorial91Click(Sender: TObject); Proc SaveScreenshotClick(Sender: TObject); Proc Tutorial101Click(Sender: TObject); Proc SQLSyntax1Click(Sender: TObject); Proc XMLSyntax1Click(Sender: TObject); Proc ComponentCount1Click(Sender: TObject); Proc NewInstance1Click(Sender: TObject); Proc CSyntax1Click(Sender: TObject); Proc Tutorial6Click(Sender: TObject); Proc New1Click(Sender: TObject); Proc AllObjectsList1Click(Sender: TObject); Proc LoadBytecode1Click(Sender: TObject); Proc CipherFile1Click(Sender: TObject); //V3.5 Proc NewInstance1Click(Sender: TObject); Proc toolbtnTutorialClick(Sender: TObject); Proc Memory1Click(Sender: TObject); Proc JavaSyntax1Click(Sender: TObject); Proc SyntaxCheck1Click(Sender: TObject); Proc ScriptExplorer1Click(Sender: TObject); Proc FormOutput1Click(Sender: TObject); //V3.6 Proc GotoEnd1Click(Sender: TObject); Proc AllResourceList1Click(Sender: TObject); Proc tbtn6resClick(Sender: TObject); //V3.7 Proc Info1Click(Sender: TObject); Proc Tutorial10Statistics1Click(Sender: TObject); Proc Tutorial11Forms1Click(Sender: TObject); Proc Tutorial12SQL1Click(Sender: TObject); //V3.8 Proc ResourceExplore1Click(Sender: TObject); Proc Info1Click(Sender: TObject); Proc CryptoBox1Click(Sender: TObject); Proc ModulesCount1Click(Sender: TObject); Proc N4GewinntGame1Click(Sender: TObject); Proc PHPSyntax1Click(Sender: TObject); Proc SerialRS2321Click(Sender: TObject); Proc CSyntax2Click(Sender: TObject); Proc Calculator1Click(Sender: TObject); Proc Tutorial13Ciphering1Click(Sender: TObject); Proc Tutorial14Async1Click(Sender: TObject); Proc PHPSyntax1Click(Sender: TObject); Proc BtnZoomPlusClick(Sender: TObject); Proc BtnZoomMinusClick(Sender: TObject); Proc btnClassReportClick(Sender: TObject); Proc ThreadDemo1Click(Sender: TObject); Proc HEXView1Click(Sender: TObject); Proc ExporttoHTML1Click(Sender: TObject); Proc Minesweeper1Click(Sender: TObject); Proc PicturePuzzle1Click(Sender: TObject); //V3.9 Proc sbvclhelpClick(Sender: TObject); Proc DependencyWalker1Click(Sender: TObject); Proc CB1SCListDrawItem(Control:TWinCtrl;Index:Int;aRect:TRect;State:TOwnerDrawState); Proc WebScanner1Click(Sender: TObject); Proc mnToolbar1Click(Sender: TObject); Proc mnStatusbar2Click(Sender: TObject); Proc mnConsole2Click(Sender: TObject); Proc mnCoolbar2Click(Sender: TObject); Proc mnSplitter2Click(Sender: TObject); Proc WebServer1Click(Sender: TObject); Proc PerlSyntax1Click(Sender: TObject); Proc PythonSyntax1Click(Sender: TObject); Proc DMathLibrary1Click(Sender: TObject); Proc IntfNavigator1Click(Sender: TObject); Proc FullTextFinder1Click(Sender: TObject); Func AppName:Str; Func ScriptName:Str; Func LastName:Str; Proc FractalDemo1Click(Sender: TObject); Proc SimuLogBox1Click(Sender: TObject); Proc OpenExamples1Click(Sender: TObject); Proc Halt1Click(Sender: TObject); Proc Stop; Proc CodeSearch1Click(Sender: TObject); Proc RubySyntax1Click(Sender: TObject); Proc Undo1Click(Sender: TObject); Proc LinuxShellScript1Click(Sender: TObject); Proc WebScannerDirect(urls:Str); Proc WebScanner(urls:Str); Proc LoadInterfaceList2; Proc DLLSpy1Click(Sender: TObject); Proc Memo1DblClick(Sender: TObject); Proc URILinksClicks1Click(Sender: TObject); Proc GotoLine1Click(Sender: TObject); Proc ConfigFile1Click(Sender: TObject); Proc Sort1IntflistClick( Sender : TObject) Proc Redo1Click( Sender : TObject) Proc Tutorial24CleanCode1Click( Sender : TObject) Proc IndentSelection1Click( Sender : TObject) Proc UnindentSection1Click( Sender : TObject) Proc SkyStyle1Click( Sender : TObject) Proc CountWords1Click( Sender : TObject) Proc Memo1PlaceBookmark( Sender : TObject; var Mark : TSynEditMark) Proc Memo1GutterClick(Send:TObject;Button:TMouseButton;X,Y,Line:Int;Mark:TSynEditMark); Proc Bookmark11Click( Sender : TObject) Proc Bookmark21Click( Sender : TObject) Proc Bookmark31Click( Sender : TObject) Proc Bookmark41Click( Sender : TObject) Proc SynMultiSyn1CustomRange(Sender:TSynMultiSyn;Operat:TRangeOperation;var Range:Pointer); 'STATMemoryReport', 'boolean', iptrw); 'IPPort', 'Int', iptrw); 'COMPort', 'Int', iptrw); 'lbintflist', 'TListBox', iptrw); Func GetStatChange :Bool Proc SetStatChange( vstat :Bool) Func GetActFileName :Str Proc SetActFileName( vname :Str) Func GetLastFileName :Str Proc SetLastFileName( vname :Str) Proc WebScannerDirect( urls :Str) Proc LoadInterfaceList2 Func GetStatExecuteShell :Bool Proc DoEditorExecuteCommand( EditorCommand : word) Func GetActiveLineColor: TColor Proc SetActiveLineColor(acolor: TColor) Proc ScriptListbox1Click(Sender: TObject); Proc Memo2KeyPress(Sender: TObject; var Key: Char); Proc EnlargeGutter1Click(Sender: TObject); Proc Tetris1Click(Sender: TObject); Proc ToDoList1Click(Sender: TObject); Proc ProcessList1Click(Sender: TObject); Proc MetricReport1Click(Sender: TObject); Proc ProcessList1Click(Sender: TObject); Proc TCPSockets1Click(Sender: TObject); Proc ConfigUpdate1Click(Sender: TObject); Proc ADOWorkbench1Click(Sender: TObject); Proc SocketServer1Click(Sender: TObject); Proc FormDemo1Click(Sender: TObject); Proc Richedit1Click(Sender: TObject); Proc SimpleBrowser1Click(Sender: TObject); Proc DOSShell1Click(Sender: TObject); Proc SynExport1Click(Sender: TObject); Proc ExporttoRTF1Click(Sender: TObject); Proc FormCloseQuery(Sender: TObject; var CanClose:Bool); Proc SOAPTester1Click(Sender: TObject); Proc Sniffer1Click(Sender: TObject); Proc AutoDetectSyntax1Click(Sender: TObject); Proc FPlot1Click(Sender: TObject); Proc PasStyle1Click(Sender: TObject); Proc Tutorial183RGBLED1Click(Sender: TObject); Proc Reversi1Click(Sender: TObject); Proc ManualmaXbox1Click(Sender: TObject); Proc BlaisePascalMagazine1Click(Sender: TObject); Proc AddToDo1Click(Sender: TObject); Proc CreateGUID1Click(Sender: TObject); Proc Tutorial27XML1Click(Sender: TObject); Proc CreateDLLStub1Click(Sender: TObject); Proc Tutorial28DLL1Click(Sender: TObject);; Proc ResetKeyPressed;; Proc SetKeyPressed;; Proc KeyPressedFalse; Proc FileChanges1Click(Sender: TObject);; Proc OpenGLTry1Click(Sender: TObject);; Proc AllUnitList1Click(Sender: TObject);; Proc Tutorial29UMLClick(Sender: TObject); Proc CreateHeader1Click(Sender: TObject); Proc Oscilloscope1Click(Sender: TObject);; Proc Tutorial30WOT1Click(Sender: TObject);; Proc GetWebScript1Click(Sender: TObject);; Proc Checkers1Click(Sender: TObject);; Proc TaskMgr1Click(Sender: TObject);; Proc WebCam1Click(Sender: TObject);; Proc Tutorial31Closure1Click(Sender: TObject);; Proc GEOMapView1Click(Sender: TObject);; Proc Run1Click(Sender: TObject); MaxForm1.GPSSatView1Click, 'GPSSatView1Click; MaxForm1.N3DLab1Click, 'N3DLab1Click; Proc ExternalApp1Click(Sender: TObject);; Proc PANView1Click(Sender: TObject); Proc Tutorial39GEOMaps1Click(Sender: TObject); Proc UnitConverter1Click(Sender: TObject); maxform1.myscript1click(self) Proc Terminal1Click(Sender: TObject); Proc Tutorial361Click(Sender: TObject); Proc TrainingArduino1Click(Sender: TObject); Proc Chess41Click(Sender: TObject); Proc OrangeStyle1Click(Sender: TObject); Proc Darkcolor1Click(Sender: TObject); //---------------------------------------------------------------------------- //**************mX4 Editor SynEdit Tools API *********************************** //------------------------------------------------------------------------------ Proc SIRegister_TCustomSynEdit(CL: TPSPascalCompiler); begin //with RegClassS(CL,'TCustomControl', 'TCustomSynEdit') do with FindClass('TCustomControl'),'TCustomSynEdit') do begin Constructor Create( AOwner : TComponent) SelStart', 'Int', iptrw); SelEnd', 'Int', iptrw); AlwaysShowCaret', 'Boolean', iptrw); Proc UpdateCaret Proc AddKey(Command:TSynEditorCommand;Key1:word;SS1:TShiftState;Key2:word;SS2:TShiftState); Proc AddKey(Command:TSynEditorCommand;Key1:word;SS1:TShiftState;Key2:word;SS2:TShiftState); Proc BeginUndoBlock Proc BeginUpdate Func CaretInView :Bool Func CharIndexToRowCol( Index : Int) : TBufferCoord Proc Clear Proc ClearAll Proc ClearBookMark( BookMark : Int) Proc ClearSelection Proc CommandProcessor(Command:TSynEditorCommand; AChar : char; Data : pointer) Proc ClearUndo Proc CopyToClipboard Proc CutToClipboard Proc DoCopyToClipboard( const SText :Str) Proc EndUndoBlock Proc EndUpdate Proc EnsureCursorPosVisible Proc EnsureCursorPosVisibleEx( ForceToMiddle :Bool) Proc FindMatchingBracket Func GetMatchingBracket : TBufferCoord Func GetMatchingBracketEx( const APoint : TBufferCoord) : TBufferCoord Proc ExecuteCommand( Command : TSynEditorCommand; AChar : char; Data : pointer) Func GetBookMark( BookMark : Int; var X, Y : Int) :Bool Func GetHighlighterAttriAtRowCol(const XY: TBufferCoord; var Token:str; var Attri : TSynHighlighterAttributes) :Bool Func GetHighlighterAttriAtRowColEx( const XY : TBufferCoord; var Token :Str; var TokenType, Start : Int; var Attri:TSynHighlighterAttributes):boolean Func GetPositionOfMouse( out aPos : TBufferCoord) :Bool Func GetWordAtRowCol( const XY : TBufferCoord) :Str Proc GotoBookMark( BookMark : Int) Proc GotoLineAndCenter( ALine : Int) Func IdentChars : TSynIdentChars Proc InvalidateGutter Proc InvalidateGutterLine( aLine : Int) Proc InvalidateGutterLines( FirstLine, LastLine : Int) Proc InvalidateLine( Line : Int) Proc InvalidateLines( FirstLine, LastLine : Int) Proc InvalidateSelection Func IsBookmark( BookMark : Int) :Bool Func IsPointInSelection( const Value : TBufferCoord) :Bool Proc LockUndo Func BufferToDisplayPos( const p : TBufferCoord) : TDisplayCoord Func DisplayToBufferPos( const p : TDisplayCoord) : TBufferCoord Func LineToRow( aLine : Int) : Int Func RowToLine( aRow : Int) : Int Func NextWordPos : TBufferCoord Func NextWordPosEx( const XY : TBufferCoord) : TBufferCoord Proc PasteFromClipboard Func WordStart : TBufferCoord Func WordStartEx( const XY : TBufferCoord) : TBufferCoord Func WordEnd : TBufferCoord Func WordEndEx( const XY : TBufferCoord) : TBufferCoord Func PrevWordPos : TBufferCoord Func PrevWordPosEx( const XY : TBufferCoord) : TBufferCoord Func PixelsToRowColumn( aX, aY : Int) : TDisplayCoord Func PixelsToNearestRowColumn( aX, aY : Int) : TDisplayCoord Proc Redo Proc RegisterCommandHandler(const AHandlerProc:THookedCommandEvent;AHandlerDat:pointr); Func RowColumnToPixels( const RowCol : TDisplayCoord) : TPoint Func RowColToCharIndex( RowCol : TBufferCoord) : Int Func SearchReplace( const ASearch,AReplace:str; AOptions:TSynSearchOptions): int Proc SelectAll Proc SetBookMark( BookMark : Int; X : Int; Y : Int) Proc SetCaretAndSelection( const ptCaret, ptBefore, ptAfter : TBufferCoord) Proc SetDefaultKeystrokes Proc SetSelWord Proc SetWordBlock( Value : TBufferCoord) Proc Undo Proc UnlockUndo Proc UnregisterCommandHandler( AHandlerProc : THookedCommandEvent) Proc AddKeyUpHandler( aHandler : TKeyEvent) Proc RemoveKeyUpHandler( aHandler : TKeyEvent) Proc AddKeyDownHandler( aHandler : TKeyEvent) Proc RemoveKeyDownHandler( aHandler : TKeyEvent) Proc AddKeyPressHandler( aHandler : TKeyPressEvent) Proc RemoveKeyPressHandler( aHandler : TKeyPressEvent) Proc AddFocusControl( aControl : TWinControl) Proc RemoveFocusControl( aControl : TWinControl) Proc AddMouseDownHandler( aHandler : TMouseEvent) Proc RemoveMouseDownHandler( aHandler : TMouseEvent) Proc AddMouseUpHandler( aHandler : TMouseEvent) Proc RemoveMouseUpHandler( aHandler : TMouseEvent) Proc AddMouseCursorHandler( aHandler : TMouseCursorEvent) Proc RemoveMouseCursorHandler( aHandler : TMouseCursorEvent) Proc SetLinesPointer( ASynEdit : TCustomSynEdit) Proc RemoveLinesPointer Proc HookTextBuffer( aBuffer : TSynEditStringList; aUndo, aRedo : TSynEditUndoList) Proc UnHookTextBuffer BlockBegin', 'TBufferCoord', iptrw); BlockEnd', 'TBufferCoord', iptrw); CanPaste', 'Boolean', iptr); 'CanRedo', 'boolean', iptr); CanUndo', 'boolean', iptr); 'CaretX', 'Int', iptrw); CaretY', 'Int', iptrw); 'CaretXY', 'TBufferCoord', iptrw); ActiveLineColor', 'TColor', iptrw); DisplayX', 'Int', iptr); 'DisplayY', 'Int', iptr); DisplayXY', 'TDisplayCoord', iptr); 'DisplayLineCount', 'Int', iptr); CharsInWindow', 'Int', iptr); CharWidth', 'Int', iptr); Font', 'TFont', iptrw); GutterWidth', 'Int', iptr); Highlighter', 'TSynCustomHighlighter', iptrw); LeftChar', 'Int', iptrw); LineHeight', 'Int', iptr); LinesInWindow', 'Int', iptr); LineText', 'string', iptrw); Lines', 'TStrings', iptrw); Marks', 'TSynEditMarkList', iptr); MaxScrollWidth', 'Int', iptrw); Modified', 'Boolean', iptrw); PaintLock', 'Int', iptr); ReadOnly', 'Boolean', iptrw); SearchEngine', 'TSynEditSearchCustom', iptrw); SelAvail', 'Boolean', iptr); SelLength', 'Int', iptrw); SelTabBlock', 'Boolean', iptr); SelTabLine', 'Boolean', iptr); SelText', 'string', iptrw); StateFlags', 'TSynStateFlags', iptr); Text', 'string', iptrw); TopLine', 'Int', iptrw); WordAtCursor', 'string', iptr); 'WordAtMouse', 'string', iptr); UndoList', 'TSynEditUndoList', iptr); RedoList', 'TSynEditUndoList', iptr); OnProcessCommand', 'TProcessCommandEvent', iptrw); BookMarkOptions', 'TSynBookMarkOpt', iptrw); BorderStyle', 'TSynBorderStyle', iptrw); ExtraLineSpacing', 'Int', iptrw); Gutter', 'TSynGutter', iptrw); HideSelection', 'boolean', iptrw); InsertCaret', 'TSynEditCaretType', iptrw); InsertMode', 'boolean', iptrw); 'IsScrolling', 'Boolean', iptr); Keystrokes', 'TSynEditKeyStrokes', iptrw); MaxUndo', 'Int', iptrw); 'Options', 'TSynEditorOptions', iptrw); OverwriteCaret', 'TSynEditCaretType', iptrw); RightEdge', 'Int', iptrw); RightEdgeColor', 'TColor', iptrw); ScrollHintColor', 'TColor', iptrw); ScrollHintFormat', 'TScrollHintFormat', iptrw); ScrollBars', 'TScrollStyle', iptrw); SelectedColor', 'TSynSelectedColor', iptrw); SelectionMode', 'TSynSelectionMode', iptrw); ActiveSelectionMode', 'TSynSelectionMode', iptrw); TabWidth', 'Int', iptrw); WantReturns', 'boolean', iptrw); WantTabs', 'boolean', iptrw); WordWrap', 'boolean', iptrw); WordWrapGlyph', 'TSynGlyph', iptrw); OnChange', 'TNotifyEvent', iptrw); OnClearBookmark', 'TPlaceMarkEvent', iptrw); OnCommandProcessed', 'TProcessCommandEvent', iptrw); OnContextHelp', 'TContextHelpEvent', iptrw); OnDropFiles', 'TDropFilesEvent', iptrw); OnGutterClick', 'TGutterClickEvent', iptrw); OnGutterGetText', 'TGutterGetTextEvent', iptrw); OnGutterPaint', 'TGutterPaintEvent', iptrw); OnMouseCursor', 'TMouseCursorEvent', iptrw); OnPaint', 'TPaintEvent', iptrw); OnPlaceBookmark', 'TPlaceMarkEvent', iptrw); OnProcessUserCommand', 'TProcessCommandEvent', iptrw); OnReplaceText', 'TReplaceTextEvent', iptrw); OnSpecialLineColors', 'TSpecialLineColorsEvent', iptrw); OnStatusChange', 'TStatusChangeEvent', iptrw); OnPaintTransient', 'TPaintTransient', iptrw); OnScroll', 'TScrollEvent', iptrw); end; Proc RegisterPlaceableHighlighter(highlighter : TSynCustomHighlighterClass) Func GetPlaceableHighlighters : TSynHighlighterList Func EditorCommandToDescrString( Cmd : TSynEditorCommand) :Str Func EditorCommandToCodeString( Cmd : TSynEditorCommand) :Str Proc GetEditorCommandValues( Proc : TGetStrProc) Proc GetEditorCommandExtended( Proc : TGetStrProc) Func IdentToEditorCommand( const Ident :Str; var Cmd : longint) :Bool Func EditorCommandToIdent( Cmd : longint; var Ident :Str) :Bool Func ConvertCodeStringToExtended( AString :Str) :Str Func ConvertExtendedToCodeString( AString :Str) :Str Func ConvertExtendedToCommand( AString :Str) : TSynEditorCommand Func ConvertCodeStringToCommand( AString :Str) : TSynEditorCommand Func IndexToEditorCommand( const AIndex : Int) : Int TSynEditorOption = ( eoAltSetsColumnMode, //Holding down Alt Key will put select mode into columnar format eoAutoIndent, //Will indent caret onnewlines same amountof leading whitespace as // preceding line eoAutoSizeMaxScrollWidth, //Automatically resizes MaxScrollWidth property when insert text eoDisableScrollArrows, //Disables scroll bar arrow buttons when you cant scroll that //direction any more eoDragDropEditing, //Allows to select a textblock and drag in doc to another location eoDropFiles, //Allows the editor accept OLE file drops eoEnhanceHomeKey, //enhances home key positioning, similar to visual studio eoEnhanceEndKey, //enhances End key positioning, similar to JDeveloper eoGroupUndo, //When undoing/redoing actions,handle all cont.changes same kind in onecall //instead undoing/redoing each command separately eoHalfPageScroll, //By scrolling with page-up/page-down commands, scroll half page attime eoHideShowScrollbars, //if enabled, then scrollbars will only show if necessary. If you have ScrollPastEOL,then it horizontal bar will always there (uses MaxLength instead) eoKeepCaretX, //When moving through lines w/o cursor Past EOL, keeps X posof cursor eoNoCaret, //Makes it so the caret is never visible eoNoSelection, //Disables selecting text eoRightMouseMovesCursor,//When clicking right mouse for popup menu,moves cursor to location eoScrollByOneLess, //Forces scrolling to be one less eoScrollHintFollows, //The scroll hint follows the mouse when scrolling vertically eoScrollPastEof, //Allows the cursor to go past the end of file marker eoScrollPastEol, //Allows cursor go past lastchar into white space at end ofline eoShowScrollHint, //Shows a hint of the visible line numbers when scrolling vertically eoShowSpecialChars, //Shows the special Characters eoSmartTabDelete, //similar to Smart Tabs, but when you delete characters eoSmartTabs, //When tabbing, cursor will goto non-whitespace charof prev line eoSpecialLineDefaultFg,//disables foreground textcolor override OnSpecialLineColor event eoTabIndent, //If active and act block indent,unindent iftext select eoTabsToSpaces, //Converts a tab character to a specified number of space characters eoTrimTrailingSpaces //Spaces at the end of lines will be trimmed and not saved Change above Options in Editor (for bootscript also): for eg. to indent blocks with tab: memo1.options:= memo1.options + [eoTabIndent] or to control something: memo1.wanttabs:= true; if (memo1.wanttabs) and (GetKeyState(VK_CONTROL)) then writeln('wanttabs0^'); *******************Important Editor Short Cut Cuts shorcut*****************); Double click to select a word and count words with highlightning. Triple click to select a line. CTRL+SHIFT+click to extend a selection. Drag with the ALT key down to select columns of text !!! Drag and drop is supported. With CTRL 3 to jump to the last change (change tracker) Type CTRL+Z to undo and SHIFT+CTRL+Z to redo. Type CTRL+A to select all. Type CTRL+N to set a new line. Type CTRL+T to delete a line or token. //Tokenizer Type CTRL+C to copy to clipboard. Type CTRL+V to paste from clipboard. Type CTRL+Shift+S to Save as.... Type CTRL+Alt+M to jump to Memo Terminal. Type CTRL+Shift+T to add ToDo in line and list. Type CTRL+Shift+[0..9] to set bookmarks. //Bookmark Type CTRL[0..9] to jump or get to bookmarks. type Shift + Tab to reverse indent block Type Home to position cursor at beginning of curr line and End to position at end of line. Type CTRL+Home to position cursor at start of doc and CTRL+End to position it at end of docu. Page Up and Page Down work as expected. CTRL+Page Up sends cursor to top of viewed portion and CTRL+Page Down sends it to bottom. using http://pp4s.co.uk/main/tu-form2-help-demo-laz.html {$ Short Key Positions Ctrl: } def Select All Count Words Copy Internet Start Script List Find Goto Mark Line Interface List Code Completion Console Interface List Box Font Smaller - New Line Open File

Font Larger + Quit Replace Save! Delete Line Use Case Editor Paste URI Links Reserved for coding use internal Delete Line Undo ref F1 Help to Func List F2 Syntax Check F3 Search Next F4 New Instance F5 Line Mark /Breakpoint F6 Goto End F7 Debug Step Into F8 Debug Step Out F9 Compile F10 Menu F11 Word Count Highlight F12 Reserved for coding use internal AddRegisteredVariable('Application', 'TApplication; AddRegisteredVariable('Screen', 'TScreen; AddRegisteredVariable('Self', 'TForm; AddRegisteredVariable('Memo1', 'TSynMemo; AddRegisteredVariable('memo2', 'TMemo; AddRegisteredVariable('maxForm1', 'TMaxform1; //!! AddRegisteredVariable('debugout', 'Tdebugoutput; //!! AddRegisteredVariable('hlog','THotlog; //!! AddRegisteredVariable('mouse','TMouse; //!! AddRegisteredVariable( it ,Int; //for closure and each loop!! AddRegisteredVariable( sr ,string; //for closure AddRegisteredVariable( bt ,boolean; //for closure AddRegisteredVariable( ft ,double; //for closure AddRegisteredVariable( srlist ,TStringlist; //for closures def ReservedWords: array[0..86] of string = ('and', 'array', 'as', 'asm', 'at', 'begin', 'case', 'class', 'const', 'constructor', 'default', 'destructor', 'dispinterface', 'div', 'do', 'downto', 'else', 'end', 'except', 'exports', 'file', 'finalization', 'finally', 'for', 'function', 'goto', 'if', 'implementation', 'in', 'inherited', 'initialization', 'inline', 'interface', 'is', 'label', 'library', 'message', 'mod', 'nil', 'not', 'object', 'of', 'on', 'or', 'out', 'packed', 'procedure', 'program', 'property', 'raise', 'read', 'record', 'repeat', 'resourcestring', 'set', 'shl', 'shr', 'string', 'stored', 'then', 'threadvar', 'to', 'try', 'type', 'unit', 'until', 'uses', 'var', 'while', 'with', 'write', 'xor', 'private', 'protected', xraise 'public', 'published',def,ref,using,typedef ,memo1','memo2','doc','maxform1','it'; AllowedChars: array[0..5] of string = ('(',')', '[', ']',' ',' t,t1,t2,t3:Bool; //------------------------------------------------------------------------------ //**************End of mX4 Public Tools API *********************************** //------------------------------------------------------------------------------ maXbox 4 Internal Now Inventory INI Nov 2017 Amount of Functions: 18547 Amount of Procedures: 11143 Amount of Constructors: 1730 Totals of Calls: 31420 SHA1: of 4.5.8.10 FFF8300142CE582DFCC8E15489AD7D5EE2E08062 CRC32: A013C5BC: 28465616 bytes  mX4 executed: 03/01/2018 17:10:09 Runtime: 0:8:5.816 Memload: 29% use maXbox 4 Internal Now Inventory INI Dez 2019 Amount of Functions: 18929 Amount of Procedures: 11351 Amount of Constructors: 1771 Amount of Destructors: 12 Totals of Calls: 32063 SHA1: of 4.7.1.80 E372D00CE31BDFC30A29F6C1F77600ABD25AFDB8 CRC32: 3C620310: 28952992 bytes  mX4 executed: 03/12/2019 23:15:23 Runtime: 0:9:29.13 Memload: 48% use  V 4.7.4.64 Totals of Func Calls: 32633, 75 Tutorials SHA1: of 4.7.4.64 DA4C716E31E2A4298013DFFBDA7A98D48650B0C7 CRC32: 3EB27A87: 28.2 MB (29,608,248) bytes Total of Function Calls: 36354 SHA1: 4.7.6.20 F60338A77B77F2032061BF72A545AFB727F6395F CRC32: 48455EF8 32.8 MB (34,419,992 bytes) Compilation Timestamp 2023-01-26 15:36:15 UTC Signtime 26 Jan. 2023 16:41:42 Entry Point 25033256 - Contained Sections 10 Docu: http://www.softwareschule.ch/maxbox_functions.txt ZIP maxbox4.zip SHA1: CCFC28FE69E5F62590335C406171500ADDE08A9A ************************************************************ Doc Short Manual with 70 Tips! Troublshooter - Errors ************************************************************ - Editor: dont ever load and save a BINARY file in the editor, it saves as CRLF text ! - Install: just save your maxboxdef.ini before and then extract the zip file! - Toolbar: Click on the red maXbox Sign (right on top) opens your work dir or jump to - Menu: With you check syntax with you debug and you compile! - Menu: With you can search for code on examples - Menu: Open in menu Output a new instance of the box to compare or prepare your scripts - Menu: Set Interface Naviagator in menu /View/Intf Navigator - Menu: Switch or toogle between last 2 scripts in menu File/LoadLast(History is set to 9 files) - Inifile: Set memory report in ini:MEMORYREPORT=Y :report on memoryleaks on shutdown by dialog - Inifile: Refresh (reload) the inifile after edit with ../Help/Config Update - Inifile: Set VERSIONCHECK=N and MEMORYREPORT=N to speedup boot and shutdown of box - Context Menu: You can printout your scripts as a pdf-file or html-export - Context: You do have a context menu with the right mouse click - Menu: With the UseCase Editor you can convert graphic formats too. - Menu: On menu Options you find Addons as compiled scripts - IDE: Menu Program: Run Only is faster, after F2 - You dont need a mouse use shortcuts - Menu: Check Options/ProcessMessages! if something is wrong or you cant see graphics in a time - IDE: Dragndrop scripts in box or model in use case editor(Cut,Copy,Paste always available) - Editor: You can get templates as code completion with in editor like classp or iinterface or ttimer (you type classp and then CTRL J),or you type tstringlist and - Menu: In menu output (console) set output menu in edit mode by unchecking - Editor: After the end. you can write or copy notes or descriptions concerning the app or code - Code: If you code a loop till key-pressed use function: isKeyPressed; - Code: Macro set the macros #name,dmMaxMaxinistratorth, #file,s.txtmaxbox_functions.txtist5.pdf - Code: change Syntax in autoboot macro 'maxbootscript.txt' - Editor: - Click on Word in Editor search amount of words with highlighting,Dbl Click on Bookmarks to delete and Click and mark to drag a bookmark - Menu: To start handling from CD-ROM (read only mode) uncheck in Menu /Options/Save before Compile - IDE: A file info with system and script information you find in menu Program/Information - IDE: After change the config file in help you can update changes in menu Help/Config Update - IDE: Make a screenshot of the content and environment in menu Output/Save Screenshot - IDE: Use a boot loader script 'maxbootscript.txt' (as auto start) to change box each time start it. - IDE: With escape or Q you can also leave box or stopscript in menu program - stop program - Editor: Set Bookmarks to check your work in app or code - Editor: With you set {$Active Line Color} and F11 you get Word Count Statistic on Output too - Editor: With {//TODO: some description} or DONE you set code entries for ToDo List in ../Help/ToDo List - Editor: With you set active URL links in code to test availability in Context Menu - Editor shortcut Ctrl+Alt+M to jump to output (memo2) console - IDE with menu /Options/ADO SQL Workbench you can manage your Database - Context Menu: You can write your docus with RichEdit RTF printout /Editor Form Options/Richedit - Menu: Set Interface Naviagator also with toogle or /View/Intf Navigator - Toolbar: In menu /View switch Off Toolbar and Coolbar to get more coding space - Code: Put some resources in your code /Help/Resource Explorer like bitbtn, forms, dialogs; - Code Editor: Compile with but also Alt C in case isnt available; - Code: if you cant run a Func try the second one, for ex. Voice()-Voice2(),inc() - inc1() - IDE set bookmarks with (0..9) and jump with (0..9) - IDE menu /Help/Tools/ write with RTF Editor or open a DOS Shell or browse - IDE menu /Help/Tools/ open the Task Manager - Editor: set doc section after end. end. in units and interface with begin main end! - new Style: menu//Output/Darkcolor http://www.softwareschule.ch/images/maXbox4_darkcolor.png http://www.softwareschule.ch/images/maXbox4_darkcolor3.png - Add on write your Requirements in RTF Docu with in context menu - Add on when no browser is available start /Options/Add ons/Easy Browser - Add on SOAP Tester with SOP POST File - Add on IP Protocol Sniffer with List View - Add on OpenGL mX Robot Demo for android - Add on Checkers Game, Add on Oscilloscope /View GEO Map View3 - Menu: Help/Tools as a Tool Section with DOS Opener - Menu Editor: export the code as RTF File - Menu: Help/Tools/Syn Export your code as available in HTML or RTF - Menu: Help/Tools/ with you start the DOS Shell - Context: Auto Detect of Syntax depending on file extension - Code: some Windows API Func start with w in the name like wGetAtomName(); - IDE Close - if you cant close the box then reset it in menu /Debug - IDE File Check with menu ..View/File Changes/... - Context: Create a Header with Create Header in Navigator List at right window - Code: use SysErrorMessage to get a real Error Description, Ex. RemoveDir('c:\NoSuchFold;writeln('System Error Message:'+SysErrorMessage(GetLastError)); - IDE getWebScript from a URL with menu ..Help/Get Web Script/... - Editor: with you can click on hyperlinks in Code - CTRL Click on link - Editor: with you can write in RTF format with RichEdit link - Editor: with you can fill your To Do List. - Editor: with you jump to output window below (memo2). - Menu: Check Help/Tools! you can use richedit, DOS Shell or Explorer - Menu: Start View/MyScript of ini file maxboxdef.ini [MYSCRIPT]= path of script - Indent: close you doc lines with //} for {...} - Menu: Help/ToDo List add prio and user with {/1.......//} Name#Prio# example: {/1 TODO (maxname#7#): do the new task one34 then mX4' //} - With this code I get an EIdHTTPProtocolException with the message "HTTP/1.1 403 Forbidden". Set the IdHTTP1.Request.UserAgent to some browser's user agent and you'll get it to work. Server doesn't like the Indy's default one and rejects its request. with TIdHTTP.Create(self) do begin Request.UserAgent:= 'maXbox4 compatible'; get('http://www.softwareschule.ch/examples/robo.txt') free end; use for TRegistry.create constructor TRegistry.Create1 in maxbox_functions.txt add TRegistry.Create1 //In the ServiceAfterUninstall method add these lines: // begin // Delete registry entries for event viewer. Key:= '\SYSTEM\CurrentControlSet\Services\Eventlog\Application\' + Self.Name; Reg:= TRegistry.Create1(KEY_READ or KEY_WRITE); try Reg.RootKey := HKEY_LOCAL_MACHINE; if Reg.KeyExists(Key) then Reg.DeleteKey(Key); finally Reg.Free; end; Func AnsiByteArrayStringLen2(Data: TBytes): Integer; Func StringToAnsiByteArray2(const S:Str): TBytes; Func AnsiByteArrayToString2(const Data: TBytes; Count: Integer):Str; Func BytesOf(const Value: Ansistr): TBytes; Func BytesOfChar(const Value: AnsiChar): TBytes; Func StringOf(const Bytes: array of Byte): Ansistr; - using DLL example in maXbox: //function: {***********************} Func GetProcessMemoryInfo(Process:THandle;var MemoryCounters:TProcessMemoryCounters;cb:DWORD):BOOL;//stdcall; External 'GetProcessMemoryInfo@psapi.dll stdcall'; Func OpenProcess(dwDesiredAccess:DWORD;bInheritHandle:BOOL;dwProcessId: DWORD):THandle; External 'OpenProcess@kernel32.dll stdcall'; Win API direct DLL with array of char result: //https://docs.microsoft.com/en-us/windows/win32/api/shlobj_core/nf-shlobj_core-shgetfolderpatha function SHGetFolderPathA(hwnd: HWND; csidl: integer; htoken: THANDLE; dwflags: DWORD; pszPath: string): HRESULT; external 'SHGetFolderPathA@Shell32.dll stdcall'; function GetMyPictures: string; var pStr: string; //array[0..260] of Char; begin setLength(pstr, 260-1); if SHGetFolderPathA(0, CSIDL_MYPICTURES, 0,0, pStr) = S_OK then Result:= pStr; end; >>> GetMyPictures path C:\Users\Max\OneDrive\Pictures GCC Compile Ex Script Proc TFormMain_btnCompileClick(Sender: TObject); begin AProcess:= TProcess.Create(Nil); try AProcess.CommandLine := 'gcc.exe "' + OpenDialog1.FileName + '"' + ' -o "' + OpenDialog2.FileName + '"'; AProcess.Options:= AProcess.Options + [poWaitOnExit, poUsePipes]; AProcess.Execute; Memo2.Lines.BeginUpdate; Memo2.Lines.Clear; Memo2.Lines.LoadFromStream(AProcess.Output); Memo2.Lines.EndUpdate; finally AProcess.Free; end; end; ref Stopwatch pattern snip Time1:= Time; writeln(formatdatetime('"start:" hh:mm:ss:zzz',Time)) if initAndStartBoard then writeln('Filesize: '+inttoStr(filesize(FILESAVE))); writeln(formatDateTime('"stop:" hh:mm:ss:zzz',Time)) PrintF('%d %s',[Trunc((Time-Time1)*24),FormatDateTime('"h runtime:" nn:ss:zzz',Time-Time1)]) POST git-receive-pack (chunked) Pushing to https://github.com/maxkleiner/maXbox3.git To https://github.com/maxkleiner/maXbox3.git f127d21..c6a98da masterbox2 -> masterbox2 updating local tracking ref 'refs/remotes/maXbox3Remote/masterbox2' ----------------------------------------------------------------------------- History Shell Hell - Walk the Talk - CoolCode PCT Precompile Technology , mX4 ScriptStudio Indy, JCL, Jedi, VCL, Systools, TurboPower, Fundamentals, ExtendedRTL, Synedit DMath, devC, Graphics32, ExtPascal, mX4, LCL, CLX, FCL, CPort and more emax layers: system-package-component-unit-class-function-block new keywords def ref using maXCalcF UML xraise: use case act class state seq pac comp dep - lib lab FBX Lib, psAPI, SMS Cell Module, OpenGL, Borland Tools Tutorials, 30 Units add, VCL constructors, controls plus, unit list 2 Tutorials, 36 Units add, Synapse V40, LDAP, OpenSSL, AVScan 1 Report, 15 Units add, DBCtrls, Stream+, IRadio, Wininet 1 DLL Report, 24 Units add, DRTable, Remote+, Cindy functions! DLL Report, UML Tutor, 32 Units add, DRTable, Remote+, Cindy functions! Oscilloscope V4, Mixer, 17 Units add, URLMon, Form properties+, mathmax SendBuffer, Color+Caption hack,ComboSet,SetPrivilege,WakeOnLAN,ParaDice 3DCube Polygraph,OCR GetScript or GetWebScript, GPS Example, Profiler, Checkers, Toolbox commons Add 15 Units, Wav resources, RoundTo, OpenOffice, Pipes TFixedCriticalSection, XPlatform beta, GCC Command Pipe Inno Install and Setup Routines Add 32 Units, Wav res, RoundTo, OpenOffice, Pipes, GSM2 TFixedCriticalSection, XPlatform beta, GCC Command Pipe VfW (Video), FindFirst3, ResFiler, AssemblyCache, UnitTest 9 Color LED, LED Resources, Runtime LED, it + sr var , morse generator Add 5 Units, 1 Tutors, maXmap, OpenStreetView, MAPX Func Menu/View/GEO Map View, DownloadFile, wgetX, sensors StreamUtils, IDL Syntax, OpenStreetMap, runByteCode, sensor panel, CGI of Powtils ByteCode2, IPUtils2, GEOCode, CGI-Powtils, GPS_2, External App, Unit Converter Add 16 Units, 1 Slide,Tutor, Big Numbers (Decimals, TInt), ModBusTCP, TGEOInfo Add 36 Units, 1 Tutor, SOAPConn, AVI Res, OLEUtils, ACM, CDS, XMLDoc, DDE Add 77 Units, 12 Tutors, ChangeTracker, CPP+,OLEUtils2,xmldom,Chess4,3DFrame,XMLRPC,X509 Add 15 Units, 1 Tutor, Pipe Libraray2, KLog, FPlot42, KDialogs, NumEdit, KControls, Kronos add 12 units and 125 functions - Class Helper - KMemo RTF add 16 units and 365 functions- WMI Script Type Library - webbox -restbox V4.6.2.10 Jan 2018:Tutor 56 Neural Network-Python Checker- 3 more Units PascalCoin V4.7.1.10 Sep 2019:Tutor 57-70, VState Machine,CGI,MachineLearning +20 Units +Tensorflow dll V4.7.1.82 Dec 2019:Tutor-72,EKON23Fixing,WebSocks/Spider,PHP_CGI,JS,OpenOffice,7+overbyte Units V4.7.4.64 June 2020: EKON24 Fixing, uPSI_SimpleRSS, Json Base Prometheus, neural CAI, Dendron V4.7.5.20 Jan 2021: few Fundamentals 5.00, JCL fixes, GraphMathLibrary, StringBuilder V4.7.5.80 July 2021: RSS+, WDCC, P4D_Beta (Python4Delphi), Wininet Threads
V4.7.5.90 October 2021: FLC Vectors, CAI Neuralnet, SingleListClass
V4.7.6.20 October 2022: Threadslist,CAI Neuralnet3,P4D+,EKON25 fixing,klib,HTTPClient2, -c CLI, PSProc
V4.7.6.20 Jan 2023: Threadslist, CAI Neuralnet3, P4D+, EKON25 fixing, klib, HTTPClient2, -c CLI, PSProc V4.7.6.50 May 2023: internals - TProcess2 dprocess - xmlstorage -AsphyreTimer -pacman core Ref: https://unibe-ch.academia.edu/MaxKleiner http://www.slideshare.net/maxkleiner1 http://www.scribd.com/max_kleiner http://www.delphiforfun.org/Programs/Utilities/index.htm http://www.slideshare.net/maxkleiner1 http://s3.amazonaws.com/PreviewLinks/22959.html http://www.softwareschule.ch/arduino_training.pdf http://www.jrsoftware.org/isinfo.php http://www.be-precision.com/products/precision-builder/express/ http://www.blaisepascal.eu/ http://www.delphibasics.co.uk/ http://www.youtube.com/watch?v=av89HAbqAsI http://www.angelfire.com/hi5/delphizeus/modal.html http://www.retroarchive.org/garbo/pc/turbopas/index.html https://github.com/dilshan/signalman/blob/master/SignalManTemplate.pas http://delphi.org/2014/01/every-android-api-for-delphi/ https://en.wikipedia.org/wiki/User:Maxkleiner http://en.wikipedia.org/wiki/Megido_%28Free_Pascal%29 https://bitbucket.org/max_kleiner/maxbox3 https://bitbucket.org/max_kleiner/maxbox3/downloads https://bitbucket.org/max_kleiner/maxbox3/wiki/maXbox%20Tutorials http://www.slideshare.net/maxkleiner1/codereview-topics http://www.abaecker.biz/images/abakus/images/TAbCompass.gif http://www.softpedia.com/get/Programming/Other-Programming-Files/maXbox.shtml https://entwickler-konferenz.de/blog/machine-learning-mit-cai/ https://github.com/maxkleiner/python4delphi/blob/master/Source/PythonEngine.pas http://max.kleiner.com/boxart.htm https://maxbox4.wordpress.com https://archive.org/details/maxbox4 UrlGoogleQrCode='http://chart.apis.google.com/chart?chs=%dx%d&cht=qr&chld=%s&chl=%s'; UrlMapQuestAPICode2='http://open.mapquestapi.com/nominatim/v1/search.php?format=%s&json_callback =renderBasicSearchNarrative&q=%s'; UrlMapQuestAPIReverse:= 'http://open.mapquestapi.com/nominatim/v1/reverse.php?format= %s&json_callback=renderExampleThreeResults&lat=%s&lon=%s'; SAMPLES Snippets Blocks and Error or Errors or Bugs or Bug List or Trouble Bug Fix Errorlist bugfix codes ------------------------------------------------- Troubleshooter [Error] C:\maXbox\TestApp2\sonysavefeb2014\TestApp\tetris\175_pas_anti_tetris2.txt(1:1): Variable Expected dont inc an longint in plus Inc(Score+5); ---> solution: Inc(Score); Editor: index out of bounds error exception in editor after open or modified 03/12/2019 20:10:50 V:4.7.1.20 [Max] MAXBOX10 List index out of bounds (147). This is due of Editor Indent ../Options/Show Indent 4 Workarounds: 1 simply move cursor to right or left and save (Ctrl+S) 2 Goto to end or line (147) or what it says and return new line or tab 3 Disable in menu 4 Set INDENT=N in maxboxdef.ini for runtime systems can not see the Form , Form not visible ---> add Show; frm:= TmyForm.create(self) with frm do begin Left := 245 Top := 108 BorderStyle := bsDialog Caption := 'Suggestions' ClientHeight := 219 ClientWidth := 297 Color := clBtnFace //TextHeight := 20 Show; -------------------------> Exception Handling Raise and XRaise type EPowerException = Exception; ...end else Xraise( EPowerException.Create('Infinite Result')); end; if (X > 0) then try result := exp(N * ln(X)); exit; except raise EPowerException.Create('Overflow/Underflow Result'); end; - Object with an Record inside get first a record instance and second you get the attribute Proc testprimesPerformance; // Performance Test var count, beg, j, r: integer; var f :boolean; begin processmessagesOFF Println(' prime time performance check ?????: '); count:= 0; beg:= Random(1000000000)+2; for it:=beg to beg+5000 do begin f:= True; j:= 2; r:= Round(Sqrt(it)); while f and (j<=r) do if it mod j = 0 then f:= False else inc(j); if f then begin Print(itoa(it)+' '); count:= count+ 1; if count mod 8 = 0 then Println(''); end; end; processmessagesON; end; RSS-FEED Rss Feed IIndyHTTP:=TIdHTTP.create(self); with TSimpleRSS.create(self) do begin XMLType:= xtRDFrss; IndyHTTP:= iindyhttp; LoadFromHTTP(RSS_NewsFeed) for it:= 0 to items.count-1 do begin //Items[it].description writeln(itoa(it)+': '+Items[it].title+' :'{+items[it].link}); println(GetSentimentStream7(URLSentimentAPI2,Items[it].title)); end; free; IIndyHTTP.Free; end; //} Ver: 4.7.4.64 (474). Workdir: C:\maXbox\mX47464\maxbox4  mX4 executed: 05/11/2020 17:57:05 Runtime: 0:0:39.224 Memload: 60% use Func OpenMap(const Data:Str):Bool; var encURL:Str; begin encURL:= Format(UrlMapQuestAPICode2,['html',HTTPEncode(Data)]); try //HttpGet(EncodedURL, mapStream); //WinInet Result:= UrlDownloadToFile(Nil,PChar(encURL),PChar(Exepath+'openmapx.html'),0,Nil)= 0; //OpenDoc(Exepath+'openmapx.html; S_ShellExecute(Exepath+'openmapx.html','',seCmdOpen); finally encURL:= ''; end; end; Proc GetGEOMap(C_form,apath:Str; const Data:Str); var encodedURL:Str; mapStream: TMemoryStream; begin //encodedURL:= Format(UrlGoogleQrCode,[Width,Height,C_Level, HTTPEncode(Data)]); encodedURL:= Format(UrlMapQuestAPICode2,[c_form,HTTPEncode(Data)]); mapStream:= TMemoryStream.create; try Wininet_HttpGet(EncodedURL, mapStream); //WinInet mapStream.Position:= 0; mapStream.Savetofile(apath); // OpenDoc(apath); S_ShellExecute(apath,'',seCmdOpen); finally mapStream.Free; end; end; Web Request API HTTPSend: //http://synapse.ararat.cz/doc/help/httpsend.THTTPSend.html#@Description Const aURL='https://api.metadefender.com/v4/file/bzIwMDYxNi1TSW42NDBPVlprTWw3YjRBMQ'; Begin //@main srlist:= TStringlist.create; with THTTPSend.create() do begin Headers.Add('apikey: 6b337c92c792174a54acd715ab1aae64'); writeln(botostr(HTTPMethod('GET',aURl))); with TJson.create() do begin Parse(StreamtoString3(Document)); Split(Stringify,'{',srlist) end; writeln(itoa(resultCode)+':'+resultString+CRLF+srlist.text); clear;free; end; srlist.Free; Proc BtnFactory(a,b,c,d:smallint; title,apic:str; var abtn:TBitBtn; anEvent:TNotifyEvent; afrm:TForm); begin abtn:= TBitBtn.create(afrm); with abtn do begin parent:= afrm; setBounds(a,b,c,d) font.size:= 12; glyph.LoadFromResourceName(HINSTANCE, apic); mXButton(5,5,width, height,12,12,handle); caption:= title; onClick:= anEvent As TNotifyEvent; end; end; Func GetSystemDirectory2(var S:Str):Bool; var Len: Int; begin Len:= {Windows.}GetSystemDirectory('Nil', 0); if Len > 0 then begin SetLength(S, Len); //writeln(itoa(len)) Len:= {Windows.}GetSystemDirectory(PChar(S), Len); SetLength(S, Len); //writeln(itoa(len)) Result:= Len > 0; end else Result:= False; end; Func RecordsetToXML2(const Recordset: variant):Str; var RS: Variant; Stream: TStringStream; begin Result := ''; //if Recordset = unassigned then Exit; Stream:= TStringStream.Create('; try RS:= CreateOleObject('ADODB.Recordset; RS:= Recordset; RS.Save(TStreamAdapter.Create(stream,soReference) as IUnknown, adPersistXML); Stream.Position := 0; Result:= Stream.DataString; finally Stream.Free; end; end; convert JPEG to Bitmap if version = '4.7.6.20' then begin JPGImage:= TJPEGImage.Create; try JPGImage.LoadFromStream(TResourceStream.Create(hInstance,'Everest','JPEG')); with TImage.create(form1) do begin setbounds(50,500,500,200) parent:= form1; Picture.Graphic:= JPGImage; stretch:= true; end; finally JPGImage.Free; end; //} end; Func BigFactSum(n: integer):Str; var tbig1, tbig2, tbig3: TInteger; begin result:= '0' tbig1:= TInteger.create(1); //facultry tbig2:= TInteger.create(0); //assign tbig3:= Tinteger.create(0); for it:= 1 to n do begin tbig2.assign1(it) tbig1.mult(tbig2) tbig3.add(tbig1); end; result:= tbig3.tostring(false) tbig3.free; tbig2.free; tbig1.free; end; No helper class possible or predict: USES Classes,StrUtils; TYPE TStringListHelper = CLASS HELPER FOR TStrings Func ToSQL :Str; END; Func TStringListHelper.ToSQL :Str; VAR S :Str; Func QuotedStr(CONST S :Str) :Str; BEGIN Result:=''''+ReplaceStr(S,'''','''''')+'''' END; BEGIN Result:=''; FOR S IN Self DO BEGIN IF Result='' THEN Result:='(' ELSE Result:=Result+','; Result:=Result+QuotedStr(S) END; IF Result<>'' THEN Result:=Result+')' END; SL:=TStringList.Create; SL.Add('One'); SL.Add('Two'); SL.Add('Number Three'); SL.Add('It''s number 4'); WRITELN('SELECT * FROM TABLE WHERE FIELD IN '+SL.ToSQL); SELECT * FROM TABLE WHERE FIELD IN ('One','Two','Number Three','It''s number 4'} RSA Crypto Demo 965_RSA_IBZ_PrivatePublicKey_Form.pas const _n = '9516311845790656153499716760847001433441357'; //# p*q = modulus _e = '65537'; _d = '5617843187844953170308463622230283376298685'; abig:=TInteger.create(1); abig.Assignhex(ASCIItohex(message)); writeln('big plain text integer: '+abig.Tostring(normal)) s_encrypt:= BigPowMod(abig.Tostring(normal),_e, _n) //bigmulu(ap,aq)); writeln('encrypted text integer '+s_encrypt) s_decrypt:= BigPowMod(s_encrypt,_d,_n) //bigmulu(ap,aq)) writeln('decrypted text integer '+s_decrypt) Func ConvertHex(HexString :Str; Len : integer) :Str; begin if trim(HexString) = '' then Result := '0' else Result := IntToStr(StrToInt('$' + trim(HexString))); while length(Result) < Len do Result := '0' + Result; end; Proc SetBit(const a,b:Card); var d: Int64; // absolute dest; begin d:= $F000000000+(Int64(a) shl 21)+b shl 6; end; var alabel: TComponent; //Exception: A component named lblCell0 already exists. lc: integer; begin //object frMain: TfrMain if assigned(TLabel(FindComponent('lblCell'+intToStr(lc)))) then begin write('exist&Nil ') TLabel(FindComponent('lblCell'+ IntToStr(lc))).Name:= ''; alabel:= TLabel(FindComponent('lblCell'+ IntToStr(lc))); alabel:= Nil; end; end; //Discuss the Recursion of findfile! Proc FindFilePattern3(root:str; pattern:str); var SR: TFindRec; begin root:=IncludeTrailingPathDelimiter(root); if FindFirst3(root+'*.*',SR) = TRue then begin repeat Application.ProcessMessages; if ((sr.attributes and faDirectory)= SR.Attributes) and (pos('.',SR.name)=0) then FindFilePattern3(root+SR.Name,pattern) else begin if pos(pattern,SR.Name)>0 then //Form1.ListBox1.Items.Add(Root+SR.Name); writeln(Root+SR.Name); end; until FindNext3(SR) = False; FindClose3(SR); end; end; Unicode Encoding Decoding Charset UTF-8 Detection -------------------------------------------------------------------------- In menu ../Options/Saveas Unicode/ you can save code to UTF-8 with one click Attention it switches back to ANSI with another click! (no autocheck) if file load raise Exception: No mapping for the Unicode character exists in the target multi-byte code page at 0.146 Then you must save the file as utf-8 with notepad or saveStringUC(path): procedure SaveString2(const AFile, AText: string); procedure SaveString3(const AFile, AText: string; Append: Boolean); //UTF8 procedure SaveStringUC(const AFile, AText: string; Append: Boolean); //UTF8 - Unicode function LoadFile3(const FileName: TFileName): string; function LoadFileUC(const FileName: TFileName): string; combination test: writeln(loadfileUC(ExePath+’upsi_allfunctionslist2.txt’)); sleep(700) savestringUC(ExePath+’upsi_allfunctionslist2save.txt’, loadfileUC(ExePath+’upsi_allfunctionslist2.txt’),true) //append Charset Function: function WideCharsInSet( wcstr:WideString; wcset:TBits):Boolean; function JSONUnescape(const Source: string; CRLF: string{ = #13#10}): string; function ParseJsonvalue(jsonutf8: string): string; procedure setdebugcheck(false); Here you can find a completer UTF-8 chars conversion list: http://bueltge.de/wp-content/download/wk/utf-8_kodierungen.pdf look at in built mX5 class at the bottom SIRegister_flcUnicodeCodecs Example with CharsetConversion from call to google translator REST API: 1. trans atext:= 'bonjour mes amis da la ville of coding avec design'; 2. json escaped utf8 ["Hola mis amigos en la ciudad de codificaci\u00c3\u00b3n con dise\u00c3\u00b1o","fr"] 3. trans back ParseJsonValue(): ["Hola mis amigos en la ciudad de codificación con diseño","fr"] writeln('mimecharset '+ CharsetConversion(ParseJsonValue(Text_to_translate_API2(AURL,'dict-chrome-ex','auto','es', (atext))),UTF_8, ISO_8859_1)); 4. mimecharset ["Hola mis amigos en la ciudad de codificación con diseño","fr"] Example Parse JSON Array: writeln('len node names: '+itoa(ajar.length)) for it:= 0 to jo2.length-1 do begin //writeln(JSONUnescape(jo2.getstring(jo2.keys[it]), #13#10)); writeln(CharsetConversion(parsejsonvalue(jo2.getstring(jo2.keys[it])),UTF_8,ISO_8859_1)); //savstr:= savstr + jo2.getstring(jo2.keys[it]); savstr:= savstr +CharsetConversion(parsejsonvalue(jo2.getstring(jo2.keys[it])),UTF_8,ISO_8859_1); end; const tname= 'Subject: =?iso-8859-1?Q?Die_besten_W=FCnsche_zum_Neuen_Jahr_2021?='; writeln('mimecharset '+CharsetConversion(tn,ISO_8859_1, UTF_8)); writeln('mimecharset '+CharsetConversion(tname,ISO_8859_1, win_1252)); writeln( MimeCharsetToCharsetString(ISO_8859_1) ); solution: writeln(DecodeHeader(tname)); or writeln(ForceDecodeHeader(tname)); -----> Subject: Die besten Wünsche zum Neuen Jahr 2021 writeln(UTF8toAnsi(ALUTF8HTMLdecode('Kaufbestätigung'))) -----> Kaufbestätigung Inconsistent Case with Charset Detection: //UTF-8 -> Windows-1251 -> UTF-8 -> Windows-1256 ? sr:= 'Desinfektionslösungstücher für Flächen'; //sr:= CharsetConversion(sr,UTF_8, win_1251) writeln('mimecharset2 '+CharsetConversion(sr,UTF_8, win_1256)); >>> mimecharset2 DesinfektionslÃ_sungstÃ_cher fÃ_r FlÃ_chen https://stackoverflow.com/questions/14980200/converting-special-charactes-such-as-%c3%83%c2%bc-and-%c3%83%c6%92-back-to-their-original-latin-alp RegEx by example: The Regexlibrary is inbuilt so it works independent of Operating System: Proc RegEX_ExtractDemo; var regEx: TRegExpr; //or OleVariant if HISUtils; InStr, ResStr:Str; begin ResStr:=''; InStr:= 'Please e-mail us at support@mycompany.com or to sales@mycompany.com'; // Create a regular expression regEx:= TRegExpr.create; //HISUtils.RegExpr; // Set regular expression pattern that specifies an e-mail address regEx.Expression:='\w+(\.[\w-]+)*@([\w-]+\.)+[a-zA-Z]{2,6}'; // Execute search if regEx.Exec(InStr) then Repeat ResStr:= ResStr + regEx.Match[0] + '; '; Until not regEx.ExecNext; //Log.Message('These e-mails were extracted: '+ResStr); writeln('These e-mails were extracted: '+ResStr); // Posts the following to the log: //'These e-mails were extracted: support@mycompany.com; sales@mycompany.com;' end; Proc LoadFilesByMask(lst: TStrings; const SpecDir, WildCard:Str); var SearchRec: TFindRec; begin lst.Clear; if FindFirst3(SpecDir + WildCard, SearchRec) then repeat lst.Add(SpecDir + SearchRec.Name); until FindNext3(SearchRec) = false; FindClose3(SearchRec); end; Proc regExtest; //SynRegExpr unit RegEx Snippet var RegEx: TRegExpr; // This is a class, need to be freed! //Match: TMatch; i: Integer; begin with TRegExpr.Create do begin Expression:= ('^v(ol\.?|olume)?\s*([0-9]+)$'); if Exec('vol.3456') then for i:=0 to SubExprMatchCount do PrintF('Group %d : %s', [i, Match[i]]); //Until not regex.ExecNext; Free; end end; //(?i) ---> case insensitive //(?i) case-insensitive mode ON //(?-i) case-insensitive mode OFF writeln(getMatchString('(?i)G[a-b].*', 'this GB string')); PrintF('CountPos: %d',[CountPos(uppercase('Selftest'),uppercase(sr))]) Set Mapping There are some differences in the use of set operators in PascalScript and Delphi. In DelphiScript the [...] set operator is not supported or the in operator not always works. Set mapping with ord(CS) works: type TMimeCharset = ( CS_DEFAULT1, CS_NOTMAPPED, UTF_8, WIN_1250, WIN_1254, WIN_1255, WIN_1257, WIN_1258, ISO_8859_1, ISO_8859_2) Cs: TMimeCharSet; CS:= CS_NOTMAPPED; I := Ord(CS); CharsetInfos[I].MimeCharset := CS_NOTMAPPED; //CharsetInfos[I].CodePage := ERR_CP_NOTMAPPED; CharsetInfos[I].MimeName := (''); CharsetInfos[I].FriendlyName := 'sUnicodeUTF844'; EnvironmentString: envlist:= Tstringlist.create; StrtoList(GetEnvironmentString, envlist, CR) writeln(envlist.Text); writeln('envlist.count: '+itoa(envlist.count)); envlist.Free; Note arrays in PascalScript cannot be initialized statically. For instance, the following code raises an error: var I : array[0..1] of Integer = (3,4) // <-- Error!!! To solve problem, initialize array elements in your code. There are several ways to do this: Initializing each element individually: DelphiScript var a : array [0..3] of string; begin a[0] := 'Element 0'; a[1] := 'Element 1'; a[2] := 'Element 2'; a[3] := 'Element 3'; ... end; Initializing elements in a loop: DelphiScript var a : array [0..3] of string; begin for i := 0 to 3 do a[i] := 'Element ' + IntToStr(i); ... end; var array with 2 dimensions: Var frMain : TfrMain; iXPos : array [1..3] of array [ 1..3] of Integer; iOPos : array [1..3] of array [ 1..3] of Integer; Constructor with override do most have a second one: var Images : TObjectList; //Create TObject list with AOwnsObjects set to True means that destroying //the object list will also destroy all of the objects it contains //NOTE: On ARC compiler destroying TObjectList will only remove the reference //to the objects and they will be destroyed only if thir reference count //drops to 0 Images := TObjectList.Create; Images := TObjectList.Create1(true); //override a1 := TStatArray.Create1(0); // Growing array. Return Values Use ArcTan3 instead of ArcTan Func ArcTan3(const X : Extended) : Extended'); //bugfix of ArcTan() To return a value from a function, use Result instead of Func name. Using Func name will cause an error: Func Calc(x, y) : Integer; begin Calc := (x - y) * (x + y); // Error !!! Result := (x - y) * (x + y); // Correct variant end; Proc TStringsExchange(Index1, Index2: Integer; stlist: TStringlist); var TempObject: TObject; TempString:Str; begin stlist.BeginUpdate; try TempString := stlist.Strings[Index1]; TempObject := stlist.Objects[Index1]; stlist.Strings[Index1] := stlist.Strings[Index2]; stlist.Objects[Index1] := stlist.Objects[Index2]; stlist.Strings[Index2] := TempString; stlist.Objects[Index2] := TempObject; finally stlist.EndUpdate; end; end; //*) Integer Overflow of a DLL import: https://forum.lazarus.freepascal.org/index.php?topic=26116.0 usually you set stdcall convention for a dll Func csoundgetversion: Longint; external 'csoundGetVersion@csound64.dll stdcall'; but for procedures or void try with cdecl: Proc csoundSleep(duration: word); external 'csoundSleep@csound64.dll cdecl'; //no stdcall (int overflow) [Error]..\maXbox4\examples\558_hirestimer2test2.txt(12:1): program is not allowed at this position cause: strange typecasts like: TStream(Nil) or TString(null) set a DLL Template: dll+Ctrl J //https://docs.microsoft.com/en-us/windows/win32/api/wininet/nf-wininet-internetsetoptiona Func InternetSetOption(hinternet:HINTERNET; dwoption: DWord; buffer: Ansistr; bufflen: DWord):Bool; external 'InternetSetOptionA@wininet.dll stdcall'; { BOOLAPI InternetSetOptionA( HINTERNET hInternet, DWORD dwOption, LPVOID lpBuffer, DWORD dwBufferLength ); } Proc testReverse_Proxy; var ConnectionHandle: HINTERNET; UserName: Ansistr; res:Bool; EmptyParam: OleVariant; begin // Init ConnectionHandle here ... res:= InternetSetOption(ConnectionHandle, INTERNET_OPTION_PROXY_USERNAME, UserName, Length(UserName) + 1); Proc Str() doesnt return a value : use intToStr() TBytes = array of byte : call of the library problem Proc SaveBytesToFile(const Data: TBytes; const FileName:Str); //const OK! Func ShiftByteArray(var A: TBytes): Byte; // var Not OK! in script Func ByteToString(var Value: TBytes):Str; // var and const OK! var I: integer; S :Str; Letra: char; begin S := ''; for I := Length(Value)-1 Downto 0 do begin letra := Chr(Value[I] + 48); S := letra + S; end; Result := S; end; ------------------------------ Func wrapper --------------------------- Its better to call a Func wrapper than the Func itself: Proc QuickSortX(StringList : TStringList; L, R: Integer); Var I, J, P : Integer; Begin P := StringList.Count; If (L >= P) or (R >= P) Then Exit; {……………………………………} Proc SortList(StringList : TStringList); //Func wrapper hides paras Begin QuickSortX(StringList, 0, StringList.Count – 1) End; —————————————————- tst:= TStringlist.create; tst.add(‘7’) tst.add(‘9’) writeln(objtostr(tst)) SortList(tst) //call to Func wrapper Hashmap or Dictionary or stringhash or map with TStringHashMap.create(CaseSensitiveTraits, 50) do begin //Add( const s :Str; const p); data['this is']:= '345' data['this is2']:= '3456' data['this is25']:= '3456677' writeln(botostr(Has('this is2'))) setlength(sr,120) stri:= pchar(data['this is'][10]) writeln(itoa(length(stri))) writeln(stri) writeln(itoa(Count)); writeln(itoa(HashSize)) clear; free; end; Proc stringHashtest; var hash : TStringHash2; //Here’s unit with those TIntegerHash2 and TStringHash2, TObjectHash2 described @ basehash: THash2; begin hash:= TStringHash2.Create; try hash['one']:= 'viens value'; hash['two']:= 'divi value'; //ShowMessage(hash['one']); //ShowMessage(hash['two']); if hash.exists('one') then writeln(hash['one']); writeln(hash['two']); hash.Rename('one', 'onerename'); writeln(hash['onerename']); finally hash.Free; end; end; // word frequency snippet for it:= 1 to wordlist.count-1 do begin //writeln(itoa(it)+' '+Utf8ToAnsi(wordlist[it])); aword:= lowercase(Utf8ToAnsi(wordlist[it])) regex.RegEx:= '\w+'; regex.Subject:= aword; if regex.match then aword:= regex.groups[0]; //word filter if aword <> '' then if dict.exists(aword) then dict[aword]:= inttostr(strtoint(dict[aword])+1) else dict[aword]:= '1'; end; // iterate through all values dict.Restart for it:= 1 to (dict.itemcount-1) do if dict.next then writeln(dict.currentkey+': '+dict.items[dict.currentkey]) ; //} for each method - for in metheod theres no for each operator but we can map it: //for c := 'a' to 'z' do for c:= ord('a') to ord('z') do //for ch in adata do begin for chi:= low(adata) to high(adata) do begin ch:= adata[chi] c: AnsiChar; Dec: Ansistr //for c in Dec do for it:= 1 to length(dec) do begin c:= dec[it] for in and set or include charset var include: charset; ex:str; //if ex[i] in ['a'..'z'] then include:=include+[ex[i]]; -type mismatch alternatives: 1. if (ex[i] > 'a') and (ex[i] < 'z') then //in ['a'..'z'] 2. if ex[i] in StrToCharSet(lowercase(LETTERSET)) then include:= include+strtoCharset(ex[i]); use strtocharset and chartostrset as helper Func with sets stest[2]:= '^'; if stest[2] in StrToCharSet(lowercase(LETTERSET)+'_'+'?'+' '+'-'+'*'+'/'+'ö'+'^') then writeln('inside') else writeln('outside'); >>> inside writeln(charsettostr(strtocharset('*'+'?'))) function IsSTRLegal2(c: string): boolean; begin //result:= (Length(c)=1) and (c[1] in StrToCharSet('+'+ '-'+ '.'+ DIGISET)); result:= (Length(c)=1) and (c[1] in StrToCharSet('+-.,:'+DIGISET)); end; Func IsInvalid(s:Str):Bool; var c: char; //leters: set of char; leters: Charset; firstE:Bool; begin //writeln(itoa(IndexStr(s,['k']))); //Result := (Length(s) < 3) or (s.IndexOf('k') = -1) or (s.Length > 9); Result:= (Length(s) < 3) or (pos('k',s) = 0) or (Length(s) > 9); if not Result then begin leters:= ['d', 'e', 'g', 'k', 'l', 'n', 'o', 'w']; firstE:= true; //for c in s do for it:= 1 to length(s) do begin c:= s[it]; if c in leters then if (c = 'e') and (firstE) then firstE:= false else //Exclude(leters, AnsiChar(c)) leters:= leters-strtoChars(c) else begin result:= true exit; end; end; end; end; Func TrimRight7(Str:Str):Str; var i: Integer; begin i:= Length(Str); //while (i > 0) and (Str[i] in [' ', #9]) do while (i > 0) and (Str[i] in strtocharset(' '+#9)) do i:= i - 1; Result:= Copy(Str,1,i); end; if MatchesMask('abc.xyz', 'a*.*',true) then writeln('File name is OK.') else writeln('Invalid file name.'); Find all files of a defined date: 8 C:\>dir /s /o N *.dcu | find "16/06/2020" > C:\maXbox\maxboxunitalldisk_sort.txt Operator Overloading Surrogate: type complexreal = record re : real; im : real; end; { TFR } { frequency response } TFR = record M, phi: extended; { magnitude and phase } F: complexreal; { complex FR (F = M(omega) * exp(i * phi(omega)) } end; Func cexp (z : complexreal) : complexreal; { exponantial : r := exp(z) } { exp(x + iy) = exp(x).exp(iy) = exp(x).[cos(y) + i sin(y)] } var expz : real; begin expz := exp(z.re); cexp.re := expz * cos(z.im); cexp.im := expz * sin(z.im); end; Func complexmulu(z1 : complexreal; r : real): complexreal; { multiplication : z := z1 * r } begin result.re := z1.re * r; result.im := z1.im * r; end; FFr.F:= FFr.M * cexp(i * FFr.phi); { M and phi encoded in polar coordinates } //complextemp:= complexmulu(i,FFr.phi); FFr.F:= complexmulu(cexp(complexmulu(i,FFr.phi)), FFr.M); { M and phi encoded in polar } replace move with iteration to move() // big note to move the move to an iteration For i:= BListLenght downto 1 do BList[i]:= BList[i-1]; //or move(Blist[0],Blist[1],BListLenght*SizeOf(Blist[0])); Array of const you cant set an array like : {CONST} VAR t : TA; (* = ((0,3,1,7,5,9,8,6,4,2), (7,0,9,2,1,5,4,8,6,3), (4,2,0,6,8,7,1,3,5,9), (1,7,5,0,9,8,3,4,2,6), (6,1,2,3,0,4,5,9,7,8), (3,6,7,4,2,0,9,5,8,1), (5,8,6,9,7,2,0,1,3,4), (8,9,4,5,3,6,2,0,1,7), (9,4,3,8,6,1,7,2,0,5), (2,5,8,1,4,3,6,7,9,0)); *) but you can convert: const arrstr= '0,3,1,7,5,9,8,6,4,2'+ '7,0,9,2,1,5,4,8,6,3'+ '4,2,0,6,8,7,1,3,5,9'+ '1,7,5,0,9,8,3,4,2,6'+ '6,1,2,3,0,4,5,9,7,8'+ '3,6,7,4,2,0,9,5,8,1'+ '5,8,6,9,7,2,0,1,3,4'+ '8,9,4,5,3,6,2,0,1,7'+ '9,4,3,8,6,1,7,2,0,5'+ '2,5,8,1,4,3,6,7,9,0'; procedure InitTable4; var i,j,k: integer; repl: string; begin repl:= StringReplace(arrstr,',','',[rfReplaceAll]); k:= 0 for i:= 0 to 9 do for j:= 0 to 9 do begin inc(k) t[i][j]:= strtoint(repl[k]) end; end; Convert Static Array to Dynamic Array procedure TForm1Button1Click(Sender: TObject); var ADate: TDateTime; days: array[1..7] of string; begin days[1]:= 'Sunday'; days[2]:= 'Monday'; days[3]:= 'Tuesday'; days[4]:= 'Wednesday'; days[5]:= 'Thursday'; days[6]:= 'Friday'; days[7]:= 'Saturday'; ADate := StrToDate('31/01/1981'); ShowMessage('31/01/1981' + ' was a ' + days[{SysUtils.}DayOfWeek(ADate)]); end; //Incompatible types: 'Dynamic array' and 'array of string' to open array procedure TForm1Button1ClickDynArray(Sender: TObject); var aDate: TDateTime; days: array of string; begin setLength(days,7); days:=['Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday']; aDate:= StrToDate('31/01/1981'); ShowMessage('31/01/1981'+' was a '+ days[{SysUtils.}DayOfWeek(aDate)-1]); end; // with SplitStr begin aDate:= StrToDate('31/01/1981'); days:= SplitStr('Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday',','); writeln('31/01/1981'+' was a '+ days[{SysUtils.}DayOfWeek(aDate)-1]); end; AssignFile versus TStringlist --------------------------------- In addition to the old style file handling routines mentioned above, a new system exists that uses concept of streams (- of data) at a higher abstraction level. Means data can be read from or written to any location (disk, memory, hardware ports etc.) by one uniform interface. In addition, most string handling classes have the ability to load and save content from/to a file. These methods are usually named SaveToFile and LoadFromFile. in // old style assign file filelist:= TStringlist.create; // assignfile(f,opendialog1.filename); filelist.loadfromfile( filename) // reset(f); // while not eof(f) do for it:= 0 to filelist.count-1 do begin //readln(f,line); line:= filelist.strings[it]; writeln(line) if (length(line)>2) and (copy(line,1,2)='ID') then {skip Id records} else begin {it's a data record} if totcount=0 then begin savedecimalseparator:=decimalseparator; if pos(',',line)>0 then setdecimalseparator(',') else setdecimalseparator('.'); end; errcode:=0; try x:=strtofloat(trim(line)); except errcode:=1; end; if (errcode=0) and (x>0)and(x<=amaxtime) then begin inc(samps[round(maxindex*x)]); {increment the count for the bar for x} inc(totcount); end; end; end; // closefile(f); filelist.Free; Random Generator: https://github.com/TurboPack/SysTools/blob/master/source/StRandom.pas strand:= TStRandomSystem.create(42); //if 0 then randomseed, else randomstate sleep(200) writeln(floattostr(strand.asFloat)) writeln(itoa(strand.asInt(10000))) writeln(itoa(strand.asInt($E15))) UniformityTest2(strand, ChiSquare, DegsFreedom) writeln('ChiSquare: '+floattostr(ChiSquare)+' ,degsfreedom:'+itoa(degsfreedom)); UniformityTest3(strand, ChiSquare, DegsFreedom) writeln('ChiSquare: '+floattostr(ChiSquare)+' ,degsfreedom:'+itoa(degsfreedom)); strand.Free; Https Post API: http://www.softwareschule.ch/download/maxbox_starter94.pdf translator for different countries: var httpReq,hr: Olevariant; try hr:= httpReq.Open(‘POST’,’https://libretranslate.pussthecat.org/translate’, false); httpReq.setRequestheader(‘user-agent’, ‘Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:98.0) Gecko/20100101 Firefox/98.0’); httpReq.setRequestheader(‘content-type’,’application/x-www-form-urlencoded’); //httpReq.setRequestheader(‘X-RapidAPI-Host’,’nlp-translation.p.rapidapi.com’); if hr= S_OK then HttpReq.Send(‘q=’+HTTPEncode(feedstream)+ ‘&source=es’+’&target=en’); If HttpReq.Status = 200 Then result:= HttpReq.responseText Else result:= 'Failed at getting response:'+itoa(HttpReq.Status)+HttpReq.responseText; //writeln('debug response '+HttpReq.GetAllResponseHeaders); finally httpreq:= unassigned; File Size Reference: filegetsize() Func FileGetSizeX(const FileName:Str): Int64; {$ifndef fpc} var FileInfo: TSearchRec; {$endif} begin {$ifdef fpc} Result:= FileUtil.FileSize(FileName); {$else} // from LCL FileUtil code FileInfo.Name:= Filename; FileInfo.FindHandle:= {Windows.}FindFirstFile({Windows.}{LPTSTR}(FileInfo.Name) ,FileInfo.FindData); if FileInfo.FindHandle={Windows.}Invalid_Handle_value then begin Result:=-1; Exit; end; Result:= (int64(FileInfo.FindData.nFileSizeHigh) Shl 32)+ FileInfo.FindData.nFileSizeLow; {Windows.}FindCloseW(FileInfo.FindHandle); {$endif} end; { this func is a wrapper for platform-specific file fns IE a way to get rid of those portability warnings and a place to put the equivalent linux fns } RTL OSLibrary+ Func MySoundcard: Longint; external 'waveOutGetNumDevs@winmm.dll stdcall'; Func isSound:Bool; begin result:= mySoundcard > 0 end; Func StringtoHex(Data:Str):Str; Func GetAnsistrRefcount(const S:Str):Card; Func WideStringToString(const ws: WideString; codePage: Word): Ansistr; Func StringToWideString(const s: Ansistr; codePage: Word): WideString; Proc FreeObjectList(List: TObjectList); Func SecondToTime(const Seconds:Card): Double; Func CopyDir2(const fromDir, toDir:Str):Bool;; Func MoveDir(const fromDir, toDir:Str):Bool;; Func DelDir(dir:Str):Bool;; Proc DeleteScansRect(Src, Dest: TBitmap; rs, rd: TRect); Proc FadeIn(ImageFileName: TFileName; aForm1: TForm); Proc FadeOut(ImageFileName: TFileName); Proc FadeOut32(const Bmp: TImage; Pause: Int); Func CheckBDEInstalled:Bool; //IsBDE Proc SaveStringToStream( const Str :Str; Stream : TStream); Func LoadStringFromStream( Stream : TStream) :Str; Func WaitForSyncObject(SyncObject:THandle;Timeout:Card;BlockInput:Bool):Card; Func ProcessMessage :Bool; Proc ProcessMessages( Timeout : DWORD); //without application! Func GetNumberOfEventLogRecords(hEventLog:THandle;var NumberOfRecords:DWORD): BOOL; Func GetOldestEventLogRecord(hEventLog:THandle; var OldestRecord : DWORD): BOOL; ex.:EventLog:=RegisterEventSource('0',('maxbox4.exe'));if GetNumberOfEventLogRecords(eventlog,recs) Proc InitializeLocaleSupport); Proc TerminateLocaleSupport; Func StrReplaceRegEx(const Subject,Pattern:Ansistr; Args:array of const : Ansistr; Func TickCountToDateTime( Ticks :Card) : TDateTime; Proc OutputDebugStringmax( const S :Str); Proc OutputDebugFormat( const FmtStr :Str; Args : array of const); Func IsAppRunningInDelphi :Bool; Func RunExecutable( const AFileName :Str; AWaitForIt :Bool) : DWORD; Func SystemCodePage : Int; Func CPUSpd:Str; Func CPUSpeed:Str; Func BigFib(n: Int):Str; //BigFibo Func BigFac(n: Int):Str; //BigFact Func UpTime:Str; Func NetLogon(const Server,User,Password:WideString; out ErrorMessage:str) :Bool; Func NetLogoff( const Server, User, Password : WideString) :Bool; Proc ErrorNamedPipe( const Message :Str); Proc BroadcastChange; //method that broadcasts the necessary message WM_SETTINGCHANGE Func WriteFile2(hFile:THandle;const Buffer,nNumberOfBytesToWrite:DWORD; var lpNumberOfBytesWritten:DWORD; lpOverlapped : Tobject):BOOL; Func ReadFile2(hFile:THandle;var Buffer,nNumberOfBytesToRead:DWORD;var lpNumberOfBytesRead:DWORD;lpOverlapped : Tobject):BOOL; // Security helper functions Proc InitializeSecurity(var SA: TSecurityAttributes); Proc FinalizeSecurity(var SA: TSecurityAttributes); // Pipe helper functions Proc CheckPipeName(Value:Str); Proc ClearOverlapped(var Overlapped: TOverlapped; ClearEvent:Bool); Proc CloseHandleClear(var Handle: THandle); Func ComputerName2:Str; Proc DisconnectAndClose(Pipe: HPIPE; IsServer:Bool = True); Func EnumConsoleWindows(Window: HWND; lParam: Int): BOOL; stdcall; Proc FlushMessages; Func IsHandle(Handle: THandle):Bool; Proc RaiseWindowsError; Func UpTime:Str; //OS uptime Func CharSetToCP(ACharSet: TFontCharSet): Int; Func CPToCharSet(ACodePage: Int): TFontCharSet; Func TwipsToPoints(AValue: Int): Int; Func PointsToTwips(AValue: Int): Int; Proc LoadGraphicFromResource(Graphic:TGraphic; const ResName:str; ResType:PChar); Func SplitStr(sInput:str; Delimiter:str): TStringArray; Func GetDataFromFile2(sFileName: Ansistr): Ansistr; Func ExtractFileNameWithoutExt(const FileName:Str):Str; Func SubstringCount (Substring :Str; Str :Str): Int; Func loadForm(vx, vy: smallint): TForm; //alias getForm() Func getForm(vx, vy: smallint): TForm; //alias getForm() Func getForm2(vx,vy:smallint;acolor:TColor;aname:str):TForm; //sizeable! Proc paintProcessingstar2(ppform: TForm); Func ContentTypeGetExtn(Const Content:Str; var CLSID:Str):Str; Func ContentTypeFromExtn(Const Extension:Str):Str; Func DateTimeDiff2(Start, Stop : TDateTime) : int64; Func checkSystem:Str;; Func getSystemReport:Str;; Func SystemCheck:Str;; Func SetThreadDesktop( hDesktop : HDESK) : BOOL; Func RSAEncrypt(aval, apow, amod:Str):Str;; Func RSADecrypt(aval, apow, amod:Str):Str;; Func EncryptRSA(aval, apow, amod:Str):Str;; Func DecryptRSA(aval, apow, amod:Str):Str;; Func SwitchToThread : BOOL; Func CloseDesktop( hDesktop : HDESK) : BOOL; Func GetThreadDesktop( dwThreadId : DWORD) : HDESK; Func SetSyscallHook():Bool;; Func SetSwapcontextHook():Bool;; Func UnhookAll():Bool;; Func getWorld:Str;; Func getIPConfigAll:Str;; Func getIPConfig:Str;; Func WinsockEnabled:Bool; Func HTTPEncode2(const AStr:Str):Str; RSAEncryptStr(const EncryptionType:TRSAEncryptionType;const PublicKey:TRSAPublicKey;const Plain:Ansistr): Ansistr; /////////////////////////////////////////////////////////////////////////////// // Object instance functions /////////////////////////////////////////////////////////////////////////////// Func AllocateHWnd(Method: TWndMethod): HWND; Proc DeallocateHWnd(Wnd: HWND); Func DeleteDC( DC : HDC) : BOOL; Func DeleteMetaFile( p1 : HMETAFILE) : BOOL; Func DeleteObject( p1 : HGDIOBJ) : BOOL; Func FormInstanceCount2(AFormClass: TFormClass): Int;; Func FormInstanceCount(const AFormClassName:Str): Int;; ClassN(CL.FindClass('Class of TForm'),'TFormClass; Func ObjToStr( const O : TObject) :Str MessageBox(0,PChar('CPU speedis '+CPUSpd+' MHz'),'CPU Speed Check',MB_IconInformation+MB_OK); TKLogEvent', 'Proc (Sender : TObject; Code : TKLogType; const Text :Str); AddRegisteredVariable('FormatSettings','TFormatSettings; //at sysutils! AddRegisteredVariable('mouse','TMouse; //at controls HPIPE', 'THandle; Func ListIdentical2(l1,l2:TStringList):Bool; begin Result:= False; if l1.count = l2.count then begin for it:= 0 to l1.count-1 do if (l1[it] <> l2[it]) then Exit; Result:= True; end; end; // Converts String To Hexadecimal Maybe usefull for a hex-editor // For example: Input = 'ABCD' Output = '41 42 43 44' Func StringtoHex(Data:Str):Str; var i, i2: Int; s:Str; begin i2:= 1; for i:= 1 to Length(Data) do begin Inc(i2); if i2 = 2 then s:= s + ' '; i2 := 1; s:= s + IntToHex(Ord(Data[i]), 2); end; Result:= s; end; Func XRTLIsInMainThread:Bool; begin Result:= GetCurrentThreadID = MainThreadID; end; computers:= TStringList.Create; FindComputers(computers) for it:= 0 to computers.count-1 do writeln(computers.strings[it]); computers.free; s:= (Sender AS TStringGrid).Cells[col,row]; Sender AS TStringGrid).Canvas.Font.Color := clBlack; twidth:= (Sender AS TStringGrid).Canvas.TextWidth('X; (Sender AS TStringGrid).Canvas.TextRect(Rect, Rect.Left + twidth div 2, YCenter(Rect, (Sender AS TStringGrid).Canvas,s),s) Proc | EXceptionsOnmaXbox; Exception Handling EXceptions On maXbox var filename,emsg:str; begin filename:= ''; try if filename = '' then RaiseException(erCustomError, 'Exception: File name cannot be blank; except emsg:= ExceptionToString(ExceptionType, ExceptionParam); //do act with the exception message i.e. email it or save to a log etc writeln(emsg) end; end; XRaise raise an exception without except block: if (DLLHandle < HINSTANCE_ERROR) then Xraise(Exception.Create(DLLName + ' library can not be loaded or not found.'+ SysErrorMessage(GetLastError))); Proc CallTicker(msecs: Int); begin with TStopWatch.create do begin start | //Delay2StopWatch(msecs) stop writeln('Stop Watch CPU Tester: '+getValueStr) end; end; MessageDlg Example: mr:=messagedlg('Save clock first?',mtconfirmation,[mbYes,mbNo,mbCancel],0); if mr=mryes then writeln('yes') Func getFilefrom if not (Fileexists('1004unixdict.txt') or fileexists('unixdict.txt')) then if IsInternet then begin writeln(dictURL) wGetX2(dictUrl,Exepath+'1004unixdict.txt'); openFile(Exepath+'1004unixdict.txt') end; //} Func IsASCIIDigit(const Ch: Char):Bool; begin //Result := Ord(Ch) in [Ord('0')..Ord('9')]; Result:= (Ord(Ch) >= Ord('0')) And (ord(ch) <= Ord('9')); end; Func RemainingBatteryPercent: Int; var Stat: {Windows.}TSystemPowerStatus; begin {Windows.}GetSystemPowerStatus(Stat); Result:= Stat.BatteryLifePercent; if (Result < 0) Or (Result > 100) then Result:= -1; end; // *********************************************************** // TIdBaseComponent is the base class for all Indy components. // *********************************************************** type TIdBaseComponent = class(TComponent) public Func GetVersion:Str; property Version:Str read GetVersion; published end; if IsInternet then wGetX('http://www.softwareschule.ch/download/maxbox_starter4.pdf','mywgettestpdf.pdf; RegEx tester sr := '123.456.789-00$p' writeln(ReplaceRegExpr('\D',sr,'',true)) >>> 12345678900 //\D is a non-digit, and \W is a non-word character, both should work) ref: lambda: a+b --> a.+(b) in preparations namedpipe1:= namedpipe as TNamedpipe; printF('this is %.18f ',[maxCalc('ln(2)^e')]); this is 0.369248502937272178 printF('this is Area of r=1 %.18f ',[maxCalc('PI*(1^2)')]); printF('this is Area of d=2r %.18f ',[maxCalc('PI/4*(2^2)')]); println(ReplaceRegExpr('\d\d{4,12}[},]', GetSentimentStream7(URLSentimentAPI2,Items[it].title),' ',false)) {"probability": {"neg": 0.5180 "neutral": 0.5201 "pos": 0.4819 , "label": "neutral"} begin initCRCarray2; aStringStream := TStringStream.Create(filetoString(exepath+testFile)); try //aStringStream.loadfromfile writeln('CRC32_: '+IntToHex(CalculateCRC32X(aStringStream), 8)); finally aStringStream.Free; end; end; Proc TForm1Findwindow_Remote_Notepad; var wnd: HWND; i: Int; s:Str; begin wnd := FindWindow('notepad', '; if wnd <> 0 then begin wnd := FindWindowEx(wnd, 0, 'Edit', '; // Write Text in Notepad. s := 'Hello maXPad 3 ecotronics'+#13#10+'second line:'; for i := 1 to Length(s) do SendMessage(wnd, WM_CHAR, Ord(s[i]), 0); // Simulate Return Key. PostMessage(wnd, WM_KEYDOWN, VK_RETURN, 0); // Simulate Space. PostMessage(wnd, WM_KEYDOWN, VK_SPACE, 0); SendMessage(wnd, WM_CHAR, 5, 0); //send time of F5 command in notepad! PostMessage(wnd, WM_KEYDOWN, VK_F5, 0); end; end; Proc XPATHTest; var XML: OLEVariant; begin XML:= CreateOleObject('MSXML2.DOMDocument.3.0') ; XML.async:= false; XML.SetProperty('SelectionLanguage','XPath'); XML:= unassigned; end; with adoQuery do begin //recordset hack cachesize:= 500; //commandtext:= 'INSERT INTO Table1 (FirstName, LastName, Phone)'+ 'VALUES (''MaXML'', ''Box42810'', ''031-3337788'')'; commandText:= 'SELECT * FROM Table1'; connectionString:='Provider=MSDASQL.1;Persist Security Info=False;Data Source=mX4base'; Open; Recordset20(recordset).save(Exepath+'recordset6.xml',adPersistXML) writeln(GetISODateString(1995,12,24)) writeln(botostr(IsValidISODateTimeString(GetISODateString(1995,12,12), true))) writeln(MicrosoftCodePageToMIMECharset(1252))writeln(GetISOTimeString(12,45,33, true)); writeln(botostr(IsValidISOTimeString(GetISOTimeString(12,45,33, true), true))) IDoc:= LoadXMLDocument3(BOOKSXML); //('.\books.xml'); INode:= SelectXMLNode(IDoc.getDocumentElement,'/bookstore/book[2]/title'); writeln(FormatXMLFile2String(BOOKSXML)); writeln(DataSetToXML(TDataset(adoquery))); Proc EnableDEP2; // DEP const PROCESS_DEP_ENABLE: DWORD=$00000001; var SetProcessDEPPolicy: function(dwFlags: DWORD): BOOL; stdcall; begin SetProcessDEPPolicy := GetProcAddress(GetModuleHandle(kernel32),'SetProcessDEPPolicy'); if Assigned(SetProcessDEPPolicy) then begin //don't bother checking for errors since we don't need to know if it fails SetProcessDEPPolicy(PROCESS_DEP_ENABLE); end; end; unit uPSI_UTGraphSearch; chNGE tnode to tnode2 procedure SIRegister_TNode2(CL: TPSPascalCompiler); begin //with RegClassS(CL,'tObject', 'TNode2') do with CL.AddClassN(CL.FindClass('tObject'),'TNode') do begin RegisterProperty('adjacents', 'array of TEdge', iptrw); RegisterProperty('nbradjacents', 'integer', iptrw); RegisterProperty('index', 'integer', iptrw); RegisterProperty('x', 'integer', iptrw); RegisterProperty('y', 'integer', iptrw); RegisterMethod('Constructor create'); end; end; TList.count and capacity! RegisterProperty('Q', 'TList', iptrw); type __Pointer; as TObject cause of NIL FreeAndNilStream (Output); Output : TStream; FreeAndNilBmp (Output); Output : TBitmap; sign: About! Convert a dfm to string: var abt:Bool; srlist:= TStringlist.create; if LoadDFMFile2Strings('C:\maXbox\mX42810\backgroundworker\Demo\Primes\Main.dfm',srlist,abt)= 0 then writeln(srlist.text); srlist.Free; *) Assert Test: _outd( a1.StandardDeviation ); Assert(trunc(a1.StandardDeviation)=46, 'must = 46 '); isloc:= WMIStart; iserv:= WMIConnect(isloc,'localhost','',''); wmi_dom:= 'Win32_NetworkAdapterConfiguration'; V 4.7.5.90 VI + 4.7.6.10 Amount of Functions: 20549 Amount of Procedures: 12307 Amount of Constructors: 1937 Amount of Destructors: 14 Totals of Calls: 34807 , Size: 31,974,216 bytes SHA1: of 4.7.5.90 96DCDE2028125E00B67E42A801721AC513A5EAFC CRC32: BBC3A7E5  mX4 executed: 03/11/2021 15:25:47 Runtime: 0:12:33.807 Memload: 39% use  4.7.6.10 III Totals of Calls: 35218 SHA1: of 4.7.6.10 6647E6200E46702944A6B8175A53EDC1ABEF8E14 CRC32: 1A2922DA: 32,221,000 bytes  mX4 executed: 12/12/2021 10:03:11 Runtime: 0:12:50.630 Memload: 45% use  4.7.6.10 IV Total of Function Calls: 35351 SHA1: of 4.7.6.10 A9C0D35723F9D2E72E9270207640F938FF58555B CRC32: 8230EA82 31.3 MB (32,917,832 bytes)  4.7.6.10 VII Amount of Functions: 20994 Amount of Procedures: 12492 Amount of Constructors: 1984 Amount of Destructors: 14 Totals of Calls:35484 SHA1:of 4.7.6.10 EC20D0A371A57AA078762D6D45F7229A370549A1 CRC32: 82E481A4: 33273160 bytes  mX4 executed: 14/03/2022 15:21:38 Runtime: 0:13:41.253 Memload: 42% use  17/03/2022 14:08 194,307 IFSI_WinForm1puzzle.dcu 17/03/2022 20:30 46,854 uPSC_classes.dcu 17/03/2022 19:48 5,226 uPSC_std.dcu 17/03/2022 18:49 53,416 uPSR_classes.dcu 17/03/2022 20:30 19,528 uPSI_SynEditHighlighter.dcu 17/03/2022 16:03 11,784 uPSI_SynEditMiscProcs.dcu 17/03/2022 21:15 173,341 uPSI_TeEngine.dcu 17/03/2022 21:16 30,854 MathsLib.dcu 17/03/2022 20:13 77,627 uPSI_neuralvolume.dcu 17/03/2022 13:10 13,188 uPSI_UcomboV2.dcu 17/03/2022 13:26 14,813 uPSI_UTGraphSearch.dcu 17/03/2022 13:22 21,041 UTGraphSearch.dcu Release Notes maXbox 4.7.6.10 VIII August 2022 mX476 Amount of Functions: 21179 Amount of Procedures: 12591 Amount of Constructors: 1987 Amount of Destructors: 14 Totals of Calls: 35771 Release Notes maXbox 4.7.6.20 Oct 2022 mX476 Amount of Functions: 21309 Amount of Procedures: 12640 Amount of Constructors: 1989 Amount of Destructors: 14 Totals of Calls: 35952 SHA1: of 4.7.6.20 C0459A5DD0CCC12CE9F3CDEC82E3E0C920D38D9C CRC32: 498B62AF: 33690392 bytes  mX4 executed: 09/10/2022 20:59:18 Runtime: 0:14:21.810 Memload: 39% use  maXbox4.exe now available as a NFT sha256: 09eb95c4cc3b7fe60772405b170af4705085da89d190213228c65313c8733499 https://lawrencebarsanti.wordpress.com/2009/11/28/introduction-to-pascal-script/ Amount of Functions: 21538 Amount of Procedures: 12755 Amount of Constructors: 2010 Amount of Destructors: 14 Totals of Calls: 36317 SHA1: of 4.7.6.20 D90222BDC9D9648E75A3A749D4C8EE1DF4655C30 CRC32: 6CB990C1: 34309912 bytes  mX4 executed: 24/01/2023 23:23:35 Runtime: 0:15:16.661 Memload: 44% use Total of Function Calls: 36317 SHA1: 4.7.6.20 D90222BDC9D9648E75A3A749D4C8EE1DF4655C30 d90222bdc9d9648e75a3a749d4c8ee1df4655c30 CRC32: 6CB990C1 32.7 MB (34,309,912 bytes) Compilation Timestamp 2023-01-24 21:15:08 UTC Signing time 24 Jan2023 22:18:14 Entry Point 25025064 - Contained Sections 10 sha1: d90222bdc9d9648e75a3a749d4c8ee1df4655c30 sha256: 97943841d5908ea0846dc6763b14941350a0c1aa5d2b6248bfc79ffad7a0314e https://www.hybrid-analysis.com/ Suspicious Indicators General Found a potential E-Mail address in binary/memory Network Related Found potential IP address in binary/memory Remote Access Related Contains indicators of bot communication commands Contains references to WMI/WMIC Reads terminal service related keys (often RDP related) Spyware/Information Retrieval Touches files in program files directory Unusual Characteristics Input file contains API references not part of its Import Address Table (IAT) Installs hooks/patches the running process https://www.virustotal.com/gui/file/212f8fda437e877c7f89f771ce40e57814cfb4380ee010c090df78d8dbbc4d9f/behavior This report is generated from a file or URL submitted to this webservice on December 15th 2022 18:16:53 (UTC) Guest System: Windows 10 64 bit, Professional, 10.0 (build 16299), Report generated by Falcon Sandbox v9.5.2 © Hybrid Analysis 1 match for rule Change PowerShell Policies to an Insecure Level by frack113 from Sigma Integrated Rule Set (GitHub) Detects use of executionpolicy option to set insecure policies DetectItEasy PE32 Compiler: Borland Delphi (2007) Linker: Turbo Linker (2.25*,Delphi) [GUI32,signed] 5.4% (.EXE) Win64 Executable (generic)- 5.1% (.EXE) DOS Borland compiled Executable (generic) Total of Function Calls: 36449 SHA1: 4.7.6.50 C56F0A26DFBE706E6A1A9D0E23B6114AFCC09CDC CRC32: 29BCAE4D 33.1 MB (34,724,120 bytes) Compilation Timestamp 2023-05-21 13:42:16 UTC Signtime 21 May 2023 15:45:22 This report is generated from a file or URL submitted to this webservice on May 21st 2023 18:54:05 (UTC) Guest System: Windows 7 64 bit, Professional, 6.1 (build 7601), Service Pack 1 Report generated by Falcon Sandbox v10.1.2 © Hybrid Analysis 60.1% (.OCX) Windows ActiveX control 22.2% (.EXE) InstallShield setup 5.4% (.EXE) Win64 Executable (generic) 5.1% (.EXE) DOS Borland compiled Executable (generic) 2.3% (.EXE) Win32 Executable (generic) Amount of Functions: 21907 Amount of Procedures: 12848 Amount of Constructors: 2029 Amount of Destructors: 14 Totals of Calls: 36798 SHA1: of 4.7.6.50 CAA09249B338ED2814B760FA549DAD47F6C789D2 CRC32: 17A61798: 35033880 bytes  mX4 executed: 30/05/2023 15:46:15 Runtime: 0:16:22.226 Memload: 40% use Amount of Functions: 21924 Amount of Procedures: 12863 Amount of Constructors: 2033 Amount of Destructors: 14 Totals of Calls: 36834 SHA1: of 4.7.6.50 EDE730F514834A85ECA6D0190DAC8CA6046C26EE CRC32: 4E7C4A2B: 35117336 bytes  mX4 executed: 31/05/2023 11:30:52 Runtime: 0:15:51.194 Memload: 45% use Amount of Functions: 21939 Amount of Procedures: 12865 Amount of Constructors: 2034 Amount of Destructors: 14 Totals of Calls: 36852 SHA1: of 4.7.6.50 D4FD4CACFD766EB8F78F2BB7B5EFDDEBB386597A CRC32: C1DCD693: 35128600 bytes  mX4 executed: 31/05/2023 16:16:38 Runtime: 0:15:26.396 Memload: 38% use  Amount of Functions: 21987 Amount of Procedures: 12906 Amount of Constructors: 2040 Amount of Destructors: 14 Totals of Calls: 36947 SHA1: of 4.7.6.50 C430FDBA9880317E31D4DA2F66C884799298FCC3 CRC32: 5BD9839C: 35257624 bytes  mX4 executed: 06/06/2023 17:16:17 Runtime: 0:15:37.770 Memload: 40% use Amount of Functions: 22031 Amount of Procedures: 12918 Amount of Constructors: 2045 Amount of Destructors: 14 Totals of Calls: 37008 SHA1: of 4.7.6.50 FDA4E3CE0FEC5F86EF0F95278D5C35FEC42FDA1B CRC32: 46294349: 35454744 bytes  mX4 executed: 08/06/2023 19:57:04 Runtime: 0:15:51.769 Memload: 46% use https://www.hybrid-analysis.com/sample/4dfbada6765e47c72b7c2496f831419b3461fa7c4ac6e05e2a941b501e10e022 --- Falcon Sandbox Analysis Summary --- File Name: maXbox4.exe Analysis State: SUCCESS Threat Verdict: no specific threat Threat Score: n/a/100 AV Detection Ratio: n/a AV Family Name: Time of analysis: 2023-05-31 14:40:33 File Size (bytes): 35128600 File Type: PE32 executable (GUI) Intel 80386, for MS Windows Contacted Domains: none Contacted Hosts: none Environment: Windows 7 64 bit (ID: 120) --- Falcon Sandbox Analysis Summary --- File Name: maXbox4.exe Analysis State: SUCCESS Threat Verdict: no specific threat Threat Score: n/a/100 AV Detection Ratio: n/a AV Family Name: Time of analysis: 2023-06-06 16:36:58 File Size (bytes): 35257624 File Type: PE32 executable (GUI) Intel 80386, for MS Windows Contacted Domains: none Contacted Hosts: none Environment: Windows 7 64 bit (ID: 120) Submission name: maXbox4.exe Size: 34MiB Type: peexe executable Mime: application/x-dosexec SHA256: fa0f30abf34292e91070a5bd4682040eb6af79a8f6c7f55111c9692153120988 Copy SHA256 to clipboard Last Anti-Virus Scan: 06/12/2023 14:22:38 (UTC) Last Sandbox Report: 66/12/2023 14:22:30 (UTC) Amount of Functions: 22257 Amount of Procedures: 13051 Amount of Constructors: 2050 Amount of Destructors: 14 Totals of Calls: 37372 SHA1: of 4.7.6.50 D047DBD5412C3E4A436089018B9C7FACF17A2EB5 CRC32: 38562FA8: 35697944 bytes  mX4 executed: 15/06/2023 09:59:46 Runtime: 0:16:2.832 Memload: 40% use --- Falcon Sandbox Analysis Summary --- File Name: maXbox4.exe Analysis State: SUCCESS Threat Verdict: no specific threat Threat Score: n/a/100 AV Detection Ratio: n/a AV Family Name: Time of analysis: 2023-06-15 07:31:25 File Size (bytes): 35697944 File Type: PE32 executable (GUI) Intel 80386, for MS Windows Contacted Domains: none Contacted Hosts: none Environment: Windows 7 64 bit (ID: 120) This report is generated from a file or URL submitted to this webservice on June 15th 2023 07:31:25 (UTC) Guest System: Windows 7 64 bit, Professional, 6.1 (build 7601), Service Pack 1 Report generated by Falcon Sandbox v10.1.5 © Hybrid Analysis 15/06/2023 08:31 7,947 API_services.dcu 15/06/2023 08:40 30,857 MathsLib.dcu 15/06/2023 08:31 81,205 uPSI_GUIUtils.dcu Recompiled: dir /s /o N *.dcu | find "14/06/2023" > C:\maXbox\maxboxunitalldisk_sort.txt 14/06/2023 14:35 47,303 uPSC_classes.dcu 14/06/2023 14:35 54,393 uPSR_classes.dcu 14/06/2023 15:02 10,731 API_audio.dcu 14/06/2023 11:54 15,783 API_base.dcu 14/06/2023 16:31 56,163 API_files.dcu 14/06/2023 14:54 13,136 API_graphics.dcu 14/06/2023 14:59 12,145 API_ledgrid.dcu 14/06/2023 16:31 30,566 api_strings.dcu 14/06/2023 17:06 40,971 API_tools.dcu 14/06/2023 18:31 8,219 API_winprocess.dcu 14/06/2023 18:40 30,876 MathsLib.dcu 14/06/2023 16:05 72,193 uPSI_GUIAutomation.dcu 14/06/2023 18:34 65,834 uPSI_GUIUtils.dcu ************************************************************ unit List asm internal end units all unitlist unitslist allunits ************************************************************ 01 unit RIRegister_StrUtils_Routines(exec); //Delphi 02 unit SIRegister_IdStrings //Indy Sockets 03 unit RIRegister_niSTRING_Routines(Exec); //from RegEx 04 unit uPSI_fMain Functions; //maXbox Open Tools API 05 unit IFSI_WinForm1puzzle; //maXbox 06 unit RIRegister_LinarBitmap_Routines(Exec); //ImageFileLibBCB 07 unit RegisterDateTimeLibrary_R(exec); //Delphi 08 unit RIRegister_MathMax_Routines(exec); //Jedi & Delphi 09 unit RIRegister_IdGlobal_Routines(exec); //Indy Sockets 10 unit RIRegister_SysUtils_Routines(Exec); //Delphi 11 unit uPSI_IdTCPConnection; //Indy some functions 12 unit uPSCompiler.pas; //PS kernel functions 13 unit uPSI_DBCommon; //DB Common_Routines and Types 14 unit uPSI_Printers.pas //Delphi VCL 15 unit uPSI_MPlayer.pas //Delphi VCL 16 unit uPSC_comobj; //COM Functions 17 unit uPSI_Clipbrd; //Delphi VCL 18 unit Filectrl in IFSI_SysUtils_max; //VCL Runtime 19 unit uPSI_SqlExpr; //DBX3 20 unit uPSI_ADODB; //ADODB 21 unit uPSI_StrHlpr; //String Helper Routines 22 unit uPSI_DateUtils; //Expansion to DateTimeLib 23 unit uPSI_FileUtils; //Expansion to Sys/File Utils 24 unit JUtils / gsUtils; //Jedi / Metabase 25 unit JvFunctions_max; //Jedi Functions 26 unit HTTPParser; //Delphi VCL 27 unit HTTPUtil; //Delphi VCL 28 unit uPSI_XMLUtil; //Delphi VCL 29 unit uPSI_SOAPHTTPClient; //Delphi VCL SOAP WebService V3.5 30 unit uPSI_Contnrs; //Delphi RTL Container of Classes 31 unit uPSI_MaskUtils; //RTL Edit and Mask functions 32 unit uPSI_MyBigInt; //big Int class with Math 33 unit uPSI_ConvUtils; //Delphi VCL Conversions engine 34 unit Types_Variants; //Delphi\Win32\rtl\sys 35 unit uPSI_IdHashSHA1; //Indy Crypto Lib 36 unit uPSI_IdHashMessageDigest //Indy Crypto; 37 unit uPSI_IdASN1Util; //Indy ASN1Utility Routines; 38 unit uPSI_IdLogFile; //Indy Logger from LogBase 39 unit uPSI_IdIcmpClient; //Indy Ping ICMP 40 unit uPSI_IdHashMessageDigest_max //Indy Crypto &OpenSSL; 41 unit uPSI_FileCtrl; //Delphi RTL 42 unit uPSI_Outline; //Delphi VCL 43 unit uPSI_ScktComp; //Delphi RTL 44 unit uPSI_Calendar; //Delphi VCL 45 unit uPSI_VListView //VListView; 46 unit uPSI_DBGrids; //Delphi VCL 47 unit uPSI_DBCtrls; //Delphi VCL 48 unit ide_debugoutput; //maXbox 49 unit uPSI_ComCtrls; //Delphi VCL 50 unit uPSC_stdctrls+; //Delphi VCL 51 unit uPSI_Dialogs; //Delphi VCL 52 unit uPSI_StdConvs; //Delphi RTL 53 unit uPSI_DBClient; //Delphi RTL 54 unit uPSI_DBPlatform; //Delphi RTL 55 unit uPSI_Provider; //Delphi RTL 56 unit uPSI_FMTBcd; //Delphi RTL 57 unit uPSI_DBCGrids; //Delphi VCL 58 unit uPSI_CDSUtil; //MIDAS 59 unit uPSI_VarHlpr; //Delphi RTL 60 unit uPSI_ExtDlgs; //Delphi VCL 61 unit sdpStopwatch; //maXbox 62 unit uPSI_JclStatistics; //JCL 63 unit uPSI_JclLogic; //JCL 64 unit uPSI_JclMiscel; //JCL 65 unit uPSI_JclMath_max; //JCL RTL 66 unit uPSI_uTPLb_StreamUtils; //LockBox 3 67 unit uPSI_MathUtils; //BCB 68 unit uPSI_JclMultimedia; //JCL 69 unit uPSI_WideStrUtils; //Delphi API/RTL 70 unit uPSI_GraphUtil; //Delphi RTL 71 unit uPSI_TypeTrans; //Delphi RTL 72 unit uPSI_HTTPApp; //Delphi VCL 73 unit uPSI_DBWeb; //Delphi VCL 74 unit uPSI_DBBdeWeb; //Delphi VCL 75 unit uPSI_DBXpressWeb; //Delphi VCL 76 unit uPSI_ShadowWnd; //Delphi VCL 77 unit uPSI_ToolWin; //Delphi VCL 78 unit uPSI_Tabs; //Delphi VCL 79 unit uPSI_JclGraphUtils; //JCL 80 unit uPSI_JclCounter; //JCL 81 unit uPSI_JclSysInfo; //JCL 82 unit uPSI_JclSecurity; //JCL 83 unit uPSI_JclFileUtils; //JCL 84 unit uPSI_IdUserAccounts; //Indy 85 unit uPSI_IdAuthentication; //Indy 86 unit uPSI_uTPLb_AES; //LockBox 3 87 unit uPSI_IdHashSHA1; //LockBox 3 88 unit uTPLb_BlockCipher; //LockBox 3 89 unit uPSI_ValEdit.pas; //Delphi VCL 90 unit uPSI_JvVCLUtils; //JCL 91 unit uPSI_JvDBUtil; //JCL 92 unit uPSI_JvDBUtils; //JCL 93 unit uPSI_JvAppUtils; //JCL 94 unit uPSI_JvCtrlUtils; //JCL 95 unit uPSI_JvFormToHtml; //JCL 96 unit uPSI_JvParsing; //JCL 97 unit uPSI_SerDlgs; //Toolbox 98 unit uPSI_Serial; //Toolbox 99 unit uPSI_JvComponent; //JCL 100 unit uPSI_JvCalc; //JCL 101 unit uPSI_JvBdeUtils; //JCL 102 unit uPSI_JvDateUtil; //JCL 103 unit uPSI_JvGenetic; //JCL 104 unit uPSI_JclBase; //JCL 105 unit uPSI_JvUtils; //JCL 106 unit uPSI_JvStrUtil; //JCL 107 unit uPSI_JvStrUtils; //JCL 108 unit uPSI_JvFileUtil; //JCL 109 unit uPSI_JvMemoryInfos; //JCL 110 unit uPSI_JvComputerInfo; //JCL 111 unit uPSI_JvgCommClasses; //JCL 112 unit uPSI_JvgLogics; //JCL 113 unit uPSI_JvLED; //JCL 114 unit uPSI_JvTurtle; //JCL 115 unit uPSI_SortThds; unit uPSI_ThSort; //maXbox 116 unit uPSI_JvgUtils; //JCL 117 unit uPSI_JvExprParser; //JCL 118 unit uPSI_HexDump; //Borland 119 unit uPSI_DBLogDlg; //VCL 120 unit uPSI_SqlTimSt; //RTL 121 unit uPSI_JvHtmlParser; //JCL 122 unit uPSI_JvgXMLSerializer; //JCL 123 unit uPSI_JvJCLUtils; //JCL 124 unit uPSI_JvStrings; //JCL 125 unit uPSI_uTPLb_IntUtils; //TurboPower 126 unit uPSI_uTPLb_HugeCardinal; //TurboPower 127 unit uPSI_uTPLb_HugeCardinalUtils; //TurboPower 128 unit uPSI_SynRegExpr; //SynEdit 129 unit uPSI_StUtils; //SysTools4 130 unit uPSI_StToHTML; //SysTools4 131 unit uPSI_StStrms; //SysTools4 132 unit uPSI_StFIN; //SysTools4 133 unit uPSI_StAstroP; //SysTools4 134 unit uPSI_StStat; //SysTools4 135 unit uPSI_StNetCon; //SysTools4 136 unit uPSI_StDecMth; //SysTools4 137 unit uPSI_StOStr; //SysTools4 138 unit uPSI_StPtrns; //SysTools4 139 unit uPSI_StNetMsg; //SysTools4 140 unit uPSI_StMath; //SysTools4 141 unit uPSI_StExpEng; //SysTools4 142 unit uPSI_StCRC; //SysTools4 143 unit uPSI_StExport, //SysTools4 144 unit uPSI_StExpLog, //SysTools4 145 unit uPSI_ActnList; //Delphi VCL 146 unit uPSI_jpeg; //Borland 147 unit uPSI_StRandom; //SysTools4 148 unit uPSI_StDict; //SysTools4 149 unit uPSI_StBCD; //SysTools4 150 unit uPSI_StTxtDat; //SysTools4 151 unit uPSI_StRegEx; //SysTools4 152 unit uPSI_IMouse; //VCL 153 unit uPSI_SyncObjs; //VCL 154 unit uPSI_AsyncCalls; //Hausladen 155 unit uPSI_ParallelJobs; //Saraiva 156 unit uPSI_Variants; //VCL 157 unit uPSI_VarCmplx; //VCL Wolfram 158 unit uPSI_DTDSchema; //VCL 159 unit uPSI_ShLwApi; //Brakel 160 unit uPSI_IBUtils; //VCL 161 unit uPSI_CheckLst; //VCL 162 unit uPSI_JvSimpleXml; //JCL 163 unit uPSI_JclSimpleXml; //JCL 164 unit uPSI_JvXmlDatabase; //JCL 165 unit uPSI_JvMaxPixel; //JCL 166 unit uPSI_JvItemsSearchs; //JCL 167 unit uPSI_StExpEng2; //SysTools4 168 unit uPSI_StGenLog; //SysTools4 169 unit uPSI_JvLogFile; //Jcl 170 unit uPSI_CPort; //ComPort Lib v4.11 171 unit uPSI_CPortCtl; //ComPort 172 unit uPSI_CPortEsc; //ComPort 173 unit BarCodeScaner; //ComPort 174 unit uPSI_JvGraph; //JCL 175 unit uPSI_JvComCtrls; //JCL 176 unit uPSI_GUITesting; //D Unit 177 unit uPSI_JvFindFiles; //JCL 178 unit uPSI_StSystem; //SysTools4 179 unit uPSI_JvKeyboardStates; //JCL 180 unit uPSI_JvMail; //JCL 181 unit uPSI_JclConsole; //JCL 182 unit uPSI_JclLANMan; //JCL 183 unit uPSI_IdCustomHTTPServer; //Indy 184 unit IdHTTPServer //Indy 185 unit uPSI_IdTCPServer; //Indy 186 unit uPSI_IdSocketHandle; //Indy 187 unit uPSI_IdIOHandlerSocket; //Indy 188 unit IdIOHandler; //Indy 189 unit uPSI_cutils; //Bloodshed 190 unit uPSI_BoldUtils; //boldsoft 191 unit uPSI_IdSimpleServer; //Indy 192 unit uPSI_IdSSLOpenSSL; //Indy 193 unit uPSI_IdMultipartFormData; //Indy 194 unit uPSI_SynURIOpener; //SynEdit 195 unit uPSI_PerlRegEx; //PCRE 196 unit uPSI_IdHeaderList; //Indy 197 unit uPSI_StFirst; //SysTools4 198 unit uPSI_JvCtrls; //JCL 199 unit uPSI_IdTrivialFTPBase; //Indy 200 unit uPSI_IdTrivialFTP; //Indy 201 unit uPSI_IdUDPBase; //Indy 202 unit uPSI_IdUDPClient; //Indy 203 unit uPSI_utypes; //for DMath.DLL 204 unit uPSI_ShellAPI; //Borland 205 unit uPSI_IdRemoteCMDClient; //Indy 206 unit uPSI_IdRemoteCMDServer; //Indy 207 unit IdRexecServer; //Indy 208 unit IdRexec; (unit uPSI_IdRexec;) //Indy 209 unit IdUDPServer; //Indy 210 unit IdTimeUDPServer; //Indy 211 unit IdTimeServer; //Indy 212 unit IdTimeUDP; (unit uPSI_IdUDPServer;) //Indy 213 unit uPSI_IdIPWatch; //Indy 214 unit uPSI_IdIrcServer; //Indy 215 unit uPSI_IdMessageCollection; //Indy 216 unit uPSI_cPEM; //Fundamentals 4 217 unit uPSI_cFundamentUtils; //Fundamentals 4 218 unit uPSI_uwinplot; //DMath 219 unit uPSI_xrtl_util_CPUUtils; //ExtentedRTL 220 unit uPSI_GR32_System; //Graphics32 221 unit uPSI_cFileUtils; //Fundamentals 4 222 unit uPSI_cDateTime; (timemachine) //Fundamentals 4 223 unit uPSI_cTimers; (high precision timer) //Fundamentals 4 224 unit uPSI_cRandom; //Fundamentals 4 225 unit uPSI_ueval; //DMath 226 unit uPSI_xrtl_net_URIUtils; //ExtendedRTL 227 unit xrtl_net_URIUtils; //ExtendedRTL 228 unit uPSI_ufft; (FFT) //DMath 229 unit uPSI_DBXChannel; //Delphi 230 unit uPSI_DBXIndyChannel; //Delphi Indy 231 unit uPSI_xrtl_util_COMCat; //ExtendedRTL 232 unit uPSI_xrtl_util_StrUtils; //ExtendedRTL 233 unit uPSI_xrtl_util_VariantUtils; //ExtendedRTL 234 unit uPSI_xrtl_util_FileUtils; //ExtendedRTL 235 unit xrtl_util_Compat; //ExtendedRTL 236 unit uPSI_OleAuto; //Borland 237 unit uPSI_xrtl_util_COMUtils; //ExtendedRTL 238 unit uPSI_CmAdmCtl; //Borland 239 unit uPSI_ValEdit2; //VCL 240 unit uPSI_GR32; //Graphics32 //Graphics32 241 unit uPSI_GR32_Image; //Graphics32 242 unit uPSI_xrtl_util_TimeUtils; //ExtendedRTL 243 unit uPSI_xrtl_util_TimeZone; //ExtendedRTL 244 unit uPSI_xrtl_util_TimeStamp; //ExtendedRTL 245 unit uPSI_xrtl_util_Map; //ExtendedRTL 246 unit uPSI_xrtl_util_Set; //ExtendedRTL 247 unit uPSI_CPortMonitor; //ComPort 248 unit uPSI_StIniStm; //SysTools4 249 unit uPSI_GR32_ExtImage; //Graphics32 250 unit uPSI_GR32_OrdinalMaps; //Graphics32 251 unit uPSI_GR32_Rasterizers; //Graphics32 252 unit uPSI_xrtl_util_Exception; //ExtendedRTL 253 unit uPSI_xrtl_util_Value; //ExtendedRTL 254 unit uPSI_xrtl_util_Compare; //ExtendedRTL 255 unit uPSI_FlatSB; //VCL 256 unit uPSI_JvAnalogClock; //JCL 257 unit uPSI_JvAlarms; //JCL 258 unit uPSI_JvSQLS; //JCL 259 unit uPSI_JvDBSecur; //JCL 260 unit uPSI_JvDBQBE; //JCL 261 unit uPSI_JvStarfield; //JCL 262 unit uPSI_JVCLMiscal; //JCL 263 unit uPSI_JvProfiler32; //JCL 264 unit uPSI_JvDirectories, //JCL 265 unit uPSI_JclSchedule, //JCL 266 unit uPSI_JclSvcCtrl, //JCL 267 unit uPSI_JvSoundControl, //JCL 268 unit uPSI_JvBDESQLScript, //JCL 269 unit uPSI_JvgDigits, //JCL> 270 unit uPSI_ImgList; //TCustomImageList 271 unit uPSI_JclMIDI; //JCL> 272 unit uPSI_JclWinMidi; //JCL> 273 unit uPSI_JclNTFS; //JCL> 274 unit uPSI_JclAppInst; //JCL> 275 unit uPSI_JvRle; //JCL> 276 unit uPSI_JvRas32; //JCL> 277 unit uPSI_JvImageDrawThread, //JCL> 278 unit uPSI_JvImageWindow, //JCL> 279 unit uPSI_JvTransparentForm; //JCL> 280 unit uPSI_JvWinDialogs; //JCL> 281 unit uPSI_JvSimLogic, //JCL> 282 unit uPSI_JvSimIndicator, //JCL> 283 unit uPSI_JvSimPID, //JCL> 284 unit uPSI_JvSimPIDLinker, //JCL> 285 unit uPSI_IdRFCReply; //Indy 286 unit uPSI_IdIdent; //Indy 287 unit uPSI_IdIdentServer; //Indy 288 unit uPSI_JvPatchFile; //JCL 289 unit uPSI_StNetPfm; //SysTools4 290 unit uPSI_StNet; //SysTools4 291 unit uPSI_JclPeImage; //JCL 292 unit uPSI_JclPrint; //JCL 293 unit uPSI_JclMime; //JCL 294 unit uPSI_JvRichEdit; //JCL 295 unit uPSI_JvDBRichEd; //JCL 296 unit uPSI_JvDice; //JCL 297 unit uPSI_JvFloatEdit; //JCL 3.9.8 298 unit uPSI_JvDirFrm; //JCL 299 unit uPSI_JvDualList; //JCL 300 unit uPSI_JvSwitch; ////JCL 301 unit uPSI_JvTimerLst; ////JCL 302 unit uPSI_JvMemTable; //JCL 303 unit uPSI_JvObjStr; //JCL 304 unit uPSI_StLArr; //SysTools4 305 unit uPSI_StWmDCpy; //SysTools4 306 unit uPSI_StText; //SysTools4 307 unit uPSI_StNTLog; //SysTools4 308 unit uPSI_xrtl_math_Int; //ExtendedRTL 309 unit uPSI_JvImagPrvw; //JCL 310 unit uPSI_JvFormPatch; //JCL 311 unit uPSI_JvPicClip; //JCL 312 unit uPSI_JvDataConv; //JCL 313 unit uPSI_JvCpuUsage; //JCL 314 unit uPSI_JclUnitConv_mX2; //JCL 315 unit JvDualListForm; //JCL 316 unit uPSI_JvCpuUsage2; //JCL 317 unit uPSI_JvParserForm; //JCL 318 unit uPSI_JvJanTreeView; //JCL 319 unit uPSI_JvTransLED; //JCL 320 unit uPSI_JvPlaylist; //JCL 321 unit uPSI_JvFormAutoSize; //JCL 322 unit uPSI_JvYearGridEditForm; //JCL 323 unit uPSI_JvMarkupCommon; //JCL 324 unit uPSI_JvChart; //JCL 325 unit uPSI_JvXPCore; //JCL 326 unit uPSI_JvXPCoreUtils; //JCL 327 unit uPSI_StatsClasses; //mX4 a1: TStatArray; 328 unit uPSI_ExtCtrls2; //VCL 329 unit uPSI_JvUrlGrabbers; //JCL 330 unit uPSI_JvXmlTree; //JCL 331 unit uPSI_JvWavePlayer; //JCL 332 unit uPSI_JvUnicodeCanvas; //JCL 333 unit uPSI_JvTFUtils; //JCL 334 unit uPSI_IdServerIOHandler; //Indy 335 unit uPSI_IdServerIOHandlerSocket; //Indy 336 unit uPSI_IdMessageCoder; //Indy 337 unit uPSI_IdMessageCoderMIME; //Indy 338 unit uPSI_IdMIMETypes; //Indy 339 unit uPSI_JvConverter; //JCL 340 unit uPSI_JvCsvParse; //JCL 341 unit uPSI_umath; unit uPSI_ugamma; //DMath 342 unit uPSI_ExcelExport;(Nat:TJsExcelExport) //JCL 343 unit uPSI_JvDBGridExport; //JCL 344 unit uPSI_JvgExport; //JCL 345 unit uPSI_JvSerialMaker; //JCL 346 unit uPSI_JvWin32; //JCL 347 unit uPSI_JvPaintFX; //JCL 348 unit uPSI_JvOracleDataSet; (beta) //JCL 349 unit uPSI_JvValidators; (preview) //JCL 350 unit uPSI_JvNTEventLog; //JCL 351 unit uPSI_ShellZipTool; //mX4 352 unit uPSI_JvJoystick; //JCL 353 unit uPSI_JvMailSlots; //JCL 354 unit uPSI_JclComplex; //JCL 355 unit uPSI_SynPdf; //Synopse 356 unit uPSI_Registry; //VCL 357 unit uPSI_TlHelp32; //VCL 358 unit uPSI_JclRegistry; //JCL 359 unit uPSI_JvAirBrush; //JCL 360 unit uPSI_mORMotReport; //Synopse 361 unit uPSI_JclLocales; //JCL 362 unit uPSI_SynEdit; //SynEdit 363 unit uPSI_SynEditTypes; //SynEdit 364 unit uPSI_SynMacroRecorder; //SynEdit 365 unit uPSI_LongIntList; //SynEdit 366 unit uPSI_devcutils; //DevC 367 unit uPSI_SynEditMiscClasses; //SynEdit 368 unit uPSI_SynEditRegexSearch; //SynEdit 369 unit uPSI_SynEditHighlighter; //SynEdit 370 unit uPSI_SynHighlighterPas; //SynEdit 371 unit uPSI_JvSearchFiles; //JCL 372 unit uPSI_SynHighlighterAny; //Lazarus 373 unit uPSI_SynEditKeyCmds; //SynEdit 374 unit uPSI_SynEditMiscProcs, //SynEdit 375 unit uPSI_SynEditKbdHandler //SynEdit 376 unit uPSI_JvAppInst, //JCL 377 unit uPSI_JvAppEvent; //JCL 378 unit uPSI_JvAppCommand; //JCL 379 unit uPSI_JvAnimTitle; //JCL 380 unit uPSI_JvAnimatedImage; //JCL 381 unit uPSI_SynEditExport; //SynEdit 382 unit uPSI_SynExportHTML; //SynEdit 383 unit uPSI_SynExportRTF; //SynEdit 384 unit uPSI_SynEditSearch; //SynEdit 385 unit uPSI_fMain_back //maXbox; 386 unit uPSI_JvZoom; //JCL 387 unit uPSI_PMrand; //PM 388 unit uPSI_JvSticker; //JCL 389 unit uPSI_XmlVerySimple; //mX4 390 unit uPSI_Services; //ExtPascal 391 unit uPSI_ExtPascalUtils; //ExtPascal 392 unit uPSI_SocketsDelphi; //ExtPascal 393 unit uPSI_StBarC; //SysTools 394 unit uPSI_StDbBarC; //SysTools 395 unit uPSI_StBarPN; //SysTools 396 unit uPSI_StDbPNBC; //SysTools 397 unit uPSI_StDb2DBC; //SysTools 398 unit uPSI_StMoney; //SysTools 399 unit uPSI_JvForth; //JCL 400 unit uPSI_RestRequest; //mX4 401 unit uPSI_HttpRESTConnectionIndy; //mX4 402 unit uPSI_JvXmlDatabase; //update //JCL 403 unit uPSI_StAstro; //SysTools 404 unit uPSI_StSort; //SysTools 405 unit uPSI_StDate; //SysTools 406 unit uPSI_StDateSt; //SysTools 407 unit uPSI_StBase; //SysTools 408 unit uPSI_StVInfo; //SysTools 409 unit uPSI_JvBrowseFolder; //JCL 410 unit uPSI_JvBoxProcs; //JCL 411 unit uPSI_urandom; (unit uranuvag;) //DMath 412 unit uPSI_usimann; (unit ugenalg;) //DMath 413 unit uPSI_JvHighlighter; //JCL 414 unit uPSI_Diff; //mX4 415 unit uPSI_SpringWinAPI; //DSpring 416 unit uPSI_StBits; //SysTools 417 unit uPSI_TomDBQue; //mX4 418 unit uPSI_MultilangTranslator; //mX4 419 unit uPSI_HyperLabel; //mX4 420 unit uPSI_Starter; //mX4 421 unit uPSI_FileAssocs; //devC 422 unit uPSI_devFileMonitorX; //devC 423 unit uPSI_devrun; //devC 424 unit uPSI_devExec; //devC 425 unit uPSI_oysUtils; //devC 426 unit uPSI_DosCommand; //devC 427 unit uPSI_CppTokenizer; //devC 428 unit uPSI_JvHLParser; //devC 429 unit uPSI_JclMapi; //JCL 430 unit uPSI_JclShell; //JCL 431 unit uPSI_JclCOM; //JCL 432 unit uPSI_GR32_Math; //Graphics32 433 unit uPSI_GR32_LowLevel; //Graphics32 434 unit uPSI_SimpleHl; //mX4 435 unit uPSI_GR32_Filters, //Graphics32 436 unit uPSI_GR32_VectorMaps; //Graphics32 437 unit uPSI_cXMLFunctions; //Fundamentals 4 438 unit uPSI_JvTimer; //JCL 439 unit uPSI_cHTTPUtils; //Fundamentals 4 440 unit uPSI_cTLSUtils; //Fundamentals 4 441 unit uPSI_JclGraphics; //JCL 442 unit uPSI_JclSynch; //JCL 443 unit uPSI_IdTelnet; //Indy 444 unit uPSI_IdTelnetServer, //Indy 445 unit uPSI_IdEcho, //Indy 446 unit uPSI_IdEchoServer, //Indy 447 unit uPSI_IdEchoUDP, //Indy 448 unit uPSI_IdEchoUDPServer, //Indy 449 unit uPSI_IdSocks, //Indy 450 unit uPSI_IdAntiFreezeBase; //Indy 451 unit uPSI_IdHostnameServer; //Indy 452 unit uPSI_IdTunnelCommon, //Indy 453 unit uPSI_IdTunnelMaster, //Indy 454 unit uPSI_IdTunnelSlave, //Indy 455 unit uPSI_IdRSH, //Indy 456 unit uPSI_IdRSHServer, //Indy 457 unit uPSI_Spring_Cryptography_Utils; //Spring4Delphi 458 unit uPSI_MapReader, //devC 459 unit uPSI_LibTar, //devC 460 unit uPSI_IdStack; //Indy 461 unit uPSI_IdBlockCipherIntercept; //Indy 462 unit uPSI_IdChargenServer; //Indy 463 unit uPSI_IdFTPServer, //Indy 464 unit uPSI_IdException, //Indy 465 unit uPSI_utexplot; //DMath 466 unit uPSI_uwinstr; //DMath 467 unit uPSI_VarRecUtils; //devC 468 unit uPSI_JvStringListToHtml, //JCL 469 unit uPSI_JvStringHolder, //JCL 470 unit uPSI_IdCoder; //Indy 471 unit uPSI_SynHighlighterDfm; //Synedit 472 unit uHighlighterProcs; in 471 //Synedit 473 unit uPSI_LazFileUtils, //LCL 474 unit uPSI_IDECmdLine; //LCL 475 unit uPSI_lazMasks; //LCL 476 unit uPSI_ip_misc; //mX4 477 unit uPSI_Barcode; //LCL 478 unit uPSI_SimpleXML; //LCL 479 unit uPSI_JclIniFiles; //JCL 480 unit uPSI_D2XXUnit; {$X-} //FTDI 481 unit uPSI_JclDateTime; //JCL 482 unit uPSI_JclEDI; //JCL 483 unit uPSI_JclMiscel2; //JCL 484 unit uPSI_JclValidation; //JCL 485 unit uPSI_JclAnsistrs; {-PString} //JCL 486 unit uPSI_SynEditMiscProcs2; //Synedit 487 unit uPSI_JclStreams; //JCL 488 unit uPSI_QRCode; //mX4 489 unit uPSI_BlockSocket; //ExtPascal 490 unit uPSI_Masks,Utils //VCL 491 unit uPSI_synautil; //Synapse! 492 unit uPSI_JclMath_Class; //JCL RTL 493 unit ugamdist; //Gamma Func //DMath 494 unit uibeta, ucorrel; //IBeta //DMath 495 unit uPSI_SRMgr; //mX4 496 unit uPSI_HotLog; //mX4 497 unit uPSI_DebugBox; //mX4 498 unit uPSI_ustrings; //DMath 499 unit uPSI_uregtest; //DMath 500 unit uPSI_usimplex; //DMath 501 unit uPSI_uhyper; //DMath 502 unit uPSI_IdHL7; //Indy 503 unit uPSI_IdIPMCastBase, //Indy 504 unit uPSI_IdIPMCastServer; //Indy 505 unit uPSI_IdIPMCastClient; //Indy 506 unit uPSI_unlfit; //nlregression //DMath 507 unit uPSI_IdRawHeaders; //Indy 508 unit uPSI_IdRawClient; //Indy 509 unit uPSI_IdRawFunctions; //Indy 510 unit uPSI_IdTCPStream; //Indy 511 unit uPSI_IdSNPP; //Indy 512 unit uPSI_St2DBarC; //SysTools 513 unit uPSI_ImageWin; //FTL //VCL 514 unit uPSI_CustomDrawTreeView; //FTL //VCL 515 unit uPSI_GraphWin; //FTL //VCL 516 unit uPSI_actionMain; //FTL //VCL 517 unit uPSI_StSpawn; //SysTools 518 unit uPSI_CtlPanel; //VCL 519 unit uPSI_IdLPR; //Indy 520 unit uPSI_SockRequestInterpreter; //Indy 521 unit uPSI_ulambert; //DMath 522 unit uPSI_ucholesk; //DMath 523 unit uPSI_SimpleDS; //VCL 524 unit uPSI_DBXSqlScanner; //VCL 525 unit uPSI_DBXMetaDataUtil; //VCL 526 unit uPSI_Chart; //TEE 527 unit uPSI_TeeProcs; //TEE 528 unit mXBDEUtils; //mX4 529 unit uPSI_MDIEdit; //VCL 530 unit uPSI_CopyPrsr; //VCL 531 unit uPSI_SockApp; //VCL 532 unit uPSI_AppEvnts; //VCL 533 unit uPSI_ExtActns; //VCL 534 unit uPSI_TeEngine; //TEE 535 unit uPSI_CoolMain; //browser //VCL 536 unit uPSI_StCRC; //SysTools 537 unit uPSI_StDecMth2; //SysTools 538 unit uPSI_frmExportMain; //Synedit 539 unit uPSI_SynDBEdit; //Synedit 540 unit uPSI_SynEditWildcardSearch; //Synedit 541 unit uPSI_BoldComUtils; //BOLD 542 unit uPSI_BoldIsoDateTime; //BOLD 543 unit uPSI_BoldGUIDUtils; //inCOMUtils //BOLD 544 unit uPSI_BoldXMLRequests; //BOLD 545 unit uPSI_BoldStringList; //BOLD 546 unit uPSI_BoldFileHandler; //BOLD 547 unit uPSI_BoldContainers; //BOLD 548 unit uPSI_BoldQueryUserDlg; //BOLD 549 unit uPSI_BoldWinINet; //BOLD 550 unit uPSI_BoldQueue; //BOLD 551 unit uPSI_JvPcx; //JCL 552 unit uPSI_IdWhois; //Indy 553 unit uPSI_IdWhoIsServer; //Indy 554 unit uPSI_IdGopher; //Indy 555 unit uPSI_IdDateTimeStamp; //Indy 556 unit uPSI_IdDayTimeServer; //Indy 557 unit uPSI_IdDayTimeUDP; //Indy 558 unit uPSI_IdDayTimeUDPServer; //Indy 559 unit uPSI_IdDICTServer; //Indy 560 unit uPSI_IdDiscardServer; //Indy 561 unit uPSI_IdDiscardUDPServer; //Indy 562 unit uPSI_IdMappedFTP; //Indy 563 unit uPSI_IdMappedPortTCP; //Indy 564 unit uPSI_IdGopherServer; //Indy 565 unit uPSI_IdQotdServer; //Indy 566 unit uPSI_JvRgbToHtml; //JCL 567 unit uPSI_JvRemLog, //JCL 568 unit uPSI_JvSysComp; //JCL 569 unit uPSI_JvTMTL; //JCL 570 unit uPSI_JvWinampAPI; //JCL 571 unit uPSI_MSysUtils; //mX4 572 unit uPSI_ESBMaths; //ESB 573 unit uPSI_ESBMaths2; //ESB 574 unit uPSI_uLkJSON; //Lk 575 unit uPSI_ZURL; //Zeos //Zeos 576 unit uPSI_ZSysUtils; //Zeos 577 unit unaUtils internals //UNA 578 unit uPSI_ZMatchPattern; //Zeos 579 unit uPSI_ZClasses; //Zeos 580 unit uPSI_ZCollections; //Zeos 581 unit uPSI_ZEncoding; //Zeos 582 unit uPSI_IdRawBase; //Indy 583 unit uPSI_IdNTLM; //Indy 584 unit uPSI_IdNNTP; //Indy 585 unit uPSI_usniffer; //PortScanForm //mX4 586 unit uPSI_IdCoderMIME; //Indy 587 unit uPSI_IdCoderUUE; //Indy 588 unit uPSI_IdCoderXXE; //Indy 589 unit uPSI_IdCoder3to4; //Indy 590 unit uPSI_IdCookie; //Indy 591 unit uPSI_IdCookieManager; //Indy 592 unit uPSI_WDosSocketUtils; //WDos 593 unit uPSI_WDosPlcUtils; //WDos 594 unit uPSI_WDosPorts; //WDos 595 unit uPSI_WDosResolvers; //WDos 596 unit uPSI_WDosTimers; //WDos 597 unit uPSI_WDosPlcs; //WDos 598 unit uPSI_WDosPneumatics; //WDos 599 unit uPSI_IdFingerServer; //Indy 600 unit uPSI_IdDNSResolver; //Indy 601 unit uPSI_IdHTTPWebBrokerBridge; //Indy 602 unit uPSI_IdIntercept; //Indy 603 unit uPSI_IdIPMCastBase; //Indy 604 unit uPSI_IdLogBase; //Indy 605 unit uPSI_IdIOHandlerStream; //Indy 606 unit uPSI_IdMappedPortUDP; //Indy 607 unit uPSI_IdQOTDUDPServer; //Indy 608 unit uPSI_IdQOTDUDP; //Indy 609 unit uPSI_IdSysLog; //Indy 610 unit uPSI_IdSysLogServer; //Indy 611 unit uPSI_IdSysLogMessage; //Indy 612 unit uPSI_IdTimeServer; //Indy 613 unit uPSI_IdTimeUDP; //Indy 614 unit uPSI_IdTimeUDPServer; //Indy 615 unit uPSI_IdUserAccounts; //Indy 616 unit uPSI_TextUtils; //mX4 617 unit uPSI_MandelbrotEngine; //mX4 618 unit uPSI_delphi_arduino_Unit1; //mX4 619 unit uPSI_DTDSchema2; //mX4 620 unit uPSI_fplotMain; //DMath 621 unit uPSI_FindFileIter; //mX4 622 unit uPSI_PppState; (JclStrHashMap) //PPP 623 unit uPSI_PppParser; //PPP 624 unit uPSI_PppLexer; //PPP 625 unit uPSI_PCharUtils; //PPP 626 unit uPSI_uJSON; //WU 627 unit uPSI_JclStrHashMap; //JCL 628 unit uPSI_JclHookExcept; //JCL 629 unit uPSI_EncdDecd; //VCL 630 unit uPSI_SockAppReg; //VCL 631 unit uPSI_PJFileHandle; //PJ 632 unit uPSI_PJEnvVars; //PJ 633 unit uPSI_PJPipe; //PJ 634 unit uPSI_PJPipeFilters; //PJ 635 unit uPSI_PJConsoleApp; //PJ 636 unit uPSI_UConsoleAppEx; //PJ 637 unit uPSI_DbxSocketChannelNative, //VCL 638 unit uPSI_DbxDataGenerator, //VCL 639 unit uPSI_DBXClient; //VCL 640 unit uPSI_IdLogEvent; //Indy 641 unit uPSI_Reversi; //mX4 642 unit uPSI_Geometry; //mX4 643 unit uPSI_IdSMTPServer; //Indy 644 unit uPSI_Textures; //mX4 645 unit uPSI_IBX; //VCL 646 unit uPSI_IWDBCommon; //VCL 647 unit uPSI_SortGrid; //mX4 648 unit uPSI_IB; //VCL 649 unit uPSI_IBScript; //VCL 650 unit uPSI_JvCSVBaseControls; //JCL 651 unit uPSI_Jvg3DColors; //JCL 652 unit uPSI_JvHLEditor; //beat //JCL 653 unit uPSI_JvShellHook; //JCL 654 unit uPSI_DBCommon2 //VCL 655 unit uPSI_JvSHFileOperation; //JCL 656 unit uPSI_uFilexport; //mX4 657 unit uPSI_JvDialogs; //JCL 658 unit uPSI_JvDBTreeView; //JCL 659 unit uPSI_JvDBUltimGrid; //JCL 660 unit uPSI_JvDBQueryParamsForm; //JCL 661 unit uPSI_JvExControls; //JCL 662 unit uPSI_JvBDEMemTable; //JCL 663 unit uPSI_JvCommStatus; //JCL 664 unit uPSI_JvMailSlots2; //JCL 665 unit uPSI_JvgWinMask; //JCL 666 unit uPSI_StEclpse; //SysTools 667 unit uPSI_StMime; //SysTools 668 unit uPSI_StList; //SysTools 669 unit uPSI_StMerge; //SysTools 670 unit uPSI_StStrS; //SysTools 671 unit uPSI_StTree, //SysTools 672 unit uPSI_StVArr; //SysTools 673 unit uPSI_StRegIni; //SysTools 674 unit uPSI_urkf; //DMath 675 unit uPSI_usvd; //DMath 676 unit uPSI_DepWalkUtils; //JCL 677 unit uPSI_OptionsFrm; //JCL 678 unit yuvconverts; //mX4 679 uPSI_JvPropAutoSave; //JCL 680 uPSI_AclAPI; //alcinoe 681 uPSI_AviCap; //alcinoe 682 uPSI_ALAVLBinaryTree; //alcinoe 683 uPSI_ALFcnMisc; //alcinoe 684 uPSI_ALStringList; //alcinoe 685 uPSI_ALQuickSortList; //alcinoe 686 uPSI_ALStaticText; //alcinoe 687 uPSI_ALJSONDoc; //alcinoe 688 uPSI_ALGSMComm; //alcinoe 689 uPSI_ALWindows; //alcinoe 690 uPSI_ALMultiPartFormDataParser; //alcinoe 691 uPSI_ALHttpCommon; //alcinoe 692 uPSI_ALWebSpider, //alcinoe 693 uPSI_ALHttpClient; //alcinoe 694 uPSI_ALFcnHTML; //alcinoe 695 uPSI_ALFTPClient; //alcinoe 696 uPSI_ALInternetMessageCommon; //alcinoe 697 uPSI_ALWininetHttpClient; //alcinoe 698 uPSI_ALWinInetFTPClient; //alcinoe 699 uPSI_ALWinHttpWrapper; //alcinoe 700 uPSI_ALWinHttpClient; //alcinoe 701 uPSI_ALFcnWinSock; //alcinoe 702 uPSI_ALFcnSQL; //alcinoe 703 uPSI_ALFcnCGI; //alcinoe 704 uPSI_ALFcnExecute; //alcinoe 705 uPSI_ALFcnFile; //alcinoe 706 uPSI_ALFcnMime; //alcinoe 707 uPSI_ALPhpRunner; //alcinoe 708 uPSI_ALGraphic; //alcinoe 709 uPSI_ALIniFiles; //alcinoe 710 uPSI_ALMemCachedClient; //alcinoe 711 unit uPSI_MyGrids; //mX4 712 uPSI_ALMultiPartMixedParser //alcinoe 713 uPSI_ALSMTPClient //alcinoe 714 uPSI_ALNNTPClient; //alcinoe 715 uPSI_ALHintBalloon; //alcinoe 716 unit uPSI_ALXmlDoc; //alcinoe 717 unit uPSI_IPCThrd; //VCL 718 unit uPSI_MonForm; //VCL 719 unit uPSI_TeCanvas; //Orpheus 720 unit uPSI_Ovcmisc; //Orpheus 721 unit uPSI_ovcfiler; //Orpheus 722 unit uPSI_ovcstate; //Orpheus 723 unit uPSI_ovccoco; //Orpheus 724 unit uPSI_ovcrvexp; //Orpheus 725 unit uPSI_OvcFormatSettings; //Orpheus 726 unit uPSI_OvcUtils; //Orpheus 727 unit uPSI_ovcstore; //Orpheus 728 unit uPSI_ovcstr; //Orpheus 729 unit uPSI_ovcmru; //Orpheus 730 unit uPSI_ovccmd; //Orpheus 731 unit uPSI_ovctimer; //Orpheus 732 unit uPSI_ovcintl; //Orpheus 733 uPSI_AfCircularBuffer; //AsyncFree 734 uPSI_AfUtils; //AsyncFree 735 uPSI_AfSafeSync; //AsyncFree 736 uPSI_AfComPortCore; //AsyncFree 737 uPSI_AfComPort; //AsyncFree 738 uPSI_AfPortControls; //AsyncFree 739 uPSI_AfDataDispatcher; //AsyncFree 740 uPSI_AfViewers; //AsyncFree 741 uPSI_AfDataTerminal; //AsyncFree 742 uPSI_SimplePortMain; //AsyncFree 743 unit uPSI_ovcclock; //Orpheus 744 unit uPSI_o32intlst; //Orpheus 745 unit uPSI_o32ledlabel; //Orpheus 746 unit uPSI_AlMySqlClient; //alcinoe 747 unit uPSI_ALFBXClient; //alcinoe 748 unit uPSI_ALFcnSQL; //alcinoe 749 unit uPSI_AsyncTimer; //mX4 750 unit uPSI_ApplicationFileIO; //mX4 751 unit uPSI_PsAPI; //VCLé 752 uPSI_ovcuser; //Orpheus 753 uPSI_ovcurl; //Orpheus 754 uPSI_ovcvlb; //Orpheus 755 uPSI_ovccolor; //Orpheus 756 uPSI_ALFBXLib, //alcinoe 757 uPSI_ovcmeter; //Orpheus 758 uPSI_ovcpeakm; //Orpheus 759 uPSI_O32BGSty; //Orpheus 760 uPSI_ovcBidi; //Orpheus 761 uPSI_ovctcary; //Orpheus 762 uPSI_DXPUtils; //mX4 763 uPSI_ALMultiPartBaseParser; //alcinoe 764 uPSI_ALMultiPartAlternativeParser; //alcinoe 765 uPSI_ALPOP3Client; //alcinoe 766 uPSI_SmallUtils; //mX4 767 uPSI_MakeApp; //mX4 768 uPSI_O32MouseMon; //Orpheus 769 uPSI_OvcCache; //Orpheus 770 uPSI_ovccalc; //Orpheus 771 uPSI_Joystick, //OpenGL 772 uPSI_ScreenSaver; //OpenGL 773 uPSI_XCollection, //OpenGL 774 uPSI_Polynomials, //OpenGL 775 uPSI_PersistentClasses, //9.86 //OpenGL 776 uPSI_VectorLists; //OpenGL 777 uPSI_XOpenGL, //OpenGL 778 uPSI_MeshUtils; //OpenGL 779 unit uPSI_JclSysUtils; //JCL 780 unit uPSI_JclBorlandTools; //JCL 781 unit JclFileUtils_max; //JCL 782 uPSI_AfDataControls, //AsyncFree 783 uPSI_GLSilhouette; //OpenGL 784 uPSI_JclSysUtils_class; //JCL 785 uPSI_JclFileUtils_class; //JCL 786 uPSI_FileUtil; //JCL 787 uPSI_changefind; //mX4 788 uPSI_cmdIntf; //mX4 789 uPSI_fservice; //mX4 790 uPSI_Keyboard; //OpenGL 791 uPSI_VRMLParser, //OpenGL 792 uPSI_GLFileVRML, //OpenGL 793 uPSI_Octree; //OpenGL 794 uPSI_GLPolyhedron, //OpenGL 795 uPSI_GLCrossPlatform; //OpenGL 796 uPSI_GLParticles; //OpenGL 797 uPSI_GLNavigator; //OpenGL 798 uPSI_GLStarRecord; //OpenGL 799 uPSI_GLTextureCombiners; //OpenGL 800 uPSI_GLCanvas; //OpenGL 801 uPSI_GeometryBB; //OpenGL 802 uPSI_GeometryCoordinates; //OpenGL 803 uPSI_VectorGeometry; //OpenGL 804 uPSI_BumpMapping; //OpenGL 805 uPSI_TGA; //OpenGL 806 uPSI_GLVectorFileObjects; //OpenGL 807 uPSI_IMM; //VCL 808 uPSI_CategoryButtons; //VCL 809 uPSI_ButtonGroup; //VCL 810 uPSI_DbExcept; //VCL 811 uPSI_AxCtrls; //VCL 812 uPSI_GL_actorUnit1; //OpenGL 813 uPSI_StdVCL; //VCL 814 unit CurvesAndSurfaces; //OpenGL 815 uPSI_DataAwareMain; //AsyncFree 816 uPSI_TabNotBk; //VCL 817 uPSI_udwsfiler; //mX4 818 uPSI_synaip; //Synapse! 819 uPSI_synacode; //Synapse 820 uPSI_synachar; //Synapse 821 uPSI_synamisc; //Synapse 822 uPSI_synaser; //Synapse 823 uPSI_synaicnv; //Synapse 824 uPSI_tlntsend; //Synapse 825 uPSI_pingsend; //Synapse 826 uPSI_blcksock; //Synapse 827 uPSI_asn1util; //Synapse 828 uPSI_dnssend; //Synapse 829 uPSI_clamsend; //Synapse 830 uPSI_ldapsend; //Synapse 831 uPSI_mimemess; //Synapse 832 uPSI_slogsend; //Synapse 833 uPSI_mimepart; //Synapse 834 uPSI_mimeinln; //Synapse 835 uPSI_ftpsend, //Synapse 836 uPSI_ftptsend; //Synapse 837 uPSI_httpsend; //Synapse 838 uPSI_sntpsend; //Synapse 839 uPSI_smtpsend; //Synapse 840 uPSI_snmpsend; //Synapse 841 uPSI_imapsend; //Synapse 842 uPSI_pop3send; //Synapse 843 uPSI_nntpsend; //Synapse 844 uPSI_ssl_cryptlib; //Synapse 845 uPSI_ssl_openssl; //Synapse 846 uPSI_synhttp_daemon; //Synapse 847 uPSI_NetWork; //mX4 848 uPSI_PingThread; //Synapse 849 uPSI_JvThreadTimer; //JCL 850 unit uPSI_wwSystem; //InfoPower 851 unit uPSI_IdComponent; //Indy 852 unit uPSI_IdIOHandlerThrottle; //Indy 853 unit uPSI_Themes; //VCL 854 unit uPSI_StdStyleActnCtrls; //VCL 855 unit uPSI_UDDIHelper; //VCL 856 unit uPSI_IdIMAP4Server; //Indy 857 uPSI_VariantSymbolTable, //VCL //3.9.9.92 858 uPSI_udf_glob, //mX4 859 uPSI_TabGrid, //VCL 860 uPSI_JsDBTreeView, //mX4 861 uPSI_JsSendMail, //mX4 862 uPSI_dbTvRecordList, //mX4 863 uPSI_TreeVwEx, //mX4 864 uPSI_ECDataLink, //mX4 865 uPSI_dbTree, //mX4 866 uPSI_dbTreeCBox, //mX4 867 unit uPSI_Debug; //TfrmDebug //mX4 868 uPSI_TimeFncs; //mX4 869 uPSI_FileIntf, //VCL 870 uPSI_SockTransport, //RTL 871 unit uPSI_WinInet; //RTL 872 unit uPSI_Wwstr; //mX4 873 uPSI_DBLookup, //VCL 874 uPSI_Hotspot, //mX4 875 uPSI_HList; //History List //mX4 876 unit uPSI_DrTable; //VCL 877 uPSI_TConnect, //VCL 878 uPSI_DataBkr, //VCL 879 uPSI_HTTPIntr; //VCL 880 unit uPSI_Mathbox; //mX4 881 uPSI_cyIndy, //cY 882 uPSI_cySysUtils, //cY 883 uPSI_cyWinUtils, //cY 884 uPSI_cyStrUtils, //cY 885 uPSI_cyObjUtils, //cY 886 uPSI_cyDateUtils, //cY 887 uPSI_cyBDE, //cY 888 uPSI_cyClasses, //cY 889 uPSI_cyGraphics, //3.9.9.94_2 //cY 890 unit uPSI_cyTypes; //cY 891 uPSI_JvDateTimePicker, //JCL 892 uPSI_JvCreateProcess, //JCL 893 uPSI_JvEasterEgg, //JCL 894 uPSI_WinSvc, //3.9.9.94_3 //VCL 895 uPSI_SvcMgr //VCL 896 unit uPSI_JvPickDate; //JCL 897 unit uPSI_JvNotify; //JCL 898 uPSI_JvStrHlder //JCL 899 unit uPSI_JclNTFS2; //JCL 900 uPSI_Jcl8087 //math coprocessor //JCL 901 uPSI_JvAddPrinter //JCL 902 uPSI_JvCabFile //JCL 903 uPSI_JvDataEmbedded; //JCL 904 unit uPSI_U_HexView; //mX4 905 uPSI_UWavein4, //mX4 906 uPSI_AMixer, //mX4 907 uPSI_JvaScrollText, //mX4 908 uPSI_JvArrow, //mX4 909 unit uPSI_UrlMon; //mX4 910 U_Oscilloscope4 in 'U_Oscilloscope4.pas' //mX4 911 unit uPSI_U_Oscilloscope4; //TOscfrmMain; //DFF 912 unit uPSI_DFFUtils; //DFF 913 unit uPSI_MathsLib; //DFF 914 uPSI_UIntList; //DFF 915 uPSI_UGetParens; //DFF 916 unit uPSI_UGeometry; //DFF 917 unit uPSI_UAstronomy; //DFF 918 unit uPSI_UCardComponentV2; //DFF 919 unit uPSI_UTGraphSearch; //DFF 920 unit uPSI_UParser10; //DFF 921 unit uPSI_cyIEUtils; //cY 922 unit uPSI_UcomboV2; //DFF 923 uPSI_cyBaseComm, //cY 924 uPSI_cyAppInstances, //cY 925 uPSI_cyAttract, //cY 926 uPSI_cyDERUtils //cY 927 unit uPSI_cyDocER; //cY 928 unit uPSI_ODBC; //mX 929 unit uPSI_AssocExec; //mX 930 uPSI_cyBaseCommRoomConnector, //cY 931 uPSI_cyCommRoomConnector, //cY 932 uPSI_cyCommunicate, //cY 933 uPSI_cyImage; //cY 934 uPSI_cyBaseContainer //cY 935 uPSI_cyModalContainer, //cY 936 uPSI_cyFlyingContainer; //cY 937 uPSI_RegStr, //VCL 938 uPSI_HtmlHelpViewer; //VCL 939 unit uPSI_cyIniForm //cY 940 unit uPSI_cyVirtualGrid; //cY 941 uPSI_Profiler, //DA 942 uPSI_BackgroundWorker, //DA 943 uPSI_WavePlay, //DA 944 uPSI_WaveTimer, //DA 945 uPSI_WaveUtils; //DA 946 uPSI_NamedPipes, //TB 947 uPSI_NamedPipeServer, //TB 948 unit uPSI_process, //TB 949 unit uPSI_DPUtils; //TB 950 unit uPSI_CommonTools; //TB 951 uPSI_DataSendToWeb, //TB 952 uPSI_StarCalc, //TB 953 uPSI_D2_XPVistaHelperU //TB 954 unit uPSI_NetTools //TB 955 unit uPSI_Pipes //TB 956 uPSI_ProcessUnit, //mX 957 uPSI_adGSM, //mX 958 unit uPSI_BetterADODataSet; //mX 959 unit uPSI_AdSelCom; //FTT //mX 960 unit unit uPSI_dwsXPlatform; //DWS 961 uPSI_AdSocket; //mX Turbo Power 962 uPSI_AdPacket; //mX 963 uPSI_AdPort; //mX 964 uPSI_PathFunc; //Inno 965 uPSI_CmnFunc; //Inno 966 uPSI_CmnFunc2; //Inno Setup //Inno 967 unit uPSI_BitmapImage; //mX4 968 unit uPSI_ImageGrabber; //mX4 969 uPSI_SecurityFunc, //Inno 970 uPSI_RedirFunc, //Inno 971 uPSI_FIFO, (MemoryStream) //mX4 972 uPSI_Int64Em, //Inno 973 unit uPSI_InstFunc; //Inno 974 unit uPSI_LibFusion; //Inno 975 uPSI_SimpleExpression; //Inno 976 uPSI_unitResourceDetails, //XN 977 uPSI_unitResFile, //XN 978 unit uPSI_simpleComport; //mX4 979 unit uPSI_AfViewershelpers; //Async 980 unit uPSI_Console; //mX4 981 unit uPSI_AnalogMeter; //TB 982 unit uPSI_XPrinter, //TB 983 unit uPSI_IniFiles; //VCL 984 unit uPSI_lazIniFiles; //FP 985 uPSI_testutils; //FP 986 uPSI_ToolsUnit; (DBTests) //FP 987 uPSI_fpcunit //FP 988 uPSI_testdecorator; //FP 989 unit uPSI_fpcunittests; //FP 990 unit uPSI_cTCPBuffer; //Fundamentals 4 991 unit uPSI_Glut, //Open GL 992 uPSI_LEDBitmaps, //mX4 993 uPSI_FileClass, //Inno 994 uPSI_FileUtilsClass, //mX4 995 uPSI_ComPortInterface; //Kit //mX4 996 unit uPSI_SwitchLed; //mX4 997 unit uPSI_cyDmmCanvas; //cY 998 uPSI_uColorFunctions; //DFF 999 uPSI_uSettings; //DFF 1000 uPSI_cyDebug.pas //cY 1001 uPSI_cyColorMatrix; //cY 1002 unit uPSI_cyCopyFiles; //cY 1003 unit uPSI_cySearchFiles; //cY 1004 unit uPSI_cyBaseMeasure; //cY 1005 unit uPSI_PJIStreams; //DD 1006 unit uPSI_cyRunTimeResize; //cY 1007 unit uPSI_jcontrolutils; //cY 1008 unit uPSI_kcMapViewer; (+GEONames) //kc 1009 unit uPSI_kcMapViewerDESynapse; //kc 1010 unit uPSI_cparserutils; (+GIS_SysUtils) //kc 1011 unit uPSI_LedNumber; //TurboPower 1012 unit uPSI_StStrL; //SysTools 1013 unit uPSI_indGnouMeter; //LAZ 1014 unit uPSI_Sensors; //LAZ 1015 unit uPSI_pwmain; //cgi of powtils //Pow 1016 unit uPSI_HTMLUtil; //Pow 1017 unit uPSI_synwrap1; //httpsend //Pow 1018 unit StreamWrap1 //Pow 1019 unit uPSI_pwmain; //Pow 1020 unit pwtypes //Pow 1021 uPSI_W32VersionInfo //LAZ 1022 unit uPSI_IpAnim; //LAZ 1023 unit uPSI_IpUtils; //iputils2(TurboPower) //TP 1024 unit uPSI_LrtPoTools; //LAZ 1025 unit uPSI_Laz_DOM; //LAZ 1026 unit uPSI_hhAvComp; //LAZ 1027 unit uPSI_GPS2; //mX4 1028 unit uPSI_GPS; //mX4 1029 unit uPSI_GPSUDemo; // formtemplate TFDemo//mX4 1030 unit uPSI_NMEA; // GPS //mX4 1031 unit uPSI_ScreenThreeDLab; //mX4 1032 unit uPSI_Spin; //VCL 1033 unit uPSI_DynaZip; //mX4 1034 unit uPSI_clockExpert; //TB 1035 unit debugLn //mX4 1036 uPSI_SortUtils; //Jcl 1037 uPSI_BitmapConversion; //Jcl 1038 unit uPSI_JclTD32; //Jcl 1039 unit uPSI_ZDbcUtils; //Zeos 1040 unit uPSI_ZScriptParser; //Zeos 1041 uPSI_JvIni, //JCL 1042 uPSI_JvFtpGrabber; //JCL 1043 unit uPSI_NeuralNetwork; //OCL 1044 unit uPSI_StExpr; //SysTools 1045 unit uPSI_GR32_Geometry; //GR32 1046 unit uPSI_GR32_Containers; //GR32 1047 unit uPSI_GR32_Backends_VCL, //GR32 1048 unit uPSI_StSaturn;//Venus+Mercury+Mars++ //SysTools 1049 unit uPSI_JclParseUses; //JCL 1050 unit uPSI_JvFinalize; //JCL 1051 unit uPSI_panUnit1; //GLScene 1052 unit uPSI_DD83u1; //Arduino Tester //mX4 1053 unit uPSI_BigIni //Hinzen 1054 unit uPSI_ShellCtrls; //VCL 1055 unit uPSI_fmath; //FMath 1056 unit uPSI_fComp; //FMath 1057 unit uPSI_HighResTimer; //Lauer 1058 unit uconvMain; (Unit Converter) //PS 1059 unit uPSI_uconvMain; //PS 1060 unit uPSI_ParserUtils; //PS 1061 unit uPSI_uPSUtils; //PS 1062 unit uPSI_ParserU; //PS 1063 unit uPSI_TypInfo; //VCL 1064 unit uPSI_ServiceMgr; //mX 1065 unit uPSI_UDict; //DFF 1066 unit uPSI_ubigFloatV3; //DFF 1067 unit uPSI_UBigIntsV4; //DFF 1068 unit uPSI_ServiceMgr2; //mX 1069 unit uPSI_UP10Build; //PS 1070 unit uPSI_UParser10; //PS 1071 unit uPSI_IdModBusServer; //MB 1072 unit uPSI_IdModBusClient; //MB 1073 unit uPSI_ColorGrd; //VCL 1074 unit uPSI_DirOutln; //VCL 1075 unit uPSI_Gauges; //VCL 1076 unit uPSI_CustomizeDlg; //VCL 1077 unit uPSI_ActnMan; //VCL 1078 unit uPSI_CollPanl; //VCL 1079 unit uPSI_Calendar2; //VCL 1080 unit uPSI_IBCtrls; //VCL 1081 unit uPSI_IdStackWindows; //Indy 1082 unit uPSI_CTSVendorUtils; //DBX 1083 unit uPSI_VendorTestFramework; //DBX 1084 unit uPSI_TInterval; //mX4 1085 unit uPSI_JvAnimate //JCL 1086 unit uPSI_DBXCharDecoder; //DBX 1087 unit uPSI_JvDBLists; //JCL 1088 unit uPSI_JvFileInfo; //JCL 1089 unit uPSI_SOAPConn; //VCL 1090 unit uPSI_SOAPLinked; //VCL 1091 unit uPSI_XSBuiltIns; //VCL 1092 unit uPSI_JvgDigits; //JCL 1093 unit uPSI_JvDesignUtils; 1094 unit uPSI_JvgCrossTable; 1095 unit uPSI_JvgReport; 1096 unit uPSI_JvDBRichEdit; 1097 unit uPSI_JvWinHelp; 1098 unit uPSI_WaveConverter; 1099 unit uPSI_ACMConvertor; 1100 unit XSBuiltIns_Routines 1101 unit uPSI_ComObjOleDB_utils.pas 1102 unit uPSI_SMScript; 1103 unit uPSI_CompFileIo; 1104 unit uPSI_SynHighlighterGeneral; 1105 unit uPSI_geometry2; 1106 unit uPSI_MConnect; 1107 unit uPSI_ObjBrkr; 1108 unit uPSI_uMultiStr; 1109 unit uPSI_WinAPI.pas; 1110 unit uPSI_JvAVICapture; 1111 unit uPSI_JvExceptionForm; 1112 unit uPSI_JvConnectNetwork; 1113 unit uPSI_MTMainForm; 1114 unit uPSI_DdeMan; 1115 unit uPSI_DIUtils; 1116 unit uPSI_gnugettext; 1117 unit uPSI_Xmlxform; 1118 unit uPSI_SvrHTTPIndy; 1119 unit uPSI_CPortTrmSet; 1120 unit SvrLog; --------------------------------------------------------------- 1121 unit uPSI_IndySockTransport.pas (+IdHTTPHeaderInfo) //mX4 1122 unit uPSI_HTTPProd.pas 1123 unit uPSI_CppParser.pas 1124 unit uPSI_SynHighlighterCpp.pas 1125 unit uPSI_CodeCompletion.pas 1126 unit uPSI_U_IntList2.pas 1127 unit uPSI_SockHTTP.pas 1128 uPSI_SockAppNotify.pas 1129 uPSI_NSToIS.pas 1130 unit uPSI_DBOleCtl.pas 1131 unit uPSI_xercesxmldom; 1132 unit uPSI_xmldom; 1133 unit uPSI_Midas; 1134 unit uPSI_JclExprEval; 1135 uPSI_Gameboard; 1136 unit uPSI_ExtUtil; 1137 unit uPSI_FCGIApp; 1138 unit uPSI_ExtPascal; 1139 unit uPSI_PersistSettings; 1140 IdHTTPHeaderInfo.pas 1141 uPSI_SynEditAutoComplete; 1142 uPSI_SynEditTextBuffer.pas 1143 unit uPSI_JclPCRE; 1144 unit uPSI_ZConnection; 1145 unit uPSI_ZSequence; 1146 unit uPSI_ChessPrg; 1147 unit uPSI_ChessBrd; 1148 unit uPSI_Graph3D; 1149 uPSI_SysInfoCtrls2.pas 1150 unit uPSI_RegUtils; 1151 unit uPSI_VariantRtn; 1152 uPSI_StdFuncs, 1153 unit uPSI_SqlTxtRtns; 1154 unit uPSI_BSpectrum; 1155 unit IPAddressControl; 1156 unit uPSI_Paradox; 1157 unit uPSI_Environ; 1158 uPSI_GraphicsPrimitivesLibrary; 1159 uPSI_DrawFigures, 1160 unit uPSI_synadbg; 1161 unit uPSI_BitStream; 1162 unit uPSI_xrtl_util_FileVersion; 1163 uPSI_XmlRpcCommon, 1164 unit uPSI_XmlRpcClient; 1165 unit uPSI_XmlRpcTypes; 1166 unit uPSI_XmlRpcServer; 1167 unit uPSI_SynAutoIndent; 1168 unit uPSI_synafpc; 1169 unit uPSI_RxNotify; 1170 unit uPSI_SynAutoCorrect; 1171 unit uPSI_rxOle2Auto; 1172 unit uPSI_Spring_Utilsmx; 1173 unit uPSI_ulogifit; 1174 unit uPSI_HarmFade; 1175 unit uPSI_SynCompletionProposal; 1176 unit uPSI_rxAniFile; 1177 uPSI_ulinfit, 1178 uPSI_usvdfit; 1179 unit uPSI_JclStringLists; 1180 unit uPSI_ZLib; 1181 unit uPSI_MaxTokenizers; //WANT 1182 unit uPSI_MaxStrUtils; 1183 unit uPSI_MaxXMLUtils; 1184 unit uPSI_MaxUtils; 1185 unit uPSI_VListBox; 1186 unit uPSI_MaxDOM; 1187 unit uPSI_MaxDOMDictionary; 1188 unit uPSI_MaxDOMDictionary_Routines; 1189 unit uPSI_cASN1; 1190 unit uPSI_cX509Certificate; 1191 unit uPSI_uCiaXml; 1192 unit uPSI_StringsW; 1193 unit uPSI_FileStreamW; //WideString D7X 1194 unit Drawingutils; 1195 unit uPSI_InetUtilsUnified; 1196 unit uPSI_FileMask; 1197 unit uPSI_StrConv; 1198 unit uPSI_Simpat; 1199 unit uPSI_Tooltips.pas 1200 unit uPSI_StringGridLibrary.pas 1201 unit uPSI_ChronCheck.pas 1202 unit uPSI_REXX.pas 1203 uPSI_SysImg.pas 1204 unit uPSI_Tokens; 1205 unit uPSI_KFunctions; 1206 unit uPSI_KMessageBox; 1207 unit uPSI_CPUSpeed.pas 1208 uPSI_RoboTracker.pas 1209 unit uPSI_NamedPipesImpl.pas 1210 unit uPSI_KLog.pas 1211 unit uPSI_NamedPipeThreads.pas 1212 unit uPSI_MapFiles.pas //map stream of memory-mapped files 1213 unit uPSI_BKPwdGen, //Password Generator 1214 unit uPSI_Kronos, // big chrono date time library 1215 unit uPSI_TokenLibrary2; 1216 uPSI_KDialogs, 1217 uPSI_Numedit, 1218 unit uPSI_StSystem2; 1219 unit uPSI_KGraphics; 1220 uPSI_KGraphics_functions; 1221 uPSI_umaxPipes.pas 1222 unit uPSI_KControls; 1223 unit SysUtils_max2; 1224 uPSI_IdAntiFreeze.pas 1225 uPSI_IdLogStream.pas 1226 unit uPSI_IdThreadSafe; 1227 unit uPSI_IdThreadMgr; 1228 unit uPSI_IdAuthentication; 1229 unit uPSI_IdAuthenticationManager; 1230 uPSI_OverbyteIcsConApp 1231 unit uPSI_KMemo; 1232 unit uPSI_OverbyteIcsTicks64; 1233 unit uPSI_OverbyteIcsSha1.pas 1234 unit uPSI_KEditCommon.pas 1235 unit uPSI_UtilsMax4.pas 1236 unit uPSI_IdNNTPServer; 1237 unit uPSI_UWANTUtils; 1238 unit uPSI_UtilsMax5.pas; 1239 unit uPSI_OverbyteIcsAsn1Utils; 1240 unit uPSI_IdHTTPHeaderInfo; //mX4 response headers 1241 uPSI_wmiserv.pas {uPSI_SimpleSFTP.pas} 1242 uPSI_WbemScripting_TLB.pas 1243 unit uPSI_uJSON; 1244 uPSI_RegSvrUtils.pas 1245 unit uPSI_osFileUtil; 1246 unit uPSI_SHDocVw; //TWebbrowser 1247 unit uPSI_SHDocVw_TLB 1248 uPSC_classes.pas V2 1249 uPSR_classes.pas V2 1250 uPSI_U_Oscilloscope4_2 1251 uPSI_xutils.pas 1252 uPSI_ietf.pas 1253 uPSI_iso3166.pas 1254 uPSI_dateutil_real.pas //Optima ISO 8601 1255 uPSI_dateext4.pas 1256 uPSI_locale.pas //ISO Formater & Tests 1257 file charset.inc //IANA Registered character sets 1258 unit uPSI_Strings; 1259 unit uPSI_crc_checks; //ISO 3309 and ITU-T-V42 1260 unit uPSI_extDOS; 1261 uPSI_uBild; //Steganography 1262 unit uPSI_SimpleTCP; 1263 unit uPSI_IdFTPList; 1264 uPSI_uTPLb_CryptographicLibrary.pas 1265 uPSI_uTPLb_RSA_Engine.pas 1266 uPSI_cHugeInt.pas 1267 unit uPSI_SimpleTCPServer; 1268 unit uPSI_xBase.pas 1269 unit uPSI_ImageHistogram.pas 1270 unit uP_PersistSettings2; 1271 uPSI_WDosDrivers.pas 1272 unit uPSI_cCipherRSA; 1273 uPSI_CromisStreams, (TStreamStorage) 1274 unit uPSI_Streams, 1275 uPSI_BitStream, 1276 uPSI_UJSONFunctions.pas 1277 uPSI_uTPLb_BinaryUtils.pas 1278 unit uPSI_USha256.pas //PascalCoin Blockchain 1279 uPSI_uTPLb_HashDsc.pas 1280 uPSI_uTPLb_Hash.pas 1281 SIRegister_Series(X); (uPSI_Series) //4.2.6.10 1282 unit uPSI_UTime; (UTime); uPSI_mimeinln2; 1283 uPSI_uTPLb_StreamCipher.pas 1284 uPSI_uTPLb_BlockCipher.pas 1285 uPSI_uTPLb_Asymetric.pas 1286 uPSI_uTPLb_CodecIntf.pas 1287 uPSI_uTPLb_Codec.pas 1288 uPSI_ADOInt.pas 1289 uPSI_MidasCon.pas 1290 uPSI_XMLDoc.pas 1291 uPSI_XMLIntf.pas 1292 uPSI_ProxyUtils.pas 1293 unit uPSI_maxXMLUtils2; 1294 unit_StDict_Routines(S: TPSExec); 1295 unit uPSI_Hashes2 1296 unit uPSI_IdCoderHeader; 1297 unit uPSI_BackgroundWorker2 1298 uPSI_uMRU.pas 1299 unit FANN.pas 1300 unit uPSI_FannNetwork.pas 1301 unit uPSI_RTLDateTimeplus.pas 1302 uPSI_ULog.pas 1303 uPSI_UThread.pas 1304 uPSI_UTCPIP.pas 1305 Synapse_OpenSSLv11 1306 PascalCoin configuration config.inc 1307 unit uPSI_statmach, {StateMachine} //46310 1308 uPSI_uTPLb_RSA_Primitives, 1309 unit uPSI_UMatrix, 1310 uPSI_DXUtil, 1311 uPSI_crlfParser, 1312 unit uPSI_DCPbase64; 1313 unit uPSI_FlyFilesUtils; 1314 uPSI_PJConsoleApp.pas 1315 uPSI_PJStreamWrapper.pas 1316 uPSI_LatLonDist, //DFF 1317 uPSI_cHash2.pas //Fundamentals 1318 uPSI_ZLib2.pas 1319 unit uPSI_commDriver 1320 unit uPSI_PXLNetComs.pas //PXL 1321 unit uPSI_PXLTiming.pas //PXL 1322 uPSI_Odometer.pas 1323 unit uPSI_UIntList2; 1324 uPSI_UIntegerpartition.pas 1325 unit uPSI_idPHPRunner.pas //prepare for PHP4D 1326 unit uPSI_idCGIRunner.pas 1327 uPSI_DrBobCGI, //4.7.1.20 1328 uPSI_OverbyteIcsLogger, / / n e w c o u n t 1 2 2 8 - - > 1 3 2 8 1329 uPSI_OverbyteIcsNntpCli, testset 1330 uPSI_OverbyteIcsCharsetUtils, 1331 uPSI_OverbyteIcsMimeUtils, 1332 uPSI_OverbyteIcsUrl(CL: TPSPascalCompiler); 1333 uPSI_uWebSocket.pas 1334 uPSI_KhFunction.pas 1335 uPSI_ALOpenOffice.pas 1336 unit uPSI_ALLibPhoneNumber 1337 unit uPSI_ALPhpRunner2; 1338 unit uPSI_ALWebSpider2; 1339 unit uPSI_ALFcnHTML2; // RunJavaScript2 1340 unit uPSI_ALExecute2.pas 1341 uPSI_ALIsapiHTTP.pas 1342 uPSI_ALOpenOffice_Routines 1343 unit uPSI_uUsb; 1344 uPSI_uWebcam.pas 1345 uPSI_PersistSettings.pas //fixing & refactoring 1346 uPSI_uTPLb_MemoryStreamPool.pas 1347 uPSI_uTPLb_Signatory.pas 1348 unit uPSI_uTPLb_Constants.pas //TurboPower 1349 uPSI_uTPLb_Random.pas 1350 unit uPSI_uTPLb_PointerArithmetic; 1351 unit uPSI_EwbCoreTools.pas 1352 unit uPSI_EwbUrl.pas 1353 unit uPSI_SendMail_For_Ewb.pas 1354 unit uPSI_MaskEdit.pas FCL 1355 unit uPSI_SimpleRSSTypes; BlueHippo 1356 unit uPSI_SimpleRSS; BlueHippo 1357 unit uPSI_psULib.pas Prometheus 1358 unit uPSI_psUFinancial; Prometheus 1359 uPSI_PsAPI_2.pas mX4 1360 uPSI_PersistSettings_2 mX4 1361 uPSI_rfc1213util2.pas IP 1362 uPSI_JTools.pas JCL 1363 unit uPSI_neuralbit.pas CAI 1364 unit uPSI_neuralab.pas CAI f 1365 unit uPSI_winsvc2.pas TEK 1366 unit uPSI_wmiserv2.pas TEK 1367 uPSI_neuralcache.pas CAI 1368 uPSI_neuralbyteprediction CAI 1369 unit uPSI_USolarSystem; glscene.org 1370 uPSI_USearchAnagrams.pas DFF 1371 uPSI_JsonsUtilsEx.pas Randolph 1372 unit uPSI_Jsons.pas Randolph 1373 unit uPSI_HashUnit; DFF 1374 uPSI_U_Invertedtext.pas DFF 1375 unit uPSI_Bricks; Dendron 1376 unit uPSI_lifeblocks.pas Dendron 1377 unit uPSI_SystemsDiagram.pas Dendron 1378 unit uPSI_qsFoundation.pas Dendron 1379 uPSI_JclStringLists2 JCL 1380 uPSI_cInternetUtils2 FLC 1381 uPSI_cWindows.pas FLC 1382 uPSI_flcSysUtils.pas +TBytes utils 1383 unit uPSI_RotImg.pas DA 1384 uPSI_SimpleImageLoader.pas LAZ 1385 uPSI_HSLUtils.pas LAZ 1386 uPSI_GraphicsMathLibrary.pas EF 1387 unit uPSI_umodels.pas DMath 1388 uPSI_flcStatistics.pas FLC5 1389 uPSI_flcMaths.pas FLC5 1390 uPSI_flcCharSet.pas FLC5 1391 uPSI_flcBits32.pas 1392 uPSI_flcTimers.pas 1393 uPSI_cBlaiseParserLexer.pas 1394 uPSI_flcRational.pas 1395 uPSI_flcComplex.pas 1396 unit uPSI_flcMatrix (uPSI_flcVectors.pas) 1397 unit uPSI_flcStringBuilder.pas 1398 unit PJResFile_Routines; 1399 uPSI_flcASCII.pas 1400 uPSI_flcStringPatternMatcher; 1401 unit uPSI_flcUnicodeChar.pas 1402 unit uXmlDates.pas; 1403 unit uPSI_SemaphorGrids; 1404 unit uXmlDates2; 1405 unit uPSI_JclTimeZones; 1406 unit uPSI_XmlDocRssParser.pas 1407 unit uPSI_RssParser.pas 1408 uPSI_SimpleParserRSS.pas 1409 unit uPSI_SimpleRSSUtils; 1410 unit uPSI_RssModel; _BlueHippo 1411 unit uPSI_StrUtil; _FIBPlus 1412 unit uPSI_TAChartUtils; _TEE 1413 unit uPSI_PythonEngine.pas _P4D_Beta 1414 unit uPSI_VclPythonGUIInputOutput; 1415 unit uPSI_VarPyth; 1416 unit JclUsesUtils; 1417 unit uPSI_cParameters; 1418 unit uPSI_WDCCMisc; (uPSI_cFileTemplates); 1419 uPSI_WDCCOleVariantEnum.pas 1420 unit uPSI_WDCCWinInet.pas _WDCC 1421 uPSI_PythonVersions.pas _P4D_ 1422 unit uPSI_PythonAction.pas _P4D_ 1423 uPSI_SingleList.pas 1424 unit uPSI_AdMeter.pas; Async Professional 1425 unit uPSI_neuralplanbuilder; CAI 1426 unit uPSI_neuralvolume.pas; CAI 1427 unit uPSI_neuralvolumev.pas; CAI 1428 unit uPSI_DoubleList4; CapJack 1429 unit uPSI_ByteListClass; CapJack 1430 unit uPSI_flcVectors4; FLC5 1431 unit uPSI_flcMatrix4; FLC5 1432 uPSI_CurlHttpCodes.pas 1433 unit uPSI_NeuralNetwork.pas; CAI 1434 unit unit uPSI_neuralfit; CAI 1435 unit uPSI_neuraldatasets; CAI 1436 unit uPSI_neuraldatasetsv.pas CAI 1437 uPSI_flcFloats.pas FLC5 1438 unit UBigIntsForFloatV4.pas DFF 1439 unit uPSI_CustApp.pas Pas2js 1440 unit uPSI_NeuralNetworkCAI.pas CAI 1441 unit uPSI_neuralgeneric.pas; CAI 1442 unit uPSI_neuralthread.pas; CAI 1443 unit uPSI_uSysTools; TuO 1444 unit upsi_neuralsets; mX4 1445 unit uPSI_uWinNT.pas mX4 1446 unit uPSI_URungeKutta4.pas ICS 1447 unit uPSI_UrlConIcs.pas ICS 1448 unit uPSI_OverbyteIcsUtils.pas ICS 1449 unit uPSI_Numedit2 mX4 1450 unit uPSI_PsAPI_3.pas mX4 1451 unit uPSI_SeSHA256.pas 1452 unit IdHashMessageDigest_max2; 1453 unit uPSI_BlocksUnit.pas 1454 unit uPSI_DelticsCommandLine.pas 1455 unit uPSI_DelticsStrUtils; 1456 unit uPSI_DelticsBitField; 1457 unit uPSI_DelticsSysUtils; 1458 unit uPSI_ALIniFiles2.pas 1459 unit uPSI_StarCalc2.pas 1460 unit uPSI_IdHashMessageDigest2.pas 1461 unit uPSI_U_Splines; 1462 unit uPSI_U_CoasterB.pas; 1463 U_SpringMass2.pas 1464 uPSI_MARSCoreUtils; 1465 unit uPSI_clJsonParser.pas 1466 unit uPSI_SynHighlighterPython.pas 1467 unit uPSI_DudsCommonDelphi; 1468 unit uPSI_AINNNeuron; 1469 unit uPSI_PJConsoleApp2; Console Application Runner 1470 unit uPSI_PJPipeFilters2; CAR 1471 unit uPSI_uHTMLBuilder; 1472 unit uPSI_PJPipe2; 1473 uPSI_WinApiDownload.pas 1474 uPSI_pxQRcode, // 1475 unit uPSI_neuralplanbuilder2 1476 unit uPSI_DelphiZXingQRCode; 1477 unit uPSI_RestJsonUtils; 1478 unit UtilsTimeCode; 1479 unit uPSC_classes2.pas; //TList 1480 unit uPSC_std2.pas 1481 unit uPSI_TBytes.pas 1482 unit uPSI_DelticsSysUtils2.pas 1483 unit uPSI_maxIniFiles.pas 1484 unit uROPSImports.pas 1485 unit uROPSServerLink.pas 1486 unit KLibVC_Redist.pas; 1487 unit HTTPApp2.pas; 1488 unit uPSI_XCollection2; 1489 unit uPSI_KLibWindows; 1490 unit KlibConstants; 1491 unit uPSI_AzuliaUtils.pas 1492 unit uPSI_ALHttpClient2; 1493 unit uPSI_ALWininetHttpClient2; 1494 unit uPSI_UtilsMax41.pas 1495 unit uPSI_JclSysUtils1; 1496 unit uPSI_RestUtils; 1497 unit uPSI_TeEngine2.pas 1498 unit uPSI_Chart2.pas; (uPSI_TeCanvas2.pas) 1499 unit uPSI_PSResources.pas 1500 unit uPSI_TeCanvas2_1.pas 1501 unit uPSI_DataSetConverter4DUtil; 1502 unit uPSI_neuralfit2.pas; 1503 unit uPSI_SynCrtSock.pas 1504 uPSI_RunElevatedSupport.pas 1505 unit synTHttpRequest.pas; 1506 unit uPSI_VelthuisFloatUtils.pas 1507 unit HttpConnection.pas 1508 unit uPSI_HttpConnectionWinInet.pas 1509 unit UHexUtils.pas 1510 unit UExeFileType.pas 1511 unit uPSI_UConsoleApp.pas 1512 unit uPSI_CompilersURunner.pas 1513 unit uPSI_HttpConnection.pas 1514 unit uPSI_DataSetUtils.pas 1515 unit uPSI_HTTPSender.pas 1516 unit AES_Cryptobox4.pas 1517 unit uPSI_JsonConverter.pas 1518 unit uPSI_RestClient.pas 1519 unit JsonToDataSetConverter; 1520 unit JsonListAdapter; (superobject) 1521 unit uPSI_OpenApiUtils.pas; 1522 unit uPSI_WinHttp_TLB.pas; 1523 unit uPSI_NovusConsole; 1524 unit NovusShell.pas; 1525 unit NovusWebUtils.pas; 1526 unit NovusStreamUtils.pas; 1527 unit uPSI_dprocess; TProcess2 1528 unit uPSI_uXmlStorage.pas 1529 unit uPSI_AsphyreTimer.pas 1530 unit uPSI_Pas2JSUtils.pas 1531 unit uPSI_pacMain; (Form1pac: TForm1pac;) 1532 unit dwsWebUtils.pas; DWS 1533 unit uPSI_dwsWebUtils.pas; DWS 1534 unit uPSI_RestUtils2.pas; 1535 unit uPSI_Pas2jsFileUtils.pas; beta 1536 unit uPSI_JPerson.pas; 1537 unit uPSI_OldRttiMarshal; 1538 unit uPSI_superxmlparser; 1539 unit uPSI_superobject.pas; beta 1540 uPSI_NovusWindows.pas 1541 uPSI_NovusStringUtils.pas 1542 unit uPSI_NovusUtilities.pas; 1543 unit uPSI_NovusNumUtils; 1544 unit uPSI_NovusFileUtils; 1545 unit uPSI_NovuscURLUtils.pas; curl beta 1546 unit uPSI_uDM.pas; 1547 unit uPSI_dpipes.pas; 1548 unit uPSI_ShellAPI2; 1549 uPSI_NovusStringBuilder.pas 1550 unit NovusDateDiffUtil.pas 1551 unit NovusDateUtils; 1252 unit NovusDateStringUtils; 1553 unit uPSI_PJCBView; 1554 uPSI_NovusWinVersionUtils.pas 1555 unit uPSI_PJResFile.pas; 1556 unit PJResFile_Routines2; 1557 unit uPSI_JvCreateProcess2 1558 unit uPSI_JVCLHelpUtils.pas 1559 unit uPSI_ModuleLoader; 1560 unit uPSI_JvLogClasses; 1561 uPSI_uExporter.pas; 1562 unit uExporterDestinationCSV.pas; 1563 uPSI_uOptionParser.pas 1564 uPSI_TOptionDefs; 1565 unit uPSI_GUIUtils.pas 1566 unit uPSI_GUIAutomation.pas; 1567 unit uPSI_GUIActionRecorder; //dunit 1568 unit TypeHelpers.pas //dunit 1569 unit uPSI_API_base; //API 1570 unit uPSI_API_audio; //API 1571 unit uPSI_API_ledgrid; 1572 uPSI_API_graphics.pas; 1573 uPSI_API_files.pas; 1574 uPSI_API_tools.pas; 1575 unit uPSI_API_winprocess; 1576 unit API_strings.pas; 1577 unit uPSI_API_services.pas Total of Function Calls: 37372 SHA1: 4.7.6.50 D047DBD5412C3E4A436089018B9C7FACF17A2EB5 CRC32: 38562FA8 34.04 MB (35,697,944 bytes) Compilation Timestamp 2023-06-15 06:40:19 UTC Signtime 15 June 2023 08:42:33 Entry Point 25484072 - Contained Sections 10 sha1: d047dbd5412c3e4a436089018b9c7facf17a2eb5 sha256: 193679043c46821c4b2460269111ff112e7c67b49e9cd9d951854e61bceedac7 Docu: http://www.softwareschule.ch/maxbox_functions.txt ZIP maxbox4.zip SHA1: CEAB242D25E264FB95D5792EBC569C4EAD31B732 https://www.hybrid-analysis.com/sample/193679043c46821c4b2460269111ff112e7c67b49e9cd9d951854e61bceedac7 Total of Function Calls: 37121 SHA1: 4.7.6.50 9E9D9D10762AE0D0BC8AFD747C2381EA5478AE49 CRC32: 01B431EE 33.91 MB (35,558,168 bytes) Compilation Timestamp 2023-06-12 13:17:28 UTC Signtime 12 June 2023 15:20:10 Entry Point 25377544 - Contained Sections 10 sha1: 9e9d9d10762ae0d0bc8afd747c2381ea5478ae49 sha256: fa0f30abf34292e91070a5bd4682040eb6af79a8f6c7f55111c9692153120988 Docu: http://www.softwareschule.ch/maxbox_functions.txt Total of Function Calls: 37008 SHA1: 4.7.6.50 FDA4E3CE0FEC5F86EF0F95278D5C35FEC42FDA1B fda4e3ce0fec5f86ef0f95278d5c35fec42fda1b CRC32: 46294349 33.81 MB (35,454,744 bytes) Compilation Timestamp 2023-06-08 17:00:33 UTC Signtime 08 June 2023 19:04:06 Entry Point 25320128 - Contained Sections 10 sha1: fda4e3ce0fec5f86ef0f95278d5c35fec42fda1b sha256: 882ddadb9b330318bfff73d8db66d1a33be575be4cede3960374bfeb7c49c968 Total of Function Calls: 36947 SHA1: 4.7.6.50 C430FDBA9880317E31D4DA2F66C884799298FCC3 CRC32: 5BD9839C 33.62 MB (35,257,624 bytes) Compilation Timestamp 2023-06-06 14:16:08 UTC Signtime 06 June 2023 16:22:14 Entry Point 25287360 - Contained Sections 10 Total of Function Calls: 36852 SHA1: 4.7.6.50 D4FD4CACFD766EB8F78F2BB7B5EFDDEBB386597A CRC32: C1DCD693 33.50 MB (35,128,600 bytes) Compilation Timestamp 2023-05-31 12:44:17 UTC Signtime 31 May 2023 14:48:34 Entry Point 25234104 - Contained Sections 10 sha1: d4fd4cacfd766eb8f78f2bb7b5efddebb386597a sha256: 4dfbada6765e47c72b7c2496f831419b3461fa7c4ac6e05e2a941b501e10e022 Total of Function Calls: 36834 SHA1: 4.7.6.50 EDE730F514834A85ECA6D0190DAC8CA6046C26EE ede730f514834a85eca6d0190dac8ca6046c26ee CRC32: 4E7C4A2B 33.49 MB (35,117,336 bytes) Compilation Timestamp 2023-05-31 08:25:23 UTC Signtime 31 May 2023 10:33:00 Entry Point 25225912 - Contained Sections 10 sha1: ede730f514834a85eca6d0190dac8ca6046c26ee sha256: 168f85cff6ecdfcc4e7614758bbdb333a38f4896f94b7056f3e53af8fd15a66b Total of Function Calls: 36798 SHA1: 4.7.6.50 CAA09249B338ED2814B760FA549DAD47F6C789D2 CRC32: 94780E06 33.41 MB (35,033,880) Compilation Timestamp 2023-05-30 13:17:50 UTC Signtime 30 May 2023 15:20:39 Entry Point 25217720 - Contained Sections 10 http://www.softwareschule.ch/maxbox_functions.txt sha1: caa09249b338ed2814b760fa549dad47f6c789d2 Total of Function Calls: 36354 SHA1: 4.7.6.20 F60338A77B77F2032061BF72A545AFB727F6395F CRC32: 48455EF8 32.8 MB (34,419,992 bytes) Compilation Timestamp 2023-01-26 15:36:15 UTC Signtime 26 Jan. 2023 16:41:42 Entry Point 25033256 - Contained Sections 10 ZIP maxbox4.zip SHA1:7E6C1A422CCE02B90CC96A8AB994BDD235A4D02A http://www.softwareschule.ch/maxbox_functions.txt  mX4 executed: 26/01/2023 17:27:09 Runtime: 0:15:27.415 Memload: 48% use Total of Function Calls: 35958 SHA1: 4.7.6.20 D4619B18E231839334AB0FE0B90D4018DC6276A7 CRC32: 9E995FA2 32.2 MB (33,805,592 bytes) Compilation Timestamp 2022-10-17 09:27:44 UTC Signing time 17 Oct 2022 11:48:48 Entry Point 24783132 - Contained Sections 10 ***************************************************************** Release Notes maXbox 4.7.6.20 January 2023 mX476 **************************************************************** Add 86 Units + 25 Tutorials 1441 unit uPSI_neuralgeneric.pas; CAI 1442 unit uPSI_neuralthread.pas; CAI 1443 unit uPSI_uSysTools; TuO 1444 unit upsi_neuralsets; mX4 1445 unit uPSI_uWinNT.pas mX4 1446 unit uPSI_URungeKutta4.pas ICS 1447 unit uPSI_UrlConIcs.pas ICS 1448 unit uPSI_OverbyteIcsUtils.pas ICS 1449 unit uPSI_Numedit2 mX4 1450 unit uPSI_PsAPI_3.pas mX4 1451 unit uPSI_SeSHA256.pas 1452 unit IdHashMessageDigest_max2; 1453 unit uPSI_BlocksUnit.pas 1454 unit uPSI_DelticsCommandLine.pas 1455 unit uPSI_DelticsStrUtils; 1456 unit uPSI_DelticsBitField; 1457 unit uPSI_DelticsSysUtils; 1458 unit uPSI_ALIniFiles2.pas 1459 unit uPSI_StarCalc2.pas 1460 unit uPSI_IdHashMessageDigest2.pas 1461 unit uPSI_U_Splines; 1462 unit uPSI_U_CoasterB.pas; 1463 U_SpringMass2.pas 1464 uPSI_MARSCoreUtils; 1465 unit uPSI_clJsonParser.pas 1466 unit uPSI_SynHighlighterPython.pas 1467 unit uPSI_DudsCommonDelphi; 1468 unit uPSI_AINNNeuron; 1469 unit uPSI_PJConsoleApp2; 1470 unit uPSI_PJPipeFilters2; 1471 unit uPSI_uHTMLBuilder; 1472 unit uPSI_PJPipe2; 1473 uPSI_WinApiDownload, 1474 uPSI_pxQRcode, //beta 1475 unit uPSI_neuralplanbuilder2 1476 unit uPSI_DelphiZXingQRCode; 1477 unit uPSI_RestJsonUtils; 1478 unit UtilsTimeCode; 1479 unit uPSC_classes2.pas; //TList 1480 unit uPSC_std2.pas 1481 unit uPSI_maxIniFiles.pas 1482 unit uROPSImports.pas 1483 unit uROPSServerLink.pas 1484 unit uPSI_KLibUtils; 1485 unit uPSI_PathFunc2; //inno setup 1486 unit KLibVC_Redist.pas; 1487 unit HTTPApp2.pas; 1488 unit uPSI_XCollection2; 1489 unit uPSI_KLibWindows; 1490 unit KlibConstants; 1491 unit uPSI_AzuliaUtils.pas 1492 unit uPSI_ALHttpClient2; 1493 unit uPSI_ALWininetHttpClient2; 1494 unit uPSI_UtilsMax41.pas 1495 unit uPSI_JclSysUtils1; 1496 unit uPSI_RestUtils; 1497 unit uPSI_TeEngine2.pas 1498 unit uPSI_Chart2.pas; (uPSI_TeCanvas2.pas) 1499 unit uPSI_PSResources.pas 1500 unit uPSI_TeCanvas2_1.pas 1501 unit uPSI_DataSetConverter4DUtil; 1502 unit uPSI_neuralfit2.pas; 1503 unit uPSI_SynCrtSock.pas 1504 uPSI_RunElevatedSupport.pas 1505 unit synTHttpRequest.pas; 1506 unit uPSI_VelthuisFloatUtils.pas 1507 unit HttpConnection.pas 1508 unit uPSI_HttpConnectionWinInet.pas 1509 unit UHexUtils.pas 1510 unit UExeFileType.pas 1511 unit uPSI_UConsoleApp.pas 1512 unit uPSI_CompilersURunner.pas 1513 unit uPSI_HttpConnection.pas 1514 unit uPSI_DataSetUtils.pas 1515 unit uPSI_HTTPSender.pas 1516 unit AES_Cryptobox4.pas 1517 unit uPSI_JsonConverter.pas 1518 unit uPSI_RestClient.pas 1519 unit JsonToDataSetConverter; 1520 unit JsonListAdapter; (superobject) 1521 unit uPSI_OpenApiUtils.pas; 1522 unit uPSI_WinHttp_TLB.pas; 1523 unit uPSI_NovusConsole; 1524 unit NovusShell.pas; 1525 unit NovusWebUtils.pas; 1526 unit NovusStreamUtils.pas; **************************************************************** Release Notes maXbox 4.7.6.10 November 2021 mX476 **************************************************************** Add 5 Units + 2 Tutorials 1441 unit uPSI_neuralgeneric.pas; CAI 1442 unit uPSI_neuralthread.pas; CAI 1443 unit uPSI_uSysTools; TuO 1444 unit upsi_neuralsets; mX4 1445 unit uPSI_uWinNT.pas mX4 Total of Function Calls: 34880 SHA1: of 4.7.6.10 CF939E3A8D4723DB1DEF383C5FC961E06728C58F CRC32: 38F88218 30.5 MB (32,022,344 bytes) V 4.7.5.90 VI Amount of Functions: 20549 Amount of Procedures: 12307 Amount of Constructors: 1937 Amount of Destructors: 14 Totals of Calls: 34807 SHA1: of 4.7.5.90 96DCDE2028125E00B67E42A801721AC513A5EAFC CRC32: BBC3A7E5: 31974216 bytes  mX4 executed: 03/11/2021 15:25:47 Runtime: 0:12:33.807 Memload: 39% use Amount of Functions: 20994 Amount of Procedures: 12492 Amount of Constructors: 1984 Amount of Destructors: 14 Totals of Calls: 35484 SHA1: of 4.7.6.10 EC20D0A371A57AA078762D6D45F7229A370549A1 CRC32: 82E481A4: 33273160 bytes  mX4 executed: 14/03/2022 15:21:38 Runtime: 0:13:41.253 Memload: 42% use Amount of Functions: 21907 Amount of Procedures: 12848 Amount of Constructors: 2029 Amount of Destructors: 14 Totals of Calls: 36798 SHA1: of 4.7.6.50 CAA09249B338ED2814B760FA549DAD47F6C789D2 CRC32: 17A61798: 35033880 bytes  mX4 executed: 30/05/2023 15:46:15 Runtime: 0:16:22.226 Memload: 40% use // Project: State Machine // Module: statmach.pas // Description: Visual Finite State Machine. // Version: 2.2a - Release: 6 source of the new units: http://sourceforge.net/projects/maxbox/files/Docu/SourceV4/ http://www.slideshare.net/maxkleiner1/codereview-topics /////////////////////////////////////////////////////////////////////////////// //Form Template Library FTL /////////////////////////////////////////////////////////////////////////////// FTL For Form Building Lib out of the Script, eg. 399_form_templates.txt 045 unit uPSI_VListView TFormListView; 263 unit uPSI_JvProfiler32; TProfReport 270 unit uPSI_ImgList; TCustomImageList 278 unit uPSI_JvImageWindow; TJvImageWindow 317 unit uPSI_JvParserForm; TJvHTMLParserForm 497 unit uPSI_DebugBox; TDebugBox 513 unit uPSI_ImageWin; TImageForm, TImageForm2 514 unit uPSI_CustomDrawTreeView; TCustomDrawForm 515 unit uPSI_GraphWin; TGraphWinForm 516 unit uPSI_actionMain; TActionForm 518 unit uPSI_CtlPanel; TAppletApplication 529 unit uPSI_MDIEdit; TEditForm //RichEditApp 535 unit uPSI_CoolMain; {browser} TWebMainForm 538 unit uPSI_frmExportMain; TSynexportForm 585 unit uPSI_usniffer; {//PortScanForm} TSniffForm 600 unit uPSI_ThreadForm; TThreadSortForm; 618 unit uPSI_delphi_arduino_Unit1; TLEDForm 620 unit uPSI_fplotMain; TfplotForm1 660 unit uPSI_JvDBQueryParamsForm; TJvQueryParamsDialog 677 unit uPSI_OptionsFrm; TfrmOptions; 718 unit uPSI_MonForm; TMonitorForm 742 unit uPSI_SimplePortMain; TPortForm1 770 unit uPSI_ovccalc; TOvcCalculator //widget 810 unit uPSI_DbExcept; TDbEngineErrorDlg 812 unit uPSI_GL_actorUnit1; TglActorForm1 //OpenGL Robot 846 unit uPSI_synhttp_daemon; TTCPHttpDaemon, TTCPHttpThrd, TPingThread 867 unit uPSI_Debug; TfrmDebug 901 unit uPSI_JvAddPrinter TJvAddPrinter //JCL 904 unit uPSI_U_HexView; THexForm2 911 unit uPSI_U_Oscilloscope4; (OscfrmMain) TOscfrmMain 959 unit uPSI_AdSelCom; TComSelectForm 1029 unit uPSI_GPSUDemo; TFDemo 1031 unit uPSI_ScreenThreeDLab; TFormLab3D 1051 unit uPSI_panUnit1; TPanForm1 //GLScene 1052 unit uPSI_DD83u1; {Arduino Tester Frm} TDD83f1 1059 unit uPSI_uconvMain; TfconvMain //PS 1076 unit uPSI_CustomizeDlg; TCustomizeDlg / TJvAddPrinterDialog; 1111 unit uPSI_JvExceptionForm; TJvErrorDialog //ShowException 1113 unit uPSI_MTMainForm; TvtMainForm 1119 unit uPSI_CPortTrmSet; TComTrmSetForm 1146 unit uPSI_ChessPrg; TChessForm1 1216 uPSI_KDialogs, TKBrowseFolderDialog 1217 eg.execStr('from delphivcl import *'); LoadPyClass 1231 unit uPSI_pacMain; (Form1pac: TForm1pac;) TForm1pac; FormTemplates with J [myformtemplate | formtemplate statement | Borland.EditOptions.Pascal] //with [myFastForm | class declaration | Borland.EditOptions.Pascal] //Dialog Form [myForm | class declaration | Borland.EditOptions.Pascal] //with Events [aForm | class declaration | Borland.EditOptions.Pascal] //single Form [getForm(x,y)] of object TForm [loadForm(x,y)] [ticker | ticker statement | Borland.EditOptions.Pascal] [except | exception statement | Borland.EditOptions.Pascal] Dark Color Style Darkcolor: memo1.color:= RGB2TColor(32,32,32) //20,18,18 memo2.color:= RGB2TColor(20,18,18) Proc SIRegister_JvDesignUtils(CL: TPSPascalCompiler); begin Func DesignClientToParent(const APt: TPoint; AControl,AParent: TControl) : TPoint; Func DesignMin(AA, AB : Int):Int); Func DesignMax(AA, AB: Int): Int; Func DesignRectWidth( const ARect : TRect) : Int; Func DesignRectHeight( const ARect : TRect) : Int; Func DesignValidateRect( const ARect : TRect) : TRect; Func DesignNameIsUnique( AOwner : TComponent; const AName :Str) :Bool; Func DesignUniqueName( AOwner : TComponent; const AClassName :Str) :Str; Proc DesignPaintRubberbandRect(AContainer:TWinControl;ARect:TRect;APenStyle:TPenStyle); Proc DesignPaintGrid(ACanvs:TCanvas;const ARect:TRect;ABackClr:TColr;AGridClr:TColor;ADivPixels:Int) Proc DesignPaintRules(ACanvas:TCanvas;const ARect:TRect;ADivPixels:Int;ASubDivs:Bool; Proc DesignSaveComponentToStream( AComp : TComponent; AStream : TStream); Func DesignLoadComponentFromStream(AComp:TComponent;AStram:TStream;AOnError:TReaderError):TComponent; Proc DesignSaveComponentToFile( AComp : TComponent; const AFileName :Str); Proc DesignLoadComponentFromFile(AComp:TComp;const AFileName:str;AOnError:TReaderError); end; ex.:with TEditForm.create(self) do begin caption:= 'Template Form Tester'; FormStyle:= fsStayOnTop; with editor do begin Lines.LoadFromFile(Exepath+'\docs\Readme_rus_mX2.rtf SelStart:= 0; Modified:= False; end; end; with TWebMainForm.create(self) do begin URLs.Text:= 'http://www.kleiner.ch'; URLsClick(self); Show; end; with TSynexportForm.create(self) do begin Caption:= 'Synexport HTML RTF tester'; Show; end; with TThreadSortForm.create(self) do begin showmodal; free; end; with TCustomDrawForm.create(self) do begin width:=820; height:=820; image1.height:= 600; //add properties image1.picture.bitmap:= image2.picture.bitmap; //SelectionBackground1Click(self) CustomDraw1Click(self); Background1.click; bitmap1.click; Tile1.click; Showmodal; Free; end; with TfplotForm1.Create(self) do begin BtnPlotClick(self); Showmodal; Free; end; with TOvcCalculator.create(self) do begin parent:= aForm; //free; setbounds(550,510,200,150); displaystr:= 'maXcalc'; end; with THexForm2.Create(self) do begin ShowModal; Free; end; Func CheckBox:Str; var idHTTP: TIDHTTP; begin result:= 'version not found'; if IsInternet then begin idHTTP:= TIdHTTP.Create(NIL); try result:= idHTTP.Get(MXVERSIONFILE2); result:= result[1]+result[2]+result[3]+result[4]+result[5]; if result = MBVER2 then begin //Speak(' A new Version '+vstr+' of max box is available! ; result:= ('!!! OK. You have latest Version: '+result+' available at '+MXSITE); end; //idhttp.get2('http://www.softwareschule.ch/maxbox.htm') finally idHTTP.Free end; end; end; charinset make your own charinset to prevent typematch: Func CharInSet4(C: AnsiChar; const CharSet: TSysCharSet):Bool; begin Result:= C in CharSet; end; Func CharInSet5(C: AnsiChar; const CharSet: CharSet):Bool; begin Result:= C in CharSet; end; //Runtimer Spec Functions Edition 190 and more code blocks Func ApWinExecAndWait32(FileName:PChar;CommandLine:PChar; Visibility:Int):Int; Func KillTask(ExeFileName:Str): Int; Proc KillProcess(hWindowHandle: HWND); Func FindWindowByTitle(WindowTitle:Str): Hwnd; Func OpenIE(aURL:Str):Bool; Func XRTLIsInMainThread:Bool; Func IsInMainThread:Bool; Func IntToFloat(i: Int): double; Func AddThousandSeparator(S:Str; myChr: Char):Str; Func mciSendString(cmd: PChar; ret: PChar; len: Int; callback: Int):Card; Proc FormAnimation(Sender: TObject; adelay: Int); Proc LoadResourceFile2(aFile:str; ms:TMemoryStream); Func putBinResTo(binresname: pchar; newpath:Str):Bool; Proc ExecuteHyperlink(Sender:TObject;HyperLinkClick:TJvHyperLinkClickEvent;const LinkName:str); Func IsHyperLink(Canvas:TCanvas;Rect:TRect;const Text:str;MouseX,MouseY:Int;var HyperLink:str):Bool Func GetWindowThreadProcessId( hWnd : HWND; var dwProcessId : DWORD) : DWORD;; Func GetWindowTask( hWnd : HWND) : THandle; Func LoadBitmap( hInstance : HINST; lpBitmapName : PChar) : HBITMAP; Func GetCommConfig(hCommDev: THandle; var lpCC: TCommConfig; var lpdwSize: DWORD): BOOL; Func WinExecAndWait32(FileName:Str; Visibility: Int): Longword; Func MakeHash( const s : TbtString) : Longint; Func GetUsedUnitList( list : Tstringlist) :Str; Func ConsoleCapture(const _dirName, _exeName, _cmdLine:Str; amemo: TStringlist): Bool; Func ConsoleCaptureDOS(const _dirName, _exeName, _cmdLine:Str; amemo: TStrings): Bool; srlist:= TStringlist.create; ConsoleCapture('C:\', 'cmd.exe', '/c dir *.*',srlist); writeln(srlist.text); srlist.Free; Func RunCaptured(const _dirName, _exeName,_cmdLine:str; amemo:TStringlist):Bool;; Func SamePropTypeName( const Name1, Name2 : ShortString) :Bool; Func FloatToStrEx( Value : Extended) :Str; Func StrToFloatEx( const S :Str) : Extended; Proc PerformanceDelayMS(ams: Int); //microsecond resolution delay! //http://www.swissdelphicenter.ch/en/showcode.php?id=2179 Func ExecuteProcess(FileName:Str;Visibility:Int; BitMask:Int; Synch:Boolean):Longword; Func ExecuteMultiProcessor(FileName:str;Visibility:Int;BitMask:Int;Synch:Bool):Longword; if ExecuteMultiProcessor('notepad.exe', SW_SHOW, 2, true) = 0 then writeln('Multiprocessing Runs on CPU 2; Proc StartServiceAfterInstall(aserv: TService); Func GetDllVersion2(DllName:Str; var DLLVersionInfo: TDLLVersionInfo):Bool; Proc SendCopyMessage(amess,astation:str); //comunicate process-spanned with WM_COPYDATA Func BrowseComputer2(DialogTitle:Str; var CompName:Str; bNewStyle: Bool): Bool; Func ChangeAlphaTo(input:Str; aoffset: byte):Str;; Func CheckIBAN(iban:Str):Bool;; Func CreateIDStack; //instance to IdStack of CreateStack Func GetRecordCount(DataSet: TBDEDataSet): Longint;; Func CountPos(const subtxt:Str; Text:Str): Int; Proc HTMLtoRTF(html:Str; var rtf: TRichedit); Proc ReversePlay(const szFileName:Str); Func ADOConnectionString(ParentHandle:THandle;InitialStr:WideString;out NewString:str):Bool; Proc ShowEOleException(AExc: EOleException; Query:str); Func UpdateBlob(Connection:TADOConnection;Spalte:str;Tabelle:str;Where:str;var ms:TMemoryStream):Bool;..save HTML pages as MHTML(HTML Archiv Format) http://www.swissdelphicenter.ch/en/showcode.php?id=2300 Func SaveToMHT(const AUrl,AFileName:Str; AShowErrorMessage:Boolean = False):Bool; Func FileType2MimeType(const AFileName:Str):Str; Func DownloadURL_NOCache(const aUrl:Str; var s:Str):Bool; Func IsCOMObjectActive(ClassName:Str):Bool; Proc CopyHTMLToClipBoard(const str:Str; const htmlStr:Str = '; Func CheckCreditCard(c:Str): Int; 0: Card is invalid or unknown 1: is a AmEx 2: is a Visa 3: is a valid MasterCard Func GetNewGUID:Str; Func FormatGUID(const GUID:Str):Str; Func GetNewFormatedGUID:Str; Func getFormRes(classname:Str):Str; //shows DFM Res of Exe! Proc OutputDebugString(PChar(Format('[%s][%s]%s',[aCaption,GetFormatDT(StartDT),aText]))); Proc ScanNetworkResources(ResourceType, DisplayType: DWord; List: TStrings); Func PrepareConstraint(Src:Tstrings):str; Proc DeleteEmptyStr(Src:Tstrings); Func NormalizeSQLText(const SQL:Str;MacroChar:Char):Str; Func CountSelect(const SrcSQL:str):str; Func GetModifyTable(const SQLText:str;AlreadyNormal:boolean):str; Func GetCharFromVKey(vkey: Word):Str; Func Xls_To_StringGrid(AGrid: TStringGrid; AXLSFile:Str):Bool; Func IsObjectActive(ClassName:Str):Bool; Func GetActiveObject(ClassID:TGUID; anil:TObject; aUnknown:IUnknown):HRESULT;; Func RegisterOCX(FileName:Str):Bool; Func UnRegisterOCX(FileName:Str):Bool; Func RegisterServer2(const aDllFileName:Str; aRegister:Bool):Bool; Proc mIRCDDE(Service, Topic, Cmd:Str); //mIRCDDE('mIRC', 'COMMAND', '/say Hallo von SwissDelphiCenter.ch; Func OpenIE(aURL:Str):Bool; Func XRTLIsInMainThread:Bool; Func IsInMainThread:Bool; TryConvertStrToDateTime(const s, format:str; out value: TDateTime):Boolean;; ConvertStrToDateTime(const s, format:Str): TDateTime;; Func CreateNotifyThread2(const FolderName:Str; WatchSubtree:Bool;Filter:TFileChangeFilters2):TNotifyThread; Proc DetectImage(const InputFileName:Str; BM: TBitmap); Func BitmapToString(Bitmap: TBitmap):Str; Func StringToBitmap(S:Str): TBitmap; Func RemoveChar(CONST s:Str; CONST c: CHAR):Str; Proc SecureClearStr(var S: Ansistr);; Proc movestring(const Source:str; var Destination:str; CopyCount : Int ); Proc movestringJV(const Source:str; var Destination:str; CopyCount : Int ); Proc moveint(const Source:Int; var destination: Int; CopyCount : Int ); Proc movefloat(const Source:double; var destination: double; CopyCount : Int ); Proc moveextended(const Source:extended;var Destination:extended;CopyCount:Int); Proc ShowFilePropertiesSH(Files: TStrings; aWnd: HWND); //ScanNetworkResources(RESOURCETYPE_DISK, RESOURCEDISPLAYTYPE_SERVER, ListBox1.Items); Func GrabLine(const s:Str; ALine: Int):Str; Func GrabLineFast(const s:Str; ALine: Int):Str; Func IsTextFile(const sFile: TFileName):Bool; Func getODBC: Tstringlist; Func getODBCString:Str; Proc GetJPGSize(const sFile:Str; var wWidth, wHeight: Word); Proc GetPNGSize(const sFile:Str; var wWidth, wHeight: Word); function GetPNGSize2(const FileName: string): TSize; Proc GetGIFSize(const sGIFFile:Str; var wWidth, wHeight: Word); // note: using TForm's BorderIcons, etc. is slow (form blinks) and not reliable (for some // reson it causes TListView.Items to lose all associated objects and other things happen). Proc ChangeWindowStyle(const Form: HWND; Style: DWord; AddIt:Bool); Func VarByteArrayOf(const s:Str): OleVariant; type TView = (normal, Scientific); Func bigdiv2(aval1:Str; aval2: integer):Str; Func modbig(aval:Str; amod: integer): integer; Func bigmod(aval:Str; amod: integer): integer; Func modPowBig3(aval, apow, amod:Str):Str;; Func BigPowMod(aval, apow, amod:Str):Str;; Function BigLog(atwo:String; sig: integer):String; Func RSAEncrypt(aval, apow, amod:Str):Str;; Func RSADecrypt(aval, apow, amod:Str):Str;; Func SwitchToThread : BOOL; Func SetThreadDesktop( hDesktop : HDESK) : BOOL; Func CloseDesktop( hDesktop : HDESK) : BOOL; Func GetThreadDesktop( dwThreadId : DWORD) : HDESK; Func SetSyscallHook():Bool;; Func SetSwapcontextHook():Bool;; Func UnhookAll():Bool;; Func getWorld:Str;; Func getIPConfigAll:Str;; Func getIPConfig:Str;; Func WinsockEnabled:Bool; Func HTTPEncode2(const AStr:Str):Str; Func ComputePEChecksum(FileName:Str): DWORD; if not DynamicDllCallName(user32, 'LockWorkStation',true,returned,parameters) then begin Func DynamicDllCallNames(Dll:Str; const Name:Str; HasResult:Bool; var Returned:Card; const Parameters: array of string):Bool;; Proc GetMIDASAppServerList(List: TStringList; const RegCheck :Str); Proc SQLDropField(dbName, tblName, fldName:Str); {Field Name to Drop} type TCastType = (ctSmallInt, ctInt, ctDecimal, ctNumeric, ctFloat, ctChar, ctVarChar, ctDate, ctBoolean, ctBLOB, ctTime, ctTimeStamp, ctMoney, ctAutoInc, ctBytes); {Blob definition type 1 = Memo, 2 = Binary, 3 = Formatted Memo, 4 = OLE Object, 5 = Graphic} Proc SQLAddField(dbName,tblName,fldName:str;fldType:TCastType;fldLength,precisOrBlobLen,scaleOrBlobType:Int); const UrlGeoLookupInfo ='http://ipinfodb.com/ip_query.php?timezone=true&ip=%s'; UrlGeoLookupInfo2 ='http://backup.ipinfodb.com/ip_query.php?timezone=true&ip=%s'; //backup http://ip-api.com/csv/ Proc GetGeoInfo(const IpAddress:str;var GeoInfo:TGeoInfo;const UrlGeoLookupInfo:str); TGeoInfo','record status:Str; countrycode : ' +string; countryname:str; regioncode:Str;city:Str;zippostalcode:Str;latitude:Str;longitude:str;timezonename:str;gmtoffset:str;isdst:str;end; Proc SIRegister_ubigFloatV3(CL: TPSPascalCompiler); begin TMaxSig', 'Int; TView', '( normal, Scientific ); SIRegister_TFloatInt(CL); SIRegister_TBigFloat(CL); end; Proc SIRegister_UBigIntsV4(CL: TPSPascalCompiler); begin TDigits', 'array of int64; SIRegister_TInt(CL); Proc SetBaseVal( const newbase : Int); Func GetBasePower : Int; Func GetBase : Int; Proc SetThreadSafe( newval :Bool); Func bigdiv2(aval1:Str; aval2: integer):Str; Func modbig(aval:Str; amod: integer): integer; ; Func bigmod(aval:Str; amod: integer): integer; ; Func modPowBig3(aval, apow, amod:Str):Str;; Func BigPowMod(aval, apow, amod:Str):Str;; Func BigLog(atwo:String; sig: integer):String; //UBigFloat3 Func RSAEncrypt(aval, apow, amod:Str):Str;; Func RSADecrypt(aval, apow, amod:Str):Str;; Func SwitchToThread : BOOL; end; Func BigDiv(aone, atwo:Str):Str; var tbig1, tbig2: TInt; begin tbig1:= TInt.create(10); tbig2:= TInt.create(10); try tbig1.assign2(atwo) tbig2.assign2(aone) tbig2.Divide(tbig1) finally result:= tbig2.ConvertToDecimalString(false) tbig1.Free; tbig2.free; end; end; Function BigLog(atwo:String; sig: integer):String; var tbig2: TBigFloat; begin tbig2:= TBigFloat.create; try tbig2.assign8(atwo) tbig2.log(sig) finally result:= tbig2.tostring(normal) tbig2.free; end; end; Proc SIRegister_UDict(CL: TPSPascalCompiler); begin 'dichighletter','String').SetString( 'z; SIRegister_TDicForm(CL); SIRegister_TDic(CL); end; Proc SetArrayLength2Char2(var arr: T2CharArray; asize1, asize2: Int); var i: Int; begin setlength(arr, asize1); for i:= 0 to asize1-1 do SetLength(arr[i], asize2); end; //3D example as cube array //t_vector = array of extended; //t_matrix = array of t_vector; //t_array3d = array of t_matrix; (t_Tensor) Procedure SetArrayLen2Extend3(var arr: t_matrix; asize1, asize2: Integer); var i: Integer; begin setlength(arr, asize1); //2D for i:= 0 to asize1-1 do SetLength(arr[i], asize2); //3D end; setLength( weights, amountLayers - 1 ); //1D setLength( gradientWeights, amountLayers - 1 ); for I:= 0 to amountLayers - 2 do begin SetArrayLen2Extend3(weights[I],StrToInt(layerSizes[I+1]),StrToInt(layerSizes[I])); SetArrayLen2Extend3(gradientWeights[I],StrToInt(layerSizes[I+1]),StrToInt(layerSizes[I])); end; https://sourceforge.net/projects/maxbox/files/Examples/13_General/1234_UNeuralNetwork_withGUI_1.pas/download https://github.com/breitsch2/TNeuralNetwork https://github.com/breitsch2/Neural-Network-in-Delphi Example of dynamic array of panels: Proc SetArrayLength2Panels(var arr: array of array of TPanel; asize1, asize2: Integer); var i: Integer; begin setlength(arr, asize1); for i:= 0 to asize1-1 do SetLength(arr[i], asize2); end; Proc TMyFormInitialisePanels(aform: Tform; RowCount,ColCount: Integer); var aLeft,aTop,aWidth,aHeight, row,col: Integer; Panel: TPanel; FPanels: array of array of TPanel; begin //SetLength(FPanels, RowCount, ColCount); SetArrayLength2Panels(Fpanels, RowCount, ColCount) aTop:= 0; for Row:= 0 to RowCount-1 do begin aLeft:= 0; aHeight:= (aform.ClientHeight-aTop) div (RowCount-Row); for Col:= 0 to ColCount-1 do begin Panel:= TPanel.Create(Self); FPanels[Row][Col]:= Panel; Panel.Parent:= aform; //Self; //panel.parentcolor:= false; panel.ParentBackground:= false; panel.color:= random(clred) aWidth:= (aform.ClientWidth-aLeft) div (ColCount-Col); Panel.SetBounds(aLeft, aTop, aWidth, aHeight); inc2(aLeft, aWidth); end; inc2(aTop, aHeight); end; end; aform:= TForm.create(self) aform.setbounds(10,10,600,500); TMyFormInitialisePanels(aform, 26, 19); aform.show; Proc SIRegister_UP10Build(CL: TPSPascalCompiler); begin Proc ParseFunction(FunctionString:str; Variables:TStringlist; FunctionOne,FunctionTwo:TStringList;UsePascalNumbers:bool; var FirstOP:{TObject}POperation;var Error:bool); end; Proc SIRegister_ComObj2(CL: TPSPascalCompiler); begin ClassN(CL.FindClass('TOBJECT'),'TComObjectFactory; SIRegister_TComServerObject(CL); SIRegister_ADOConst(CL); FieldTypeNames: array[0..41] of string = ( Unknown', 'String', 'SmallInt', 'Int', 'Word', 'Boolean', 'Float', 'Currency', 'BCD', 'Date', 'Time', 'DateTime', 'Bytes', 'VarBytes', 'AutoInc', 'Blob', 'Memo', 'Graphic', 'FmtMemo', 'ParadoxOle', 'dBaseOle', 'TypedBinary', 'Cursor', 'FixedChar', 'WideString', 'LargeInt', 'ADT', 'Array', 'Reference', 'DataSet', 'HugeBlob', 'HugeClob', 'Variant', 'Interface', 'Dispatch', 'Guid', 'SQLTimeStamp', 'FMTBcdField', FixedWideChar', 'WideMemo', 'SQLTimeStamp', 'String; TFactoryProc', 'Proc (Factory : TComObjectFactory); TCallingConvention','(ccRegister, ccCdecl, ccPascal, ccStdCall, ccSafeCall); SIRegister_TComClassManager(CL); SIRegister_IServerExceptionHandler(CL); SIRegister_TComObject(CL); //TComClass', 'class of TComObject; TClassInstancing', '(ciInternal,ciSingleInstance,ciMultiInstance ); TThreadingModel', '(tmSingle, tmApartment, tmFree, tmBoth, tmNeutral ); SIRegister_TComObjectFactory(CL); SIRegister_TTypedComObject(CL); //TTypedComClass', 'class of TTypedComObject; SIRegister_TTypedComObjectFactory(CL); TConnectEvent2','Procedure(const Sink : IUnknown; Connecting :Bool); ClassN(CL.FindClass('TOBJECT'),'TAutoObjectFactory; SIRegister_TAutoObject(CL); //TAutoObject2 ?? in OleAuto and ComObj //TAutoClass', 'class of TAutoObject; SIRegister_TAutoObjectFactory(CL); SIRegister_TAutoIntfObject(CL); //ClassN(CL.FindClass('TOBJECT'),'EOleError; ClassN(CL.FindClass('Exception'),'EOleError; SIRegister_EOleSysError(CL); SIRegister_EOleException(CL); ClassN(CL.FindClass('TOBJECT'),'EOleRegistrationError; //Proc DispatchInvoke(const Dispatch:IDispatch;CallDesc:PCallDesc;DispIDs:PDispIDList;Params:Pointer;Result: PVariant); //Proc DispatchInvokeError( Status : Int; const ExcepInfo : TExcepInfo); //Func HandleSafeCallException(ExceptObject:TObject;ExceptAddr:Pointer;const ErrorIID TGUID;const ProgID,HelpFileName:WideString):HResult; Func CreateComObject( const ClassID : TGUID) : IUnknown; Func CreateRemoteComObject(const MachineName: WideString;const ClassID:TGUID):IUnknown; //Func CreateOleObject(const ClassName :Str): IDispatch; //Func GetActiveOleObject(const ClassName:str): IDispatch; Proc OleError2( ErrorCode : HResult); Proc OleCheck2( Result : HResult); Func StringToGUID2( const S :Str) : TGUID; Func GUIDToString2( const ClassID : TGUID) :Str; Func ProgIDToClassID2( const ProgID :Str) : TGUID; Func ClassIDToProgID2( const ClassID : TGUID) :Str; Proc CreateRegKey(const Key,ValueName,Value:str;RootKey:DWord); Proc DeleteRegKey(const Key :Str; RootKey : DWord); Func GetRegStringValue( const Key, ValueName :Str; RootKey : DWord) :Str; //Func StringToLPOLESTR( const Source :Str) : POleStr; Proc RegisterComServer( const DLLName :Str); Proc RegisterAsService( const ClassID, ServiceName :Str); Func CreateClassID2:Str; Proc InterfaceConnect(const Srce:IUnknown;const IID:TIID;const Sink:IUnknown;var Connectin:Longint); Proc InterfaceDisconnect(const Source:IUnknown;const IID:TIID;var Connection:Longint); Func GetDispatchPropValue(Disp: IDispatch; DispID : Int) : OleVariant;; Func GetDispatchPropValue1(Disp: IDispatch; Name : WideString) : OleVariant;; Proc SetDispatchPropValue2(Disp:IDispatch;DispID:Int;const Value:OleVariant); Proc SetDispatchPropValue3(Disp: IDispatch; Name:WideString; const Value:OleVariant);; Func ComClassManager : TComClassManager; // from ADODB OLE Utils TOleEnum', 'LongWord; //DataTypeEnum = TOleEnum; DataTypeEnum', 'TOleEnum; Func CreateADOObject( const ClassID : TGUID) : IUnknown; Func ADOTypeToFieldType(const ADOType:DataTypeEnum; EnableBCD:Boolean):TFieldType; Func FieldTypeToADOType(const FieldType: TFieldType):DataTypeEnum; Func StringToVarArray( const Value :Str) : OleVariant; Func VarDataSize( const Value : OleVariant) : Int; Func OleEnumToOrd( OleEnumArray : array of TOleEnum; Value : TOleEnum) : Int; Func GetStates( State : Int) : TObjectStates; Func ExecuteOptionsToOrd(ExecuteOptions:TExecuteOptions): Int; Func OrdToExecuteOptions(Options: Int) : TExecuteOptions; Func ExtractFieldName( const Fields : WideString; var Pos : Int) : WideString; Func GetFilterStr( Field : TField; Value : Variant; Partial :Bool) : WideString; Func FieldListCheckSum( DataSet : TDataset) : Int; Func GlobalAllocString(s: Ansistr): HGlobal; Func ScanTime(const S:Str; var Pos: Int; var Time: TDateTime):Bool; Func ScanChar(const S:Str; var Pos: Int; Ch: Char):Bool; Func ScanNumber(const S:Str; var Pos: Int; var Number: Word):Bool; Func ScanString(const S:Str; var Pos: Int; const Symbol:Str):Bool; Proc LV_InsertFiles(strPath:Str; ListView: TListView; ImageList: TImageList); Func GetPasteLinkInfo(var Service:Str; var Topic:str; var Item:Str):Boolean; Func IPToHostName(const IP:Str):Str; Proc GetZoneIcon(IconPath:Str; var Icon: TIcon); Func GetZoneAttributes(const URL:Str): TZoneAttributes; //unit uPSI_PsAPI; Proc CGITester; //CGI will take name and email address from command line and place it into HTML Proc CreateBrowserOnForm(aform: TForm; aurl:Str); Proc WebOnForm(aform: TForm; aurl:Str);; Proc WebToForm(aform: TForm; aurl:Str);; Proc SearchAndHighlightWebText(aform: TForm; aurl:Str; aText:Str); Proc SaveImagesOnWeb(aurl, apath:Str); Func GetProcessNameFromWnd(Wnd: HWND):Str; //get EXE path from window handle Func getallEvents(aform: TForm): TStringlist; Proc GetKLList(List: TStrings);; Proc GetKeyboardList(List: TStrings);; Func SetSuspendState(Hibernate:Boolean;ForceCritical:Boolean;DisableWakeEvent:Bool):bool; call: SetSuspendState(True, False, False); Func ServiceRunning(sMachine, sService: PChar):Bool; Func isServiceRunning(sMachine, sService: PChar):Bool; Proc CloseOpenSockets( Sockets : array of TIdStackSocketHandle); //SIRegister_SvrHTTPIndy - Linux Proc TransformError( const Msg :Str); Proc StringToFile2( const S, FileName :Str); Func GetXMLData( DataSet : TClientDataSet) :Str; Proc EditComTerminal( ComTerminal : TCustomComTerminal); //TComTrmSetForm Func search_adapter_key_networkcard:Str; //at registry Func getNetworkCard:Str;; Func GetMacAddresses2(const Machine:Str; const Addresses: TStrings): Int; Func ConnectDrive(_drvLetter:str;_netPath:str;_showError:Bool;_reconnect:Bool):DWORD; Func ConnectPrinterDevice(_lptPort:str;_netPath:str;_showError:Bool;_reconnect:Bool):DWORD; Func DisconnectNetDrive(_locDrive:str;_showError:Bool;_force:Bool; _save:Bool): DWORD; //ConnectDrive('k:', '\\Servername\C', True, True); //DisconnectNetDrive('k:', True, True, True); Func GetConnectionKind(var strKind:Str):Bool; MODEM =1; LAN=2; PROXY=4; BUSY= 8; Func DownloadJPGToBitmap(const URL :Str; ABitmap: TBitmap):Bool; Proc GetImageLinks(AURL:Str; AList: TStrings); Func GetCharEncoding( alias :Str; var _name :Str) : Int; Func MicrosoftCodePageToMIMECharset( cp : word) :Str; Func MicrosoftLangageCodeToISOCode( langcode : Int) :Str; Proc CopyHTMLToClipBoard(const str:Str; const htmlStr:Str = '; Func RFC1123ToDateTime(Date:Str): TDateTime; Func DateTimeToRFC1123(aDate: TDateTime):Str; Proc CopyHTMLToClipBoard(const str:Str; const htmlStr:Str);; Proc DumpDOSHeader(const h: IMAGE_DOS_HEADER; Lines: TStrings);; Proc DumpPEHeader(const h: IMAGE_FILE_HEADER; Lines: TStrings);; Proc DumpOptionalHeader(const h: IMAGE_OPTIONAL_HEADER; Lines: TStrings);; IPToHostName //from ADOInt.pas // TOleEnum = type LongWord; TypeS('CursorOptionEnum', 'TOleEnum; Interface(CL.FindInterface('IUNKNOWN'),_Recordset, '_Recordset; //TypeS('_RecordsetDisp', 'dispinterface; Interface(CL.FindInterface('IUNKNOWN'),_Command, '_Command; Interface(CL.FindInterface('IUNKNOWN'),_Connection, '_Connection; // SIRegister__Recordset(CL); // SIRegister__Command(CL); Const IID_Recordset20','TGUID').SetString('{0000054F-0000-0010-8000-00AA006D2EA4}'']; 'IID__Recordset','string').SetString( '00000555-0000-0010-8000-00AA006D2EA4; //test with stringToGUID //'CLASS_Command','TGUID').SetString( '{00000507-0000-0010-8000-00AA006D2EA4}; // 'CLASS_Recordset','TGUID').SetString( '{00000535-0000-0010-8000-00AA006D2EA4}; { TypeS('Connection', '_Connection; TypeS('Command', '_Command; TypeS('Recordset', '_Recordset; TypeS('Parameter', '_Parameter; TypeS('DataSpace', 'IDataspace; TypeS('SearchDirection', 'SearchDirectionEnum; } //TypeS('Command', '_Command; //TypeS('Recordset', '_Recordset; end; Proc SIRegister_DIUtils(CL: TPSPascalCompiler); begin //'CRLF','String').SetString( #$0D#$0A); 'REPLACEMENT_CHARACTER','LongWord').SetUInt( $FFFD); 'HANGUL_SBase','LongWord').SetUInt( $AC00); 'HANGUL_LBase','LongWord').SetUInt( $1100); 'HANGUL_VBase','LongWord').SetUInt( $1161); 'HANGUL_TBase','LongWord').SetUInt( $11A7); 'HANGUL_LCount','LongInt').SetInt( 19); 'HANGUL_VCount','LongInt').SetInt( 21); 'HANGUL_TCount','LongInt').SetInt( 28); 'KEY_WOW64_32KEY','LongWord').SetUInt( $0200); 'KEY_WOW64_64KEY','LongWord').SetUInt( $0100); 'KEY_WOW64_RES','LongWord').SetUInt( $0300); TypeS('TAnsiCharSet', 'set of AnsiChar; TypeS('TIsoDate', 'Cardinal; TypeS('TJulianDate', 'Int; //TypeS('PJulianDate', '^TJulianDate // will not work; TypeS('TValidateCharFunc', 'function(const c: Char):Bool;; // TValidateCharFunc = function( const c: Char):Bool; TypeS('TProcedureEvent', 'Procedure; 'MT19937_N','LongInt').SetInt( 624); 'MT19937_M','LongInt').SetInt( 397); SIRegister_TMT19937(CL); //SIRegister_TWideStrBuf(CL); TypeS('TDITextLineBreakStyle', '( tlbsLF, tlbsCRLF, tlbsCR ); Func AdjustLineBreaksW(const s:UnicodeStr;const Style:TDITextLineBreakStyle):UnicodeStr; Func BrightenColor( const Color : Int; const amount : Byte) : Int; Func BSwap4( const Value :Card) :Card;; Func BSwap5( const Value : Int) : Int;; //Func BufCompNumIW(p1:PWideChar; l1:Int; p2 : PWideChar; l2 : Int) : Int; Func BufSameA( p1, p2 : PChar; l :Card) :Bool; // Func BufSameW( p1, p2 : PWideChar; l :Card) :Bool; Func BufSameIA( p1, p2 : PChar; l :Card) :Bool; //Func BufSameIW( p1, p2 : PWideChar; l :Card) :Bool; Func BufPosCharA(const Buf:PChar;l:Card;const c:AnsiChar;const Start:Card):Int; Func BufPosCharsA(const Buf:PChar;l:Card;const Search:TAnsiCharSet;const Start:Card):Int; Func BufStrSame(const Buf:PChar;const BufCharCount:Card;const s:Str):Bool; Func BufStrSameA(const Buf:PChar; const BufCharCount:Card;const s:RawByteString):Bool; Func BufStrSameI(const Buf:PChar; const BufCharCount:Card; const s :Str):Bool; Func BufStrSameIA(const Buf:PChar;const BufCharCount:Card;const s:RawByteString): Bool; Func diChangeFileExt(const FileName,Extension:Str):Str; Func ChangeFileExtA( const FileName, Extension : Ansistr) : Ansistr; Func ChangeFileExtW( const FileName, Extension : UnicodeString) : UnicodeString; //Func CharDecomposeCanonicalW( const c : WideChar) : PCharDecompositionW; Func CharDecomposeCanonicalStrW( const c : WideChar) : UnicodeString; //Func CharDecomposeCompatibleW( const c : WideChar) : PCharDecompositionW; Func CharDecomposeCompatibleStrW( const c : WideChar) : UnicodeString; Func CharIn8( const c, t1, t2 : WideChar) :Bool;; Func CharIn9( const c, t1, t2, t3 : WideChar) :Bool;; Proc ConCatBuf(const Buffer: PChar;const CharCount:Card;var d:str;var InUse:Card); Proc ConCatBufA(const Buff:PChar;const AnsiCharCount:Card;var d:RawByteStr;var InUse:Card); Proc ConCatChar( const c : Char; var d :Str; var InUse :Card); Proc ConCatCharA( const c : AnsiChar; var d : RawByteString; var InUse :Card); // Proc ConCatCharW( const c : WideChar; var d : UnicodeString; var InUse :Card); Proc ConCatStr( const s :Str; var d :Str; var InUse :Card); Proc ConCatStrA( const s: RawByteString; var d : RawByteString; var InUse :Card); //Proc ConCatStrW(const w:UnicodeString; var d : UnicodeString; var InUse :Card); Func diCountBitsSet( const Value : Int) : Byte; //Func Crc32OfStrA( const s : RawByteString) : TCrc32; //Func Crc32OfStrW( const s : UnicodeString) : TCrc32; Func CurrentDay : Word; Func CurrentJulianDate : TJulianDate; Func CurrentMonth : Word; Func CurrentQuarter : Word; Func diCurrentYear : Int; Func DarkenColor( const Color : Int; const amount : Byte) : Int; Func diDeleteFile( const FileName :Str) :Bool; Func DeleteFileA( const FileName : Ansistr) :Bool; //Func DeleteFileW( const FileName : UnicodeString) :Bool; Func diDirectoryExists( const Dir :Str) :Bool; Func DirectoryExistsA( const Dir : Ansistr) :Bool; //Func DirectoryExistsW( const Dir : UnicodeString) :Bool; Func diDiskFree( const Dir :Str) : Int64; Func DiskFreeA( const Dir : Ansistr) : Int64; //Func DiskFreeW( const Dir : UnicodeString) : Int64; Func diExpandFileName( const FileName :Str) :Str; Func ExpandFileNameA(const FileName: Ansistr): Ansistr; //Func ExpandFileNameW( const FileName : UnicodeString) : UnicodeString; Proc diExcludeTrailingPathDelimiter( var s :Str); Proc ExcludeTrailingPathDelimiterA( var s : RawByteString); //Proc ExcludeTrailingPathDelimiterW( var s : UnicodeString); Func diExtractFileDrive( const FileName :Str) :Str; Func ExtractFileDriveA( const FileName : RawByteString) : RawByteString; //Func ExtractFileDriveW( const FileName : UnicodeString) : UnicodeString; Func diExtractFileExt( const FileName :Str) :Str; Func ExtractFileExtA( const FileName : RawByteString) : RawByteString; //Func ExtractFileExtW( const FileName : UnicodeString) : UnicodeString; Func diExtractFileName( const FileName :Str) :Str; Func ExtractFileNameA(const FileName: Ansistr): Ansistr; //Func ExtractFileNameW( const FileName : UnicodeString) : UnicodeString; Func diExtractFilePath( const FileName :Str) :Str; Func ExtractFilePathA( const FileName : RawByteString) : RawByteString; //Func ExtractFilePathW( const FileName : UnicodeString) : UnicodeString; Func ExtractNextWord10(const s:str;const ADelimiter:Char;var AStartIndex:Int):str;); Func ExtractNextWordA11(const s:RawByteStr;const ADelimiter:AnsiChar;var AStartIndex:Int): RawByteStr; Func ExtractNextWordW12(const s:UnicodeStr;const ADelimiter:WideChar;var AStartIndex:Int): UnicodeStr; Func ExtractNextWord13(const s:str;const ADelims:TAnsiCharSet;var AStartIndex:Int):str; Func ExtractNextWordA14(const s:RawByteString;const ADelimitrs:TAnsiCharSet;var AStartIndex:Int):RawByteString; Func diExtractWord(const Number:Card;const s:RawByteString;const Delimiters:TAnsiCharSet): RawByteString; Func ExtractWordA const Numb:Card;const s RawByteStr;const Delimiters:TAnsiCharSet): RawByteStr; Func ExtractWordStartsA(const s:RawByteString;const MaxCharCount:Card;const WordSeparators:TAnsiCharSet): RawByteString; Func diFileExists( const FileName :Str) :Bool; Func FileExistsA( const FileName : Ansistr) :Bool; //Func FileExistsW( const FileName : UnicodeString) :Bool; Func diGCD( x, y :Card) :Card; Func diGetTempFolder :Str; Func GetTempFolderA : Ansistr; //Func GetTempFolderW : UnicodeString; Func diGetUserName( out UserName :Str) :Bool; Func GetUserNameA( out UserName : Ansistr) :Bool; //Func GetUserNameW( out UserName : UnicodeString) :Bool; Func HexCodePointToInt( const c :Card) : Int; Func diHexToInt( const s :Str) : Int; Func HexToIntA( const s : RawByteString) : Int; //Func HexToIntW( const s : UnicodeString) : Int; Func BufHexToInt( p : PChar; l :Card) : Int; Func BufHexToIntA( p : PChar; l :Card) : Int; //Func BufHexToIntW( p : PWideChar; l :Card) : Int; Proc IncludeTrailingPathDelimiterByRef( var s :Str); Proc IncludeTrailingPathDelimiterByRefA(var s:RawByteString); //Proc IncludeTrailingPathDelimiterByRefW(var w:UnicodeString); Func IntToHex16(const Value: Int; const Digits : NativeInt) :Str;; Func IntToHex17(const Value: Int64; const Digits : NativeInt) :Str;; Func IntToHex18(const Value: UInt64; const Digits : NativeInt) :Str;; Func IntToHexA( Value : UInt64; const Digits : NativeInt) : RawByteString; //Func IntToHexW(Value : UInt64; const Digits : NativeInt) : UnicodeString; Func IntToStrA19(const i: Int) : RawByteString;; Func IntToStrW20(const i: Int) : UnicodeString;; Func IntToStrA21(const i: Int64) : RawByteString;; Func IntToStrW22(const i: Int64) : UnicodeString;; Func CharDecomposeHangulW(const c: WideChar) : UnicodeString; Func diIsPathDelimiter( const s :Str; const Index :Card) :Bool; Func IsPathDelimiterA( const s : RawByteString; const Index :Card) :Bool; //Func IsPathDelimiterW( const s : UnicodeString; const Index :Card) :Bool; Func IsPointInRect( const Point : TPoint; const Rect : TRect) :Bool; Func JulianDateToIsoDateStr(const Julian: TJulianDate):str; Func JulianDateToIsoDateStrA( const Julian : TJulianDate) : RawByteString; //Func JulianDateToIsoDateStrW( const Julian : TJulianDate) : UnicodeString; Func LeftMostBit( Value :Card) : ShortInt;; Func LeftMostBit2( Value : UInt64) : ShortInt;; //Func MakeMethod( const AData, ACode : Pointer) : TMethod; Func StrIsEmpty( const s :Str) :Bool; Func StrIsEmptyA( const s : RawByteString) :Bool; //Func StrIsEmptyW( const s : UnicodeString) :Bool; Func PadLeftA(const Source:RawByteString;const Count:Card;const c:AnsiChar):RawByteStr; //Func PadLeftW(const Source: UnicodeString; const Count :Card; const c : WideChar): UnicodeString; Func PadRightA(const Source:RawByteString;const Count:Cardi;const c:AnsiChar):RawByteStr; //Func PadRightW(const Source:UnicodeString;const Count:Cardi;const c WideChar):UnicodeStr; Func ProperCase( const s :Str) :Str; Func ProperCaseA( const s : RawByteString) : RawByteString; //Func ProperCaseW( const s : UnicodeString) : UnicodeString; Proc ProperCaseByRefA( var s : RawByteString); //Proc ProperCaseByRefW( var s : UnicodeString); Func RegReadRegisteredOrganization( const Access : REGSAM) :Str; Func RegReadRegisteredOrganizationA( const Access : REGSAM) : Ansistr; //Func RegReadRegisteredOrganizationW( const Access : REGSAM) : UnicodeString; Func RegReadRegisteredOwner( const Access : REGSAM) :Str; Func RegReadRegisteredOwnerA( const Access : REGSAM) : Ansistr; //Func RegReadRegisteredOwnerW( const Access : REGSAM) : UnicodeString; Func RegReadStrDef(const Key:HKEY; const SubKey:Str;const ValueName:Str;const Default:str;const Access:REGSAM):Str; Func RegReadStrDefA(const Key:HKEY;const SubKey:Ansistr;const ValueName:Ansistr;const Default:Ansistr; const Access:REGSAM):Ansistr; Func StrDecodeUrlA( const Value : RawByteString): RawByteString; Func StrEncodeUrlA( const Value : RawByteString): RawByteString; Func diStrEnd( const s : PChar) : PChar; Func StrEndA( const s : PChar) : PChar; //Func StrEndW( const s : PWideChar) : PWideChar; Proc StrIncludeTrailingChar( var s :Str; const c : Char); Proc StrIncludeTrailingCharA( var s : RawByteString; const c : AnsiChar); //Proc StrIncludeTrailingCharW( var s : UnicodeString; const c : WideChar); Func diStrLen( const s : PChar) : NativeUInt; Func StrLenA( const s : PChar) : NativeUInt; //Func StrLenW( const s : PWideChar) : NativeUInt; Func StrRandom(const ASeed:RawByteStr;const ACharacters:str;const ALength:Card):str); Func StrRandomA(const ASeed:RawByteString;const ACharacters:RawByteString;const ALength:Card):RawByteStr; Proc StrRemoveFromToIA(var Source:RawByteString;const FromString,ToString:RawByteString); //Proc StrRemoveFromToIW(var Source:UnicodeString;const FromString, ToString : UnicodeString); Proc StrRemoveSpacingA(var s:RawByteStr;const SpaceChars:TAnsiCharSet;const ReplaceChar:AnsiChar); Proc diStrReplaceChar(var Source:Str;const SearchChar,ReplaceChar:Char); Proc StrReplaceChar8(var s:Utf8String;const SearchChar,ReplaceChar:AnsiChar); Proc StrReplaceCharA(var s:RawByteString;const SearchChar,ReplaceChar: AnsiChar); //Proc StrReplaceCharW(var s:UnicodeString; const SearchChar, ReplaceChar : WideChar); Func diStrReplace( const Source, Search, Replace :Str) :Str; Func StrReplaceA( const Source, Search, Replace : RawByteString) : RawByteString; //Func StrReplaceW( const Source, Search, Replace : UnicodeString) : UnicodeString; Func StrReplaceI( const Source, Search, Replace :Str) :Str; Func StrReplaceIA( const Source, Search, Replace : RawByteString) : RawByteString; //Func StrReplaceIW( const Source, Search, Replace : UnicodeString) : UnicodeString; Func StrReplaceLoopA( const Source, Search, Replace : RawByteString) : RawByteString; //7Func StrReplaceLoopW( const Source, Search, Replace: UnicodeString) : UnicodeString; Func StrReplaceLoopIA( const Source, Search, Replace : RawByteString) : RawByteString; //Func StrReplaceLoopIW( const Source, Search, Replace: UnicodeString) : UnicodeString; Func RightMostBit( const Value :Card) : ShortInt;; Func RightMostBit2( const Value : UInt64) : ShortInt;; Func LoadStrFromFile(const FileName:str; var s:RawByteString):Boolean;; Func FileToStr( const FileName :Str; var s :Str) :Bool;; Func LoadStrAFromFileA(const FileName:Ansistr;var s:RawByteString):Boolean; //Func LoadStrAFromFileW(const FileName:UnicodeString; var s: RawByteString) :Bool; Func LoadStrWFromFile28(const FileName:str;var s:UnicodeString):Boolean;; Func LoadStrWFromFileA(const FileName: Ansistr;var s:UnicodeString):Bool; //Func LoadStrWFromFileW(const FileName:UnicodeString;var s:UnicodeString):Bool; Func QuotedStrW( const s : UnicodeString; const Quote : WideChar) : UnicodeString; Func SaveStrToFile( const s :Str; const FileName :Str) :Bool; Func StrToFile( const s :Str; const FileName :Str) :Bool; Func SaveStrAToFile(const s:RawByteString;const FileName :Str) :Bool; Func SaveStrAToFileA( const s : RawByteString; const FileName : Ansistr) :Bool; //Func SaveStrAToFileW(const s:RawByteString; const FileName: UnicodeString) :Bool; Func SaveStrWToFile(const s:UnicodeString;const FileName :Str):Boolean; Func SaveStrWToFileA(const s: UnicodeString;const FileName:Ansistr): Bool; //Func SaveStrWToFileW(const s:UnicodeString; const FileName : UnicodeString):Bool; Func StrPosChar(const Source:str; const c:Char;const Start:Card):Card; Func StrPosCharA(const Source:RawByteString;const c:AnsiChar;const Start:Car):Card; //Func StrPosCharW(const Source:UnicodeStr;const c:WideChar;const Start:Cardi):Card; Func StrPosCharBack(const Source:Str;const c:Char;const Start:Card):Card; Func StrPosCharBackA(const Source:RawByteStr;const c:AnsiChar;const Start:Cardi):Card); Func StrPosCharsA(const Sourc:RawByteStr;const Search:TAnsiCharSet;const Start:Cardi):Cardi; Func StrPosCharsBackA(const Src:RawByteStr;const Search:TAnsiCharSet;const Start:Cardi):Cardi; Func StrPosNotCharsA(const Src:RawByteStr;const Search:TAnsiCharSet;const Start:Cardi):Cardi; Func StrPosNotCharsBackA(const Source:RawByteString;const Search:TAnsiCharSet; const Start:Card):Card; Func SetFileDate(const FileHandle:THandle;const Year:Int;const Month,Day:Word):Bool); Func SetFileDate2( const FileName :Str; const JulianDate : TJulianDate) :Bool; Func SetFileDateA( const FileName: Ansistr; const JulianDate:TJulianDate) :Bool; //Func SetFileDateW(const FileName:UnicodeString;const JulianDate:TJulianDate):Boolean; Func SetFileDateYmd(const FileName:str;const Year:Int;const Month,Day:Word):Bool; Func SetFileDateYmdA(const FileName:Ansistr;const Year:Int;const Month,Day:Word):Bool; Func SetFileDateYmdW(const FileName:UnicodeStr;const Year:Int;const Month,Day:Word):Bool; Func StrContainsChar(const s:str; const c:Char; const Start :Card) :Bool; Func StrContainsCharA(const s:RawByteString;const c:AnsiChar;const Start:Card):Bool; //Func StrContainsCharW(const s:UnicodeString;const c:WideChar;const Start:Cardi):Bool; Func StrContainsCharsA(const s:RawByteStr;const Chars:TAnsiCharSet;const Start:Card):Bool; Func diStrSame( const s1, s2 :Str) :Bool; Func StrSameA( const s1, s2 : RawByteString) :Bool; //Func StrSameW( const s1, s2 : UnicodeString) :Bool; Func StrSameI( const s1, s2 :Str) :Bool; Func StrSameIA( const s1, s2 : RawByteString) :Bool; //Func StrSameIW( const s1, s2 : UnicodeString) :Bool; Func StrSameStart( const s1, s2 :Str) :Bool; Func StrSameStartA( const s1, s2 : RawByteString) :Bool; //Func StrSameStartW( const s1, s2 : UnicodeString) :Bool; Func StrSameStartI( const s1, s2 :Str) :Bool; Func StrSameStartIA( const s1, s2 : RawByteString) :Bool; //Func StrSameStartIW( const s1, s2 : UnicodeString) :Bool; Func diStrComp( const s1, s2 :Str) : Int; Func StrCompA( const s1, s2 : RawByteString) : Int; //Func StrCompW( const s1, s2 : UnicodeString) : Int; Func StrCompI( const s1, s2 :Str) : Int; Func StrCompIA( const s1, s2 : RawByteString) : Int; //Func StrCompIW( const s1, s2 : UnicodeString) : Int; Func StrCompNum( const s1, s2 :Str) : Int; Func StrCompNumA( const s1, s2 : RawByteString) : Int; // Func StrCompNumW( const s1, s2 : UnicodeString) : Int; Func StrCompNumI( const s1, s2 :Str) : Int; Func StrCompNumIA( const s1, s2 : RawByteString) : Int; // Func StrCompNumIW( const s1, s2 : UnicodeString) : Int; Func StrContains(const Search,Source:str; const Start:Card):Bool; Func StrContainsA(const Search,Source:RawByteString;const Start:Card):Bool; //Func StrContainsW(const ASearch,ASource:UnicodeString;const AStartPos:Card):Bool; Func StrContainsI(const Search, Source :Str; const Start :Card) :Bool; Func StrContainsIA(const Search,Source:RawByteString; const Start:Card):Bool; //Func StrContainsIW(const ASearch,ASource:UnicodeString;const AStartPos:Card):Bool; Func StrCountChar(const ASource:str;const c:Char;const AStartIdx:Card):Card; Func StrCountCharA(const ASource:RawByteStr;const c:AnsiChar;const AStartIdx:Cardi):Card; Func StrMatchesA(const Search,Source:RawByteString; const AStartIdx:Card):Bool; Func StrMatchesIA(const Search,Source:RawByteString;const AStartIdx:Card):Bool; Func StrMatchWild(const Source,Mask:str;const WildChar:Char;const MaskChar:Char):Bool; Func StrMatchWildA(const Src,Mask:RawByteString;const WildChr:AnsiChar;const MaskChr:AnsiChar):Bool; Func StrMatchWildI(const Source,Mask:str;const WildChar:Char;const MaskChar:Char):Bool; Func StrMatchWildIA(const Source,Mask:RawByteString;const WildChar:AnsiChar;const MaskChar:AnsiChar):Bool; Func diStrPos( const ASearch, ASource :Str; const AStartPos :Card) :Card; Func StrPosA(const ASearch,ASource:RawByteString;const AStartPos:Card):Card; //Func StrPosW(const ASearch,ASource:UnicodeString;const AStartPos:Card):Card; Func StrPosI( const ASearch, ASource :Str; const AStartPos :Card) :Card; Func StrPosIA(const ASearch,ASource:RawByteString; const AStartPos:Card):Card; //Func StrPosIW(const ASearch, ASource:UnicodeString;const AStartPos:Card):Card; Func StrPosBackA( const ASearch, ASource: RawByteString; AStart :Card) :Card; Func StrPosBackIA(const ASearch, ASource: RawByteString; AStart :Card) :Card; //Func StrToIntDefW( const w : UnicodeString; const Default : Int) : Int; Func StrToInt64DefW( const w : UnicodeString; const Default : Int64) : Int64; Func StrToUpper( const s :Str) :Str; Func StrToUpperA( const s : RawByteString) : RawByteString; //Func StrToUpperW( const s : UnicodeString) : UnicodeString; Proc StrToUpperInPlace( var s :Str); Proc StrToUpperInPlaceA( var s : Ansistr); //Proc StrToUpperInPlaceW31( var s : WideString);; //Proc StrToUpperInPlaceW32( var s : UnicodeString);; Func StrToLower( const s :Str) :Str; Func StrToLowerA( const s : RawByteString) : RawByteString; //Func StrToLowerW( const s : UnicodeString) : UnicodeString; Proc StrToLowerInPlace( var s :Str); Proc StrToLowerInPlaceA( var s : Ansistr); //Proc StrToLowerInPlaceW33( var s : WideString);; //Proc StrToLowerInPlaceW34( var s : UnicodeString);; Proc StrTimUriFragmentA( var Value : RawByteString); //Proc StrTrimUriFragmentW( var Value : UnicodeString); //Func StrExtractUriFragmentW( var Value : UnicodeString): UnicodeString; Func StrCountUtf8Chars(const AValue: Utf8String) :Card; Func StrDecodeUtf8( const AValue: Utf8String): UnicodeString; Func StrEncodeUtf8( const AValue: UnicodeString): Utf8String; Func diSysErrorMessage( const MessageID :Card) :Str; Func SysErrorMessageA(const MessageID:Card): Ansistr; //Func SysErrorMessageW( const MessageID :Card) : UnicodeString; Func TextExtentW( const DC : HDC; const Text : UnicodeString) : TSize; Func TextHeightW( const DC : HDC; const Text : UnicodeString) : Int; Func TextWidthW( const DC : HDC; const Text : UnicodeString) : Int; Func diStrTrim( const Source :Str) :Str; Func StrTrimA( const Source : RawByteString) : RawByteString; //Func StrTrimW( const w : UnicodeString) : UnicodeString; Func StrTrimCharA(const Source:RawByteString;const CharToTrim:AnsiChar): RawByteString; Func StrTrimCharsA(const Source:RawByteStr;const CharsToTrim:TAnsiCharSet):RawByteString; //Func StrTrimCharsW(const s:UnicodeStr;const IsCharToTrim:TValidateCharFuncW):UnicodeStr; Proc TrimLeftByRefA( var s : RawByteString; const Chars : TAnsiCharSet); Func TrimRightA( const Source : RawByteString; const s : TAnsiCharSet) : RawByteString; Proc TrimRightByRefA( var Source : RawByteString; const s : TAnsiCharSet); Proc StrTrimCompressA(var s:RawByteString;const TrimCompressChars:TAnsiCharSet;const ReplaceChar:AnsiChar); Func TryStrToIntW( const w : UnicodeString; out Value : Int) :Bool; Func TryStrToInt64W( const w : UnicodeString; out Value : Int64) :Bool; Func ValInt( const p : PChar; const l : Int; out Code : Int) : Int;; Func ValIntA36( p : PChar; l : Int; out Code : Int) : Int;; //Func ValIntW37( p : PWideChar; l : Int; out Code : Int) : Int;; Func ValInt2(const s:Str; out Code : Int): Int;; Func ValIntA39( const s : RawByteString; out Code : Int) : Int;; Func ValIntW40( const s : UnicodeString; out Code : Int) : Int;; Func ValInt64A41( p : PChar; l : Int; out Code : Int) : Int64;; //Func ValInt64W42( p : PWideChar; l : Int; out Code : Int) : Int64;; Func ValInt64A43( const s : RawByteString; out Code : Int) : Int64;; Func ValInt64W44( const s : UnicodeString; out Code : Int) : Int64;; Func YmdToIsoDateStr(constYear:Int;const Month:Word;const Day:Word):str; Func YmdToIsoDateStrA(const Year:Int;const Month:Word; const Day:Word):RawByteString; Func YmdToIsoDateStrW(const Year:Int;const Month:Word; const Day:Word):UnicodeString; Func CharIsLetterW( const c : WideChar) :Bool; Func CharIsLetterCommonW( const c : WideChar) :Bool; Func CharIsLetterUpperCaseW(const c : WideChar) :Bool; Func CharIsLetterLowerCaseW(const c : WideChar) :Bool; Func CharIsLetterTitleCaseW(const c : WideChar) :Bool; Func CharIsLetterModifierW(const c : WideChar) :Bool; Func CharIsLetterOtherW(const c : WideChar) :Bool; Func CharIsMarkW( const c : WideChar) :Bool; Func CharIsMarkNon_SpacingW( const c : WideChar) :Bool; Func CharIsMarkSpacing_CombinedW(const c: WideChar):Bool; Func CharIsMarkEnclosingW( const c : WideChar) :Bool; Func CharIsNumberW( const c : WideChar) :Bool; Func CharIsNumber_DecimalW( const c : WideChar) :Bool; Func CharIsNumber_LetterW( const c : WideChar) :Bool; Func CharIsNumber_OtherW( const c : WideChar) :Bool; Func CharIsPunctuationW( const c : WideChar) :Bool; Func CharIsPunctuation_ConnectorW( const c : WideChar) :Bool; Func CharIsPunctuation_DashW( const c : WideChar) :Bool; Func CharIsPunctuation_OpenW( const c : WideChar) :Bool; Func CharIsPunctuation_CloseW( const c : WideChar) :Bool; Func CharIsPunctuation_InitialQuoteW( const c : WideChar) :Bool; Func CharIsPunctuation_FinalQuoteW( const c : WideChar) :Bool; Func CharIsPunctuation_OtherW( const c : WideChar) :Bool; Func CharIsSymbolW( const c : WideChar) :Bool; Func CharIsSymbolMathW( const c : WideChar) :Bool; Func CharIsSymbolCurrencyW( const c : WideChar) :Bool; Func CharIsSymbolModifierW( const c : WideChar) :Bool; Func CharIsSymbolOtherW( const c : WideChar) :Bool; Func CharIsSeparatorW( const c : WideChar) :Bool; Func CharIsSeparatorSpaceW( const c : WideChar) :Bool; Func CharIsSeparatorLineW( const c : WideChar) :Bool; Func CharIsSeparatorParagraphW( const c : WideChar) :Bool; Func CharIsOtherW( const c : WideChar) :Bool; Func CharIsOtherControlW( const c : WideChar) :Bool; Func CharIsOtherFormatW( const c : WideChar) :Bool; Func CharIsOtherSurrogateW( const c : WideChar) :Bool; Func CharIsOtherPrivateUseW( const c : WideChar) :Bool; Func BitClear( const Bits, BitNo : Int) : Int; Func BitSet( const Bits, BitIndex : Int) : Int; Func BitSetTo( const Bits, BitIndex : Int; const Value :Bool) : Int; Func BitTest( const Bits, BitIndex : Int) :Bool; Func CharCanonicalCombiningClassW( const Char : WideChar) :Card; Func CharIsAlphaW( const c : WideChar) :Bool; Func CharIsAlphaNumW( const c : WideChar) :Bool; Func CharIsCrLf( const c : Char) :Bool; Func CharIsCrLfA( const c : AnsiChar) :Bool; //Func CharIsCrLfW( const c : WideChar) :Bool; Func diCharIsDigit( const c : Char) :Bool; Func CharIsDigitA( const c : AnsiChar) :Bool; //Func CharIsDigitW( const c : WideChar) :Bool; Func CharIsHangulW( const Char : WideChar) :Bool; Func CharIsHexDigitW( const c : WideChar) :Bool; Func CharIsWhiteSpaceW( const c : WideChar) :Bool; Func CharToCaseFoldW( const Char : WideChar) : WideChar; Func CharToLowerW( const Char : WideChar) : WideChar; Func CharToUpperW( const Char : WideChar) : WideChar; Func CharToTitleW( const Char : WideChar) : WideChar; Func DayOfJulianDate( const JulianDate : TJulianDate) : Word; Func diDayOfWeek( const JulianDate : TJulianDate) : Word; Func DayOfWeekYmd( const Year : Int; const Month, Day : Word) : Word; Func diDaysInMonth( const JulianDate : TJulianDate) : Word; Func DaysInMonthYm( const Year : Int; const Month : Word) : Word; Proc DecDay( var Year : Int; var Month, Day : Word); Proc DecDays( var Year : Int; var Month, Day : Word; const Days : Int); Func diDeleteDirectory( const Dir :Str; const DeleteItself :Bool) :Bool; Func DeleteDirectoryA( Dir : Ansistr; const DeleteItself :Bool) :Bool; //Func DeleteDirectoryW( Dir : UnicodeString; const DeleteItself :Bool) :Bool; Func diEasterSunday( const Year : Int) : TJulianDate; Proc EasterSundayYmd( const Year : Int; out Month, Day : Word); Func diFirstDayOfWeek( const JulianDate : TJulianDate) : TJulianDate; Proc FirstDayOfWeekYmd( var Year : Int; var Month, Day : Word); Func diFirstDayOfMonth( const Julian : TJulianDate) : TJulianDate; Proc FirstDayOfMonthYmd( const Year : Int; const Month : Word; out Day : Word); Func diForceDirectories( const Dir :Str) :Bool; Func ForceDirectoriesA( Dir : Ansistr) :Bool; //Func ForceDirectoriesW( Dir : UnicodeString) :Bool; Proc FreeMemAndNil( var Ptr: TObject); Func diGetCurrentFolder :Str; Func GetCurrentFolderA : Ansistr; //Func GetCurrentFolderW : UnicodeString; Proc SetCurrentFolder( const NewFolder :Str); Proc SetCurrentFolderA( const NewFolder : Ansistr); //Proc SetCurrentFolderW( const NewFolder : UnicodeString); Func diGetDesktopFolder :Str; Func GetDesktopFolderA : Ansistr; //Func GetDesktopFolderW : UnicodeString; Func diGetFileSize( const AFileName :Str) : Int64; Func GetFileSizeA( const AFileName : Ansistr) : Int64; //Func GetFileSizeW( const AFileName : UnicodeString) : Int64; Func diGetDesktopDirectoryFolder :Str; Func GetDesktopDirectoryFolderA : Ansistr; //Func GetDesktopDirectoryFolderW : UnicodeString; Func GetFileLastWriteTime(const FileName:Str; out FileTime : TFileTime) :Bool; Func GetFileLastWriteTimeA(const FileName:Ansistr; out FileTime:TFileTime):Boolean; //Func GetFileLastWriteTimeW(const FileName:UnicodeString;out FileTime:TFileTime):Bool; Func diGetPersonalFolder( const PersonalFolder : Int) :Str; Func GetPersonalFolderA : Ansistr; //Func GetPersonalFolderW : UnicodeString; Func GetSpecialFolder( const SpecialFolder : Int) :Str; Func GetSpecialFolderA( const SpecialFolder : Int) : Ansistr; //Func GetSpecialFolderW( const SpecialFolder : Int) : UnicodeString; Proc diIncMonth( var Year : Int; var Month, Day : Word); Proc diIncMonths(var Year :Int; var Month, Day:Word; const NumberOfMonths:Int); Proc diIncDay( var Year : Int; var Month, Day : Word); Proc IncDays( var Year : Int; var Month, Day : Word; const Days : Int); Func IsDateValid( const Year : Int; const Month, Day : Word) :Bool; Func IsHolidayInGermany( const Julian : TJulianDate) :Bool; Func IsHolidayInGermanyYmd( const Year : Int; const Month, Day : Word) :Bool; Func diIsLeapYear( const Year : Int) :Bool; Func ISODateToJulianDate( const ISODate : TIsoDate) : TJulianDate; Proc ISODateToYmd(const ISODate: TIsoDate; out Year : Int; out Month, Day : Word); Func IsCharLowLineW( const c : WideChar) :Bool; Func IsCharQuoteW( const c : WideChar) :Bool; Func IsShiftKeyDown :Bool; Func IsCharWhiteSpaceOrAmpersandW( const c : WideChar) :Bool; Func IsCharWhiteSpaceOrNoBreakSpaceW( const c : WideChar) :Bool; Func IsCharWhiteSpaceOrColonW( const c : WideChar) :Bool; Func CharIsWhiteSpaceGtW( const c : WideChar) :Bool; Func CharIsWhiteSpaceLtW( const c : WideChar) :Bool; Func CharIsWhiteSpaceHyphenW( const c : WideChar) :Bool; Func CharIsWhiteSpaceHyphenGtW( const c : WideChar) :Bool; Func IsCharWordSeparatorW( const c : WideChar) :Bool; Func diISOWeekNumber( const JulianDate : TJulianDate) : Word; Func ISOWeekNumberYmd( const Year : Int; const Month, Day : Word) : Word; Func ISOWeekToJulianDate(const Year:Int;const WeekOfYear:Word;const DayOfWeek:Word):TJulianDate); Func JulianDateIsWeekDay( const JulianDate : TJulianDate) :Bool; Func JulianDateToIsoDate( const Julian : TJulianDate) : TIsoDate; Proc JulianDateToYmd(const JulianDate:TJulianDate;out Year: Int;out Month,Day:Word); Func LastDayOfMonth( const JulianDate : TJulianDate) : TJulianDate; Proc LastDayOfMonthYmd( const Year : Int; const Month : Word; out Day : Word); Func LastDayOfWeek( const JulianDate : TJulianDate) : TJulianDate; Proc LastDayOfWeekYmd( var Year : Int; var Month, Day : Word); Func LastSysErrorMessage :Str; Func LastSysErrorMessageA : Ansistr; Func LastSysErrorMessageW : UnicodeString; Func diMax( const a : Int; const b : Int) : Int;; Func diMax3( const a, b, c : Int) : Int; Func MaxCard( const a :Card; const b :Card) :Card;; Func MaxCard3( const a :Card; const b :Card; const c :Card):Card;; Func diMaxint64( const a : Int64; const b : Int64) : Int64;; Func dimaxint643( const a : Int64; const b : Int64; const c : Int64) : Int64;; Func diMin( const a, b : Int) : Int;; Func diMin3( const a, b, c : Int) : Int; Func MinCard( const a, b :Card) :Card;; Func Mincard3( const a, b, c :Card) :Card;; Func diMinint64( const a, b : Int64) : Int64;; Func diMinint643( const a, b, c : Int64) : Int64;; Func diMinint64U( const a, b : UInt64) : UInt64;; Func diMinint643U( const a, b, c : UInt64) : UInt64;; Func MonthOfJulianDate( const JulianDate : TJulianDate) : Word; Func YearOfJuilanDate( const JulianDate : TJulianDate) : Int; Func YmdToIsoDate( const Year : Int; const Month, Day : Word) : TIsoDate; Func YmdToJulianDate( const Year : Int; const Month, Day : Word) : TJulianDate; end; Func FiboMaxE2(n: Int): Extended; begin result:= (pow((1+SQRT5)/2,n)-pow((1-SQRT5)/2,n))/SQRT5 end; TDLLVersionInfo=Record cbSize, // Size of the structure, in bytes. dwMajorVersion, // Major version of DLL dwMinorVersion, // Minor version of DLL dwBuildNumber, // Build number of DLL dwPlatformID: DWord; //Identifies the platform for which the DLL was built end; {$IFDEF MSWINDOWS} Proc TIdAntiFreeze_Process; var Msg: TMsg; ApplicationHasPriority:Bool; begin if ApplicationHasPriority then begin Application.ProcessMessages; end else begin // This guarantees it will not ever call Application.Idle if PeekMessage(Msg, 0, 0, 0, PM_NOREMOVE) then begin Application.HandleMessage; end; end; end; {$ENDIF} with lockbox you do sha1 with strings and hex: writeln(SHA1ofStr(loadstringj(exepath+’maxbox4.exe’))) // ¢‘ÞRL‘mÍÕïݧlÎÓðî tempstr:= SHA1ofStr(loadstringj(exepath+’maxbox4.exe’)) writeln(‘ ‘) for i:= 1 to 20 do Write(charToHexStr(tempstr[i])); A291DE524C1B916DCDD502EFDDA76C0BCED3F0EE Example with WMI: Func TestWMIOS2:Str; var wmiService, computerName, objectsList: OLEvariant; sysID:Str; isloc: ISWBemLocator; isser: ISWBemServices; iset: ISWbemObjectSet; ENum: IEnumVariant; tempObj: OleVariant; begin computerName := ‘.’; isloc:= WMIStart; isser:= WMIConnect2(isloc, ‘\root\cimv2',’maxbox10',’max’,”); //: ISWBemServices; //Exception: incorrect credentials. WMI connection failed. //Set wmiService = GetObject(“WinMgmts:{impersonationLevel=impersonate, “&_ // “(SystemTime, Shutdown)}!\\” & computerName & “\root\cimv2”) //Set objectsList = wmiService.InstancesOf(“Win32_OperatingSystem”) //For Each ObjService in objectsList iset:= WMIExecQuery(isser,’Select * from Win32_OperatingSystem’) result:=(botoStr(WMIRowFindFirst(iset, ENum, tempObj))); repeat sysid:= (‘OSid: ‘+vartoStr(tempobj.csname)+ ‘ – ‘+vartoStr(tempobj.name)+ ‘ — ‘+vartoStr(tempobj.caption)) until not WMIRowFindNext(ENum, tempobj); //} tempObj:= unassigned; result:= result+’ ‘+sysID; //Call Log.Message(“SysInfo”, sysID) End; // Sub >>> Sysid2: TRUE OSid: MAXBOX10 – Microsoft Windows 10 Home|C:\WINDOWS|\Device\Harddisk0\Partition4 — Microsoft Windows 10 Home command1:= 'play "'+songpath+'maxbox.wav"'; command2:= 'play "'+songpath+'moon.wav"'; SendMCICommand('open waveaudio shareable; //parallels SendMCICommand('play "G:\sonysavefeb2014\maxbox\maxbox3_back\examples\maxbox.wav"; SendMCICommand('play "G:\sonysavefeb2014\maxbox\maxbox3_back\examples\moon.wav"; SendMCICommand('close waveaudio; //MakeSound(Frequency{Hz},Duration{mSec}:Int;Volume:TVolumeLevel;savefilePath:str); if Not fileexists(exepath+'\mytest1.wav') then begin Writeln('Generate 2 sounds with 440 and 443 Hz'); MakeSound(440,5000, 80, Exepath+'\mytest1.wav'); MakeSound(443,5000, 80, Exepath+'\mytest2.wav'); end else begin Writeln('Play Beat of 2 sounds together with 3 Hz Amp Mod:'); mciSendString('PLAY "'+exepath+'\mytest1.wav'+'"', 'Nil', 0, 0); mciSendString('PLAY "'+exepath+'\mytest2.wav'+'"', 'Nil', 0, 0); end; Strings (and other non ordinals) in Case Statements This has to be most requested feature by far in history of D imho, sure to make many long time D fans happy.} writeln(floattostr(pow(256,200000))) //writeln(itoa(length(bigpow(256,200000)))) //481648 sr:= sworld; case sr of 'hello' : xi := 1; 'goodbye' : xi := 2; sWorld : xi := 3; //sWorld is a string constant end; writeln('res of case '+itoa(xi)); initialization XRaise type EPointsArrayIsNotAssigned = Exception; writeln(itoa(length(aptsarr))); setlength(aptsarr, 2) writeln(itoa(length(aptsarr))); if length(aptsarr) = 0 then begin Xraise(EPointsArrayIsNotAssigned.Create('Points array is not assigned...')); //Exit; end; maXbox SSL fox471 for The first step the following components, maybe we will add further in the future: 1. Orpheus (Win32 and Win64) 2. Abbrevia (Win32, Win64, MacOSX, iOS and Android) 3. Virtual Tree (Win32 and Win64) 4. SynEdit (Win32 and Win64) 5. LockBox (Win32, Win64, MacOSX, iOS and Android) 6. Async Professional (Win32) 7. PowerPDF (Win32 and Win64) Tutorials list ////////////////////////////////////////////////////////////////////////////// All maXbox Tutorials Table of Content 2014/2015/2016/2017/2018/2019/2020/2021/2022/2023/2024 /////////////////////////////////////////////////////////////////////////////// Tutorial 00 Function-Coding (Blix the Programmer) Tutorial 01 Procedural-Coding Tutorial 02 OO-Programming Tutorial 03 Modular Coding Tutorial 04 UML Use Case Coding Tutorial 05 Internet Coding Tutorial 06 Network Coding Tutorial 07 Game Graphics Coding Tutorial 08 Operating System Coding Tutorial 09 Database Coding Tutorial 10 Statistic Coding Tutorial 10_1 Probability Coding Tutorial 11 Forms Coding Tutorial 12 SQL DB Coding Tutorial 13 Crypto Coding Tutorial 14 Parallel Coding Tutorial 15 Serial RS232 Coding Tutorial 16 Event Driven Coding Tutorial 17 Web Server Coding Tutorial 18 Arduino System Coding Tutorial 18_3 RGB LED System Coding Tutorial 19 WinCOM /Arduino Coding Tutorial 20 Regular Expressions RegEx Tutorial 21 Android Coding (coming 2013) Tutorial 22 Services Programming Tutorial 23 Real Time Systems Tutorial 24 Clean Code Tutorial 25 maXbox Configuration I+II Tutorial 26 Socket Programming with TCP Tutorial 27 XML & TreeView Tutorial 28 DLL Coding (available) Tutorial 29 UML Scripting (2014) Tutorial 30 Web of Things (2014) Tutorial 31 Closures (2014) Tutorial 32 SQL Firebird (2014) Tutorial 33 Oscilloscope (available) Tutorial 34 GPS Navigation (2014) Tutorial 35 Web Box (available) Tutorial 36 Unit Testing (avail) Tutorial 37 API Coding (avail) Tutorial 38 3D Coding (coming 2015) Tutorial 39 GEO Map Coding (available) Tutorial 39_1 GEO Map Layers Coding (available) Tutorial 40 REST Coding (coming 2015) Tutorial 41 Big Numbers Coding (2015) Tutorial 42 Parallel Processing (2015) Tutorial 43 Code Metrics: June2016 Tutorial 44 IDE Extensions Tutorial 45 Robotics: July2016 Tutorial 46 WineHQ: Dez2016 Tutor 47 RSA Crypto Jan2017 Tutor 48 Microservice Jan2017 http://www.softwareschule.ch/download/maxbox_starter48.pdf Tutorial 49 Refactoring: March 2017 Tutorial 50 Big Numbers II: April 2017 Tutorial 51 5 Use Cases April 2017 Tutorial 52 Work with WMI Mai 2017 Tutorial 53 Real Time UML 2017 Tutor 54 Microservice II Nov 2017 Tutor 55 ASCII Talk Dez 2017 Tutor 56 Neural Network 2018 Tutor 57 Neural Network II Tutor 58 Data Science Tutor 59 Big Data Feb 2018 Tutor 60 Machine Learning March 2018 Tutor 60.1 Sentiment Analysis Tutor 60.2 ML II Tutor 63 Machine Games Tutor 64 Install Routines Tutor 65 Machine Learning III Tutor 66 Machine Learning IV Tutor 67 Machine Learning V Tutor 68 Machine Learning VI Tutor 69 Machine Learning VII Tutor 70 No GUI Shell Tutor 71 CGI and WebSocket Tutor 72 Multilanguage Tutor 73 EKON 24 Edition Tutor 74 BASTA 2020 Vision Tutor 75 Object Detection Tutor 76 Image Classifier CAI Tutor 77 Image Classifier Matrix Tutor 78 Portable pixmap format(PPM) Tutor 79 Unit Testing with Asserts Tutor 80 My Tips & Tricks Tutor 81 RSS Feeds of BBC News - Digital Forensic March 2021 Tutorial 82 JSON Code API Tutorial 82_2 Sentiment NLTK API Code #Tutorial 83 Unicode + Bayes Theorem & Confusion Matrix April 2021 #Tutorial 84 JSON Primer Mai 2021 Tutorial 83 Machine Learning XI Classification April 2021 Tutorial 84 Machine Learning XII Baseline Mai 2021 Tutorial 85 JSON4Delphi Automation Mai 2021 Tutorial 86 Python4Delphi P4D June 2021 (Part 1-4) Tutorial 87 Image Detection with Lazarus Tutorial 88 Performance Tuning Tutorial 89 CAI mX4 Tutorial 89_1 CAI mX4 model define Tutorial 89_2 CAI mX4 model fits Tutorial 90 Python CheatSheet Nov. 2021 Tutorial 91 CAI CheatSheet Faker SynDat Dez. 2021 Tutorial 92 Python_CAI CheatSheet Jan. 2022 Tutorial 92_1 VCL4Python Feb. 2022 Tutorial 93 Geocoding March 2022 Tutorial 94 Post API Services April 2022 Tutorial 95 Language Services April 2022 Tutorial 96 CNN Pipeline June 2022 Tutor 97 Operating System Services OSS Tutor 98 Python Integration Tutorial 99 DataScience API October 2022 Tutorial 100 Data Science Story November 2022 Tutorial 101 Data Science Story2 Dezember 2022 Tutorial 102 Interpreter versus Compiler December 2022 Tutorial 103 Image to Text API January 2023 Tutorial 104 Restcountries API January 2023 Tutorial 105 Classify CNN February 2023 Tutorial 106 Air Distance and Bearing, March 2023 Tutorial 107 pas2js, March 2023 Tutorial 108 Hacking your Märklin, March 2023 Tutorial 109 Google Translate API, April 2023 Tutorial 109_1 OpenAI ChatGPT API, April 2023 Tutorial 110 Code Overview Samples, April 2023 Tutorial 111 PPas2JS Integration, August 2023 Tutorial 112 The Machine Learning Package, August 2023 Tutorial 113 Migrate to 64-bit Report, October 2023 Tutorial 114 Cannonball Simulation, September 2023 Tutorial 115 64-bit 2 Points in Space, November 2023 Tutorial 116 64-bit 2 Debugging, December 2023 The-mystery-of-IStream_, December 2023 Tutorial 117 Mystery of IStream, December 2023 Tutorial 118 Code Signing, January 2024 Tutorial 119 Multicode_, February 2024 Tutorial 120 Unicode_Sign, March 2024 https://linuxschweizag.wordpress.com/2023/04/06/tutorials/ Doc ref Docu for all Type Class and Const in maXbox_types.pdf using Docu for this file is maxbox_functions_all.pdf PEP - Pascal Education Program Low Lib Lab ShellHell in UDEMY https://bitbucket.org/max_kleiner/maxbox3/wiki/maXbox%20Tutorials http://stackoverflow.com/tags/pascalscript/hot http://www.jrsoftware.org/ishelp/index.php?topic=scriptfunctions http://sourceforge.net/projects/maXbox #locs:62000 http://sourceforge.net/apps/mediawiki/maXbox http://www.blaisepascal.eu/ https://github.com/maxkleiner/maXbox3.git https://github.com/maxkleiner/maXbox4.git http://www.heise.de/download/maxbox-1176464.html http://www.softpedia.com/get/Programming/Other-Programming-Files/maXbox.shtml https://www.facebook.com/pages/Programming-maXbox/166844836691703 http://www.softwareschule.ch/arduino_training.pdf http://www.delphiarea.com http://www.freepascal.org/docs-html/rtl/strutils/index-5.html http://entwickler-konferenz.de/2014/speakers/max-kleiner http://www.heise.de/download/maxbox-1176464.html https://www.udemy.com/learn-coding-from-the-scratch http://www.slideshare.net/maxkleiner1/codesign-2015 https://www.dropbox.com/s/yolconwmg4oqta4/Blaise_2and3_SP_Total.pdf?dl=0 http://www.softwareschule.ch/download/maxbox_promo.png http://max.kleiner.com/maxbox_functions_all.htm http://max.kleiner.com/boxart.htm http://www.jurgott.org/linkage/util.htm http://www.swissdelphicenter.ch/en/niklauswirth.php http://www.softwareschule.ch/images/maxbox_20years_delphi.jpg https://softwareschule.code.blog/ https://repl.it/@MaxKleiner/machinelearning4#main.py https://github.com/project-jedi/jvcl/tree/master/jvcl/examples/JvChartDemo https://github.com/maxkleiner/python4delphi/blob/master/Source/PythonEngine.pas {$ All maXbox 4 or 5 Examples List Exampleslist } https://github.com/maxkleiner/maXbox3/releases https://github.com/maxkleiner/maXbox4/releases http://www.softwareschule.ch/download/exampleedition2016.zip ********************************************************************************************* 000_pas_baseconvert.txt 282_fadengraphik.txt 000_pas_baseconvert.txt_encrypt 283_SQL_API_messagetimeout.txt 000_pas_baseconvert.txt_decrypt 284_SysTools4.txt 001_1_pas_functest - Kopie.txt 285_MineForm_GR32.TXT 001_1_pas_functest.txt 285_MineForm_GR32main.TXT 001_1_pas_functest2.txt 285_MineForm_GR32mainsolution.TXT 001_1_pas_functest_clx2.txt 285_MineForm_propas.TXT 001_1_pas_functest_clx2_2.txt 285_MineForm_propas2.TXT 001_1_pas_functest_openarray.txt 285_minesweeper2.TXT 001_pas_lottogen.txt 285_Patterns_process.txt 001_pas_lottogen_template.txt 286_colormixer_jpeg_charcounter.txt 001_pas_lottogen.txtcopy 286_colormixer_jpeg_charcounter2.txt 002_pas_russianroulette.txt 287_eventhandling.txt 002_pas_russianroulette.txtcopy 287_eventhandling2.txt 002_pas_russianroulette.txtcopy_decrypt 287_eventhandling2_negpower.txt 002_pas_russianroulette.txtcopy_encrypt 288_bitblt.txt 003_pas_motion.txt 288_bitblt_resize.txt 003_pas_motion.txtcopy 289_regression.txt 004_pas_search.txt 289_regression2.txt 004_pas_search_replace.txt 290_bestofbox.txt 004_search_replace_allfunctionlist.txt 290_bestofbox2.txt 005_pas_oodesign.txt 290_bestofbox3.txt 005_pas_shelllink.txt 291_3sort_visual_thread.txt 006_pas_oobatch.txt 292_refactoring2.txt 007_pas_streamcopy.txt 293_bold_utils.txt 008_EINMALEINS_FUNC.TXT 293_ib_utils.txt 008_explanation.txt 293_ib_utils_timetest.txt 008_pas_verwechselt.txt 294_maxcalc_demo.txt 008_pas_verwechselt_ibz_bern_func.txt 294_maxcalc_demo2.txt 008_stack_ibz.TXT 295_easter_calendar.txt 009_pas_umlrunner.txt 295_easter_calendar2.txt 009_pas_umlrunner_all.txt 295_easter_combobox.txt 009_pas_umlrunner_componenttest.txt 297_atomimage.txt 009_pas_umlrunner_solution.txt 297_atomimage2.txt 009_pas_umlrunner_solution_2step.txt 297_atomimage3.txt 010_pas_oodesign_solution.txt 297_atomimage4.txt 011_pas_puzzlepas_defect.txt 297_maxonmotor.TXT 012_pas_umlrunner_solution.txt 297_maxon_atomimage9.txt 012_pas_umlrunner_solution2.txt 298_bitblt_animation.txt 013_pas_linenumber.txt 298_bitblt_animation2.txt 014_pas_primetest.txt 298_bitblt_animation3.txt 014_pas_primetest_first.txt 298_bitblt_animation4.txt 014_pas_primetest_sync.txt 298_bitblt_animation4_screensaver.txt 015_pas_designbycontract.txt 298_bitblt_animation5_screensaver.txt 015_pas_designbycontract_solution.txt 299_animation.txt 016_pas_searchrec.txt 299_animationmotor_arduino.txt 017_chartgen.txt 299_animation_formprototype.txt 018_data_simulator.txt 299_realtimeclock_arduino.txt 019_dez_to_bin.txt 299_realtimeclock_arduino2.txt 019_dez_to_bin_grenzwert_ibz.txt 300_treeview.txt 020_proc_feedback.txt 300_treeview_test.txt 021_pas_symkey.txt 300_treeview_test2.txt 021_pas_symkey_solution.txt 300_treeview_test3.txt 022_pas_filestreams.txt 301_LED_Arduino3.txt 023_pas_find_searchrec.txt 301_led_arduino3_simple.txt 023_pas_pathfind.txt 301_led_arduino3_simplecode.txt 024_pas_TFileStream_records.txt 301_log_arduino.txt 025_prime_direct.txt 301_log_arduino2.txt 026_pas_memorystream.txt 301_SQL_DBfirebird3.txt 027_pas_shellexecute_beta.txt 301_SQL_DBfirebird4.txt 027_pas_shellexecute_solution.txt 302_LCLActivity_java.txt 028_pas_dataset.txt 302_LED_DataLogger.txt 029_pas_assignfile.txt 303_Android_LCLActivity_java.txt 029_pas_assignfile_dragndropexe.txt 303_webserver.txt 030_palindrome_2.txt 303_webserver2.txt 030_palindrome_tester.txt 303_webserver_alldocs2.txt 030_pas_recursion.txt 303_webserver_alldocs2_tester.txt 030_pas_recursion2.txt 303_webserver_minimal.txt 031_pas_hashcode.txt 303_webserver_simple.txt 032_pas_crc_const.txt 304_st_system.txt 033_pas_cipher.txt 305_indy_elizahttpserver.TXT 033_pas_cipher_def.txt 305_indy_elizahttpserver2.TXT 033_pas_cipher_file_2_solution.txt 305_indy_elizahttpserver3.TXT 034_pas_soundbox.txt 305_indy_elizahttpserver4file.TXT 035_pas_crcscript.txt 305_webserver_arduino.txt 035_pas_CRCscript_modbus.txt 305_webserver_arduino2.txt 036_pas_includetest.txt 305_webserver_arduino3.txt 036_pas_includetest_basta.txt 305_webserver_arduino3ibz.txt 037_pas_define_demo32.txt 305_webserver_arduino3ibz_rgb_led.txt 038_pas_box_demonstrator.txt 305_webserver_arduino3test.txt 039_pas_dllcall.txt 306_SPS_http_command.txt 040_paspointer.txt 307_all_booleanlogic.txt 040_paspointer_old.txt 308_bitbox3.txt 041_pasplotter.txt 308_bitbox3_exec.txt 041_pasplotter_plus.txt 308_boolean_animation.txt 042_pas_kgv_ggt.txt 308_boolean_animation2.txt 043_pas_proceduretype.txt 309_regex_power.txt 044_pas_14queens_solwith14.txt 309_regex_powertester2.txt 044_pas_8queens.txt 309_regex_powertester3.txt 044_pas_8queens_sol2.txt 310_regex_decorator.TXT 044_pas_8queens_solutions.txt 312_ListView.txt 044_queens_performer.txt 313_dmath_dll.txt 044_queens_performer2.txt 314_fundamentals4_tester.TXT 044_queens_performer2tester.txt 315_funcplot_dmath.TXT 045_pas_listhandling.txt 316_cfileutils_cdatetime_tester.TXT 046_pas_records.txt 317_excel_export_tester.TXT 047_pas_modula10.txt 318_excel_export.TXT 048_pas_romans.txt 318_excel_export2.TXT 049_pas_ifdemo.txt 318_excel_export3.TXT 049_pas_ifdemo_BROKER.txt 318_excel_export3_tester.TXT 050_pas_primetest2.txt 319_superfunctions_math.TXT 050_pas_primetester_thieves.txt 319_superfunctions_mathdefect.TXT 050_program_starter.txt 320_superfunctions.TXT 050_program_starter_performance.txt 320_superfunctions2.TXT 051_pas_findtext_solution.txt 321_SQL_Excel.txt 052_pas_text_as_stream.txt 321_SQL_Excel2.txt 052_pas_text_as_stream_include.txt 321_SQL_Excel_Export.txt 053_pas_singleton.txt 321_SQL_ExportExec.txt 054_pas_speakpassword.txt 321_SQL_ExportTest.txt 054_pas_speakpassword2.txt 321_SQL_SAS_tester3.txt 054_pas_speakpassword_searchtest.txt 321_SQL_SAS_tester3_selfcompile.txt 055_pas_factorylist.txt 321_SQL_SAS_tester3_selfcompile2.txt 056_pas_demeter.txt 321_SQL_SAS_tester4.txt 057_pas_dirfinder.txt 321_SQL_SAS_updater.txt 058_pas_filefinder.txt 322_timezones.TXT 058_pas_filefinder_pdf.txt 323_datefind_fulltext_search.txt 058_pas_filefinder_screview.txt 323_datefind_fulltext_searchtester.txt 058_pas_filefinder_screview2.txt 324_interfacenavi.TXT 058_pas_filefinder_screview3.txt 325_ampelsteuerung.txt 059_pas_timertest.txt 325_analogclock.txt 059_pas_timertest_2.txt 326_world_analogclock.txt 059_pas_timertest_time_solution.txt 326_world_analogclock2.txt 059_timerobject_starter2.txt 327_atomimage_clock.txt 059_timerobject_starter2_ibz2_async.txt 328_starfield.txt 059_timerobject_starter2_uml.txt 329_starfield2.txt 059_timerobject_starter2_uml_main.txt 330_myclock.txt 059_timerobject_starter4_ibz.txt 330_myclock2.txt 060_pas_datefind.txt 331_SQL_DBfirebird4.txt 060_pas_datefind_exceptions2.txt 332_jprofiler.txt 060_pas_datefind_exceptions_CHECKTEST.txt 332_jprofiler_form.txt 060_pas_datefind_fulltext.txt 332_jprofiler_form2.txt 060_pas_datefind_plus.txt 333_querybyexample.txt 060_pas_datefind_plus_mydate.txt 333_querybyexample2.txt 061_pas_randomwalk.txt 334_jvutils_u.txt 061_pas_randomwalk_plus.txt 335_atomimage5.txt 062_paskorrelation.txt 335_atomimage6.txt 063_pas_calculateform.txt 335_atomimage7.txt 063_pas_calculateform_2list.txt 336_digiclock.txt 064_pas_timetest.txt 336_digiclock2.txt 065_pas_bitcounter.txt 336_digiclock2test.txt 066_pas_eliza.txt 336_digiclock3.txt 066_pas_eliza_include_sol.txt 337_4games.txt 067_pas_morse.txt 337_4games_inone.txt 068_pas_piezo_sound.txt 338_compress.txt 069_LED_Matrix_R1_3_6_NV_PSchaer.TXT 338_compress2.txt 069_my_LEDBOX.TXT 339_ntfs.txt 069_pas_ledmatrix.txt 340_docutype.txt 069_pas_LEDMATRIX_Alphabet.txt 340_logsimulation.txt 069_pas_LEDMATRIX_Alphabet_run.txt 340_logsimulation2.txt 069_pas_LEDMATRIX_Alphabet_tester.txt 340_soundControltype.txt 069_PAS_LEDMATRIX_COLOR.TXT 341_blix_clock.txt 069_pas_ledmatrix_fixedit.txt 341_blix_clock2.txt 069_pas_LEDMATRIX_soundbox.txt 341_blix_clock_tester.txt 069_pas_LEDMATRIX_soundbox2.txt 342_set_enumerator.txt 069_Richter_MATRIX.TXT 343_dice2.txt 070_pas_functionplot.txt 344_pe_header.txt 070_pas_functionplotter2.txt 344_pe_header2.txt 070_pas_functionplotter2_mx4.txt 345_velocity.txt 070_pas_functionplotter2_tester.txt 346_conversions.txt 070_pas_functionplotter3.txt 347_pictureview.txt 070_pas_functionplotter4.txt 348_duallistview.txt 070_pas_functionplotter_digital.txt 349_bigInt.txt 070_pas_functionplotter_elliptic.txt 350_parserform.txt 070_pas_function_helmholtz.txt 351_chartform.txt 070_pas_textcheck_experimental.txt 351_chartform2.txt 071_pas_graphics.txt 351_chartform3.txt 071_pas_graphics_drawsym.txt 352_array_unittest.txt 071_pas_graphics_drawsym_save.txt 353_smtp_email.txt 071_pas_graphics_random.txt 353_smtp_email2.txt 072_pas_fractals.txt 354_josephus.txt 072_pas_fractals_2.txt 355_life_of_PI.txt 072_pas_fractals_blackhole.txt 356_3D_printer.txt 072_pas_fractals_perfomance.txt 357_fplot.TXT 072_pas_fractals_perfomance_new.txt 358_makesound.txt 072_pas_fractals_perfomance_sharp.txt 359_charsetrules.TXT 072_pas_fractals_performance.txt 360_allobjects.TXT 072_pas_fractals_performance_mX4.txt 360_JvPaintFX.TXT 073_pas_forms.txt 361_heartbeat_wave.TXT 074_pas_chartgenerator.txt 362_maxonmotor2.TXT 074_pas_chartgenerator_solution.txt 363_compress_services.txt 074_pas_chartgenerator_solution_back.txt 363_compress_services2.txt 074_pas_charts.txt 364_pdf_services.txt 075_bitmap_Artwork2.txt 365_memorystream.txt 075_pas_bitmappuzzle.txt 365_memorystream2.txt 075_pas_bitmappuzzle24.prod.txt 365_memorystream_test.txt 075_pas_bitmappuzzle2_prod.txt 365_U_HexView.txt 075_pas_bitmappuzzle3.txt 366_mp3player.txt 075_pas_bitmapsolve.txt 366_mp3player2.txt 075_pas_bitmap_Artwork.txt 366_mp3player2_themestest.txt 075_pas_puzzlepas_solution.txt 367_silvi_player_widgets.txt 076_pas_3dcube.txt 367_silvi_player_widgets2.txt 076_pas_circle.txt 367_widgets.txt 077_pas_mmshow.txt 368_configuration_demo.txt 078_pas_pi.txt 369_macro_demo.txt 079_pas_3dcube_animation.txt 370_callback2grid.TXT 079_pas_3dcube_animation4.txt 370_richedit.txt 079_pas_3dcube_plus.txt 370_richedit_highlight.txt 080_pas_hanoi.txt 370_synedit.txt 080_pas_hanoi2.txt 370_synedit2.txt 080_pas_hanoi2_file.txt 370_synedit2_mxtester.txt 080_pas_hanoi2_sol.txt 370_synedit2_mxtester2.txt 080_pas_hanoi2_tester.txt 371_maXbook_v4tester.txt 080_pas_hanoi2_tester_fast.txt 372stackibz2_memoryalloc.TXT 080_pas_hanoi3.txt 372_synedit_export.txt 081_pas_chartist2.txt 373_batman.txt 082_pas_biorythmus.txt 373_fractals_tvout.txt 082_pas_biorythmus_solution.txt 374_realtime_random.txt 082_pas_biorythmus_solution_3.txt 374_realtime_random2.txt 082_pas_biorythmus_test.txt 374_realtime_randomtest.txt 083_pas_GITARRE.txt 374_realtime_randomtest2.txt 083_pas_soundbox_tones.txt 375_G9_musicbox.txt 084_pas_waves.txt 376_collections_list.txt 085_mxsinus_logo.txt 377_simpleXML.txt 085_sinus_plot_waves.txt 377_smartXML.txt 086_pas_graph_arrow_heart.txt 377_smartXMLWorkshop.txt 087_bitmap_loader.txt 377_smartXMLWorkshop2.txt 087_pas_bitmap_solution.txt 378_queryperformance3.txt 087_pas_bitmap_solution2.txt 378_REST1.txt 087_pas_bitmap_subimage.txt 378_REST2.txt 087_pas_bitmap_test.txt 379_timefunc.txt 088_pas_soundbox2_mp3.txt 379_timefunctesterfilemon.txt 088_pas_soundbox_mp3.txt 380_coolfunc.txt 088_pas_sphere_2.txt 380_coolfunc2.txt 089_pas_gradient.txt 380_coolfunc_tester.txt 089_pas_maxland2.txt 381_bitcoin_simulation.txt 090_pas_sudoku4.txt 382_GRMath.TXT 090_pas_sudoku4_2.txt 382_GRMath_PI_Proof.TXT 091_pas_cube4.txt 382_GRMath_Riemann.TXT 092_pas_statistics4.txt 383_MDAC_DCOM.txt 093_variance.txt 384_TeamViewerID.TXT 093_variance_debug.txt 386_InternetRadio.TXT 094_pas_daysold.txt 387_fulltextfinder.txt 094_pas_stat_date.txt 387_fulltextfinder_cleancode.txt 095_pas_ki_simulation.txt 387_fulltextfinder_fast.txt 096_pas_geisen_problem.txt 387_fulltext_getscripttest.txt 096_pas_montyhall_problem.txt 388_TCPServerSock.TXT 097_lotto_proofofconcept.txt 388_TCPServerSock2.TXT 097_pas_lottocombinations_beat_plus.txt 388_TCPServerSockClient.TXT 097_pas_lottocombinations_beat_plus2.txt 389_TAR_Archive.TXT 097_pas_lottocombinations_universal.txt 389_TAR_Archive_test.TXT 097_pas_lottosimulation.txt 389_TAR_Archive_test2.TXT 098_pas_chartgenerator_plus.txt 390_Callback3.TXT 099_pas_3D_show.txt 390_Callback3Rec.TXT 200_big_numbers.txt 390_CallbackClean.TXT 200_big_numbers2.txt 390_StringlistHTML.TXT 201_streamload_xml.txt 391_ToDo_List.TXT 202_systemcheck.txt 392_Barcode.TXT 203_webservice_simple_intftester.txt 392_Barcode2.TXT 204_webservice_simple.txt 392_Barcode23.TXT 205_future_value_service.txt 392_Barcode2scholz.TXT 206_DTD_string_functions.txt 392_Barcode3scholz.TXT 207_ibz2_async_process.txt 393_QRCode.TXT 208_crc32_hash.txt 393_QRCode2.TXT 209_cryptohash.txt 393_QRCode2Direct.TXT 210_public_private.txt 393_QRCode2DirectIndy.TXT 210_public_private_cryptosystem5_ibz_spektrum.txt 210_public_private_cryptosystem.txt 393_QRCode2Direct_detlef.TXT 211_wipe_pattern.txt 393_QRCode3.TXT 211_wipe_pattern2.txt 394_networkgraph.TXT 211_wipe_pattern_solution.txt 394_networkgraph_depwalkutilstest.TXT 212_pas_statisticmodule4.TXT 394_networkgraph_depwalkutilstest2.TXT 212_pas_statisticmoduletxt.TXT 395_USBController.TXT 212_statisticmodule4.txt 396_Sort.TXT 213_pas_BBP_Algo.txt 397_Hotlog.TXT 214_mxdocudemo.txt 397_Hotlog2.TXT 214_mxdocudemo2.txt 398_ustrings.txt 214_mxdocudemo3.txt 399_form_templates.txt 215_hints_test.TXT 400_fplottchart.TXT 216_warnings_test.TXT 400_fplottchart2.TXT 217_pas_heartbeat.txt 400_fplottchart2teetest.TXT 218_biorythmus_studio.txt 400_QRCodeMarket.TXT 219_cipherbox.txt 401_tfilerun.txt 219_crypt_source_comtest_solution.TXT 402_richedit2.txt 220_cipherbox_form.txt 403_outlookspy.txt 220_cipherbox_form2.txt 404_simplebrowser.txt 221_bcd_explain.txt 405_datefinder_today.txt 222_memoform.txt 406_portscan.txt 223_directorybox.txt 407_indydemo.txt 224_dialogs.txt 408_testroboter.txt 225_sprite_animation.txt 409_excel_control.txt 226_ASCII_Grid2.TXT 410_keyboardevent.txt 227_animation.txt 411_json_test.txt 227_animation2.txt 412_Zeosutils.txt 228_android_calendar.txt 413_listview2.txt 229_android_game.txt 414_avrdude_flash.txt 229_android_game_tester.txt 415_avrdude_writehex.txt 230_DataProvider.txt 416_sonar_startscriptEKON.TXT 230_DataSetProvider.txt 416_sonar_startscriptEKON_reporting.TXT 230_DataSetXMLBackupScholz.txt 417_GRMath_PI_Proof2.TXT 231_DBGrid_access.txt 418_functional_paradigm.txt 231_DBGrid_XMLaccess.txt 419_archimedes_spiral.txt 231_DBGrid_XMLaccess2.txt 419_archimedes_spiral2.txt 231_DBGrid_XMLaccess_locatetester.txt 420_archimedes_arduino.txt 231_DBGrid_XML_CDS_local.txt 420_Lissajous.txt 232_outline.txt 421_PI_Power.TXT 232_outline_2.txt 421_PI_Power2.TXT 233_modular_form.txt 422_world_bitboxx.txt 234_debugoutform.txt 423_game_of_life.TXT 235_fastform.TXT 423_game_of_life2.TXT 236_componentpower.txt 423_game_of_life3.TXT 236_componentpower_back.txt 423_game_of_life3_test.TXT 237_pas_4forms.txt 423_game_of_life4.TXT 238_lottogen_form.txt 423_game_of_life4_kryptum.TXT 239_pas_sierpinski.txt 424_opengl_tester.txt 239_pas_sierpinski2.txt 425_reversi_game.txt 240_unitGlobal_tester.txt 426_IBUtils.TXT 241_db3_sql_tutorial.txt 427_IBDatabase.TXT 241_db3_sql_tutorial2.txt 428_SortGrid.TXT 241_db3_sql_tutorial2fix.txt 429_fileclass.txt 241_db3_sql_tutorial3.txt 430_fileoperation.txt 241_db3_sql_tutorial3connect.txt 430_fileoperation_tester.txt 241_db3_sql_tutorial3_fptest.txt 431_performance_index.txt 241_RTL_SET2.txt 432_shortstring_routines.txt 241_RTL_SET2_tester.txt 433_video_avicap.txt 242_Component_Control.txt 433_video_avicap2.txt 243_tutorial_loader.txt 434_GSM_module.TXT 244_script_loader_loop.txt 435_httpcommon.txt 245_formapp2.txt 436_GraphicSplitter.txt 245_formapp2_tester.txt 436_GraphicSplitter_form.txt 245_formapp2_testerX.txt 436_GraphicSplitter_form2.txt 246_httpapp.txt 436_teetest_screen.TXT 247_datecalendar.txt 436_teetest_screen2.TXT 248_ASCII_Grid2_sorted.TXT 437_WinAPItop.txt 249_picture_grid.TXT 437_WinAPItop_Firebirdtester.txt 250_tipsandtricks2.txt 438_OvcInternational.txt 250_tipsandtricks3.txt 439_AsyncFreeDemo.txt 250_tipsandtricks3api.txt 439_AsyncFreeDemoForm.txt 250_tipsandtricks3_admin_elevation.txt 440_DLL_Tutor.txt 250_tipsandtricks3_tester.txt 440_DLL_Tutor2.txt 250_tipsandtricks4_tester.txt 440_XML_Tutor.txt 250_tipsandtricks4_tester2.txt 440_XML_Tutor2.txt 251_compare_noise_gauss.txt 441_make_app.txt 251_whitenoise.txt 442_arduino_rgb_led.txt 251_whitenoise2.txt 443_webserver_arduino_rgb_light.txt 252_hilbert_turtle.txt 443_webserver_arduino_rgb_light4.txt 252_pas_hilbert.txt 444_webserver_arduino3ibz_rgb_led_basta.txt 253_opearatingsystem3.txt 445_datagrid.txt 254_dynarrays.txt 445_datagrid2.txt 255_einstein.txt 445_datagrid_android_arduino.txt 256_findconsts_of_EXE.txt 446_arduino_timer.txt 256_findfunctions2_of_EXE.txt 447_patternFrm_mx3.txt 256_findfunctions2_of_EXEaverp.txt 448_Synapse.txt 256_findfunctions2_of_EXEspec.txt 448_Synapse2.txt 256_findfunctions3.txt 449_dweb_start_tester.txt 256_findfunctions_of_EXE.txt 450_Synapse_HTTPS.txt 257_AES_Cipher.txt 450_Synapse_Mime.txt 258_AES_cryptobox.txt 450_Synapse_ScanPing.txt 258_AES_cryptobox2.txt 451_ocx_player.txt 258_AES_cryptobox2_passdlg.txt 451_OCX_WinPlayer2.txt 259_AES_crypt_directory.txt 452_dbtreeview.txt 260_sendmessage_2.TXT 452_dbtreeview2.txt 260_sendmessage_beta.TXT 453_stdfuncs.txt 261_probability.txt 454_fileStream.txt 262_mxoutputdemo4.txt 455_functionfun.txt 263_async_sound.txt 455_functionfun2.txt 264_vclutils.txt 455_functionfun2_test.txt 264_VCL_utils2.txt 457_ressource_grid.txt 265_timer_API.txt 458_atomimageX.txt 266_serial_interface.txt 459_cindyfunc.txt 266_serial_interface2.txt 459_cindyfunc2.txt 266_serial_interface3.txt 460_TopTenFunctions.txt 267_ackermann_rec.txt 461_sqlform_calwin.txt 267_ackermann_variants.txt 462_caesarcipher.txt 268_DBGrid_tree.txt 463_global_exception.txt 269_record_grid.TXT 464_function_procedure.txt 270_Jedi_FunctionPower.txt 464_function_procedure2.txt 270_Jedi_FunctionPowertester.txt 464_function_procedure3.txt 271_closures_study.txt 465_U_HexView.txt 271_closures_study_workingset2.txt 466_moon.txt 272_pas_function_show.txt 466_moon_inputquery.txt 273_pas_function_show2.txt 4671_cardmagic.txt 274_library_functions.txt 467_helmholtz_graphic.txt 275_turtle_language.txt 468_URLMon.txt 275_turtle_languagehouse2_time2.txt 275_turtle_language_save.txt 468_URLMon2.txt 276_save_algo.txt 469_formarrow.txt 276_save_algo2.txt 469_formarrow_datepicker.txt 277_functionsfor39.txt 469_formarrow_datepicker_ibz_result.txt 278_DB_Dialogs.TXT 469_ibzresult.txt 279_hexer2.TXT 470_DFFUtils_compiled.txt 279_hexer2macro.TXT 470_DFFUtils_ScrollingLED.txt 279_hexer2macroback.TXT 470_Oscilloscope.txt 280_UML_process.txt 470_Oscilloscope_code.txt 280_UML_process_knabe2.txt 471_cardmagic.txt 280_UML_process_knabe3.txt 471_cardmagic2.txt 280_UML_process_TIM_Botzenhardt.txt 472_allcards.TXT 280_UML_TIM_Seitz.txt 473_comboset.txt 281_picturepuzzle.txt 474_wakeonlan.txt 281_picturepuzzle2.txt 474_wakeonlan2.txt 281_picturepuzzle3.txt 476_getscripttest.txt 281_picturepuzzle4.txt 477_filenameonly.txt 479_inputquery.txt 480_regex_pathfinder.txt 480_regex_pathfinder2.txt 481_processList.txt 482 processPipe.txt 482 processPipeGCC.txt 483_PathFuncTest_mX.txt 484_filefinder3.txt 485_InnoFunc.txt 486_VideoGrabber.txt 487_asyncKeyState.txt 488_asyncTerminal.txt 489_simpleComport.txt 490_webCamproc.txt 491_analogmeter.txt 492_snowflake2.txt 493_gadgets.txt 495_fourierfreq.txt 496_InstallX.txt 497_LED.txt 498_UnitTesting.txt 499_mulu42.txt 500_diceoflifes.txt 501_firebird_datasnap_tests.txt 502_findalldocs.txt 503_led_switch.txt 504_fileclass.txt 505_debug.txt 506_colormatrix.txt 507_derutils.txt 508_simplecomportmorse.txt 509_GEOMap2.txt 509_509_GEOMap2_SReverse.TXT 510_510_bonn_gpsdata_mX4.pas 511_LEDLabel.txt 512_LED_moon.txt 513_StreamIntegration.txt 514_LED_moon2.txt 515_ledclock3.txt 516_mapview.txt 517_animation7.txt 518_sensors_meter.txt 519_powtils.txt 520_run_bytecode.txt 521_iputils2.txt 522_getgeocode.txt 523_NMEA.txt 524_NAV_Utils.txt 525_GEO84s.txt 526_Compass_meter.txt 527_GPSDemo.txt 528_linescount.txt 529_profilertest.txt 530_3DLab.txt 531_profilertest.txt 532_mcicommand.txt 533_syncasync_demo.txt 534_arduino_cockpit.TXT 535_Battleship3.pas 536_ressource_grid2.txt 537_iniplus.TXT 538_shellbatch.txt 539_timeturtle123.txt 540_NeuralNetwork.pas 541_webserver_arduino_motorturtle.txt 542_arduino_sound.txt 543_MATH_TurboP.PAS 544_UTIL01.PAS 545_strips.TXT 546_fourier3.pas 547_regexmaster.TXT 548_STExpressions.TXT -Services 549_3D_Panorama.txt 550_Expressions.TXT - 550_ADO_OLEDB.txt 551_ArduinoTester.txt 552_WaitExec32.txt 553_ArduinoCockBit3.txt 554_Watdchdog.txt - 555_CODEsign2.txt 556_stringlistrandom.TXT 557_4dice2015.txt 558_highrestimer.TXT -559_higthrestimer2 560_PSUtils.TXT 561_newfunctions399160.txt 562_shellctrldemo.txt 563_moonpaper.txt 564_queryperformance.txt 565_ConsoleCapture.txt 566_queryperformance2.txt 567_SquareWordGrids2.txt 568_U_BigFloatTestscript2.pas 569_keylog.txt - 569_ServiceMgr2.TXT 570_turingspeech.txt 571_myPing.txt 572_shellctrlplus.txt 573_modbusfrm_Main.pas 574_arduino_cockpit5.TXT 575_TARTARUGA_Desktop.txt 576_outlineEX11.PAS 577_listbox2list.txt 578_access_db_logsimulation3.txt 579_numbersystems_sort.txt 580_indystacksearch_geo.txt 581_stringstream.txt 582_indystackwin.txt 583_VirtualConstructor_savereport.txt 584_ProcessList2fontwidth.txt last 585_fulltextfinder_cleancode_override.txt 586_STRandom.txt 587_one_function.txt 588_XSBuiltins.txt 589_avi_animate.txt 590_HTML_to_RTF.txt 591_emailattach.txt 592_getTypeLibList.txt 593_round_time.txt 594_check_creditcard.txt 595_check_memory.txt 596_time_delays.txt 597_ole_commands.txt 598_software_list.txt 599_bug.txt 600_surprise_nice.txt 601_PECheckSum.txt 602_multilang_game.txt (moonbug) 603_cupids_arrow.TXT 604_GEOCodeReverse4.TXT 605_maxonmotor3DTage2BASTA2015.TXT 606_U_FibonacciSunflower.TXT 607_DataSetProvider_CDS_ADO.txt 608_ColorMixer_Arduino2.txt 609_ScriptExecutor (beta) 610_3D_DLL.txt 611_Arduino_COMOutputs.txt 612_MTerminal.pas 611_Arduino_COMOutputs_TMP36_3.txt 613_uPSI_DIUtils_test.pas 614_inbrowserock.txt 615_SONAR_51_Starter.txt 616_ComTerminalDlg.pas (589_AVI_Throbber.res.txt) 589_avi_animate.txt 616_ComTerminalDlg.pas //end for 3.9.9.195 617_API_coding_tut37.txt 617_API_coding_tut39.txt 618_bayes_filter.txt 618_bayes_filter_dic.txt 618_bayes_filter_dic2.txt 619_crypto_package_demo.txt 619_crypto_package_demo_policy.txt 619_crypto_packr.txt 620_serialtimer.txt 621_bruteforceattack_dic.txt 622_netsh_master_restore4.psb 622_netsh_master_sonar.pas 623_exspawnu.pas 623_exspawnu_buffoverflow.pas 624_Misctest_lexscanner.pas 624_Misctest_lexscanner2.pas 625_binominal_bigint3_testcase.txt 626_lorentztransformation.TXT 627_4gewinnt_main3.txt 628_FormatFloat.pas 629_Word_FORMULA.PAS 630_multikernel2.TXT 630_multikernel3.TXT 631_dmath_testfunc_mx3.pas 632_safecalll2.txt 632_safecheck2.txt 632_safecheck2_regex_basta.txt 633_gamma_func.txt 634_briefcase_XMLDB.xml 634_BriefcaseMain2.pas 634_maxbase3server.mdb 635_bitcount_bytecodestudy.txt 636_rest_apiexamples.txt 637_psnconvert3.TXT 637_psnconvert4.TXT 637_startscript_psnconvert2.TXT 638_Mathslib_prime.pas.txt 639_prime_factors.txt 640_rest_geocode.txt 640_rest_weather_report.txt 640_weather_cockpit5.TXT 640_weather_cockpit6.TXT 641_voicecommand.TXT 642_BDE_export.PAS 643_EKON19_Tester3_OLE_Reg.TXT 644_Synapse_Mimetest_regEx3.txt 645_age_guess_REX.pas 646_pi_evil.TXT 646_pi_evil2.TXT 647_StringtoHTMLBasta.TXT 648_SYNEdit_ExportDemo.TXT 649_dayio.pas 649_StringlistHTMLtestBasta.TXT 650_sched.pas 650_http_server2tester.txt 650_time_routines.txt 650_dbblober.txt 650_drawdice2016.txt 651_StrUtilmaxbase.pas 652_graph3DMainUnit2.pas 653_PdoxTstbox.pas 654_spectrum_dice2016_3.txt 655_arduino_chess.txt 655_arduino_chess2.txt 656_XML_RpcCommon.pas 656_XML_RpcCommon2.pas 657_PEM_Cert.txt 658_ASN1_Cert.txt 659_VirtListBox.txt 660_X509_Cert.pas 660_InetUtils_Rest.txt 661_REXX.pas 662__VisualChronForm.pas 663_Tokens.pas 664_DataAnnotationsValid.pas.pas 665_keditcommon.pas.pas 666_SysInfoCtrls.pas.pas 667_URobo1.pas.pas 667_URobo2.pas.pas 668_U_SoundGen3.pas.pas 669_uptime.txt.pas 700_interestingX.txt 670_interesting_birthday_paradox.txt 671_replacedigit.txt //File 672_regex_ask_task.txt 673_pipe_singapure.txt //LAB 674_pipe_graphics.txt 675_bitcoin_doublehash.txt 676_run_as_admin.txt 677_pingtest4.txt 678_fmTraceRouteMainU.pas 679_messagefMain.pas 680_gravity_waves.txt 681_kronos_3DLab.TXT 682_ScreenMatrixToBitmap.pas 683_mx422_functions_demo.txt 684_mathe4.pas 685_leanfitmath.txt 686_namedpipe_demo.txt 686_namedpipe_demo2.txt 687_memorymapped_filestream.txt 688_KGraphics_Call.txt 689_proctype_alias.txt 690_calc_pi_ex.pas 691_httpservermain3.txt 692_fservermain3.pas 692_imageserv_fClient33.pas 693_OverbyteIcsUtils_tester.pas 694_OverbyteIcsAsn1Utils.pas 695_IdAntiFreeze_tester.pas 696_kmemo_demo_Main.pas 696_kmemo_demo.pas 697_OverbyteIcsTicks64.pas 697_OverbyteIcsTicks64Demo1.pas 698_new_classes_tester.pas 693_OverbyteIcsDnsQuerytester.pas 698_Bitcoin_blockchaintester.pas 699_OverbyteIcsSha1_tester.pas 700_mX422_functions_demo2.txt 700_mX422_functions_demo3.txt 700_new_function_snippets.pas 700_function_snippets3_metrics.inc 701_all_fibonacci.txt 702_pascal_fibonacci.txt 702_X509_Cert_OpenSSL_1.txt 702_X509_Cert_OpenSSL_2.txt 703_pc_sensors.txt 704_entropy_test.txt 705_magsubs1_functions.pas 705_parser_demo_case.txt 706_population_count.txt 707_GrayCode.txt 708_XML_DOM_ReaderTutor.txt 709_BarcodeReader.txt 710_enigma_riddler.txt 710_EnumRegKeys.txt 710_geo_distance_form_mapbox.txt 710_geo_distance_dialog.txt 710_RegSvrUtils_mX4.pas 711_geo_satellite_mapbox.txt 712_rootsfunction.txt 712_towerofhanoi_animation.pas 713_SnakeA2.pas 713_internet_traces_mx_screenshot2.png 714_astroids_GAME3.PAS 714_GAME_spaceinvaders.PAS 715_shape_calculator.PAS 716_webplan.PAS 717_AdLog.PAS 718_AdPerformanceCounter.PAS 719_rootsfunction.txt 720_euler_project.txt 720_HTML_TableExport_CSS.pas 720_selfdescribing_number.txt 721_DOSCapture_netstat2.TXT 722_refererHeader_monitor.TXT 723_remote_notepad_message.TXT 724_spyware_monitor_test.TXT 725_CRC32_live.txt 725_Install_Routines.TXT 725_725_Cholesky.pas 725_Voice3.TXT 725_blockchain_sensors3.txt 725_X509_SHA1_TestCert.txt 726_DBGrid_XML_CDataSet.txt 727_Canvas_Artist.TXT 728_mci_macros.TXT 728_mci_macros_imagetest.TXT 729_PrivateKey_mX.pas 729_U_BigIntTest_mX.pas 730_modular_exponentiation_IBZ.txt 730_topological4.txt 730_ternary_logice.txt 730_ternary_logice2.txt 731_DWS_Client4_EKON20.pas 731_DWS_Server4_EKON20.pas 732_hailstonesequence_delphi.txt 732_hailstonesequence.txt 733_jensensdevice.txt 734_boxthecompass.txt 735_Linear_congruential_generator.txt 735_mx_screenshot_duesseldorf.png 735_Euler_p117_openSSL_scripts.txt 736_hiddenstreams_ads.txt 737_xmastree2.txt 737_xmastree3.txt 738_mX4_exact_fishertest2.pas 738_mX4_exact_fishertest3.pas 739_GIFPAL.PAS 739_mXbinom.pas 740_Globalreplacetext.txt 740_Globalreplacetext_test.txt 740_msgpump1.txt 740_uFTPServermX2.pas 740_uFTPServermX2_listtest.pas 740_RosettaIsaac_cryptocode.txt 740_RosettaIsaac_Cryptocode_Delphi 740_RosettaIsaac_cryptocode2.txt 741_DrawYinAndYang.txt 741_DrawYinAndYang_console.txt 742_VectorProducts.txt 743_ProperDivisor.txt 744_Web_scraping_UTCTime.txt 745_Web_scraping_UTCTime_DNSQuery.txt 745_crypto_memory.txt 745_euler_method.txt 746_uText.pas 746_mx_screenshot_stream.png 747_uSteganos.pas 748_ubits.pas 749_helloWebServer.txt 749_helloWebServer2.txt 749_helloWebServer3.txt 749_helloWebServer3_tempsensor.txt 750_EchoServer3.txt 750_EchoServer4.txt 210_RSA_crypto_complete8hybrid.txt 210_public_private_crypto_complete7hybrid.txt 750_ibz_cryptomem_RSA_proof_64.txt 750_RSA_Toolproof4.txt 750_SimpleTCPMain.pas 750_SimpleTCPMainForm.pas 751_Elevator_Simulator.pas 751_thelift_simulation_uMain.pas 752_BitmapHistogram.txt 752_U_ConvertTest2Astronomy.pas 752_U_AstroDemo_mX4_2.pas 752_U_AstroDemo_mX4_2Form.pas 753_xbase_tester.pas 754_U_Find3Primes.pas 755_science_ibz_spektrum.txt 755_science_ibz_spektrum2.txt 755_sedol2.txt 755_bigint_demo.txt 756_shellscripthell_javascript.txt 756_shellscripthell_saferemove.txt 756_shellscripthell_javascript2.txt strasbourgoutdoor2.bmp 667_URobo2EKON_FUN_Tracking2.pas 757_PowerEfficiencyDiagnostics.txt 757_tower_of_hanoiX.txt 757_factorizeX.txt 758_speechmachine.txt 759_euler_ppk_mutex_ibz.txt 760_Normal_distribution.txt xdata.xml - cd_catalog.xml 760_XML_DOM_OLE.TXT 760_XML_DOM_OLE_bestofbox4.TXT 760_systeminfo_tester.txt 751_Elevator_Simulator2.pas 766_wmi_GetServiceStatus.txt 751_Elevator_Simulator4.pas 760_systeminfo_tester2.txt 760_systeminfo_tester3.txt 761_BoulesBillard3.txt maxbox_billiard2.png 760_systeminfo_tester2.txt 760_systeminfo_tester3.txt 761_BoulesBillard3.txt 761 maxbox_billiard2.png 762_regex_analytica.txt 762_staroffice.txt 762_matlab.txt 763_google_rest_api.txt 764_reverse.txt 764_reverse.htm 765_codesign.txt 765_codesign2.txt 766_wmi_management.txt 766_wmi_management2.txt 767_mint_geo_map.txt 768_pascal_coin_utils.txt 769_tzutil.pas 770_pascal_coin_api.txt 770_pascal_coin_api_ascii_talk.txt 770_U_ParsingDemo2.pas 770_U_ParsingDemo3_ASCIITalk.pas 770_3hires_benchmarktimer2.txt 770_3hires_benchmarktimer3.txt 770_U_ParsingDemo3_ASCIITalk_test.pas 771_fibonacci_first.txt 772_mutex_instance.txt 773_streamfibonacci_first.txt 773_key_encryptort.txt 774_findwindow_calc.txt 775_geo_mapbox.txt 776_fiboseq_state_android_pi.txt 776_thermotacho.txt 777_netportscan.txt 777_keydownform_analyze.pas 777_tictactoe2.txt 777_tictactoe3.txt 777_tictac4picboard_16F887_arduino.txt 777_tictactoe3tacho.txt 778_advapi32_dll_SHA256.txt 766_wmi_GetAntiVirusProduct2.txt 779_drivemanager.txt 780_doubleSHA256_cipher.txt 780_mandelbrotset_max.txt 780_maxboxmandel.png 780_set_enumeration.txt 780_set_enumeration.pdf 780_newfunctions_calctest_42610.txt 780_esp8266_wifiscan.txt 780_abc_problem.txt 780_abc_problem_delphi.txt 780_mandelbrotset_max2.txt 780_DLL_functionlist.TXT 780_thingspeak_mathworks.txt 766_wmi_GetUSB_Devices.txt 780_JSONDemo.txt 735_openSSL_scripts4.txt 780_ppk_xmltransform.txt 780_ppk_xmltransform_provider.txt 780_xrtl_net_URIUtils.pas 766_wmi_GetAntiVirusProduct2.txt 781_ProxyUtils.txt 781_DataSetUtils.pas 781_ProxyUtils2performance.txt 780_ppk_xmltransform_provider2.txt 782_XML_DOM_ADO_API_REST_demo.txt 782_XML_DOM_ADO_API_REST_demo2.txt 783_turtle_sign.txt 784_DOM_travers.txt 785_Matrix_Transpose.txt 786_FONTVIE1mX4.PAS 787_cologne_Bitmap21.txt 788_WMI_Transpose.txt 789_DOM_XML.txt 790_Start_Elasticsearch.pas 791_uFTPServer.pas 792_uMRU.pas 793_uOneInstance.pas 794_uFind.pas 795_uOutput.pas 796_uUtils.pas 797_SynEditCodeFolding_routines.pas 798_turtle_python_time2.txt 799_list_duplicates.txt 800_wraplines.txt 800_isodatetime.txt 801_algorithms_Devices.txt 802_indystack_geo2_picture.txt 803_textanalysis.txt 803_textanalysis2.txt 804_BackgroundWorker.pas 805_webspider_Mainconsole.pas 805_webspider_Mainconsole2.pas 805_webspider_Mainconsole2_2.pas 806_primes_threadMain.pas 807_FANN_XorSample.pas 808_FANN_XorSample_traindata.pas 807_FANN_XorSample2.pas 809_FANN_XorSample_traindata.pas 810_bullcow_mastermind.txt 810_python_shell.txt 810_neuralnetwork2.txt 810_python_shell2.txt 810_neuralnetwork21.txt 811_mXpcatest_dmath_datascience.pas 811_mXpcatest_dmath_datascience2.pas 812_smtp_email4.txt 813_PCA_datascience_iris.txt 813_PCA_datascience_iris2.txt 814_bigmulu.txt 814_bigmulu.htm 813_PCA_datascience_iris3.txt 814_machinelearning_overview.jpg 815_look_and_say.txt 816_snowball_Readme.doc 816_SnowballProgram.pas 817_logextract.txt 818_spider_traversialdemo.txt 818_spider_traversialdemo2.txt 819_ES.Utils.pas 820_eigenvalue.txt 820_U_ProbabilityDist.pas 820_U_ProbabilityDist2.pas 820_U_ProbabilityDist2.psb 820_182_Cologne42_EKON21sunset.jpeg 820_bostondataset_socks4test.pas 820_bostondataset.txt 820_bostondataset_socks4test_irisset.pas 820_iris.data 820_bostondataset_irisset_clean.pas 820_bostondataset3.txt 821_Narcissistic.txt 821_Narcissistic2.txt 822_perceptron1_2.htm 822_perceptron.txt 822_perceptron1_2.txt 822_perceptron1_3.txt 822_perceptron1_3.htm 822_FANN_Perceptron_Sample_Plus.pas 807_FANN_PerceptronSample.pas 822_perceptron1_31.txt 822_perceptron_for_pascal2.txt 822_perceptron_for_pascal.htm 822_perceptron_for_pascal2regression.txt 823_truth_table.txt 824_catamorphism.txt 825_hash_class.txt 825_uTPLb_Hash_tester.pas 826_sentiment_api2.txt 826_sentiment_api2_1.txt 826_sentiment_api2_1.psb 826_sentiment_api2_2.txt sentiment2.txt 820_bytecodetest.txt 826_reglin_regression_fit.pas 826_reglin_regression_fit2.pas 714_astroids_GAME5.PAS 827_save_UTF8.txt 828_install_routine.txt 828_install_routine2.txt asteroid.txt 829_save_JSON.txt 830_save_Binaries.txt 830_RSA_cryptosystem_wiki.txt 830_RSA_cryptosystem_wiki_huge2.txt 831_regex_light.txt 832_euler92.txt 833_findfactors.txt 834_array_concat.txt 835_fibonsteps_sequence.txt 836_date_time_routines.txt 837_penneysgame.txt 837_penneysgame2.txt 838_endofuniverse_explain.txt 839_percolation_mean.txt 840_maxboxmandel2.png 840_maxbox_art3.jpg 840_URungeKutta4test.pas 841_U_Alphametics.pas 842_U_Keno2.pas 842_U_JPGClock2.dfm 842_U_JPGClock2.pas 843_snake2.pas 844_OpenSSL_synapsetester.txt 844_OpenSSL_synapsetester2.txt 845_Gray_Code.txt 845_TestPermutations.txt 845_TestPermutations2.txt 846_longmultiplication.psb 846_longmultiplication.pas 847_blockchain_hashexplain.pas 848_xml_intfn.pas 849_pi3.psb 849_pi3.pas 850_pi3_filemodify.pas 810_neuralnetwork21pascal_tutor66.txt 810_neuralnetwork21python_tutor66.txt 810_neuralnetwork21pascal_tutor66predict.txt 853_U_SixOfAKind2_mX4.pas 854_U_Invertedtext.pas 855_dll_reflection.jpg 855_dll_from_maXbox.pas 856_SnakeAmX4.pas 856_snake_maxbox4_4.png 857_printer_function.txt 856_snake_maxbox4_5.png 856_SnakeAmX42.pas 856_snake_maxbox4_6.png 858_dragdrop_function.txt 856_SnakeAmX42_tab.pas 859_maputils.pas 859_maputils_client.pas 860_graph.png 860_virtualbox_overview.png 860_brownian_tree.pas 826_similarity_api2.txt 860_graph3.png 860_similarity_api3.txt 860_benfordslaw.txt 860_sexy_primes2performance.txt 860_dateformat.txt 860_sexy_primes2performance.psb 860_sexy_primes.psb 860_sexy_primes.txt 860_neuralnetwork21_levenshtein_dist.txt 860_PascalMatrix_Out.txt 860_similarity_api3.txt 860_graph3.png 860_brownian_tree.pas 826_similarity_api2.txt 860_brownian_tree.pas 860_virtualbox_overview.png 860_graph.png 859_maputils_client.pas 827_save_UTF8_xml_oledb.txt 861_stringtokenizer.txt 861_stringtokenizer.htm 861_stringtokenizer2.txt 862_socialmention_api3.txt 862_benfordslaw_synedit.txt 863_stack_tcp_chatroom_client.TXT 863_stack_tcp_chatroom.TXT 864_form_canvas_font_client.TXT 865_caesar_cipher.txt 865_winservices.txt 865_winservices2.txt 866_native_console.txt 866_tutor70consolepowershell2.png 780_abc_problem_delphi_synapse.txt 780_abc_problem_delphi_synapse2.txt 780_abc_problem_delphi_synapse3.txt 781_LatLonDistmX.pas 781u_LatLonDistanceTestmX.pas 781_JLatLon_JFK-ZRH.JPG 781u_LatLonDistanceTestmX2.pas 782_U_MakeCityLocations2mX4.pas 783_replaceall.txt 784_checkers.txt 785_reviews.txt 786_web_scrap.txt 787_Excel_ImportExport.txt 788_PETRA.MID 788_pcu_mX4.pas 789_totient_primes_tester.txt 789_totient_primes_tester.psb 790_sha512.txt 790_googlemaps.txt 867_metadefener_api.txt 868_6MainFmnetworkmX47.pas 869_factsum.txt 870_totient_primes_tester_471_functions.txt 871_checkemptyfolders.txt 496_installX.txt 872_RSA_codes.txt 872_RSA_codes2.txt 873_Unittester_mX47.txt 873_Unittester_mX47_2.txt 873_Unittester_mX47_2.psb 873_httpclient.png 874_LinkGrabUnit1.pas 875_filehistounit2app.txt 875_filehistounit2app_forensic.txt 875_codetester_GUI_maXbox4exe.png 876_console_output.txt 877_flowpanel.pas 877_flowpanel2.pas 878_code_reflection.txt 879_psvCGI.pas 880_cgiMain_server.pas 880_visualstatemachine_main.pas 880_ModemEmulator.pas 880_cgiMain_server2.pas 640_API_LayerDetection_EKON23.TXT 881_odometer_uMain2.pas 882_bitmap_brusher.txt 883_create_dataset.txt 884_google_chart_api.TXT 884_google_chart_api2.TXT 885_IP_Geolocation.TXT 886_AmicablePairs.TXT 887_Anti_Primes.TXT 888_Sundial.TXT 889_Jaro_distance.TXT 890_Jensens_Device.TXT 891_uturing_machine.TXT 892_microwaves.TXT 891_uturing_machine2.TXT 891_universal_turing_machine3.TXT 892_microwaves2.TXT 893_montecarlo_PI.TXT 893_montecarlo_PI.psb 894_csv_to_html.TXT 895_screenpixel.TXT 896_tickets_tree.png 896_textclassification.py 896_all_tickets.csv 690_calc_pi_ex_stat4.pas 897_openoffice_ole_automation.TXT 898_exit_procedure.TXT 899_remote_control_key.TXT 569_ServiceMgr3.TXT 900_XML.TXT XML.TXT 901_turtle_purple_circle.txt 902_sha1_explicit.TXT 902_sha1_explicit_aes.TXT 903_ODBC_list.TXT 904_Unit1NEMESIS.pas 905_uiptools.pas 905_rfc1213util.pas 905_uipservices.pas 905_PlotCompCode.pas 905_net_ugraph.pas 905_net_ugraph_formplot.pas 903_microtonal_csound.TXT 905_rfc1213sys.pas 906_OverbyteIcsLogger.pas 907_OverbyteIcsSHA1Test1.pas 170_4gewinnt_main3.txt 880_cgiMain_server3.pas 880_psvCGI.pas 880_CGI1.exe 880_CGI1.pas 880_DrBobCGI.pas 908_Netlister.pas 909_MandelBrot.pas 909_sinewave_circle.pas 910_tictac.pas 910_tictac_form.pas 880_cgiMain_server4.pas 880_CGI1.exe 910_kh_function_plot_demo2.pas 910_kh_plot.png 910_tictactoe_form.png 910_tictac_form2.pas 911_gapfulnumbers2ibz.pas 912_Primestest_AKS_2.pas 912_TTCPBlockSocket_Tester3.txt 912_ssl_blcksock_tester.pas 729_U_BigIntTest_mX4.pas 913_al_php_runner_test.pas 913_al_web_spider_test.pas 913_ALOpenOffice_tester.pas 915_OpenOffice_API.pas 897_openoffice_ole_automation2.TXT 916_fmTraceRouteMainU.pas 914_run_javascript_471.pas 916_CGIMailerfMain.pas 917_EwbCoreTools_experimantal.pas 918_TIdDateTimeStamp_main.pas 919_uLockBox_HugeCardinalTestCases.pas 920_TURL_class_test.pas 919_uLockBox_RSA_TestCases.pas 920_TURL_class_test2.pas 920_TimeServer_TickClock.pas 919_uLockBox_Signatory_TestCasesmX471.pas 919_umfmMakeSampleKey.pas 913_al_web_spider34form_trivial.pas 913_al_web_spider34form.pas 921_object_filehandling.pas 922_u_stringlist.pas 922_u_dir.pas 922_u_c_url.pas 915_OpenOffice_API_2.pas 915_OpenOffice_API_21.pas 923_indybasicclientserverfMain.pas 924_arrays.pas 925_U_DoubletsX3_2.pas 925_U_CountPhrases.pas 925_U_CountPhrases_form.pas 925_phrasecount2.png 926_singlesamplepredict.py 927_primetrial.pas 927_Emirp.pas 927_Emirp.psb 927_Emirp2.pas 928_wave_async_parallel.pas 928_cd_catalog2.xml 929_xmlstream.pas 927_Emirp2.pas 928_wave_async_parallel.pas 928_cd_catalog2.xml 929_xmlstream.pas 930_service_tools.pas 930_service_tools2.rtf 930_service_tools2.pdf 930_service_tools2.pas 930_service_tools2.htm 931_spiralmatrix.txt 931_spiralmatrix2.txt 932_ordered_words4.txt 932_unixdict.txt 932_ordered_words4.psb 932_ordered_words42.txt 932_getgithub2.txt 932_correlation.txt 932_correlationplot2.png 932_correlation_regression.txt 932_correlation_regression_light.txt 548_STExpressions_Services2.TXT 932_getgithub22.txt 749_helloWebServer3refresh2.txt 938 xmldemo.xml 938_xmldemo_out.xml 938_xml_output.pas 937_xml_input.pas 936_md5.pas 935_Primality_by_trial_division.pas 934_datamanipulation.pas 933_draw_sphere.pas 939_soundex.pas 940_primefactors.psb 940_primefactors.pas 941_picturebox.txt 941_picturebox2.txt 942_gaussen.txt 942_gaussen_data_science.psb 942_gaussen_data_science.txt 942_statpackage.png 942_statpackage2.png 942_gauss_jordan2.pas 942_statpackage2.png 942_gaussjordan.png 942_gauss_jordan.pas 942_gaussjordan2.png 942_gauss_jordan2.pas 943_TEEChart.txt 944_Perl_Regex.txt 945_Many_Regex.psb 945_Many_Regex.txt 946_sudokuUnit1Form.pas 946_sudokuform.png 945_registrysearch_processlist.txt 945_registrysearch_processlist2.psb 945_registrysearch_processlist2.txt 947_TWinControl_Canvas.txt 948_dynamic_page_control.txt 949_setbit.txt 950_uniqueinstance.txt 950_uniqueinstance_pythonversions.pas 950_ParserUtils.pas 950_saint_source.txt 950_saint_source.psb 185_memorymax3_internet.txt 185_memorymax4_internet.txt 942_gaussen_data_science3.txt 951_dclublib.pas 952_psUFinancial.pas 952_psULib.pas 953_Res2BmpUtils.pas 953_JConvertUtils.pas 953_JTools.pas 954_jumpto_registrykey.txt 955_logregclassifier.py 956_jscript.txt 957_blobstream.txt 958_foto2webcam.png 958_webcam.txt 959_convert_temperature.txt 959_convert_temperature2.txt 960_getsounddevices.txt 960_newjapan.mp3 960_neuralbitmx.pas 960_neuralbitmx2.pas 960_neuralnetworkx.pas 960_Legendre_Gaussintegration.txt 961_URLDecoding.txt 950_saint_source2.txt 962_cookiesread.txt 963_movie_reviewd_words42.txt 963_moviereviews2csv.txt 963_moviereviewswordlist2listboxsort.txt 861_stringtokenizer2primes_moviesreview.txt 861_stringtokenizer2primes_moviesreview2.txt 751_Elevator_Simulator45.pas 363_compress_services3.txt 363_compress_services4simple.txt 964_geo_map_zoom.txt 965_RSA_IBZ_PrivatePublicKey.pas 965_RSA_IBZ_PrivatePublicKey_Form.pas 965_RSA_IBZ_PrivatePublicKey_Form2.pas 965_RSA_IBZ_PrivatePublicKey_Form3p.pas 966_U_DivideTest.pas 966_GUItester2.png 966_U_PointInSpace52_mX4Form.pas 967_U_RSADemo2.pas 967_CryptoGUItester3.png 967_CryptoGUItester4.png 967_CryptoGUItester2.png 967_CryptoGUItester1.png 967_U_RSADemo2forms.pas 968_recordobject.txt 968_recordobject2.txt 969_gapfulnumbers.txt 969_gapfulnumbers.psb 970_integrate.txt 970_integrate.psb 970_integrate_vandercorput_sequence.txt 970_U_Spellbound2mx.pas 970_U_wordladder_mX4.pas 970_U_ScrambledPiemX4.pas 970_book_portal_usecase2.png 970_U_CrossWordHelper2mX4.pas 970_skype_firewall.png 970_crosswordhelper.png 970_U_Invertedtext.uc 970_U_Invertedtext.pas 970_U_Decrypt3.pas 970_U_Decrypt3Suggest.pas 970_U_Decrypt4Forms.pas 971_CharFreqCounter.txt 971_U_DrawScrambledPie.pas 971_wordscramble2.png 971_wordscramble_forms1.png 970_U_ScrambledPiemX4Forms.pas 970_U_ScrambledPiemX4Forms2.pas 970_U_Decrypt4Forms22.pas 972_words_speclinelist_hashdemocount.txt 972_U_HashedWordCount.pas 972_json_tester.txt 972_U_HashedWordCount2.pas 972_char_counts.txt 972_primenumber_routines.txt 972_json_tester2.txt 973_RCDATA_resource_export.txt 973_RCDATA_resource_export64.txt 974_systemsdiagram_prepare.pas 470_U_ScrollingLEDs3mX4_21.pas 974_64bit_Routines.txt 975_facofinteger.txt 975_facofinteger2.txt 975_U_PrimeFactors1.pas 975_facofinteger2.psb 975_U_PrimeFactors2.pas 975_U_PrimeFactors21.pas 975_euler_pot.txt 975_euler_pot2.txt 975_euler_pot2.psb 602_multilang_game2ball.txt 602_multilang_game2.txt 602_multilang_gameball.txt 976_stripchars.txt 977_Rosetta_Dijkstra_Console.txt 977_Rosetta_Dijkstra_Console.htm 978_ALHttpclient_cookie.txt 978_wininet_universaldownload.txt 979_U_ResponseStats3.pas 979_U_DensityPlot.pas 979_UDFFRegistry.pas 979_U_ReactionTimes4.pas 979_testdetail.rsd 980_Chart_DensityPlot.pas 980_testdetail.rsd 980_U_TelephoneWords.pas 980_telephone-keypad-letters.jpg 980_telephonewords.png 980_U_TelephoneWords2.rtf 980_U_TelephoneWords2.pas 980_U_TelephoneWords2.htm 980_U_TelephoneWords2.psb 980_U_TelephoneWords21.pas 980_telephonewords21.png 980_U_TelephoneWords22.pas 980_Chart_DensityPlot2.pas 981_tesseractutils.pas 982_win_graphviz.txt 983_Average_loop_length.txt 984_Drawaclock_computergraphic.txt 984_Drawaclock_computergraphic.psb RXMisc.pas 985_nist_regression_eval.pas 985_nist.dat 985_sha1_impl.txt 985_open_subtitles.txt 985_regex_subtitles.txt 985_sha1_impl2.txt 985_sha1_impl21.txt 985_sha1_impl21.psb 985_missing_permutation.txt 985_missing_permutation2.txt 986_wiwin32.txt 986_findallfiles.txt detector21_wdef.py detector_jupyter.ipynb objectdetector3.ipynb hoppenstedtstwinwiz_out2.jpg twinwiz_out2.jpg 987_shell32_operation.txt 987_shell32_file_operations.txt 988_anti_aliasing.txt 989_paintbox.txt 990_ADO_Connection.txt 990_maxbase3.mdb 990_GUI_ADO_Output.png 989_paintbox.png 990_ADO_Connection_Create_DB.txt 990_SQL_Workbench_ADOCreate_Output.png 990_ADO_Connection_Create_DB2.txt 990_maxbase4runtimedb6.mdb 990_metadefender_API.txt 986_findallfiles_metadefender.txt 990_metadefender_API_2.txt 990_ADO_Connection_Create_DB21.txt 990_httpsend.png 990_httpsend2.png 990_httpsend.pac 990_metadefender_API_21.txt 990_winhttprequest_API_51.txt 990_httprequest_API.txt 991_oma_chartregression2.py 991_python_oma_svr.txt 991_python_oma_svr21.txt 991_python_oma_svr2.txt 991_oma_charts_market_btc_150y.png 991_python_oma_svr21integrate.txt 840_RungeKuttaTest.exe 840_URungeKutta4test2.pas 991_python_oma_svr21integrate_dotnetcore.txt 991_pyoma_svr22integrate_dotnetcore2.txt 992_detector21_wget_integrate.txt 992_detector21_wget_integrate.htm 992_detector21_wget_integrate2.rtf 992_detector21_wget_integrate2.txt 992_detector21_wget_integrate2.htm 993_perceptron_graph2.png 993_perceptron_form.txt 993_perceptron_graph.png 993_perceptron_form2.txt 993_perceptron_form2.psb 994_Find_URI_in_text.txt 995_RunLengthEncoding.txt 995_RunLengthEncoding.psb 995_RunLengthEncoding_Pascal.txt 996_Precision_Functions.txt 997_Base64_decode_data.txt 998_string_has_all_unique_characters.txt 998_string_has_all_unique_characters.psb 998_weatherapp474_forecast2.txt weatherapp474.txt 999_word_frequency.txt 999_word_frequency2.txt 999_synedit_codecompletion.txt 999_RotImg.pas 1000_earth_rotation.txt 1000_GraphicsMathLibrary.PAS 1000_coffeemax.bmp 1000_earth_rotation3d.txt 1000_3DLabScreen.txt 1000_GraphicsMathLibrary_Pantograph.PAS 961_URLDecoding_indyresponse_WMI_Info.txt 1000_graph2.pas 1000_GenomeLibrary.pas 1000_Coordinates222.txt 1000_chr01_GEN_sequence.txt 1000_Coordinates_Gen.ods 1000_JVCL_Chart_Demo.PAS 1000_JVCL_Chart_Demo2.PAS 1000_GraphicsMathLibrary_PantographF.PAS 1000_JVCL_Chart_Demo2Form.PAS 1001_entropy_test.txt 1001_entropy_test2.txt 1001_entropy_test21.txt 1002_protein_translation.txt 1002_protein_translation2.txt 1000_sphere_rotation3d.txt 1000_sphere_rotation3direct.txt 1000_Sphere_big.png 1000_sphere_sourceforge2.png 1000_sphere_sourceforge.png 1000_under_overfit.png 1000_Sphere_small.png 1000_Sphere_4poles.png 1000_sphere_sourceforge.txt 1000_sphere_sourceforge2.txt 1000_Nap.bmp 1003_molecules.txt 1003_molecules1_2.txt 1003_molecules1_3.txt 1003_molecules1_4.txt 1003bellsound.wav 1003doorbell.wav 1003templebell.wav 1003_sound_molecules.png 1003_molecules1_5.txt 1004_wordwheel.txt 1005_drawsphere_ascii.txt 1006_write_PPM.txt 1006_write_PPM_2.txt 1006_write_PPM_2read.txt 1006_renderspherefull2.png 1006_writeSphere_PPM_2readBMP.txt 1006_writeSphere_PPM_2readBMPfix.txt 1006_writeSphere_PPM_2readBMPfix2.txt 1006spheremaxsmallout2.png 1006_writeSphere_PPM_2readBMPfix2frm.txt 1006_bitbang_spheremaxsmallout2w.png 1006_bitbang_spheremaxsmallout2r.png 1006_bitbang_spheremaxsmallout2y.png 1007_disabled_bitmap.txt 1006_manmachine.ppm 1008_Knuth_shuffle.txt 1009_with_multiple_ranges.txt 1010_ScreenPixel.txt 1010_ScreenPixel2.txt 1010_JPGClock.txt 1010_ScreenPixel2.txt 1010_ProcsVecteurs.pas 1010_U_GraphicsEffects2.pas 1010_geometer_tangent.png 1010_geometer_intersection2.png 1010_circle_tangent.png 1010_circle_point.png 1010_geometer_polygon.png 1010_U_Geometry4Forms.psb 1010_U_Geometry4Forms.pas 1010_U_Geometry4Forms.htm 1010_U_ClockAngles2.htm 1010_U_ClockAngles2.pas 1010_U_DecToFract2.pas 1011_cInternetUtils.pas 1011_flcStatistics_mX4.pas 1012_flcTimers.pas 1012_flcCharSet.pas 1012_flcBits32.pas 1010_U_DecToFract21.pas 1013_saint_source23tests.txt unittests4.txt 210_public_private_cryptosystem6_ibz_tuned.txt 1014_jcl_stringlist.txt 1014_jcl_stringlist2.txt 1014_jcl_stringlist21.txt 1015_Scripting_Dictionary.txt 1015_Scripting_Dictionary_RegEx.txt 1016_newsfeed_sentiment.py 1016_newsfeed_sentiment.htm 1016_sentiment_api2_bbc_newsfeed.txt 1016_sentiment_api2_bbc_newsfeed2.txt 1017_XmlDocRssParser.pas 1017_bbcnews.xml 1017_bbcnews2.xml 1017_XmlDocRssParser_BBCNewsDemo.pas 1017_RSSexportUnit2Webform.pas 1017_RSSWexportUnit2formSSLStream.pas 1018_Twelve_statements.txt 1018_ludic_numbers.txt 1018_Twelve_statements2.txt 1019_math_source_cap5train.pas 1019_math_source_cap5.pas 1018_Twelve_statements21.txt 1019_math_learn_tool.png 1020_perlinNoise.txt 1020_FASTA_format.txt 1020_FASTA_format2.txt 1020_Power2FirstDigits.psb 1020_Power2FirstDigits.txt 1020_TopRankPerGroup.txt 1020_ReST_Countries_API.txt 1020_CustomSort_Stringlist_Department.txt 1020_CustomSort_Stringlist.txt 1021_uCEFMiscFunctions_mX4.pas 1021_uCEFMiscFunctions_mX47.pas 1022_U_SciGraph13_mX47.pas 1022_scigraphplot.png 1023_FANN_NeuralNetworkLogTrainer.txt 1023_FANN_Alllogic2.png 1024_floydalgo.txt 1025_Deranged_anagrams.txt 1025_Deranged_anagrams2.txt 1026_SVC_BitVision.py 1026_json_automation_coviddata.txt 1026_covidtimeserie.txt 1026_json_automation_coviddata2.txt 1026_json_automation_coviddata21.txt 1026_worldwide5zoom.png 1026_worldwide5.png 1026_worldwide4.png 1026_json_automation_coviddata22.txt 1026_worldwide3.png 1026_worldwide2.png 1026_worldwide.png 1026_US_firstyear.png 1026_swiss_weeklypattern.png 1026_germany_weeklypattern.png 1026_swiss_firstwave.png 1026_jsondos_forecast2.png 1026_jsondos_forecast.png 1026_json_automation_coviddata22teechart.txt 1026_json_automation_refactor.txt 972_json_tester3.txt 1026_worldwide9_8confirmed.png 1026_json_automation_refactor2.txt 1017_RSSDatacampSSLStreamSentiment.pas 1017_RSSDatacampSSLStreamSentiment2.pas 972_json_tester31.txt 972_json_tester32.txt 1026_uJson_testeroauth_print.pas 1027_fpvutils.pas 1027_fpvectorial.jpg 1028_STRandomSystem_tester32.txt 1028_agg_math.pas 1028_JcfMiscFunctions.pas 1028_JcfUnicodeFiles.pas 1028_JcfMiscFunctions2.pas 1028_filestream4test.pas 1028_filestream5test.pas 1028_filestream4test2.pas 1030_filepilot2.txt 1030_filepilot2.psb 1030_filepilot21.txt 1030_StrUtil.pas 1030_StrUtil2.pas 1026_SVC_BitVision_MLPrimer.py 1026_SVC_BitVision_MLPrimer2.py 1031_Bitcoinaddress_validation.txt 1031_Bitcoinaddress_validation2.txt 1032_population_count.txt 1032_population_count.psb 1033_Corpus_from_Dir.py 1032_pascalcoin_validation.txt 1034_tamath.pas 1035_asserts_safe.pas 1034_tamath_safe.pas m85_covid6_worldwide_192.png 1035_covidapp.txt 1035_covidapp3.txt 1035_covidapp3.htm 652_graph3Dspiral.pas 652_graph3Dspiral2.pas 1036_p4d_routines.txt 1037_bufferoverflow_tester.txt 1038_FileReplaceString.txt 1035_covidapp31.txt covidapp31.psb 1039_pcatest.pas 1039_pcatest2.pas 1039_pcatest3.pas 1039_match.pas 1039_roman.pas 1036_p4d_routines2.txt 1016_newsfeed_sentiment_integrate2.py 1016_newsfeed_sentiment_integrate2.txt 1016_newsfeed_sentiment_integrate2.htm 1040_htmlhelper.pas 1041_signproof_tester.txt 1042_math_mX4.txt 1042_superpermutation_minim.txt 1043_weatherconsole_mX4.txt 1034_weather_report_py.png 1034_Bern_0pq_single.png weatherbox.txt 1044_SimpMath.pas 1045_XMLTreeview2.png 1045_testxmlreaderunitmx47.pas xmldemo.txt 1045_testxmlreaderunitmx47.psb 1045_semaphorgrids.pas 1045_testxmlreaderunitmx475.pas weatherapp475.txt 1045_testxmlreaderunitmx47520.pas 1046_openweather_integrate.txt openweather.txt 1046_openweather_P4D_2.png 1046_openweather_integrate2.txt 1046_JclTimeZones.pas 763_google_rest_api_json2.txt 1047_microtonal_tomath_mX4.txt 1048_uCommonFunctions.pas 1047_microtonal_tomath_mX4_2.txt 100_weather_australia_secure21.txt 1049_InetUtils_Callback.TXT 336_digiclock3resource.txt 1050_saint_Pythonengine.txt 1050_saint_Pythonengine2.txt 1050_pydemo2.txt 1050_pydemo21.txt 974_64bit_Routines2.txt 1050_pydemo_51.txt 1051_semaphorgrid.txt 778_advapi32_dll_SHA512_plus.txt 778_advapi32_dll_SHA512_plusRefactor.txt 1052_delphi_arduino21.png 1052_delphi_arduino2.txt 1052_delphi_arduino.txt 1052_delphi_arduino2.png 1052_OoMiscpas2.txt 1052_delphi_arduino3.txt 1052_delphi_arduino31_2.png 1052_delphi_arduino31.txt 1052_delphi_arduino31.png 1052_delphi_arduino32.ini 1052_delphi_arduino32.txt 1052_bodmas.txt 1050pytest21_5powershttpserve.txt 1050_pydemo_5_powerliners.txt 1050_pydemo_5_powerliners23.txt 1052_OoMiscpas2PyHTTPSServer2LAB.txt 1052_OoMiscpas2output.txt 1052_pyhttpserver_integrate22.py 1050_pydemo_10_pythontips.txt 1053_U_TimeZoneDemo2.pas 1054_U_SoundGen_mcisendstring31.pas 1054_U_SoundGen31.pas 1055_WaveStorage.pas 1054_U_SoundGen_mcisendstring32.pas 1055_U_GridWordHighlight.pas 1055_U_IntListtest.pas 1055_tintlistdemo2.png 1055_tintlistdemo.png 1055_U_IntListtest.psb 1052_pydemo_pythonversion.txt 1052_pydemo_pythonversion2.txt 1056_neuralvolume_routines.pas 1019_math_source_cap5_pulse.pas 1057_pydemo_7_pyIO.txt 1057_pydemo_7_pyIO.psb 1058_Arduino.pas 1060_pypas_demo10.txt 1060_pypas_demo10.psb 1060_pypas_demo10.htm 1059_pypas_demo11.psb 1059_pypas_demo11.htm 1059_pypas_demo11.txt 1059_pydemo11tester.png 1060_arduinoUnit1.pas 1061neuraldatasets_pretester.pas 1062_utils.py 1062_3DCellularUnit1.pas 1061_gameoflifeUNIT1.PAS 1062_intervallunit.txt game of life : maxform1.gameoflife(self); 1062_intervallunit2.txt 1062_neuralnet_vectors.txt 87_1062_neuraltrainer.png 1063_vector_lists.txt 1062_neuralnet_vectors2.txt 1064_vectorclassroutines.txt 1064_httpd24.pas httpd24.pas 1065_neuralnetwork_CAI.txt 1065_neuralnetwork_CAI_2.txt 1066_KMeans_tester.txt 1066_neuralvolume_tester.txt 1067_py_planet_moon.txt 1052_pydemo_pythonversion31.txt 1068_vector_matrix_tester.txt 1068_vector_matrix_tester2.txt 1068_floattostr_tester.txt 1063_vector_lists3.txt 1063_array_lists3.txt 1070_U_CardProbability2.pas 1070_U_PerfectDeck.pas 1070_tshirt_prime.txt 1070_tprime_tshirt.png 1069_pydemo30_performance.txt 1070_U_Keno2mX4.pas 1065_neuralnetwork_CAI_2_data.txt 1065__CAI_2_SimpleImageClassifier.txt 1066_KMeans_tester2.txt 1065__CAI_2_SimpleImageClassifier2.txt 1070_U_Keno2mX4Form.pas 1071_Newadds_V47590_Modules.pas 1070_U_Keno2mX4_Forms2.pas 1070_tshirt_prime2_tutor88.txt 1070_U_PrimesFromDigits.pas 1071_Newadds_V47590_Modules.pas 1071_Newadds_V47590_Modules2.pas 1065__CAI_2_SiImageClassifier21_Tutor_89_test3.txt 1072_captcha.txt 1072_captcha2.txt weatherapp476.txt 1073__CAI_3_LearnerClassifier22_Tutor_89_2.txt 1074__CAI_3_visualautoencoder.txt 1074__CAI_3_visualautoencoder2.txt 1071_Newadds_V47610_Modules3.pas 1074_U_Systools_mX4Similarity.pas 1074_U_Systools_mX4Similarity2.pas 1075_primes30_performance5.txt 1065__CAI_2_SimpleImageClassifier21_EKON_blogstarter.txt 1076_CAI_Ugradientascent.pas 1076_CAI_UVisualGAN2.pas 1076_CAI_UVisualGAN2tester_MNIST.pas 1076_CAI_UVisualGAN2tester_MNIST2.pas 1077_U_Catapult4.pas 1077_U_Catapult41.pas 1078_create_DB.pas 1077_U_Catapult41forms.pas 1077_U_Catapult42forms.pas 1077_U_Catapult43forms.pas 1077_U_metronome2.pas 1078_bell_numbers.pas 1079_Fregan.pas 1079_Test.txt 1077_U_Catapult43forms2.pas 1077_U_metronome21.pas 1080_trend.pas 1080_hist.txt 1080_hist.exe 1080_histdatgui.png 1080_tprob.pas 1080_fmTraceRouteMainU.pas 1080_VCLScanner2021.txt 1080_VCLScanner2021.uc 1080_syndat_concept.png 1081_syndat_pydemo32_2.txt 1081_syndat_pydemo32_2.psb 781u_LatLonDistanceTestmX21.pas 1082_Idiomatically.txt 1082_ToolsUtils.pas 1082_ToolsUtils2.pas 1071_Newadds_V47610_Modules42.pas 1083_Deltics_TCommandline.pas 1084_SeAES256_explain.pas 1084_DelticsStrUtils.pas 602_moonbug25.txt 1085_kmemo_dictionary.pas 1085_kmemo_dictionary2taunumber.pas 1086_bigdecimals2.pas 1086_bigdecimals2python.pas 1086_bigdecimals2python2.pas 1087_HQ9.pas 1088__CAI_3_Hypotenuse.txt 1088__CAI_3_DenseNetBCL40.txt 1088__CAI_3_DenseNetBCL40_2.txt 1050_pydemo_5_powerliners_def_2.txt 1089_RSA_Example_crypto.htm 1089_RSA_Example_crypto.txt 1090_simpleneuralwebserver.txt 1089_RSA_Example_crypto_Herdt.txt 1090_simple_neuralwebserver2.txt 1090_uarduinoformworkspace.pas 1090_uformlamwinosettingspaths.pas 1090_Fractran_test.txt 1090_Fractran_test_Python.txt 1090_U_Splines.pas 1090_U_Numbrix2.pas 1090_numbrix_GUI.png 1090_Numbrix2.txt 1090_U_Numbrix21.pas 1090_numbrix_GUI_24.png 1090_Numbrix2data.txt 1091_U_SpringMass21.pas 1091_springmassdemo.png 1091_U_SpringMass2.pas 1092_Rollercoaster_Simulator.pas 1092_Rollercoaster_Simulator21.pas 1092_Rollercoaster_Simulator21.htm 1093_XMLUtils_Tutor92tester.txt 1094_pydemo13tutor_PAS2JS.txt 1095_faker_tutor_PAS2JS.txt 1096_MainFormSVG_2.pas 1096_VCL4Python.pas 1096_P4D_VCL4Python.pas 1096_MainFormSVG_2test4Python.pas 1093_CAI_IdentityShortcutConnection2.pas 1096_pychats_demo4VCL4Python.png 1096_standalonepyvclexe.png 1096_MainFormSVG_2test4Python_VCL4Python.pas 1096_MainFormSVG_2test4Python_VCL4Python2.pas 1100_901_turtle_purple_circle_EKON23.txt 1100_VectorProduct.pas 1100_U_Compass.pas 1100_U_Compass2.pas 1097_Pierpont_primes.pas 1097_Pierpont_primes2.pas 1098_image_noise.pas 1098_jaro_similarity.txt 1098_image_noise2xmlnodes.pas 1099_rest_localdb.pas 1001_ESP32_Loop.TXT 1069_pydemo30_matrixperformance4.txt 1102_matrixmultiplication4.txt 781u_LatLonDistanceTestmX22.pas 1102_matrixmultiplication41.txt 1101_PJConsole.txt 1101_PJConsole1.txt 1103_DudsCommonUtils.pas 1104_TNeuronClass.txt 1104_TNeuronClass2.txt 281_picturepuzzle31res.txt 1101_PJConsole12.txt 1101_PJConsoleApp_Echoer.png Echoer.exe 1101_PJConsole12Json.txt 1105_HTML_Builder.txt 1105_HTML_Builder2DB.txt 1101_PJConsoleApp_Echoer2.png 1101_PJConsole1ex2.txt 1101_PJConsole1_demo9.txt 1105_HTML_Builder2Modules.txt 1106_OnlineRandomizer.pas 1107_Iris_Console.pas 1107_bezdekIris.fann.data.txt 1107_Iris_Console2.pas 1106_OnlineRandomizer_Random_Main.pas 752_U_AstroDemo_mX4_41.pas 752_astronomy_moon23.png 1108_CAI_Geocoding.pas 1108_geocoding_api.png 1109_winapidownload.pas 1110_JSONObject.txt 1111_lifeappearance_Unit1.pas 1111_uvisualcifar10animalmachine.pas 1111_UVPlan1test_QR_Code.pas 1111_URSOM_Network.pas 1071_Newadds_V47610_Modules47.pas 100U_CoinSearch.pas 1012_UTicTacToeCount.pas 1012_delphi-utils.pas 1108_CAI_GeocodingTWininetAPI.pas 1108_CAI_GeocodingTWininetAPI_only.pas 1112_lastUtils.pas 1112_lastUtils2.pas 100U_CoinSearch2.pas 1111_machineanimal.png 1111_animalmachine_pictures12.pas 1011_U_CoinSearc_form.pas 1011_graphnodes_solution.png 1011_U_CoinSearch_form.pas 1011_graphnodes_solution1.png 1112_U_Wordgrid.pas 1112_U_Wordgrid.htm 1112_wordgrid.png 1112_wordgrid1.png 1112_full.dic 1113_composition_tree.pas 1113_composition_tree1.pas 1071_Newadds_V47610_Modules47tester.pas ubuntu16_session_maxbox4_cloud2022_full2.png 1114_polynomial_synthetic_division.txt 1115_Wireworld.txt 1115_unitKWKalender.pas 1115_scriptDatenbankdiagnose.pas 1088__CAI_3_supersimplecorrelation.txt 1088__CAI_3_supersimplehyperbolictangent.txt 1115_gecodingapi_tee_helvetia_json.txt 1116_U_ChallengingmathTeasers.pas 1117_sunpos.png 1117_sunpos_bern.png 1117_U_SolarPos2Bern.pas 1117_U_SolarPos2.pas 1117_sunpos_bern2.png 1117_U_SolarPos2Bern2.pas 1118_Cumulative_standard_deviations.pas 1118_Cumulative_standard_deviations.htm 1108_CAI_GeocodingTWininetAPI_Maponly.pas 1117_StAstro.pas 1119_FloatToBinTests.pas 1120_Department_numbers.pas 93_1108_CAI_GeocodingTWininetAPI_Maponly.pas.png 1120_DammAlgorithm.pas 1120_DammAlgorithm12.pas sentiment3.txt, sentiment4.txt 1121_sentiment_api3_bbc_newsfeed4rec.txt 1121_sentiment_api3_bbc_newsfeed4.txt 1121_sentiment_api3_bbc_newsfeed4rec2.txt 1122umain.pas 1121_sentiment_api3_bbc_newsfeed4rec21.rtf 1121_sentiment_api3_bbc_newsfeed4rec21.txt 1122_langtranslator.txt 1122_langtranslator1.txt 1123_IntegerArraySort.pas 1123_MATHBOX.PAS 1123_CODEWIZU.PAS 1123_CODEWIZU_2.PAS 1124_CODEReflection.PAS 1125_Forward_Difference.pas 1124_CODEReflection1.PAS 1125_unitGlobal.pas 1125_unitGlobal1.pas 1125_unitGlobal12.pas 1125_unitGlobal13.pas 1100_U_Compass1_deltics_sysutils.pas 1126_Projectile_Physics.pas 1126_Projectile_Physics2.pas 1126_Projectile_Physics21.pas 1126_projectile2.png 1126_fetchapi1.png 1126_fetch_api1.txt 727_mondrian_next.png 727_mondrian_next21.png 727_Canvas_Artist_mondrian_gen.TXT 727_Canvas_Artist_mondrian_gen2.TXT 1127_RegistryWatchDog.pas 727_Canvas_Artist_mondrian_gen21.TXT 1128_fpvutils.pas 1128_mean_angle1.txt 1129_urlscan_api_json.txt 1129_urlscan_api_json1.txt 1130_Scanner_gen21.TXT 1130_mondrian_QRCode_P.png 1130_mondrian_QRCode_P2.png 1130_Scanner_QR_21.TXT 1130_urlscan_api_json1_geoip.txt 1130_urlscan_api_json1_geoip1.txt 1131_rosetta_numerical_integration.txt 1132_rosetta_Farey_sequence.txt 1133_klib_utilities.txt 1133_klib_utilities2.txt 1134_syn_dat_pop.txt 1134_Cifar10Resize.pas 1134_Cifar10Resize_win_lessthread.pas 1135_Cifar10SeparableConvolution.pas 1135_Cifar10SeparableConvolution_50.pas 1136_hamming_numbers1.txt 1136_Chowla_numbers1.txt 1135_uvisualcifar10test_mX4_1.psb 1135_visualCNN5.png 1135_uvisualcifar10test_mX4_1.pas SimpleSeparableImageClassifier124_50_21.nn 1137_gauss_legendre.pas 1138_ocr_tesseract.txt 1138_testmap2.png 1138_bmp.bmp 1139_pentagram.txt 1140_price_fraction.txt 1140_Statistics.pas 1140_Statistics1.pas 1140_USolarSystem.pas 1141_adafruit_tempsensor21.txt 1140_PlanetData.pas 1140_Om_AstronomicalAlgorithms.pas 1140_doubleVector3D.pas 1140_quaternion_3D.pas 1141_fast_sin.pas 1142_anti_primes.pas 1139_pentagram1.txt 1142_list_virtualconstructors_test.pas 1142_setbit_comparison.pas 1142_list_collections_pydemo42.txt 1140_doubleVector3D_collection.pas 1143_KLibVC_Redist.pas 1143_KLibVC_Redist2.pas 1071_Newadds_V47610_Modules48.pas 1071_Newadds_V47610_Modules49.pas 1145_271_closures_study_op_sys_tutor97.txt 1142_list_collections_pydemo42.txt 1144_AzuliaUtils_mX4.pas 1145_271_closures_study_op_sys_tutor97_1.txt 1146_filesize_distribution.txt 1147_practicalnumbers_2.txt 1148_julia_set.txt 1148_julia_set.png 1148_julia-set.bmp 1149_sum_to_100.txt 1150_DigitalRoot.txt 1150_pydemo42httpheader.txt 1150_pydemo42httpheader1.txt 1150_Partition_function_P.txt 1150_Partition_function_P1.txt 1151_rapid_api_proto.txt 1151_sentiment_api4simple.txt 1151_sentiment_api4simple1.txt 1151_rapid_api_proto1.txt 1150_pydemo42httpheader2openssl.txt 1152_dos_output_callback.txt 629_Word_FORMULA2super.PAS 1151_rapid_api_proto_googleapi12.txt 1152_shell_composer.txt 1153_space_invaders3.txt 170_4gewinnt_main21.txt 170_4gewinnt_main21.htm 170_4gewinnt_main31.txt 1142_list_collections_pydemo42_1.txt 1154_energy_api_agsi.txt 1154_energy_api_agsi_plot.txt 1154_energy_api_agsi_plot1.txt 1154_energy_api_agsi_plot12.txt 1154_energy_api_agsi_plot13.txt 1155_census_data.txt 1155_census_data_graph.txt 1155_Utils47620.pas 1155_dynmatrix47620.pas 1156_SearchUtils.pas 1157_wininet_internetreadfile_dll.pas 1058_teetest_screen21map.TXT 1158_resourceloader2.pas 1159_uvisualgan_mX4.pas 1159_SearchUtils_Searchcode.pas 1159_uvisualgan_mX4_1.pas 1160_google_safebrowsingapi12.txt 1161_wmiserv_commandlinelist.txt 1161_workshop_WMI_Proc32.png 1162_TIXML.TXT 1161_templatec_hack1_meterpreter.txt 1063_cryptosystem2testcrypto3.txt 1161_windefend_check.txt 1163_tcptable_dll.txt 845_TestPermutations3.txt 1164_filelessStream.txt 1164_filelessStream2.txt 1165_UAC_enabled.txt 1166_farey_sequence.txt 1167_vcluster_py.txt 1167_penguins_data_graphtester_py.txt 1168_teechart_demo3.txt 1168_teechart_demo31.txt 1169_test_postrequest2.txt 1169_test_postrequest3.txt 1169_test_postrequest2.txt 1169_test_postrequest3.txt 1169_resourceloader2postmethod.pas 1168_teechart_demo31.txt 1170_UUtils_mX4.pas 1071_Newadds_V47610_Modules50.pas 1170_UUtils_mX4_tester2.pas 1170_uRegistry.pas 1170_wdc_GetRemoteFileSize.txt 1170_wdc_GetRemoteFileSize2.txt 965_RSA_IBZ_PrivatePublicKey_Form4p_eng.pas 965_RSA2_4.png 1154_energy_api_agsi_plot14wininet.txt 1154_energy_api_agsi_plot14wininet2.txt 1171_powershell_dos_output.txt 1171_ict_cryptohack.txt 534_arduino_cockpit3radar.TXT 965_RSA_IBZ_PrivatePublicKey_Form4p_eng.pas 1172_wininet_intftester.png 1172_ict_wininet_interface.txt 1172_ict_wininet_interface.psb 1173_quora_mathquest_utilities.txt 1174_mx4_cd_player2.jpg 1174_cdmain_form.txt 1174_cdmain.txt 1174_multimedia_cdplayer_docu.pdf 1174_mx4_cd_player2_1.jpg 1174_cdmain_form2.txt 1175_DRAG1.PAS 1174_cdmain_form21.txt 1050_pydemo35_signal.txt 1050_pydemo35_4signals.png 1176_APILayer_Demo.txt 1176_APILayerDemo.png 1175_DRAG1_Game.PAS 1177_rate_service1.txt 1177_increment_numerical_string.txt 1178_student_t-test.txt 1179_interactive_jupyter.txt 1179_interact_jupyter_notebook1.png 1179_interact_jupyter_notebook.png 1180_restcountries_API.txt 1180_restcountries_API_2.txt 1180_restcountries_API_2.htm 1180_jsonstruct_tutor104.png 1180_osm_map_tutor104.jpg 1180_restcountries_API_21.txt 1180_jsonstruct_validator104.png 1181_MyFunc___.pas 1181_MyFunc___1.pas 1182_biglog_numeric_string.txt 1182_bigfunctions_v47620.txt 1182_UCBUtils.pas 1071_Newadds_V47620_Modules90.pas 1182_UCBUtils1.pas 1154_energy_api_agsi_plot14_wininet2stacked.txt 1154_agsi_plot14stacked.png geocoding3.txt geocoding4.txt geocoding4.htm 1183_word_fractal.txt 1183_word_fractal.htm 1183_word_fractal1.txt 1183_WordFractalyellow.png 1183_WordFractalblue.png 1183_word_fractal12pi.txt 1183_word_fractal2turtle.txt 1183_word_fiboturtle.txt 1183_word_fiboturtle2prime.txt 1183_word_fiboturtle_AB.txt 1183_word_fiboturtle_AB_Animation.txt 1135_classify_cifar10images2tutor4.pas 1135_classify_cifar10images2laz.pas 1135_classifiergui_tutor105.png 1135_classify_cifar10images1_5.psb 1135_classify_cifar10images1_5.pas 1184_tau_function.txt 1185_SumOfASeries.txt 1186_Casting_out_nines.txt 1187_format_basics.txt 1188_fpsmeter.pas 1188_KOLNKDir.pas 1188_KOL_Routines.pas 1188_KOL_Routines2.pas 667_URobo2EKON_FUN_Tracking2mapbox5.pas 667_roboline_outdoor_layer5.bmp 1189_Distance_and_Bearing.pas 1189_Distance_and_Bearing.psb 1189_airports.dat 1189_Distance_and_Bearing_Bern.htm 1189_Distance_and_Bearing_Sydney.pas 1189_Distance_and_Bearing1.pas 1189_Distance_and_Bearing_Bern.pas 1189_heading_bern_neuchatel_airport.jpg 1189_heading_bern_belp.jpg 1189_Distance_and_Bearing_Bordcomputer.psb 1189_Distance_and_Bearing_Bordcomputer.pas 1189_Distance_and_Bearing_Bordcomputer2.pas 1190_Continued_fraction.txt teeposter_model_20230227_150518.jpg teeposter_20230227_115631.jpg 1190_Arithmetic_Numbers.txt 1032_population_count1.txt 1032_population_count1_unittest.txt 1191_popcnt4.txt 1192_semiprimes.pas 1193_13th_root.txt 1194_ascendingprimes_py.txt 1194_ascendingprimes.txt 1194_ascendingprimes_py2.txt 1194_ascendingprimes_py2_lin3.txt 1195_sourceforge_download_python3_lin3.txt 1090_usuperesolutionapp2.pas 1196_APILayer_Demo1UnicodeEscape.txt 1197_Biorhythmus_Go.txt 1197_Biorhythm.png 1197_Biorhythmus_Go_Graph.txt 1197_Biorhythm2.png 1197_Biorhythmus_Go_Graph2.txt 1197_Biorhythm21.png 1198_pacmanMAIN.PAS 1198_pacmanMAIN1.PAS 1198_pacmanMAIN12.PAS 1198_pacmanMAIN12.htm pacmanmaxbox12.png Pac_Man_Package.zip 1200_GCD.txt 1199_funtest.txt 1198_pacmanMAIN13.PAS 1200_pyheart2.png 1200_GCD1.txt 1200_pyheart21.png 1201_Prisoners100.txt 1201_Prisoners100.psb 1202_Google_Translate_API2.txt 1202_chatgpt_API3.txt 1202_chatgpt_API31.txt 1202_chatgpt_playground.png 1202_chatgpt_maxboxscript.png 1202_chatgpt_API32.txt 1202_chatgpt_API33.txt 1202_chatgpt_API34.txt 1202_chatgpt_API35.txt maxbox4tutor110demos.zip 1202_TRestClient_pac.png 1202_chatgpt_API37.txt 1203_multiplicationtable.txt 1203_multiplicationtable1.txt Parent folder unit uPSI_RestClient.pas 1202_chatgpt_API37tester.txt 1202_chatgpt32.txt 1203_multiplicationtable1.txt 1204_isbn_checksum.txt 1205_GpTimezone.pas 1206_GpString_mX4.pas 1206_geocoding4tripadvisor.txt 1206_geocoding4tripadvisor.psb 1207_cryptosystem2test_bigpi.txt 1207_cryptosystem2test_bigpi1.txt 1207_cryptosystem2test_bigpi2euler12.txt 1207_bigeuler_bigpi2.png 1207_bigeuler_bigpi.png 1207_bigeuler_only.txt weatherapp477.htm weatherapp477.txt 1208_factorial_primes.txt 1202_chatgpt_API37tester_goldbach.txt 1202_chatgpt32.txt 1209_MAC_vendor_lookup.txt 1210_halt_and_catch_fire.txt 1044_queens_performer3_81.txt 1210_cuberoot.txt 1044_queens_performer3_81_py.txt 1210_jvprocess_test.txt 1211_workdaysAPI.txt 1202_chatgpt32_prompting.txt 1208_factorial_primes1queens_heatmap.txt 1212_utf8getnextchar.txt 1212_pas2jsutils.pas 1212_FPCTypes.pas 1071_Newadds_V47650_Modules100.pas 1212_breakoutUnit1.pas 1212_breakoutUnit12.pas 1213_breakoutUnit_main_0_3.pas naples3mX4mapbox_weatherzoom4.png 1214_java_process_run2.txt 1214_java_process_run.txt 1215_uFrm_PersonList.pas 1215_uFrm_PersonList2.pas 1216_JNIUtils.pas.txt 1216_JNIUtils2.pas.txt 1217_count_coin.txt 1218_TProcess2.txt 1198_pacmanMAIN14_2.PAS 1214_java_process_run22.txt 1219_pydemo47_GUIAutomation.txt 1219_pydemo47_GUIAutomation2.txt 1220_GUIUtils.pas 1220_GUIUtils2.pas 1221_apistrings_demo.pas 1221_apiservices_demo.pas 1221_API_math.pas 1221_API_ledgrid.pas 1221_API_taudio_Unit1.pas 1221_API_taudio_Unit12.pas 1222_pydemo26_EKON27_qrcode.txt 1223_API_graphics_tester.txt 1210_cuberoot_mx47650_IV.txt 1224_bearings.pas 1225_hhAvALT.pas 1226_median_filter_cyclopsnumber.pas 646_pi_evil21.TXT 1227_cuboid.txt 1228_Largest_number_divisible_by_its_digits.txt 1229_sylvester_sequence.txt 1228_Largest_number_divisible_by_its_digits2.txt 1230_Iterated_digits_squaring.txt 1230_pyperform.pas 1230_keywaiter.txt 1215_uFrm_PersonListtester2.pas 1231_AmicablePairs.pas 1230_Iterated_digits_squaring2.txt 1215_uFrm_PersonListtester21.pas 1230_pyperform1.pas 1230_pyperform12.pas 1232_U_Digittree2.pas 1232_U_Digittree21.pas 1232_digittree_gui21solutionpng.png 1232_digittree_gui2box.png 1233_U_Expressions2002.pas 1234_UVector.pas 1234_UReader.pas 1234_PoolingLayerUnit.pas 1234_NormalLayerUnit.pas 1234_LConv2DLayerUnit.pas 1234_LSTMLayerUnit.pas 1234_UNeuralNetwork.pas 1234_NeuralNetwork2.pas 1234_UNeuralNetwork_withGUI.pas 1234_NeuralNetwork2_xor_test.pas 1234_UNeuralNetwork_withGUI_1.pas 1234_NeuralNetwork2_XOR_test1.pas 1234_NeuralNetwork2_XOR_test12.pas 1234_neuralnetwork2_guide_52692_22998.pdf 1234_Ressourcen.zip 1234_UNeuralNetwork_withGUI_12.pas 1234_nn_xor_graph22.png 1234_NeuralNetwork2_XOR_sampleEU.pas 1234_NeuralNetwork2_XOR_sampleEU1.pas 1235_loopover_arrays.pas 1236_FiveWeekends.pas 1237_webscrap.pas 1237_webscrap_passtest.pas 1238_create_process_etl.txt 1239_UtilsU_keywords.pas 1239_UtilsU_keywords1.pas 1240_UtilsU_keywords2_Jordan_Polya_Num.pas 1241_pixabay_api.pas 1242_SynCrossPlatformREST_mX4.pas 1243_U_Cannonballs3.pas 1234_cannonball1.png 1243_U_Cannonballs31.pas 1243_U_Cannonballs32.pas 1235_tetris.js 1235_tetris_signed.js 1235_tetris2.html 1235_Weatherboxsep2023_EKON27_API_JS.txt 1235_Weatherboxsep2023_EKON27_API_JS_Integrate.txt 1235_graph2.html 1033_signtool_simplebatch_solution_mX4Cert_second.txt 1244_dateutils.pas 1245_strutils.pas 1246_21game.pas 1246_21game1.pas 1246_21game12.pas 1241_pixabay_api_tester1.pas 1241_pageproducer1.png 1241_pageproducer.png 1247_Dispenser_mX4_Form.pas 1247_Dispenser_mX4_Form1.pas 1247_Dispenser_mX4_Form12.pas 1247_Dispenser_mX4_Form12.htm 1241_pixabay_api_tester12.pas 1248_munchhausennumbers.pas 1248_munchhausennumbers_py.pas 1249_RotateASquare64_32.txt 1250_newtemplate64_32python.txt 1250_newtemplate64_32python64.txt 1019_math_source_cap5train64.pas 856_SnakeAmX42_tab64.pas 1251_ledUnit1.pas 1251_LedGridUnit2_1.pas 1222_pydemo26_EKON27_qrcode64_w11_311.txt 1241_pixabay_api_tester12_64_test4.pas 393_QRCode5_64TXT_21.TXT 393_QRCode5_64TXT_211.TXT 1252_Iterated_digits_squaring.txt 1252_Iterated_digits_squaring21.txt 1252_Iterated_digits_squaring21_Py.txt 1252_Iterated_digits_squaring211_Py.txt 1252_Iterated_digits_squaring211_Py.htm 1190_Continued_fraction64_python.txt 1190_Continued_fraction64.txt 1252_Iterated_digits_squaring211_Py2.txt 1219_pydemo47_GUIAutomation64.txt 1252_Iterated_digits_squaring211_Py21.txt 1253_Minimum_multiple_of_m_hybridcode.txt 1254_DelphiPythonScreenshot 2023-12-19 205335.png 1254_Python_Delphi_compare_hybridcode2.txt 1253_Minimum_multiple_of_m_hybridcode2.txt 1251_LedGridUnit2_1_dobble.pas 1251_LedGridUnit2_1_dobble_python.pas 1251_LedGridUnit2_1_dobble_python1.pas 1251_dobble_generator12.png 1251_LedGridUnit2_1_dobble_python1UC2211.txt 1255_PyPas_supportfunctions_UC2.txt 412_Zeosutils_sha64uc.txt 1255_ucommon_generator12unicode.png 1255_PyPas_supportfunctions64_UC2common.txt pydemo13ekon25faker2_13tips_64_doubleinstall21unicode31.txt 412_Zeosutils_sha64_uc2.txt 412_Zeosutils_sha64_uc2.htm 336_digiclock5resources64_uc1.txt 336_digiclock64.png 1180_restcountries_API_21_mX5_1_test12.txt 992_detector21_wget_integrate2ict_EKON27_acer10_11.txt 1202_Google_Translate_API2_64bit_UC.txt 1256_Iterated_Perl_Regex.txt 1257_702_X509_Cert_OpenSSL_2_64_Uc.txt 1258_digitspowersum_64.txt 1295_tutor120_grapheme_edit.png 1295_tutor120_grapheme_edit2.png 1295_412_Zeosutils_sha64_uc2unicode.txt 1259_fractran64.txt 1260_perlregex64.txt 1260_perlregex_edit.png 1261_delphiperlregex64.txt 393_QRCode5_64TXT_211_7_tutor119.TXT 1262_arithmeticnumbers64_1.txt 1262_arithmeticnumbers64_1.psb 1262_arithmeticnumbers64_2.txt 1262_arithmeticnumbers64_2_Py.txt 1262_arithmeticnumbers64_2_Py.htm 393_QRCode5_64TXT_211_7_tutor119_2.htm 393_QRCode5_64TXT_211_7_tutor119_2.TXT 1263_BurrowsWheeler.txt 692_GEOimageserv_fClient33_EKON20_64.pas 692_GEO_fservermain33_EKON20_64.pas 1264_U_Pursuit_A64.pas 1264_U_Pursuit_A64_2.pas 840_URungeKutta4test2Pendulum_64.pas 252_hilbert_turtle_barnsley64.txt 1265_U_IntersectingCircles.pas 1265Intersection2024-02-02.png 1265_U_IntersectingCirclesForm.pas 1265_U_IntersectingCirclesForm2.pas 1265_Gui2_circles.png 1265_U_IntersectingCirclesForm2Piano.pas 1266_improverlist_64.txt 1266_Improver_SoundCloud.png 1267_U_WordSearch2.pas 1268_U_Dictmaint64.pas 1269_ODBCConnect64_uc2unicode.txt 1269_ODBCConnect64_uc2unicode1.txt 782_U_MakeCityLocations2mX53.pas 782_citieszip_64GUImaXbox5.png 782_free-zipcode-database-abbreviated1_small.csv 782_U_MakeCityLocations2mX53_1.pas 1270_U_GameBoardsForm.pas 1270_gameboards_64GUI.png 1271_webdown_demo_fMain.pas 1270_Screenshot 2024-02-19185235.png 1272_indy10_whois.pas 1272_u_GenerationUtilitaire.pas 1272_Arduino2_mastermind.pas 1272_Arduino2_mastermind2.pas 1273_IsNavUtils_mX5.pas 1273_IsNavUtils_mX5_websocketkit.pas 1273_navutils_googledircections2.txt 1273_google_directions.png 1273_navutils_googledircections21.txt 1273_navutils_googledircections22.txt 1273_GoogleDirForm2.pas solarpos64.txt 1274_Screenshot2024-03-06_mX5GUI.png 1274_Screenshot2024-03-06mX5Browser.png 1274_GoogleDirForm2GeocodeStreetMap.pas 1108_CAI_GeocodingTWininetAPI_Maponly64.pas 1275_uPSI_TAChartUtils.pas 1275_uPSI_TAChartUtils2.pas 1274_GoogleDirForm2GeocodeStreetMap2.pas 1274_Screenshot_directions_res.png 1274_GoogleDirForm2GeocodeStreetMap21.pas 1189_Distance_and_Bearing_Bordcomputer2_64.pas 1274_GoogleDirForm2GeocodeStreetMap21_Greek.pas 533_syncasync_demo_399180_classes_netherlandmX51080.txt 1274_Screenshot 2024-03-11143105.png 1275_betteradoDataSetmX51.txt 1275_betteradoDataSetmX51_2.txt 1275_ADOQuery_tmX51_3.txt 1251_LedGridUnit2_1_jpeg.pas 1276_OAuth_tester.pas 1071_Newadds_V51490_Modules840_64.pas 1276_OAuth_tester1.pas 1277_Geocoding6.pas 1277_Geocoding6_1.pas 1277_Geocoding6_12.pas 1275_ADOQuery_tmX51_4_datasettoCSV.txt 1277_geocode_dole_layer5.png https://www.virustotal.com/gui/file/048dae8dab0df4bc6b3f77233a3a4c8f2ca0a56517a9861bb94c2179cfdb87fe/details https://softwareschule.code.blog/2023/04/01/how-to-chat-with-gpt/ https://github.com/breitsch2/maXbox4 https://maxbox4.wordpress.com/2023/07/22/ekon-27/ 685 uPSI_ALQuickSortList; //alcinoe for list of double fast with TALDoubleList.create do begin //singlelist with CL.AddClassN(CL.FindClass('TALBaseQuickSortList'),'TALDoubleList') do begin Function IndexOf( Item : Double) : Integer'); Function IndexOfObject( AObject : TObject) : Integer'); Function Add( const Item : Double) : Integer'); Function AddObject( const Item : Double; AObject : TObject) : Integer'); Function Find( item : Double; var Index : Integer) : Boolean'); Procedure Insert( Index : Integer; const item : Double); Procedure InsertObject( Index : Integer; const item : Double; AObject : TObject); RegisterProperty('Items', 'Double Integer', iptrw); SetDefaultPropery('Items'); RegisterProperty('Objects', 'TObject Integer', iptrw); end; https://sourceforge.net/projects/maxbox/files/Examples/13_General/ http://www.softwareschule.ch/examples/signtoolbatch.txt http://www.softwareschule.ch/examples/signtoolbatch.htm https://cdn.top4download.com/img/award_120x60_pick.gif http://www.kleiner.com/boxart.htm http://max.kleiner.com/boxart.htm http://www.kleiner.ch/kleiner/boxart7.htm All 35 Articles of maXbox Pascal in Blaise Pascal Magazine! ----------------------------------------------------------- Using Examples and Sources from Magazine CatalogX Art of Coding V.31/32 5/6 2013 DLL for All V.33 QR Code Coding V.34 GEO Maps Nav V.35 3D Printing Lab V.36 RegEx Report REX V.37/38 Func Testing V.40 Arduino Coding V.45/46 Time is on my side V.48 Compute Big Numbers V.52 Code Metrics V.57 Work with WineHQ V.60 Work with Win WMI V.63 Work with Win WMI II V.64 Work MS CryptoAPI V.65 The Perceptron! V.72 No GUI Shell V.80 Machine L. with CAI V.87/88 Portable Pixmap PPM V.90 Fundamentals Lib V.91 RSS Feed of BBC News V.92 RSS Feed Sentiment V.93 JSON4Pascal V.94/95 Python4Delphi 96 Python4Delphi II 97 Python4maXbox III 98 Image Classification for Lazarus 99/100 ! Faker SynDat 101 Catapult, Coaster Simulator, VCL4Python 102 Geocoding II 103/104 CIFAR 10 Image Classifier 105 Energy_API_agsi_Plot 106 Cluster Classify 107 Penguin Data Science SVG Plot 108 Image2Text API V109 Cryptobox API RESTCountries Laz Classifier V110 Proposal for Boolean Logic Abreviation Symbol: ------------------------------------------------- 01 FALSE //Contradiction 02 AND //Conjunction x*y 03 INHIB //Inhibition x*^y 04 PRAEP //Praependence x 05 PRAE //Praesection ^x*y 06 POST //Postpendence y 07 XOR //Exclusive OR x*^y+^x*y 08 OR //Disjunction OR = x+y 09 NOR //Rejection 10 AEQ //Aequivalence x<-->y, ^x*^y+x*y 11 NEGY //YNegation ^y 12 IMPY //YImplication y-->x; x+^y 13 NEGX //Xnegation ^x 14 IMPX //XImplication x-->y; ^x+y 15 NAND //Exclusion 16 TRUE //TRUE Tautologic ---------------------------------------------------------- http://sourceforge.net/projects/maxbox/files/Examples/ http://sourceforge.net/projects/maxbox/files/Examples/ Help Online: http://www.softwareschule.ch/maxbox_functions.txt WebScript Examples: Get Web Script http://www.softwareschule.ch/examples/performer.txt; http://www.softwareschule.ch/examples/turtle.txt; http://www.softwareschule.ch/examples/SQLExport.txt; http://www.softwareschule.ch/examples/Richter.txt; http://www.softwareschule.ch/examples/checker.txt; http://www.softwareschule.ch/examples/demoscript.txt; http://www.softwareschule.ch/examples/ibzresult.txt; http://www.softwareschule.ch/examples/performindex.txt http://www.softwareschule.ch/examples/processlist.txt http://www.softwareschule.ch/examples/game.txt http://www.softwareschule.ch/examples/GEOGPS.txt http://www.softwareschule.ch/examples/turtle2.txt http://www.softwareschule.ch/examples/turtle3.txt http://www.softwareschule.ch/examples/asyncterminal.txt http://www.softwareschule.ch/examples/snowflake.txt http://www.softwareschule.ch/examples/arduinoled.txt http://www.softwareschule.ch/examples/moon2.txt http://www.softwareschule.ch/examples/cockpit.txt http://www.softwareschule.ch/examples/tartaruga.txt http://www.softwareschule.ch/examples/surprise.txt http://www.softwareschule.ch/examples/weatherapp2.txt http://www.softwareschule.ch/examples/weatherapp3.txt http://www.softwareschule.ch/examples/bigint.txt http://www.softwareschule.ch/examples/weatherapp.txt http://www.softwareschule.ch/examples/weatherapp.txt http://www.softwareschule.ch/examples/crypto.txt http://www.softwareschule.ch/examples/stack.htm http://www.softwareschule.ch/examples/fisher.htm http://www.softwareschule.ch/examples/arduinotemp.htm http://www.softwareschule.ch/examples/web.txt http://www.softwareschule.ch/examples/web3.txt http://www.softwareschule.ch/examples/web4.txt http://www.softwareschule.ch/examples/cryptocomplete.txt http://www.softwareschule.ch/examples/web4arduino.txt http://www.softwareschule.ch/examples/adafruit.txt http://www.softwareschule.ch/examples/stack.txt http://www.softwareschule.ch/examples/stack.htm http://www.softwareschule.ch/examples/billiard.txt http://www.softwareschule.ch/examples/systeminfo_tester.htm http://www.softwareschule.ch/examples/systeminfo.htm http://www.softwareschule.ch/examples/elevator.txt http://www.softwareschule.ch/examples/sha256.txt http://www.softwareschule.ch/examples/robo.txt http://www.softwareschule.ch/examples/robo2.txt http://www.softwareschule.ch/examples/font.txt http://www.softwareschule.ch/examples/spider.txt http://www.softwareschule.ch/examples/totient.txt http://www.softwareschule.ch/examples/811_mXpcatest_dmath_datascience.txt http://www.softwareschule.ch/examples/datascience.txt http://www.softwareschule.ch/examples/pi.txt http://www.softwareschule.ch/examples/excelexport.txt http://www.softwareschule.ch/examples/tokenizer.htm http://www.softwareschule.ch/examples/snake.txt http://www.softwareschule.ch/examples/asteroid.txt http://www.softwareschule.ch/examples/weatherapp46.txt http://www.softwareschule.ch/examples/cryptocomplete.txt http://www.softwareschule.ch/examples/web4arduino.txt http://www.softwareschule.ch/examples/wmi.txt http://www.softwareschule.ch/examples/wmi2.txt http://www.softwareschule.ch/examples/reverse.htm http://www.softwareschule.ch/examples/weatherapp4.txt http://www.softwareschule.ch/examples/tictac.txt http://www.softwareschule.ch/examples/tictac3.txt http://www.softwareschule.ch/examples/mapbox2.txt http://www.softwareschule.ch/examples/neuralnetwork.txt http://www.softwareschule.ch/examples/datascience.txt http://www.softwareschule.ch/examples/billiard.txt http://www.softwareschule.ch/examples/sentiment2.txt http://www.softwareschule.ch/examples/python.htm http://www.softwareschule.ch/examples/asteroid.txt http://www.softwareschule.ch/examples/penny.txt http://www.softwareschule.ch/examples/snake3.txt http://www.softwareschule.ch/examples/unittest.txt http://www.softwareschule.ch/examples/410_titanic_keras_predictor.txt http://www.softwareschule.ch/examples/410_titanic_keras_predictor.htm http://www.softwareschule.ch/examples/histogram.txt http://www.softwareschule.ch/examples/odometer.txt http://www.softwareschule.ch/examples/chartapi.txt http://www.softwareschule.ch/examples/geoloc.txt http://www.softwareschule.ch/examples/xml.txt http://www.softwareschule.ch/examples/4gewinnt.txt http://www.softwareschule.ch/examples/cgi.txt http://www.softwareschule.ch/examples/singlesamplepredict.py http://www.softwareschule.ch/examples/perform.txt http://www.softwareschule.ch/examples/statistic.txt http://www.softwareschule.ch/examples/picbox.txt http://www.softwareschule.ch/examples/memory2.txt http://www.softwareschule.ch/examples/getgeomap.txt http://www.softwareschule.ch/examples/getzip.txt http://www.softwareschule.ch/examples/getrsa.txt http://www.softwareschule.ch/examples/getrsa5.txt http://www.softwareschule.ch/examples/getrsa5.htm http://www.softwareschule.ch/examples/scramble.txt http://www.softwareschule.ch/examples/factor2.txt http://www.softwareschule.ch/examples/bug.txt http://www.softwareschule.ch/examples/smalldic.txt http://www.softwareschule.ch/examples/metadefender.txt http://www.softwareschule.ch/examples/pythonoma.txt http://www.softwareschule.ch/examples/992_detector21_wget_integrate2.htm http://www.softwareschule.ch/examples/perceptron.txt http://www.softwareschule.ch/examples/perceptron2.txt http://www.softwareschule.ch/examples/perceptron2.htm http://www.softwareschule.ch/examples/sphere.txt http://www.softwareschule.ch/examples/entropy.txt http://www.softwareschule.ch/examples/protein.txt http://www.softwareschule.ch/examples/wordwheel.txt http://www.softwareschule.ch/examples/soundcloud.txt http://www.softwareschule.ch/examples/geometry.txt http://www.softwareschule.ch/examples/time.txt http://www.softwareschule.ch/examples/sphere2.txt http://www.softwareschule.ch/examples/sphere2.htm http://www.softwareschule.ch/examples/unittests.txt http://www.softwareschule.ch/examples/newssentiment.txt http://www.softwareschule.ch/examples/newssentiment.htm http://www.softwareschule.ch/examples/bbcnews.txt http://www.softwareschule.ch/examples/mathtool.txt http://www.softwareschule.ch/examples/newssentiment2.txt http://www.softwareschule.ch/examples/covid2.txt http://www.softwareschule.ch/examples/covid3.txt http://www.softwareschule.ch/examples/covidapp3.txt http://www.softwareschule.ch/examples/signtoolbatch.txt http://www.softwareschule.ch/examples/openweather.txt http://www.softwareschule.ch/examples/weatherbox.txt http://www.softwareschule.ch/examples/wininet.txt http://www.softwareschule.ch/examples/digiclock.txt http://www.softwareschule.ch/examples/pydemo.txt http://www.softwareschule.ch/examples/pydemo2.txt http://www.softwareschule.ch/examples/pydemo3.txt http://www.softwareschule.ch/examples/pydemo13.txt http://www.softwareschule.ch/examples/pydemo31.txt http://www.softwareschule.ch/examples/catapult.txt http://www.softwareschule.ch/examples/pydemo33.txt http://www.softwareschule.ch/examples/syndat.png http://www.softwareschule.ch/examples/cryptosystem2.txt http://www.softwareschule.ch/examples/cryptosystem3.txt http://www.softwareschule.ch/examples/springdemo.txt http://www.softwareschule.ch/examples/coaster.txt http://www.softwareschule.ch/examples/pydemo38.txt http://www.softwareschule.ch/examples/pydemo40.txt http://www.softwareschule.ch/examples/sunpos.txt http://www.softwareschule.ch/examples/geocoding.txt http://www.softwareschule.ch/examples/sentiment3.txt http://www.softwareschule.ch/examples/sentiment4.txt http://www.softwareschule.ch/examples/qrcode.txt http://www.softwareschule.ch/examples/json3.txt http://www.softwareschule.ch/examples/json4.txt http://www.softwareschule.ch/examples/regex.txt http://www.softwareschule.ch/examples/shellcomposer.txt http://www.softwareschule.ch/examples/4gewinnt2.txt http://www.softwareschule.ch/examples/space2.txt http://www.softwareschule.ch/examples/pydemo48.txt http://www.softwareschule.ch/examples/json7.txt http://www.softwareschule.ch/examples/cdplayer.txt http://www.softwareschule.ch/examples/json9.txt http://www.softwareschule.ch/examples/ocr.txt http://www.softwareschule.ch/examples/chatgpt32.txt http://www.softwareschule.ch/weatherapp477.txt http://www.softwareschule.ch/timeserver.txt http://www.softwareschule.ch/examples/bigeuler.txt http://www.softwareschule.ch/examples/trend.txt http://www.softwareschule.ch/examples/digitree.txt http://www.softwareschule.ch/examples/neuralnetwork2.txt http://www.softwareschule.ch/examples/webscrap.txt http://www.softwareschule.ch/examples/weekends.txt http://www.softwareschule.ch/examples/cannonball.txt http://www.softwareschule.ch/examples/pixabay.txt http://www.softwareschule.ch/examples/dispenser.txt http://www.softwareschule.ch/examples/qrcode7.txt http://www.softwareschule.ch/examples/cert3.txt http://www.softwareschule.ch/examples/qrcode8.txt http://www.softwareschule.ch/examples/unicode3.htm http://www.softwareschule.ch/examples/pydemo59.txt http://www.softwareschule.ch/examples/pydemo60.txt http://www.softwareschule.ch/examples/digiclock64.txt http://www.softwareschule.ch/examples/pendulum.txt http://www.softwareschule.ch/examples/circles.txt http://www.softwareschule.ch/examples/restcountries.txt http://www.softwareschule.ch/examples/directions.txt http://www.softwareschule.ch/examples/directions2.txt http://www.softwareschule.ch/examples/directions3.txt http://www.softwareschule.ch/examples/directions5.txt http://www.softwareschule.ch/examples/geocoding5.txt http://www.softwareschule.ch/examples/geocoding5.htm http://www.softwareschule.ch/examples/geocoding6.txt http://www.softwareschule.ch/examples/geocoding6.htm http://www.softwareschule.ch/examples/geocoding7.txt http://www.softwareschule.ch/examples/geocoding7.htm http://www.softwareschule.ch/examples/solarpos.txt http://www.softwareschule.ch/examples/solarpos64.txt https://maxbox4.wordpress.com">maxbox4.wordpress.com https://softwareschule.code.blog">softwareschule.code.blog https://my6.code.blog">my6.code.blog https://github.com/maxkleiner/maXbox4/blob/master/newstoday_sentiment.ipynb http://www.softwareschule.ch/download/exampleedition2016.zip https://github.com/maxkleiner/fundamentals5 https://thenewstack.io/which-programming-languages-use-the-least-electricity/ https://www.clevercomponents.com/articles/article052/ https://www.youtube.com/watch?v=SC3i7Ru8XPY https://github.com/breitsch2/Solder-Paste-Dispenser Pas2JS Examples: https://raw.githack.com/breitsch2/maXbox4/master/assets/tetris2.html https://raw.githack.com/breitsch2/maXbox4/master/assets/pacman2/pacman.html https://raw.githack.com/breitsch2/maXbox4/master/assets/graph3.html https://youtu.be/SC3i7Ru8XPY Top 4 Examples of 2023 The scripts are 1247_Dispenser_mX4_Form12.pas, 1243_U_Cannonballs32.pas, 1241_pixabay_api_tester12.pas 1234_NeuralNetwork2_XOR_test12.pas 1234_NeuralNetwork2_XOR_sampleEU_EKON27.pas. https://wordpress.com/post/softwareschule.code.blog/1641 Delphi Basics Run Time Library listing ****************************************************************************** A Compiler Directive $A Determines whether data is aligned or packed Compiler Directive $Align Determines whether data is aligned or packed Compiler Directive $AppType Determines the application type : GUI or Console Proc SysUtils Abort Aborts the current processing with a silent exception Func System Abs Gives the absolute value of a number (-ve sign is removed) Directive Abstract Defines a class method only implemented in subclasses Variable System AbstractErrorProc Defines a proc called when an abstract method is called Func System Addr Gives the address of a variable, Func or procedure Keyword And Boolean and or bitwise and of two arguments Type System AnsiChar A character type guaranteed to be 8 bits in size Func SysUtils AnsiCompareStr Compare two strings for equality Func SysUtils AnsiCompareText Compare two strings for equality, ignoring case Func StrUtils AnsiContainsStr Returns true if a string contains a substring Func StrUtils AnsiEndsStr Returns true if a string ends with a substring Func StrUtils AnsiIndexStr Compares a string with a list of strings - returns match index Func StrUtils AnsiLeftStr Extracts characters from the left of a string Func SysUtils AnsiLowerCase Change upper case characters in a string to lower case Func StrUtils AnsiMatchStr Returns true if a string exactly matches one of a list of strings Func StrUtils AnsiMidStr Returns a substring from the middle characters of a string Func StrUtils AnsiPos Find the position of one string in another Func StrUtils AnsiReplaceStr Replaces a part of one string with another Func StrUtils AnsiReverseString Reverses the sequence of letters in a string Func StrUtils AnsiRightStr Extracts characters from the right of a string Func StrUtils AnsiStartsStr Returns true if a string starts with a substring Type System Ansistr A data type that holds a string of AnsiChars Func SysUtils AnsiUpperCase Change lower case characters in a string to upper case Proc System Append Open a text file to allow appending of text to the end Proc SysUtils AppendStr Concatenate one string onto the end of another Func Math ArcCos The Arc Cosine of a number, returned in radians Func Math ArcSin The Arc Sine of a number, returned in radians Func System ArcTan The Arc Tangent of a number, returned in radians Keyword Array A data type holding indexable collections of data Keyword As Used for casting object references Proc System Assign Assigns a file handle to a binary or text file Func System Assigned Returns true if a reference is not nil Proc System AssignFile Assigns a file handle to a binary or text file Proc Printers AssignPrn Treats the printer as a text file - an easy way of printing text B Compiler Directive $B Whether to short cut and and or operations Compiler Directive $BoolEval Whether to short cut and and or operations Proc SysUtils Beep Make a beep sound Keyword Begin Keyword that starts a statement block Func System BeginThread Begins a separate thread of code execution Proc System BlockRead Reads a block of data records from an untyped binary file Proc System BlockWrite Writes a block of data records to an untyped binary file Type System Boolean Allows just True and False values Func Classes Bounds Create a TRect value from top left and size values Proc System Break Forces a jump out of a single loop Type System Byte An Int type supporting values 0 to 255 C Type System Cardinal The basic unsigned Int type Keyword Case A mechanism for acting upon different values of an Ordinal Func StdConvs CelsiusToFahrenheit Convert a celsius temperature into fahrenheit Func SysUtils ChangeFileExt Change the extension part of a file name Type System Char Variable type holding a single character Proc System ChDir Change the working drive plus path for a specified drive Func System Chr Convert an Int into a character Keyword Class Starts the declaration of a type of object class Proc System Close Closes an open file Proc System CloseFile Closes an open file Variable System CmdLine Holds the execution text used to start the current program Type System Comp A 64 bit signed Int Func SysUtils CompareStr Compare two strings to see which is greater than the other Func SysUtils CompareText Compare two strings for equality, ignoring case Func Math CompareValue Compare numeric values with a tolerance Func System Concat Concatenates one or more strings into one string Keyword Const Starts the definition of fixed data values Keyword Constructor Defines the method used to create an object from a class Proc System Continue Forces a jump to the next iteration of a loop Func ConvUtils Convert Convert one measurement value to another Func System Copy Create a copy of part of a string or an array Func System Cos The Cosine of a number Func SysUtils CreateDir Create a directory Type System Currency A floating point type with 4 decimals used for financial values Variable SysUtils CurrencyDecimals Defines decimal digit count in the Format function Variable SysUtils CurrencyFormat Defines currency string placement in curr display functions Variable SysUtils CurrencyString The currency string used in currency display functions Func SysUtils CurrToStr Convert a currency value to a string Func SysUtils CurrToStrF Convert a currency value to a string with formatting D Compiler Directive $D Determines whether application debug information is built Compiler Directive $DebugInfo Determines whether application debug information is built Compiler Directive $Define Defines a compiler directive symbol - as used by IfDef Compiler Directive $DefinitionInfo Determines whether application symbol information is built Func SysUtils Date Gives the current date Variable SysUtils DateSeparator The character used to separate display date fields Func SysUtils DateTimeToFileDate Convert a TDateTime value to a File date/time format Func SysUtils DateTimeToStr Converts TDateTime date and time values to a string Proc SysUtils DateTimeToString Rich formatting of a TDateTime variable into a string Func SysUtils DateToStr Converts a TDateTime date value to a string Func DateUtils DayOfTheMonth Gives day of month index for a TDateTime value (ISO 8601) Func DateUtils DayOfTheWeek Gives day of week index for a TDateTime value (ISO 8601) Func DateUtils DayOfTheYear Gives the day of the year for a TDateTime value (ISO 8601) Func SysUtils DayOfWeek Gives day of week index for a TDateTime value Func DateUtils DaysBetween Gives the whole number of days between 2 dates Func DateUtils DaysInAMonth Gives the number of days in a month Func DateUtils DaysInAYear Gives the number of days in a year Func DateUtils DaySpan Gives the fractional number of days between 2 dates Proc System Dec Decrement an ordinal variable Variable SysUtils DecimalSeparator The character used to display the decimal point Proc SysUtils DecodeDate Extracts the year, month, day values from a TDateTime var. Proc DateUtils DecodeDateTime Breaks a TDateTime variable into its date/time parts Proc SysUtils DecodeTime Break a TDateTime value into individual time values Directive Default Defines default processing for a property Func Math DegToRad Convert a degrees value to radians Proc System Delete Delete a section of characters from a string Func SysUtils DeleteFile Delete a file specified by its file name Keyword Destructor Defines the method used to destroy an object Func SysUtils DirectoryExists Returns true if the given directory exists Func SysUtils DiskFree Gives the number of free bytes on a specified drive Func SysUtils DiskSize Gives the size in bytes of a specified drive Proc System Dispose Dispose of storage used by a pointer type variable Keyword Div Performs Int division, discarding the remainder Keyword Do Defines the start of some controlled action Type System Double A floating point type supporting about 15 digits of precision Keyword DownTo Prefixes an decremental for loop target value Func StrUtils DupeString Creates a string containing copies of a substring Directive Dynamic Allows a class method to be overriden in derived classes E Compiler Directive $Else Starts the alternate section of an IfDef or IfNDef Compiler Directive $EndIf Terminates conditional code compilation Compiler Directive $ExtendedSyntax Controls some Pascal extension handling Keyword Else Starts false section of if, case and try statements Func SysUtils EncodeDate Build a TDateTime value from year, month and day values Func DateUtils EncodeDateTime Build a TDateTime value from day and time values Func SysUtils EncodeTime Build a TDateTime value from hour, min, sec and msec values Keyword End Keyword that terminates statement blocks Func DateUtils EndOfADay Generate a TDateTime value set to the very end of a day Func DateUtils EndOfAMonth Generate a TDateTime value set to the very end of a month Proc System EndThread Terminates a thread with an exit code Func System Eof Returns true if a file opened with Reset is at the end Func System Eoln Returns true if the current text file is pointing at a line end Proc System Erase Erase a file Variable System ErrorAddr Sets the error address when an application terminates Keyword Except Starts the error trapping clause of a Try statement Proc System Exclude Exclude a value in a set variable Proc System Exit Exit abruptly from a Func or procedure Variable System ExitCode Sets the return code when an application terminates Func System Exp Gives the exponent of a number Directive System Export Makes a Func or Proc in a DLL externally available Type System Extended The floating point type with the highest capacity and precision Func SysUtils ExtractFileDir Extracts the dir part of a full file name Func SysUtils ExtractFileDrive Extracts the drive part of a full file name Func SysUtils ExtractFileExt Extracts the extension part of a full file name Func SysUtils ExtractFileName Extracts the name part of a full file name Func SysUtils ExtractFilePath Extracts the path part of a full file name F Func StdConvs FahrenheitToCelsius Convert a fahrenheit temperature into celsius Keyword File Defines a typed or untyped file Func SysUtils FileAge Get the last modified date/time of a file without opening it Func SysUtils FileDateToDateTime Converts a file date/time format to a TDateTime value Func SysUtils FileExists Returns true if the given file exists Func SysUtils FileGetAttr Gets the attributes of a file Variable System FileMode Defines how Reset opens a binary file Func System FilePos Gives the file position in a binary or text file Func SysUtils FileSearch Search for a file in one or more directories Func SysUtils FileSetAttr Sets the attributes of a file Func SysUtils FileSetDate Set the last modified date and time of a file Func System FileSize Gives the size in records of an open file Proc System FillChar Fills out a section of storage with a fill character or byte value Keyword Finally Starts the unconditional code section of a Try statement Func SysUtils FindClose Closes a successful FindFirst file search Func SysUtils FindCmdLineSwitch Determine whether a certain parameter switch was passed Func SysUtils FindFirst Finds all files matching a file mask and attributes Func SysUtils FindNext Find the next file after a successful FindFirst Func SysUtils FloatToStr Convert a floating point value to a string Func SysUtils FloatToStrF Convert a floating point value to a string with formatting Proc System Flush Flushes buffered text file data to the file Keyword For Starts a loop that executes a finite number of times Func SysUtils ForceDirectories Create a new path of directories Func SysUtils Format Rich formatting of numbers and text into a string Func SysUtils FormatCurr Rich formatting of a currency value into a string Func SysUtils FormatDateTime Rich formatting of a TDateTime variable into a string Func SysUtils FormatFloat Rich formatting of a floating point number into a string Func System Frac The fractional part of a floating point number Proc SysUtils FreeAndNil Free memory for an object and set it to nil Proc System FreeMem Free memory storage used by a variable Keyword System Func Defines a subroutine that returns a value G Func SysUtils GetCurrentDir Get the current directory (drive plus directory) Proc System GetDir Get the default directory (drive plus path) for a specified drive Func System GetLastError Gives the error code of the last failing Windows API call Proc SysUtils GetLocaleFormatSettings Gets locale values for thread-safe functions Func System GetMem Get a specified number of storage bytes Keyword Goto Forces a jump to a label, regardless of nesting H Compiler Directive $H Treat string types as Ansistr or ShortString Compiler Directive $Hints Determines whether Delphi shows compilation hints Proc System Halt Terminates the program with an optional dialog Func System Hi Returns the hi-order byte of a (2 byte) Int Func System High Returns the highest value of a type or variable I Compiler Directive $I Allows code in an include file to be incorporated into a Unit Compiler Directive $IfDef Executes code if a conditional symbol has been defined Compiler Directive $IfNDef Executes code if a conditional symbol has not been defined Compiler Directive $IfOpt Tests for the state of a Compiler directive Compiler Directive $Include Allows code in an include file to be incorporated into a Unit Compiler Directive $IOChecks When on, an IO operation error throws an exception Keyword If Starts a conditional expression to determine what to do next Keyword Implementation Starts the implementation (code) section of a Unit Keyword In Used to test if a value is a member of a set Proc System Inc Increment an ordinal variable Func DateUtils IncDay Increments a TDateTime variable by + or - number of days Proc System Include Include a value in a set variable Func DateUtils IncMillisecond Increments a TDateTime variable by + or - number of milliseconds Func DateUtils IncMinute Increments a TDateTime variable by + or - number of minutes Func SysUtils IncMonth Increments a TDateTime variable by a number of months Func DateUtils IncSecond Increments a TDateTime variable by + or - number of seconds Func DateUtils IncYear Increments a TDateTime variable by a number of years Directive Index Principally defines indexed class data properties Constant Math Infinity Floating point value of infinite size Keyword Inherited Used to call the parent class constructor or destructor method Variable System Input Defines the standard input text file Func Dialogs InputBox Display a dialog that asks for user text input, with default Func Dialogs InputQuery Display a dialog that asks for user text input Proc System Insert Insert a string into another string Func System Int The Int part of a floating point number as a float Type System Int64 A 64 bit sized Int - the largest in Delphi Type System Int The basic Int type Keyword System Interface Used for Unit external definitions, and as a Class skeleton Func SysUtils IntToHex Convert an Int into a hexadecimal string Func SysUtils IntToStr Convert an Int into a string Func System IOResult Holds the return code of the last I/O operation Keyword Is Tests whether an object is a certain class or ascendant Func Math IsInfinite Checks whether a floating point number is infinite Func SysUtils IsLeapYear Returns true if a given calendar year is a leap year Func System IsMultiThread Returns true if the code is running multiple threads Func Math IsNaN Checks to see if a floating point number holds a real number L Compiler Directive $L Determines what application debug information is built Compiler Directive $LocalSymbols Determines what application debug information is built Compiler Directive $LongStrings Treat string types as Ansistr or ShortString Func SysUtils LastDelimiter Find the last position of selected characters in a string Func System Length Return the number of elements in an array or string Func System Ln Gives the natural logarithm of a number Func System Lo Returns the low-order byte of a (2 byte) Int Func Math Log10 Gives the log to base 10 of a number Variable SysUtils LongDateFormat Long version of the date to string format Variable SysUtils LongDayNames An array of days of the week names, starting 1 = Sunday Type System LongInt An Int whose size is guaranteed to be 32 bits Variable SysUtils LongMonthNames An array of days of the month names, starting 1 = January Variable SysUtils LongTimeFormat Long version of the time to string format Type System LongWord A 32 bit unsigned Int Func System Low Returns the lowest value of a type or variable Func SysUtils LowerCase Change upper case characters in a string to lower case M Compiler Directive $MinEnumSize Sets the minimum storage used to hold enumerated types Func Math Max Gives the maximum of two Int values Constant System MaxInt The maximum value an Int can have Constant System MaxLongInt The maximum value an LongInt can have Func Math Mean Gives the average for a set of numbers Func Dialogs MessageDlg Displays a message, symbol, and selectable buttons Func Dialogs MessageDlgPos Displays a message plus buttons at a given screen position Func Math Min Gives the minimum of two Int values Constant SysUtils MinsPerDay Gives the number of minutes in a day Proc System MkDir Make a directory Keyword Mod Performs Int division, returning the remainder Constant SysUtils MonthDays Gives the number of days in a month Func DateUtils MonthOfTheYear Gives the month of the year for a TDateTime value Proc System Move Copy bytes of data from a source to a destination N Constant Math NaN Not a real number Variable SysUtils NegCurrFormat Defines negative amount formatting in currency displays Proc System New Create a new pointer type variable Constant System Nil A pointer value that is defined as undetermined Keyword Not Boolean Not or bitwise not of one arguments Func SysUtils Now Gives the current date and time Variable Variants Null A variable that has no value O Compiler Directive $O Determines whether Delphi optimises code when compiling Compiler Directive $Optimization Determines whether Delphi optimises code when compiling Compiler Directive $OverFlowChecks Determines whether Delphi checks Int and enum bounds Keyword System Object Allows a subroutine data type to refer to an object method Func System Odd Tests whether an Int has an odd value Keyword Of Linking keyword used in many places Keyword On Defines exception handling in a Try Except clause Keyword Or Boolean or or bitwise or of two arguments Func System Ord Provides the Ordinal value of an Int, character or enum Directive Out Identifies a routine parameter for output only Variable System Output Defines the standard output text file Directive Overload Allows 2 or more routines to have the same name Directive Override Defines a method that replaces a virtual parent class method P Keyword Packed Compacts complex data types into minimal storage Type System PAnsiChar A pointer to an AnsiChar value Type System PAnsistr Pointer to an Ansistr value Func System ParamCount Gives the number of parameters passed to the current program Func System ParamStr Returns one of the parameters used to run the current program Type System PChar A pointer to an Char value Type System PCurrency Pointer to a Currency value Type System PDateTime Pointer to a TDateTime value Type System PExtended Pointer to a Extended floating point value Func System Pi The mathematical constant Type System PInt64 Pointer to an Int64 value Func Classes Point Generates a TPoint value from X and Y values Type System Pointer Defines a general use Pointer to any memory based data Func Classes PointsEqual Compares two TPoint values for equality Func System Pos Find the position of one string in another Func System Pred Decrement an ordinal variable Func Printers Printer Returns a reference to the global Printer object Directive Private Starts the section of private data and methods in a class Keyword System Proc Defines a subroutine that does not return a value Proc FileCtrl ProcessPath Split a drive/path/filename string into its constituent parts Keyword System Program Defines the start of an application Func Dialogs PromptForFileName Shows a dialog allowing the user to select a file Keyword System Property Defines controlled access to class fields Directive Protected Starts a section of class private data accesible to sub-classes Type System PShortString A pointer to an ShortString value Type System PString Pointer to a String value Func Types PtInRect Tests to see if a point lies within a rectangle Directive Public Starts an externally accessible section of a class Directive Published Starts a published externally accessible section of a class Type System PVariant Pointer to a Variant value Type System PWideChar Pointer to a WideChar Type System PWideString Pointer to a WideString value Q Compiler Directive $Q Determines whether Delphi checks Int and enum bounds R Compiler Directive $R Determines whether Delphi checks array bounds Compiler Directive $RangeChecks Determines whether Delphi checks array bounds Compiler Directive $ReferenceInfo Determines whether symbol reference information is built Compiler Directive $Resource Defines a resource file to be included in the application linking Func Math RadToDeg Converts a radian value to degrees Keyword Raise Raise an exception Func System Random Generate a random floating point or Int number Proc System Randomize Reposition the Random number generator next value Func Math RandomRange Generate a random Int number within a supplied range Variable System RandSeed Reposition the Random number generator next value Proc System Read Read data from a binary or text file Proc System ReadLn Read a complete line of data from a text file Type System Real A floating point type supporting about 15 digits of precision Type System Real48 The floating point type with the highest capacity and precision Proc System ReallocMem Reallocate an existing block of storage Func DateUtils RecodeDate Change only the date part of a TDateTime variable Func DateUtils RecodeTime Change only the time part of a TDateTime variable Keyword Record A structured data type - holding fields of data Func Classes Rect Create a TRect value from 2 points or 4 coordinates Func SysUtils RemoveDir Remove a directory Proc System Rename Rename a file Func SysUtils RenameFile Rename a file or directory Keyword Repeat Repeat statements until a ternmination condition is met Proc SysUtils ReplaceDate Change only the date part of a TDateTime variable Proc SysUtils ReplaceTime Change only the time part of a TDateTime variable Proc System Reset Open a text file for reading, or binary file for read/write Variable System Result A variable used to hold the return value from a function Proc System ReWrite Open a text or binary file for write access Proc System RmDir Remove a directory Func System Round Rounds a floating point number to an Int Proc System RunError Terminates the program with an error dialog S Constant SysUtils SecsPerDay Gives the number of seconds in a day Proc System Seek Move the pointer in a binary file to a new record position Func System SeekEof Skip to the end of the current line or file Func System SeekEoln Skip to the end of the current line or file Func FileCtrl SelectDirectory Display a dialog to allow user selection of a directory Variable System Self Hidden parameter to a method - refers to the containing object Keyword Set Defines a set of up to 255 distinct values Func SysUtils SetCurrentDir Change the current directory Proc System SetLength Changes the size of a string, or the size(s) of an array Proc System SetString Copies characters from a buffer into a string Keyword Shl Shift an Int value left by a number of bits Variable SysUtils ShortDateFormat Compact version of the date to string format Variable SysUtils ShortDayNames An array of days of the week names, starting 1 = Sunday Type System ShortInt An Int type supporting values -128 to 127 Variable SysUtils ShortMonthNames An array of days of the month names, starting 1 = Jan Type System ShortString Defines a string of up to 255 characters Variable SysUtils ShortTimeFormat Short version of the time to string format Proc Dialogs ShowMessage Display a string in a simple dialog with an OK button Proc Dialogs ShowMessageFmt Display formatted data in a simple dialog with an OK button Proc Dialogs ShowMessagePos Display a string in a simple dialog at a given screen position Keyword Shr Shift an Int value right by a number of bits Func System Sin The Sine of a number Type System Single The smallest capacity and precision floating point type Func System SizeOf Gives the storage byte size of a type or variable Func System Slice Creates a slice of an array as an Open Array parameter Type System SmallInt An Int type supporting values from -32768 to 32767 Func System Sqr Gives the square of a number Func System Sqrt Gives the square root of a number Proc System Str Converts an Int or floating point number to a string Type System String A data type that holds a string of characters Func System StringOfChar Creates a string with one character repeated many times Func SysUtils StringReplace Replace one or more substrings found within a string Func System StringToWideChar Converts a normal string into a WideChar 0 terminated buffer Func SysUtils StrScan Searches for a specific character in a constant string Func SysUtils StrToCurr Convert a number string into a currency value Func SysUtils StrToDate Converts a date string into a TDateTime value Func SysUtils StrToDateTime Converts a date+time string into a TDateTime value Func SysUtils StrToFloat Convert a number string into a floating point value Func SysUtils StrToInt Convert an Int string into an Int value Func SysUtils StrToInt64 Convert an Int string into an Int64 value Func SysUtils StrToInt64Def Convert a string into an Int64 value with default Func SysUtils StrToIntDef Convert a string into an Int value with default Func SysUtils StrToTime Converts a time string into a TDateTime value Func StrUtils StuffString Replaces a part of one string with another Func System Succ Increment an ordinal variable Func Math Sum Return the sum of an array of floating point values T Func Math Tan The Tangent of a number Type Classes TBits An object that can hold an infinite number of Boolean values Variable ConvUtils TConvFamily Defines a family of measurement types as used by Convert Type ConvUtils TConvType Defines a measurement type as used by Convert Type System TDateTime Data type holding a date and time value Type System Text Defines a file as a text file Type System TextFile Declares a file type for storing lines of text Type SysUtils TFloatFormat Formats for use in floating point number display functions Type SysUtils TFormatSettings A record for holding locale values for thread-safe functions Keyword Then Part of an if statement - starts the true clause Variable SysUtils ThousandSeparator The character used to display the thousands separator Keyword ThreadVar Defines variables that are given separate instances per thread Func SysUtils Time Gives the current time Variable SysUtils TimeAMString Determines AM value in DateTimeToString procedure Variable SysUtils TimePMString Determines PM value in DateTimeToString procedure Variable SysUtils TimeSeparator The character used to separate display time fields Func SysUtils TimeToStr Converts a TDateTime time value to a string Type Classes TList General purpose container of a list of objects Keyword To Prefixes an incremental for loop target value Type System TObject The base class type that is ancestor to all other classes Func DateUtils Tomorrow Gives the date tomorrow Type Dialogs TOpenDialog Displays a file selection dialog Type Types TPoint Holds X and Y Int values Type Dialogs TPrintDialog Class that creates a printer selection and control dialog Type Types TRect Holds rectangle coordinate values Type SysUtils TReplaceFlags Defines options for the StringReplace routine Func SysUtils Trim Removes leading and trailing blanks from a string Func SysUtils TrimLeft Removes leading blanks from a string Func SysUtils TrimRight Removes trailing blanks from a string Func System Trunc The Int part of a floating point number Proc System Truncate Truncates a file size - removes all data after the current position Keyword Try Starts code that has error trapping Type Dialogs TSaveDialog Displays a dialog for selecting a save file name Type SysUtils TSearchRec Record used to hold data for FindFirst and FindNext Type Classes TStringList Holds a variable length list of strings Type SysUtils TSysCharSet Characters used by supplied string parsing functions Type System TThreadFunc Defines the Func to be called by BeginThread Var SysUtils TwoDigitYearCenturyWindow Sets century threshold for 2 digit year string conversions Keyword Type Defines a new category of variable or process U Compiler Directive $UnDef Undefines a compiler directive symbol - as used by IfDef Keyword Unit Defines the start of a unit file - a Delphi module Keyword Until Ends a Repeat control loop Func System UpCase Convert a Char value to upper case Func SysUtils UpperCase Change lower case characters in a string to upper case Keyword Uses Declares a list of Units to be imported V Proc System Val Converts number strings to Int and floating point values Keyword Var Starts the definition of a section of data variables Type System Variant A variable type that can hold changing data types Func Variants VarType Gives the current type of a Variant variable Constant Variants VarTypeMask Mask for the meta-type part of a Variant variable Directive Virtual Allows a class method to be overriden in derived classes W Compiler Directive $Warnings Determines whether Delphi shows compilation warnings Keyword While Repeat statements whilst a continuation condition is met Type System WideChar Variable type holding a single International character Func System WideCharToString Copies a null terminated WideChar string to a normal string Type System WideString A data type that holds a string of WideChars Keyword With A means of simplifying references to structured variables Type System Word An Int type supporting values 0 to 65535 Func SysUtils WrapText Add line feeds into a string to simulate word wrap Proc System Write Write data to a binary or text file Proc System WriteLn Write a complete line of data to a text file X Compiler Directive $X Controls some Pascal extension handling Keyword Xor Boolean Xor or bitwise Xor of two arguments Y Compiler Directive $Y Determines whether application symbol information is built Func DateUtils Yesterday Gives the date yesterday Z Compiler Directive $Z Sets the minimum storage used to hold enumerated types Proc SIRegister_uPSUtils(CL: TPSPascalCompiler); begin //'TPSBaseType','').SetString( Byte); PSMainProcName','String').SetString( '!MAIN; PSMainProcNameOrg','String').SetString( 'Main Proc; 'PSLowBuildSupport','LongInt').SetInt(12); 'PSCurrentBuildNo','LongInt').SetInt(23); 'PSCurrentversion','String').SetString('1.31; 'PSValidHeader','LongInt').SetInt(1397769801); 'PSAddrStackStart','LongInt').SetInt(1610612736); 'PSAddrNegativeStackStart','LongInt').SetInt(1073741824); 'btReturnAddress','LongInt').SetInt(0); 'btU8','LongInt').SetInt(1); 'btS8','LongInt').SetInt(2); 'btU16','LongInt').SetInt(3); 'btS16','LongInt').SetInt(4); 'btU32','LongInt').SetInt(5); 'btS32','LongInt').SetInt(6); 'btSingle','LongInt').SetInt(7); 'btDouble','LongInt').SetInt(8); 'btExtended','LongInt').SetInt(9); 'btString','LongInt').SetInt(10); 'btRecord','LongInt').SetInt(11); 'btArray','LongInt').SetInt(12); 'btPointer','LongInt').SetInt(13); 'btPChar','LongInt').SetInt(14); 'btResourcePointer','LongInt').SetInt(15); 'btVariant','LongInt').SetInt(16); 'btS64','LongInt').SetInt(17); 'btU64','LongInt').SetInt(30); 'btChar','LongInt').SetInt(18); 'btWideString','LongInt').SetInt( 19); 'btWideChar','LongInt').SetInt( 20); 'btProcPtr','LongInt').SetInt( 21); 'btStaticArray','LongInt').SetInt( 22); 'btSet','LongInt').SetInt( 23); 'btCurrency','LongInt').SetInt( 24); 'btClass','LongInt').SetInt( 25); 'btInterface','LongInt').SetInt( 26); 'btNotificationVariant','LongInt').SetInt( 27); 'btUnicodeString','LongInt').SetInt( 28); 'btType','LongInt').SetInt( 130); 'btEnum','LongInt').SetInt( 129); 'btExtClass','LongInt').SetInt( 131); 'CM_A','LongInt').SetInt( 0); 'CM_CA','LongInt').SetInt( 1); 'CM_P','LongInt').SetInt( 2); 'CM_PV','LongInt').SetInt( 3); 'CM_PO','LongInt').SetInt( 4); 'Cm_C','LongInt').SetInt( 5); 'Cm_G','LongInt').SetInt( 6); 'Cm_CG','LongInt').SetInt( 7); 'Cm_CNG','LongInt').SetInt( 8); 'Cm_R','LongInt').SetInt( 9); 'Cm_ST','LongInt').SetInt( 10); 'Cm_Pt','LongInt').SetInt( 11); 'CM_CO','LongInt').SetInt( 12); 'Cm_cv','LongInt').SetInt( 13); 'cm_sp','LongInt').SetInt( 14); 'cm_bn','LongInt').SetInt( 15); 'cm_vm','LongInt').SetInt( 16); 'cm_sf','LongInt').SetInt( 17); 'cm_fg','LongInt').SetInt( 18); 'cm_puexh','LongInt').SetInt( 19); 'cm_poexh','LongInt').SetInt( 20); 'cm_in','LongInt').SetInt( 21); 'cm_spc','LongInt').SetInt( 22); 'cm_inc','LongInt').SetInt( 23); 'cm_dec','LongInt').SetInt( 24); 'cm_nop','LongInt').SetInt( 255); 'Cm_PG','LongInt').SetInt( 25); 'Cm_P2G','LongInt').SetInt( 26); TypeS('TbtU8', 'Byte; TypeS('TbtS8', 'ShortInt; TypeS('TbtU16', 'Word; TypeS('TbtS16', 'SmallInt; TypeS('TbtU32', 'Cardinal; TypeS('TbtS32', 'Longint; TypeS('TbtSingle', 'Single; TypeS('TbtDouble', 'double; TypeS('TbtExtended', 'Extended; TypeS('tbtCurrency', 'Currency; TypeS('tbts64', 'int64; TypeS('Tbtu64', 'uint64; TypeS('TbtString', 'string; Func MakeHash( const s : TbtString) : Longint; // TbtString = {$IFDEF DELPHI2009UP}Ansistr{$ELSE}String{$ENDIF}; //'PointerSize','LongInt').SetInt( IPointer ( 8 4 )); end: -------------------------------------------------------------------------------- mapX: if GetMAPX('html',ExePath+'cologne2mapX.html','cathedral cologne') then writeln('cologne map found; GetGeoMAP('html',ExePath+AFILENAME2,'dom cologne') writeln(GetMapXGeoReverse('XML','47.0397826','7.62914761277888')) OpenMapX('church trier; GetGeoCode(C_form,apath:Str; const data:Str; sfile:Bool):Str; writeln(GetGeoCode('xml',ExePath+'outputmap_2cologne.xml','cathedral cologne',false));} >>> //latitude: '50.94133705' longitude: '6.95812076100766' // type TPos = (tLat, tLon);TShowFmt = (sfNautical, sfStatute, sfMetric); writeln(GetGeoCoord('xml','church cefalu sicily',true)) CoordinateStr(Idx: Int; PosInSec: Double; PosLn: TPos):Str; Func SendInput( cInputs : UINT; var pInputs : TInput; cbSize : Int) : UINT; Func GetLastInputInfo( var plii : TLastInputInfo) : BOOL; Proc JvErrorIntercept; writeln(GetGeoInfo4('178.196.192.131', UrlGeoLookupInfo3)); {$IFDEF MSWINDOWS} Proc Process; var Msg: TMsg; begin if ApplicationHasPriority then begin Application.ProcessMessages; end else begin // This guarantees it will not ever call Application.Idle if PeekMessage(Msg, 0, 0, 0, PM_NOREMOVE) then begin Application.HandleMessage; end; end; end; Ref: 1. writeln(SHA1(Exepath+'\maxbox4.exe')) 2. shdig: TSHA1Digest; shdig:= GetSHA1OfFile(false,exepath+'\maxbox4.exe; for i:= 0 to 19 do write(BytetoHex(shdig[i])); 3. writeln(IntToHex(CRC32OfFile(exepath+'\maxbox4.exe'),4)); 4. writeln(sha1tohex(SHA1ofStr(loadStringofFile(exepath+'maxbox4.exe')))) I have to get only the numbers, without the hyphen and the dots, to my calcs worth. sr := '123.456.789-00' writeln(ReplaceRegExpr('\D',sr,'',true)) Func GetLocalStream(C_form:Str; const lat,long:Str):boolean; var encodedURL, UrlMapQuestAPI, bufstr:Str; mStream: TMemoryStream; idhttp: TIdHttp;// THTTPSend; len: Int; begin UrlMapQuestAPI:= 'http://192.168.1.53:9000'; encodedURL:= UrlMapQuestAPI; idHTTP:= TIdHTTP.Create(NIL) mStream:= TMemoryStream.create; try //HttpGet(EncodedURL, mStream); {WinInet} idHTTP.Get1(EncodedURL, mStream) mStream.Position:= 0; writeln('stream size: '+inttostr(mStream.size)); //mStream.memory; len:= mStream.Size - mStream.Position; SetLength(bufstr, len); mStream.readbuffer(bufstr, len) writeln('debug stream local back: '+bufstr) finally encodedURL:= ''; mStream.Free; idHTTP.Disconnect idHTTP.Free; result:= true; end; end; 39/40 PE imports of V maXbox 4.2.5.10 1[+] AVICAP32.DLL 2[+] AVICAP32.dll 3[+] GLU32.dll 40[++]dmath.dll 4[+] IMAGEHLP.DLL 6[+] MSVCRT.DLL 7[+] MSVFW32.DLL 8[+] OpenGL32.dll 9[+] SHFolder.dll 11[+] URLMON.DLL 10[+] SHfolder.dll 12[+] advapi32.dll 13[+] comctl32.dll 14[+] comdlg32.dll 15[+] gdi32.dll 16[+] imagehlp.dll 17[+] imm32.dll 18[+] iphlpapi.dll 19[+] kernel32.dll 20[+] mpr.dll 21[+] msacm32.dll 24[+] ole32.dll 25[+] oleacc.dll 26[+] oleaut32.dll 27[+] oledlg.dll 28[+] opengl32.dll 29[+] shell32.dll 30[+] shlwapi.dll 31[+] user32.dll 32[+] usp10.dll 33[+] version.dll 34[+] winhttp.dll 35[+] wininet.dll 36[+] winmm.dll 37[+] winspool.drv 5[+] KERNEL32.DLL 38[+] ws2_32.dll 39[+] wsock32.dll 22[+] msimg32.dll 23[+] netapi32.dll Magic literal PE32 executable for MS Windows (GUI) Intel 80386 32-bit ******************************************************************************** Microsoft Windows SDK for Windows 7 and .NET Framework 4 Interface (UI Automation) Overall test results Number of tests 68 Verify Passed 67 Failed 1 Unexpected Error 0 UI Tests caused Unexpected Error: 0 Tests Failed: 1 Test Name : ControlType.Window:SetFocus.1 Result Status: Failed Test Priority: Pri1 Description: Precondition: Some controls are not persisted after they loose focus (ie, Floating edit in Excel), don't tests these !! Exception !! Message: Step 12 : Focus event was not fired and was expected to be fired Unexpected: false Known Bug: false Incorrect Configuration: false Stack Trace: at InternalHelper.Tests.TestObject.ThrowMe(CheckType checkType, Exception exceptionThrown, String format, Object[] args) at InternalHelper. Tests.TestObject.TestIfEventShouldFire(EventFired shouldFire, EventFired actualFired, Object eventId, CheckType checkType) at InternalHelper.Tests.TestObject.TSC_VerifyFocusedChangeEvent(AutomationElement element, EventFired shouldFire, String eventHandlerVar, CheckType checkType) at Microsoft.Test.UIAutomation.Tests.Patterns.AutomationElementTests.TS_VerifyFocusChangeEventHelper(String EventHandlerVar) at Microsoft.Test.UIAutomation.Tests.Patterns.AutomationElementTests.TestSetFocus1a(TestCaseAttribute testCaseAttribute) Tests Passed:67/68 Test Name:ControlType.Window:FocusedElement.1 Test Name:ControlType.Window:GetRuntimeIdType.1 Test Name:ControlType.Window:GetSupportedPatterns.1 Test Name:ControlType.Window:GetSupportedProperties.1 Test Name:ControlType.Window:GetType.1 Test Name:ControlType.Window:HwndWindowRect.1.MSAA Test Name:ControlType.Window:HwndWindowRect.2.UIA Test Name:ControlType.Window:LocalizedControlType.1.8.1 Test Name:ControlType.Window:ToString.1 Test Name:ControlType.Window:AutomationIdProperty.1.7.1 Test Name:ControlType.Window:AutomationIdProperty.1.7.8 Test Name:ControlType.Window:BoundingRect.1 Test Name:ControlType.Window:ClickablePointProperty.1 Test Name:ControlType.Window:ControlTypeProperty.1 Test Name:ControlType.Window:GetClickablePoint.2 Test Name:ControlType.Window:GetHashCode.1 Test Name:ControlType.Window:IsKeyboardFocusable.1.1.1 Test Name:ControlType.Window:IsPasswordProperty.1.3.2 Test Name:ControlType.Window:KeyboardFocusable.1.1.2 Test Name:ControlType.Window:Navigation.1 Test Name:ControlType.Window:Navigation.10 Test Name:ControlType.Window:Navigation.11 Test Name:ControlType.Window:Navigation.2 Test Name:ControlType.Window:Navigation.3 Test Name:ControlType.Window:Navigation.4 Test Name:ControlType.Window:Navigation.5 Test Name:ControlType.Window:Navigation.6 Test Name:ControlType.Window:Navigation.7 Test Name:ControlType.Window:Navigation.8 Test Name:ControlType.Window:Navigation.9 Test Name:ControlType.Window:Navigation.ControlFirstChild.1 Test Name:ControlType.Window:Navigation.ControlLastChild.1 Test Name:ControlType.Window:Navigation.ControlNextSibling.1 Test Name:ControlType.Window:Navigation.ControlParent.1 Test Name:ControlType.Window:Navigation.ControlPreviousSibling.1 Test Name:ControlType.Window:SetFocus.10 Test Name:ControlType.Window:SetFocus.3 Test Name:ControlType.Window:AutomationElement.PropertyChange.Enabled.1 Test Name:ControlType.Window:AutomationElement.PropertyChange.Name.1 Test Name:ControlType.Window:GetCurrentPattern.1 Test Name:ControlType.Window:GetCurrentPropertyValue.1 Test Name:ControlType.Window:SetFocus.4 Test Name:ControlType.Window:BulkAdd.1 Test Name:ControlType.Window:BulkRemove.1 Test Name:ControlType.Window:ChildAdd.1 Test Name:ControlType.Window:ChildRemove.1 Test Name:ControlType.Window:Invalidate.1 Test Name:ControlType.Window:Reorder.1 Test Name:ControlType.Window:TestContentView Test Name:ControlType.Window:TestControlPatterns Test Name:ControlType.Window:TestControlProperties Test Name:ControlType.Window:TestControlView Test Name:ControlType.Window:CanRotate.1.6 Test Name:ControlType.Window:Move.2.1 Test Name:ControlType.Window:Move.2.2 Test Name:ControlType.Window:Move.2.8 Test Name:ControlType.Window:Move.2.13 Test Name:ControlType.Window:Move.2.17 Test Name:ControlType.Window:Move.2.18 Test Name:ControlType.Window:Move.2.19 Test Name:ControlType.Window:Move.2.3 Test Name:ControlType.Window:Move.2.4 Test Name:ControlType.Window:Move.2.5 Test Name:ControlType.Window:Window.MaximizableProperty.S.6.1 Test Name:ControlType.Window:Window.MaximizableProperty.S.6.2 Test Name:ControlType.Window:Window.MinimizableProperty.S.7.2 Test Name:ControlType.Window:Window.ModalProperty.S.10.1 Func GetCachedFileFromURL(strUL:Str; var strLocalFile:Str):Bool; Func IAddrToHostName(const IP:Str):Str; Func GetIEHandle(WebBrowser: TWebbrowser; ClassName:Str): HWND; Func GetTextFromHandle(WinHandle: THandle):Str; Proc Duplicate_Webbrowser(WB1, WB2: TWebbrowser); Func FillWebForm(WebBrowser:TWebBrowser;FieldName:str;Value:str):Bool; Proc WB_LoadHTML(WebBrowser: TWebBrowser; HTMLCode:Str); Func NetSend(dest, Source, Msg:Str): Longint; overload; Func RecordsetFromXML2(const XML:Str): variant;; Func RecordsetToXML2(const Recordset: variant):Str;; Func GetCharEncoding( alias :Str; var _name :Str) : Int; Func MicrosoftCodePageToMIMECharset( cp : word) :Str; Func MicrosoftLangageCodeToISOCode( langcode : Int) :Str; Proc CopyHTMLToClipBoard(const str:Str; const htmlStr:Str = '; Func RFC1123ToDateTime(Date:Str): TDateTime; Func DateTimeToRFC1123(aDate: TDateTime):Str; Proc CopyHTMLToClipBoard(const str:Str; const htmlStr:Str);; Proc DumpDOSHeader(const h: IMAGE_DOS_HEADER; Lines: TStrings);; Proc DumpPEHeader(const h: IMAGE_FILE_HEADER; Lines: TStrings);; Proc DumpOptionalHeader(const h: IMAGE_OPTIONAL_HEADER; Lines: TStrings);; Func checkSystem:Str; Func getSystemReport:Str; //Commonly used Delphi WinAPI routines http://www.rosseeld.be/DRO/Delphi/Delphi%20WinAPI.htm source of the new units: http://sourceforge.net/projects/maxbox/files/Docu/SourceV4/ http://www.slideshare.net/maxkleiner1/codesign-2015 http://basta_2015_speaker_max_kleiner http://www.arduino.cc/en/Tutorial/ASCIITable http://www.vwlowen.co.uk/arduino/usb-digital/pc-control.htm http://www.yunqa.de/delphi/doku.php/products/regex/syntax#quantifiers http://elib.uni-stuttgart.de/opus/volltexte/2008/3440/pdf/diss_kroell_hs.pdf http://www.softwareschule.ch/download/exampleedition2016.zip Published Doc maXbox Example Edition 2015/2016/2017/2018 \example_edition\01_Algorithm; \example_edition\02_Graphics; \example_edition\03_Games; \example_edition\04_Multimedia; \example_edition\05_Internet; \example_edition\06_Communication; \example_edition\07_Geographical; \example_edition\08_Operating; \example_edition\09_Database; \example_edition\10_Science; \example_edition\11_Embedded; \example_edition\12_Security; \example_edition\13_General; \example_edition\14_Energy; \example_edition\15_Transport; \example_edition\16_Robotics; Ref: if IsValidPeFile(exepath+'maxbox3.exe') then begin x1:= ComputePEChecksum(exepath+'maxbox3.exe; // original filename x2:= ComputePEChecksum(exepath+'maxbox3.exe; end; WriteLn('Checksum 1: '+ itoa(x1)+ #13#10+'Checksum 2: '+ itoa(x2)); if ConnectDrive('Z:','\\MAXBOX8\Users\Public', True,True) = NO_ERROR then writeln('Net Share Z:\ Connected; DisconnectNetDrive('Z:', True, True, True); ComTerminal:= TCustomComTerminal.create(self); EditComTerminal(comterminal); //TComTrmSetForm comterminal.Free; LastSysErrorMessage :Str; LastSysErrorMessageA : Ansistr; writeln(sha1tohex(SHA1ofStr(loadstringj(exepath+'maxbox4.exe')))) writeln(sha1tohex(SHA1ofStr(loadstringoffile(exepath+'maxbox4.exe')))) writeln(strtoHex1(SHA1ofStr(lsof(exepath+'maxbox4.exe')))) writeln(sha1tohex(SHA1ofStr(filetoString(exepath+'maxbox4.exe')))) SHA512 sr:= filetostring(Exepath+'maXbox4.exe') writeln(uppercase(SHA512DigesttoHEX(CalcSHA512(sr)))) writeln(Base64EncodeStr((SHA512DigestAsString(CalcSHA512(sr))))); base64:w4ueRtnUZ641dsy4yIISYvhMB9r0c9kc8YO9o5FgkWQRbayHLaZay7tjnt1JmhV3vck2a7Mec7wfK8PbHacrbQ== PE Checksum 1: 27767976 PE Checksum 2: 27767976 // REST API Example procedure TOnlineRandomizerGetResultsFromWeb(qUrl: String); var FResultStream: TMemoryStream; Flist: TStringList; FResultList: TStringList; FSettings:TFormatSettings; begin FResultList:= TSTringList.Create; //FSettings:= TFormatSettings.Create; //FSettings.DecimalSeparator := '.'; FResultStream:= TMemoryStream.Create; FList:= TStringList.Create; //httpObj.Get1(qUrl,FResultStream); HTTPget(qURL, FResultStream) FResultStream.Position:= 0; FList.LoadFromStream(FResultStream); FResultStream.Free; FResultList.AddStrings(FList); writeln('online random: '+flots(StrToFloat(FResultList[3]))); writeln('online random: '+flots(StrToFloat(FResultList[4]))); writeln('online random: '+flots(StrToFloat(FResultList[5]))); FResultList.Free; FList.Free; end; //var FDecUrlPattern:String; procedure TOnlineRandomizerGetRandomDecimals(dPrecission, dCount: Integer); var qUrl, FDecUrlPattern: String; begin FDecUrlPattern:= 'https://www.random.org/decimal-fractions/'+ '?dec=%d&num=%d&col=1&format=plain&rnd=new'; qUrl:= Format(FDecUrlPattern,[dPrecission, dCount]); TOnlineRandomizerGetResultsFromWeb(qUrl); end; C:\maXbox\EKON_BASTA\EKON19\Windows Kits\10\bin\x64> -------------------------------------------------------------------------------- //////////////////////////////////////////////////////////////////////////////// -------------------------------------------------------------------------------- -------------------------------------------------------------------------------- https://www.metadefender.com/#!/results/file/933baa9823514320806c9533482a3b89/regular/analysis https://www.virustotal.com/en/file/b80b0bfef22c6b4be3dbc4af984ca897144895f3c1e162f3ad7895d14fb4e667/analysis/1476479319/ Name Virtual address Virtual size Raw size Entropy MD5 .text 4096 21923324 21923328 6.61 0449d5754ddb069630808bfc6bb356ef .itext 21929984 52108 52224 6.64 0226e6c46fcf9cc23805e75784f48b4b .data 21983232 407520 407552 5.25 91d5dac4714aa4119ea18fb5c4ed250d .bss 22392832 390424 0 0.00 d41d8cd98f00b204e9800998ecf8427e .idata 22786048 59722 59904 5.53 40cc92b8f087c512630bf807d4d20fe1 .edata 22847488 77 512 0.89 0fcb1fd6f1dde231aa401cffaaa8cd63 .tls 22851584 484 0 0.00 d41d8cd98f00b204e9800998ecf8427e .rdata 22855680 24 512 0.28 916275c8032d420cb22a05c2086b7e93 .reloc 22859776 1378116 1378304 6.76 51ab0f1c39aa5fc52a7bc82557df173e .rsrc 24240128 4132864 4132864 5.37 c49d04317b7a6aadc424538ff5ede5c0 CodeSize 21975552 InitializedDataSize 5979648 TimeStamp 2019-08-06 08:06:39 EntryPoint 22518720 OriginalFileName maxbox4_6.exe MIMEType application/octet-stream Article concerning maXbox and mapbox at PHP Magazine 1.2017 https://entwickler.de/php-magazin/php-magazin-1-17-301136.html WineHQ Update: https://appdb.winehq.org/objectManager.php?sClass=application&iId=17937 http://www.slideshare.net/maxkleiner1/maxbox-starter46-work-with-wine https://www.academia.edu/30401550/maXbox_Starter_46_Work_with_WineHQ https://appdb.winehq.org/appimage.php?iId=50376 https://www.scribd.com/document/333983581/maXbox-starter46-work-with-WineHQ http://www.softwareschule.ch/download/maxbox_starter46.pdf Update for Windows 10 Version 1511 for x64-based Systems (KB3152599) Cumulative Update for Windows 10 Version 1607 for x64-based Systems (KB3200970) Cumulative Update for Windows 10 Version 1607 for x64-based Systems (KB3201845) Update for Windows 10 Version 1607 for x64-based Systems (KB3211320) Intel Corporation - Display - 11/10/2016 12:00:00 AM - 20.19.15.4549 2017-10 Cumulative Update for Win 10 Version 1703 for x64-based Systems (KB4041676) 2017-12 Cumulative Update for Win 10 Version 1703 for x64-based Systems (KB4053580) Feature update to Windows 10, version 1709 Feature update to Windows 10, version 1803 amd64 2019-04 Feature update to Windows 10, version 1903 Feature update to Windows 10, version 1909 November 12, 2019—KB4524570 (OS Builds 18362.476 and 18363.476) Version: 1903-OS Build 18362.535 and 1909-OS Build 18363.535 Done Adding Additional Store Successfully signed: maXbox4.exe C:\maXbox\EKON_BASTA\EKON19\Windows Kits\10\bin\x64>signtool verify /v /pa maXbox4.exe Verifying: maXbox4.exe Successfully verified: maXbox4.exe Number of files successfully Verified: 1 Number of warnings: 0 Number of errors: 0C:\maXbox\EKON_BASTA\EKON19\Windows Kits\10\bin\x64> C:\maXbox\EKON_BASTA\EKON19\Windows Kits\10\bin\x64> https://maxbox4.wordpress.com/ http://www.softwareschule.ch/teelicht.jpg Verifying: maXbox4.exe 4.7.1.80 Signature Index: 0 (Primary Signature) Hash of file (sha1): 9D181955E579DCFF6920CEEC32749F0E43F2C157 Signing Certificate Chain: Issued to: maXboxCertAuth Issued by: maXboxCertAuth Expires: Sun Jan 01 00:59:59 2040 SHA1 hash: 6F83207B500DCC0E32A719599CBC6BD7E6B2A04D Issued to: maXbox4signer Issued by: maXboxCertAuth Expires: Sun Jan 01 00:59:59 2040 SHA1 hash: 6A89501B76D47C189A60BF1070BAA2FBFD38D7D7 Issued to: maXbox4exe Issued by: maXbox4signer Expires: Sun Jan 01 00:59:59 2040 SHA1 hash: F0EB0CA218C5707FAC78921F81092CECA12AD0E9 The signature is timestamped: Tue Dec 03 10:51:06 2019 Timestamp Verified by: Issued to: Starfield Root Certificate Authority - G2 Issued by: Starfield Root Certificate Authority - G2 Expires: Fri Jan 01 00:59:59 2038 SHA1 hash: B51C067CEE2B0C3DF855AB2D92F4FE39D4E70F0E Issued to: Starfield Secure Certificate Authority - G2 Issued by: Starfield Root Certificate Authority - G2 Expires: Sat May 03 08:00:00 2031 SHA1 hash: 7EDC376DCFD45E6DDF082C160DF6AC21835B95D4 Issued to: Starfield Timestamp Authority - G2 Issued by: Starfield Secure Certificate Authority - G2 Expires: Tue Sep 17 08:00:00 2024 SHA1 hash: E8551398FF530A9278FD9818E448CB333F67924D Successfully verified: maXbox4.exe Number of files successfully Verified: 1 Number of warnings: 0 Number of errors: 0 C:\maXbox\EKON_BASTA\EKON19\Windows Kits\10\bin\x64> **************************************************************** Release Notes maXbox 4.7.2.82 April 2020 mX47 **************************************************************** 1254 unit uPSI_MaskEdit.pas FCL 1255 unit uPSI_SimpleRSSTypes; BlueHippo 1256 unit uPSI_SimpleRSS; BlueHippo 1257 unit uPSI_psULib.pas Prometheus 1258 unit uPSI_psUFinancial; Prometheus 1259 uPSI_PsAPI_2.pas mX4 1260 uPSI_PersistSettings_2 mX4 Totals of Func Calls: 32339 for 4.7.2.82 https://sourceforge.net/projects/prometheuslibra/ CDS Func CreateBlobStream(Field: TField; Mode: TBlobStreamMode): TStream; Func BookmarkValid(Bookmark: TBookmark):Bool; '); Func CompareBookmarks(Bookmark1, Bookmark2: TBookmark): Integer; Proc ModifyFontsFor(ctrl: TWinControl); Proc ModifyFontsFor(ctrl: TWinControl; afontname:Str); Proc GetAccessTimeOut(var bTimeOut: Bool; var bFeedBack:Boolean;var iTimeOutTime:Int); Func GetParentProcessName():Str; writeln('ParentProcessName: '+GetProcessName(GetParentProcessID(getprocessID))); Func wFillRect(hDC: HDC; const lprc: TRect; hbr: HBRUSH): Integer; stdcall; Func wFrameRect(hDC: HDC; const lprc: TRect; hbr: HBRUSH):Integer; stdcall; Proc GetIpAddresses(Results: TStrings); overload; Proc GetIpAddresses(Results: TStrings; const HostName: Ansistr); S.RegisterDelphiFunction(@GetIPAddresses, 'GetIPs', cdRegister); RegisterMethod(@TStringGrid.CellRect, 'CellRect'); RegisterMethod(@TStringGrid.MouseToCell, 'MouseToCell'); Proc SendKeyVar(AppName:Str; key: Variant); http://www.scalabium.com/faq/dct0069.htm Proc GetComponentNames(lst: TStrings); Proc AngleTextOut(ACanvas: TCanvas; Angle, X, Y: Integer; Str:str); Proc PrintText2Printer(s:Str); Proc UASwapEndian(var UC: TUArrDW); Func SliceByteArray(const B: array of Byte; Start, Len: Integer): TBytes; Proc TailOfFile(aFilename:str; aTailContainer: TStrings; MaxNumLines:integer=5); Func CloneByteArray(const B: array of Byte): TBytes; Func PopByteArray(var A: TBytes): Byte; Proc PushByteArray(const B: Byte; var A: TBytes); Proc AppendByteArray(var B1:TBytes; const B2: array of Byte); Func ShiftByteArray(var A: TBytes): Byte; **************************************************************** Release Notes maXbox 4.7.4.64 June 2020 mX47 **************************************************************** add Tutor 57 - 72 add NoGUI Shell Tutorial 71 and 70 Units 1307 unit uPSI_statmach, {StateMachine} 1308 uPSI_uTPLb_RSA_Primitives, 1309 unit uPSI_UMatrix, //for Tensorflow dll 1310 uPSI_DXUtil, 1311 uPSI_crlfParser, 1312 unit uPSI_DCPbase64; 1313 unit uPSI_FlyFilesUtils; 1314 uPSI_PJConsoleApp.pas 1315 uPSI_PJStreamWrapper.pas 1316 uPSI_LatLonDist, //DFF 1317 uPSI_cHash2.pas //Fundamentals SHA512 1318 uPSI_ZLib2.pas //compressor 1319 unit uPSI_commDriver 1320 unit uPSI_PXLNetComs.pas //PXL 1321 unit uPSI_PXLTiming.pas //PXL 1322 uPSI_Odometer.pas 1323 unit uPSI_UIntList2; 1324 uPSI_UIntegerpartition.pas 1325 unit uPSI_idPHPRunner.pas //prepare for PHP4D 1326 unit uPSI_idCGIRunner.pas 1327 uPSI_DrBobCGI, //4.7.1.20 1328 uPSI_OverbyteIcsLogger, 1329 uPSI_OverbyteIcsNntpCli, testset 1330 uPSI_OverbyteIcsCharsetUtils, 1331 uPSI_OverbyteIcsMimeUtils, 1332 uPSI_OverbyteIcsUrl(CL: TPSPascalCompiler); 1333 uPSI_uWebSocket.pas 1334 uPSI_KhFunction.pas 1335 uPSI_ALOpenOffice.pas 1336 unit uPSI_ALLibPhoneNumber 1337 unit uPSI_ALPhpRunner2; 1338 unit uPSI_ALWebSpider2; 1339 unit uPSI_ALFcnHTML2; // RunJavaScript2 1340 unit uPSI_ALExecute2.pas 1341 uPSI_ALIsapiHTTP.pas 1342 uPSI_ALOpenOffice_Routines 1343 unit uPSI_uUsb; 1344 uPSI_uWebcam.pas 1345 uPSI_PersistSettings.pas //fixing 1346 uPSI_uTPLb_MemoryStreamPool.pas 1347 uPSI_uTPLb_Signatory.pas 1348 unit uPSI_uTPLb_Constants.pas //TurboPower 1349 uPSI_uTPLb_Random.pas 1350 unit uPSI_uTPLb_PointerArithmetic; 1351 unit uPSI_EwbCoreTools.pas 1352 unit uPSI_EwbUrl.pas 1353 unit uPSI_SendMail_For_Ewb.pas 1354 unit uPSI_MaskEdit.pas FCL 1355 unit uPSI_SimpleRSSTypes; BlueHippo 1356 unit uPSI_SimpleRSS; BlueHippo 1357 unit uPSI_psULib.pas Prometheus 1358 unit uPSI_psUFinancial; Prometheus 1359 uPSI_PsAPI_2.pas mX4 1360 uPSI_PersistSettings_2 mX4 1361 uPSI_rfc1213util2.pas IP 1362 uPSI_JTools.pas JCL 1363 unit uPSI_neuralbit.pas CAI 1364 unit uPSI_neuralab.pas CAI 1365 unit uPSI_winsvc2.pas TEK 1366 unit uPSI_wmiserv2.pas TEK 1367 uPSI_neuralcache.pas CAI 1368 uPSI_neuralbyteprediction CAI 1369 unit uPSI_USolarSystem; glscene.org 1370 uPSI_USearchAnagrams.pas DFF 1371 uPSI_JsonsUtilsEx.pas Randolph 1372 unit uPSI_Jsons.pas Randolph 1373 unit uPSI_HashUnit; DFF 1374 uPSI_U_Invertedtext.pas DFF 1275 unit uPSI_Bricks; Dendron 1376 unit uPSI_lifeblocks.pas Dendron Bugfix: Pagecontrol,TTabcontrol with change event TTabChangingEvent,TGetSiteInfoEvent, Json extension with objects and arrays TCheckListBox.Style Property TListBoxStyle Enumeration glsincos11 glsincos0 fix uPSI_UMatrix; Gaussian_Elimination fix array[1..30] of Extended more ico and bmp resouces, fix Textmetric type and strtochars() alias StrtoCharSet() shortcut Ctrl+Alt+M to jump to output (memo2) console Func MercScaling(Long0,lat0,long1,lat1:extended;x0,y0,x1,y1:integer) :TMercScalingRec'); Func LonglatToPlotPt(Long,lat:Extended; Scalerec:TMercScalingrec):TPoint'); Func PlotPtToLonglat(PlotPt:TPoint; Scalerec:TMercScalingrec):TRealPoint'); Func SphericalEarthDistance(lat1,lon1,lat2,lon2:extended;Units:integer):extended'); Proc PrintUsingShell(psFileName :str); Func LocalExecute32(FileName:Str;Wait:bool;Visibility:int;lWaitFor:Card=INFINITE):int; TidCGIRunner component allows to execute CGI scripts using Indy TidHTTPServer component. // Project: 1307 State Machine // Module: statmach.pas // Description: Visual Finite State Machine. // Version: 2.2a, Release: 6 preprocessor, compiler, interpreter Func VarArrayToStr(const vArray: variant):Str; Func GetWMIObject(const objectName:Str): IDispatch; //create the Wmi instance Func GetAntiVirusProductInfo: TStringlist; Proc GetWaveOutDevices(DeviceNames: TStrings); Proc GetMIDIOutDevices(Devices: TStrings); Proc SetDecimalSeparator2(Ch: Char); Totals of Func Calls: 32356 Proc ResizeBitmap(Bitmap:TBitmap;Width,Height:Integer;Background: TColor); Func ProcessCount(const ExeName:str): Integer; Func MaxWidthOfStrings(const Strings:Classes.TStrings;const Font:Graphics.TFont):Integer; Proc ScreenShotMonitor(var Bitmap:TBitmap;const MonitorNum:Integer;const DrawCursor:Bool;const Quality:TPixelFormat); https://github.com/maxkleiner/maXbox/blob/master/logisticregression2.ipynb ---- mX4 bigbitbox code_cleared_checked IMPORTS DLL LIB ---- AVICAP32.DLL 01 [+] AVICAP32.DLL AVICAP32.dll 02 [+] AVICAP32.dll GLU32.dll 03 [+] GLU32.dll IMAGEHLP.DLL 04 [+] IMAGEHLP.DLL KERNEL32.DLL 05 [+] KERNEL32.DLL MSVCRT.DLL 06 [+] MSVCRT.DLL MSVFW32.DLL 07 [+] MSVFW32.DLL OpenGL32.dll 08 [+] OpenGL32.dll SHFolder.dll 09 [+] SHFolder.dll SHfolder.dll 10 [+] SHfolder.dll URLMON.DLL 11 [+] URLMON.DLL advapi32.dll 12 [+] advapi32.dll comctl32.dll 13 [+] comctl32.dll comdlg32.dll 14 [+] comdlg32.dll gdi32.dll 15 [+] gdi32.dll imagehlp.dll 16 [+] imagehlp.dll imm32.dll 17 [+] imm32.dll iphlpapi.dll 18 [+] iphlpapi.dll kernel32.dll 19 [+] kernel32.dll mpr.dll 20 [+] mpr.dll msacm32.dll 21 [+] msacm32.dll msimg32.dll 22 [+] msimg32.dll netapi32.dll 23 [+] netapi32.dll ole32.dll 24 [+] ole32.dll oleacc.dll 25 [+] oleacc.dll oleaut32.dll 26 [+] oleaut32.dll oledlg.dll 27 [+] oledlg.dll opengl32.dll 28 [+] opengl32.dll shell32.dll 29 [+] shell32.dll shlwapi.dll 30 [+] shlwapi.dll user32.dll 31 [+] user32.dll usp10.dll 32 [+] usp10.dll version.dll 33 [+] version.dll winhttp.dll 34 [+] winhttp.dll wininet.dll 35 [+] wininet.dll winmm.dll 36 [+] winmm.dll winspool.drv 37 [+] winspool.drv ws2_32.dll 38 [+] ws2_32.dll wsock32.dll 39 [+] wsock32.dll fannfloat.dll 40 [++]fannfloat.dll dmath.dll 41 [++]dmath.dll midas.dll 42 [++]midas.dll [+] AVICAP32.DLL [+] AVICAP32.dll [+] GLU32.dll [+] IMAGEHLP.DLL [+] KERNEL32.DLL [+] MSVCRT.DLL [+] MSVFW32.DLL [+] OpenGL32.dll [+] SHFolder.dll [+] SHfolder.dll [+] URLMON.DLL [+] advapi32.dll [+] comctl32.dll [+] comdlg32.dll [+] gdi32.dll [+] imagehlp.dll [+] imm32.dll [+] iphlpapi.dll [+] kernel32.dll [+] mpr.dll [+] msacm32.dll [+] msimg32.dll [+] netapi32.dll [+] ole32.dll [+] oleacc.dll [+] oleaut32.dll [+] oledlg.dll [+] opengl32.dll [+] shell32.dll [+] shlwapi.dll [+] user32.dll [+] usp10.dll [+] version.dll [+] winhttp.dll [+] wininet.dll [+] winmm.dll [+] midas.dll [+] winspool.drv [+] ws2_32.dll [+] wsock32.dll [+] dmath.dll [+] fannfloat.dll Exports CreateIncome ExePath GetASCII GetBiosVendor GetMemoryInfo GetOSName GetProcessorName GetScriptName2 GetScriptPath2 IsCOMConnected IsInternet RemainingBatteryPercent UpTime getBigPI getHostIP isSound memo1.CodeFolding.FoldRegions.Add begin','end''try','end repeat, until''case','end {$IFDEF','{$ENDIF}; memo1.InitCodeFolding; true, '{','} writeln(GETDOSOutput('cmd.exe /c wmic cpu get name','C:\')); >>> Intel(R) Core(TM) i7-5500U CPU @ 2.40GHz V 4.7.4.64 Totals of Func Calls: 32633 SHA1: of 4.7.4.64 DA4C716E31E2A4298013DFFBDA7A98D48650B0C7 CRC32: 3EB27A87: 28.2 MB (29,608,248) bytes V 4.7.5.20 Totals of Func Calls: 33282 SHA1: of 4.7.5.20 D82EAD01C58738887661428F94B207DB1D8FAEB5 CRC32: 203C82F0 29.5 MB (31,012,768 bytes V 4.7.5.80 Totals of Calls: 33848 SHA1: of 4.7.5.80 3E38A48072D4F828A4BE4A52320F092FE50AE9C3 CRC32: 198E756B: 31344456 bytes  mX4 executed: 27/07/2021 19:05:10 Runtime:0:12:3.247 Memload: 39% use C:\maXbox\EKON_BASTA\EKON19\Windows Kits\10\bin\x64>signtool sign /f "maxbox4exe .pfx" /p "password" /tr http://timestamp.comodoca.com /td SHA256 maXbox4.exe C:\maXbox\EKON_BASTA\\Windows Kits\10\bin\x64>signtool verify /v /pa maXbox4.exe For SHA256 the Parameter name has to be /tr. The /t is only valid for SHA1. ExecuteShell(OpenSSL_Path+'openssl.exe', 'pkcs12 -in'+OpenSSL_Path+'./certs/maXboxCertAuth3.pfx -out'+OpenSSL_Path+'./certs/maXboxCertAuth3.pfx.pem -nodes') Verifying: maXbox4.exe 4.7.6.10 IV Compilation Timestamp 2022-01-14 13:20:37 Entry Point 24467336 Contained Sections 10 ***************************************************************** Release Notes maXbox 4.7.6.10 VIII August 2022 mX476 **************************************************************** Add 48 Units + 16 Tutorials 1441 unit uPSI_neuralgeneric.pas; CAI 1442 unit uPSI_neuralthread.pas; CAI 1443 unit uPSI_uSysTools; TuO 1444 unit upsi_neuralsets; mX4 1445 unit uPSI_uWinNT.pas mX4 1446 unit uPSI_URungeKutta4.pas ICS 1447 unit uPSI_UrlConIcs.pas ICS 1448 unit uPSI_OverbyteIcsUtils.pas ICS 1449 unit uPSI_Numedit2 mX4 1450 unit uPSI_PsAPI_3.pas mX4 1451 unit uPSI_SeSHA256.pas 1452 unit IdHashMessageDigest_max2; 1453 unit uPSI_BlocksUnit.pas 1454 unit uPSI_DelticsCommandLine.pas 1455 unit uPSI_DelticsStrUtils; 1456 unit uPSI_DelticsBitField; 1457 unit uPSI_DelticsSysUtils; 1458 unit uPSI_ALIniFiles2.pas 1459 unit uPSI_StarCalc2.pas 1460 unit uPSI_IdHashMessageDigest2.pas 1461 unit uPSI_U_Splines; 1462 unit uPSI_U_CoasterB.pas; 1463 U_SpringMass2.pas 1464 uPSI_MARSCoreUtils; 1465 unit uPSI_clJsonParser.pas 1466 unit uPSI_SynHighlighterPython.pas 1467 unit uPSI_DudsCommonDelphi; 1468 unit uPSI_AINNNeuron; 1469 unit uPSI_PJConsoleApp2; 1470 unit uPSI_PJPipeFilters2; 1471 unit uPSI_uHTMLBuilder; 1472 unit uPSI_PJPipe2; 1473 uPSI_WinApiDownload, 1474 uPSI_pxQRcode, //beta 1475 unit uPSI_neuralplanbuilder2 1476 unit uPSI_DelphiZXingQRCode; 1477 unit uPSI_RestJsonUtils; 1478 unit UtilsTimeCode; 1479 unit uPSC_classes2.pas; //TList 1480 unit uPSC_std2.pas 1481 unit uPSI_maxIniFiles.pas 1482 unit uROPSImports.pas 1483 unit uROPSServerLink.pas 1484 unit uPSI_KLibUtils; 1485 unit uPSI_PathFunc2; //inno setup 1486 unit KLibVC_Redist.pas; 1487 unit HTTPApp2.pas; 1488 unit uPSI_XCollection2; Total of Function Calls: 35597 SHA1: 4.7.6.10 AA16F6BCD100F0AD16A39CD9741E78A96DF5F7F1 CRC32: 412DE996: 31.7 MB (33,331,992 bytes) Amount of Functions: 21002 Amount of Procedures: 12504 Amount of Constructors: 1980 Amount of Destructors: 14 Totals of Calls: 35500 SHA1: of 4.7.6.10 AEF0EE239713A3E142EE3480F86C30B9F0B872FD CRC32: 2D7A3208: 33300808 bytes  mX4 executed: 19/03/2022 09:21:28 Runtime: 0:13:36.211 Memload: 42% use Amount of Functions: 21220 Amount of Procedures: 12616 Amount of Constructors: 1992 Amount of Destructors: 14 Totals of Calls: 35842 SHA1: of 4.7.6.10 B8590FA3326B735E14D9687076B302461D8D49D9 CRC32: CCBD8C56: 33472792 bytes  mX4 executed: 26/08/2022 09:53:21 Runtime: 0:14:24.171 Memload: 42% use  Total of Function Calls: 35842 SHA1: 4.7.6.10 B8590FA3326B735E14D9687076B302461D8D49D9 CRC32: CCBD8C56: 31.9 MB (33,472,792 bytes) recomplied 25/08/2022 22:41 483,539 fMain.dcu 25/08/2022 22:42 71,769 ALHttpClient2.dcu 25/08/2022 15:48 48,080 ALMultiPartParser.dcu 25/08/2022 22:11 20,366 ALWininetHttpClient2.dcu 25/08/2022 22:42 13,520 BlocksUnit.dcu 25/08/2022 23:24 30,875 MathsLib.dcu 25/08/2022 22:42 6,566 PXLTiming.dcu 25/08/2022 22:42 7,431 PythonAction.dcu 25/08/2022 22:42 279,159 PythonEngine.dcu 25/08/2022 22:42 6,446 SeSHA256.dcu 25/08/2022 20:14 45,539 UBigIntsV4.dcu 25/08/2022 22:42 66,215 uPSI_ALHttpClient2.dcu 25/08/2022 14:03 39,724 uPSI_ALHttpCommon.dcu 25/08/2022 23:22 7,652 uPSI_ALWininetHttpClient2.dcu 25/08/2022 22:42 28,590 uPSI_AzuliaUtils.dcu 25/08/2022 22:42 20,494 uPSI_BlocksUnit.dcu 25/08/2022 22:42 8,645 uPSI_PXLTiming.dcu 25/08/2022 22:42 175,123 uPSI_PythonEngine.dcu 25/08/2022 20:14 19,746 uPSI_UBigIntsV4.dcu 25/08/2022 22:42 46,239 VarPyth.dcu 25/08/2022 14:03 77,150 OverbyteIcsUtils.dcu  Recompiled: dir /s /o N *.dcu | find "03/01/2022" > C:\maXbox\maxboxunitalldisk_sort.txt 03/01/2022 14:28 479,283 fMain.dcu 03/01/2022 14:28 13,506 BlocksUnit.dcu 03/01/2022 13:05 30,110 clJsonParser.dcu 03/01/2022 15:22 30,878 MathsLib.dcu 03/01/2022 14:28 6,566 PXLTiming.dcu 03/01/2022 14:28 7,417 PythonAction.dcu 03/01/2022 14:28 279,035 PythonEngine.dcu 03/01/2022 14:28 6,446 SeSHA256.dcu 03/01/2022 14:28 20,494 uPSI_BlocksUnit.dcu 03/01/2022 13:50 21,242 uPSI_clJsonParser.dcu 03/01/2022 14:11 59,984 uPSI_OverbyteIcsUtils.dcu 03/01/2022 14:28 8,645 uPSI_PXLTiming.dcu 03/01/2022 14:28 175,131 uPSI_PythonEngine.dcu 03/01/2022 10:50 37,866 uPSI_U_Splines.dcu 03/01/2022 14:50 30,632 uPSI_uLkJSON.dcu 03/01/2022 11:45 44,566 uPSI_VectorLists.dcu 03/01/2022 14:28 46,239 VarPyth.dcu 03/01/2022 14:11 40,901 OverbyteIcsMimeUtils.dcu 03/01/2022 14:28 77,151 OverbyteIcsUtils.dcu 03/01/2022 15:21 108,526 uPSI_UtilsMax4.dcu 02/01/2022 11:52 11,355 U_Splines.dcu 02/01/2022 11:27 24,281 uPSI_neuraldatasets.dcu 02/01/2022 12:15 77,381 uPSI_neuralvolume.dcu 01/01/2022 22:44 48,480 U_CoasterB.dcu 01/01/2022 22:44 34,098 uPSI_U_CoasterB.dcu mX4.7.6.10 VI 16/02/2022 21:29 50,625 uPSI_StrUtils.dcu 16/02/2022 21:36 59,984 uPSI_OverbyteIcsUtils.dcu 16/02/2022 15:49 16,601 uPSI_PJConsoleApp.dcu 16/02/2022 15:27 6,527 uPSI_PJPipe.dcu 16/02/2022 18:25 105,750 uPSI_PsAPI.dcu 16/02/2022 21:36 40,891 OverbyteIcsMimeUtils.dcu 17/02/2022 11:02 479,639 fMain.dcu 17/02/2022 09:55 30,889 uPSUtils.dcu 17/02/2022 10:56 3,723 AINNNeuron.dcu 17/02/2022 11:02 13,524 BlocksUnit.dcu 17/02/2022 11:27 9,594 DudsCommonDelphi.dcu 17/02/2022 11:34 30,868 MathsLib.dcu 17/02/2022 11:02 6,568 PXLTiming.dcu 17/02/2022 11:02 7,434 PythonAction.dcu 17/02/2022 11:02 278,950 PythonEngine.dcu 17/02/2022 11:02 6,446 SeSHA256.dcu 17/02/2022 11:02 5,744 uPSI_AINNNeuron.dcu 17/02/2022 11:02 20,494 uPSI_BlocksUnit.dcu 17/02/2022 11:23 5,442 uPSI_DudsCommonDelphi.dcu 17/02/2022 10:07 11,793 uPSI_PJEnvVars.dcu 17/02/2022 11:02 8,642 uPSI_PXLTiming.dcu 17/02/2022 11:02 175,123 uPSI_PythonEngine.dcu 17/02/2022 11:02 46,244 VarPyth.dcu 17/02/2022 11:02 77,152 OverbyteIcsUtils.dcu mX4.7.6.10 VII 17/03/2022 14:08 194,307 IFSI_WinForm1puzzle.dcu 17/03/2022 20:30 46,854 uPSC_classes.dcu 17/03/2022 19:48 5,226 uPSC_std.dcu 17/03/2022 18:49 53,416 uPSR_classes.dcu 17/03/2022 20:30 19,528 uPSI_SynEditHighlighter.dcu 17/03/2022 16:03 11,784 uPSI_SynEditMiscProcs.dcu 17/03/2022 21:15 173,341 uPSI_TeEngine.dcu 17/03/2022 21:16 30,854 MathsLib.dcu 17/03/2022 20:13 77,627 uPSI_neuralvolume.dcu 17/03/2022 13:10 13,188 uPSI_UcomboV2.dcu 17/03/2022 13:26 14,813 uPSI_UTGraphSearch.dcu 17/03/2022 13:22 21,041 UTGraphSearch.dcu 17/03/2022 08:35

n 18/03/2022 18:38 5,234 uPSC_std.dcu 18/03/2022 18:38 30,854 MathsLib.dcu 18/03/2022 18:33 77,624 uPSI_neuralvolume.dcu mX4.7.6.10 VIII Recompiled Units: c:\maXbox>dir /s /o N *.dcu | find "01/08/2022" > C:\maXbox\maxboxunitalldisk_sort.txt 28/07/2022 18:44 211,349 IFSI_SysUtils_max.dcu 28/07/2022 15:56 46,996 uPSC_classes.dcu 28/07/2022 15:23 49,036 uPSC_DB.dcu 28/07/2022 16:02 53,529 uPSR_classes.dcu 28/07/2022 15:23 89,402 uPSR_DB.dcu 28/07/2022 22:37 11,941 uPSI_SynEditMiscProcs.dcu 28/07/2022 22:37 26,896 uPSI_StrUtil.dcu 28/07/2022 14:51 9,910 uPSI_IdThreadSafe.dcu 31/07/2022 22:43 7,253 KLibTypes.dcu 31/07/2022 21:46 59,910 uPSI_OverbyteIcsUtils.dcu 31/07/2022 21:38 10,411 uPSI_XCollection.dcu 31/07/2022 21:38 40,887 OverbyteIcsMimeUtils.dcu 01/08/2022 12:28 482,562 fMain.dcu 01/08/2022 13:37 66,516 uPSI_HTTPApp.dcu 01/08/2022 12:28 13,517 BlocksUnit.dcu 01/08/2022 14:19 38,401 KLibUtils.dcu 01/08/2022 14:22 30,856 MathsLib.dcu 01/08/2022 12:28 6,566 PXLTiming.dcu 01/08/2022 12:28 7,430 PythonAction.dcu 01/08/2022 12:28 278,932 PythonEngine.dcu 01/08/2022 12:28 6,446 SeSHA256.dcu 01/08/2022 12:28 20,494 uPSI_BlocksUnit.dcu 01/08/2022 14:21 21,506 uPSI_KLibUtils.dcu 01/08/2022 12:22 7,927 uPSI_PathFunc.dcu 01/08/2022 12:28 8,645 uPSI_PXLTiming.dcu 01/08/2022 12:28 175,131 uPSI_PythonEngine.dcu 01/08/2022 12:28 46,238 VarPyth.dcu 01/08/2022 12:28 77,151 OverbyteIcsUtils.dcu 03/08/2022 18:25 482,909 fMain.dcu 03/08/2022 18:24 64,415 AzuliaUtils.dcu 03/08/2022 18:25 13,523 BlocksUnit.dcu 03/08/2022 14:27 3,112 KlibConstants.dcu 03/08/2022 15:15 41,680 KLibWindows.dcu 03/08/2022 18:36 30,869 MathsLib.dcu 03/08/2022 18:25 6,568 PXLTiming.dcu 03/08/2022 18:25 7,434 PythonAction.dcu 03/08/2022 18:25 278,919 PythonEngine.dcu 03/08/2022 18:25 6,446 SeSHA256.dcu 03/08/2022 14:21 22,204 uPSI_ALHttpClient.dcu 03/08/2022 18:24 28,585 uPSI_AzuliaUtils.dcu 03/08/2022 18:25 20,494 uPSI_BlocksUnit.dcu 03/08/2022 16:33 17,512 uPSI_KLibWindows.dcu 03/08/2022 18:15 59,933 uPSI_OverbyteIcsUtils.dcu 03/08/2022 18:25 8,644 uPSI_PXLTiming.dcu 03/08/2022 18:25 175,123 uPSI_PythonEngine.dcu 03/08/2022 16:35 108,026 uPSI_VectorGeometry.dcu 03/08/2022 18:25 46,235 VarPyth.dcu 03/08/2022 18:15 40,883 OverbyteIcsMimeUtils.dcu 03/08/2022 18:25 77,145 OverbyteIcsUtils.dcu Target Machine Intel 386 or later processors and compatible processors Compilation Timestamp 2022-08-03 16:37:05 UTC Entry Point 24656140 Contained Sections 10 Target Machine Intel 386 or later processors and compatible processors Compilation Timestamp 2022-08-29 09:10:00 UTC Entry Point 24725780 Contained Sections 10 mX4.7.6.10 X Recompiled Units: C:\maXbox>dir /s /o N *.dcu | find "23/09/2022" > C:\maXbox\maxboxunitalldisk_sort.txt 23/09/2022 16:15 483,806 fMain.dcu 23/09/2022 10:00 194,750 IFSI_WinForm1puzzle.dcu 23/09/2022 12:43 81,932 uPSI_Chart.dcu 23/09/2022 11:39 97,061 uPSI_TeCanvas.dcu 23/09/2022 11:39 177,404 uPSI_TeEngine.dcu 23/09/2022 11:20 73,888 uPSI_TeeProcs.dcu 23/09/2022 16:16 71,782 ALHttpClient2.dcu 23/09/2022 16:16 13,522 BlocksUnit.dcu 23/09/2022 17:45 30,862 MathsLib.dcu 23/09/2022 16:16 6,568 PXLTiming.dcu 23/09/2022 16:16 7,434 PythonAction.dcu 23/09/2022 16:16 278,867 PythonEngine.dcu 23/09/2022 16:06 10,517 RestUtils.dcu 23/09/2022 16:16 6,446 SeSHA256.dcu 23/09/2022 16:16 66,632 uPSI_ALHttpClient2.dcu 23/09/2022 17:45 31,846 uPSI_AzuliaUtils.dcu 23/09/2022 16:16 20,494 uPSI_BlocksUnit.dcu 23/09/2022 16:16 8,642 uPSI_PXLTiming.dcu 23/09/2022 16:16 175,123 uPSI_PythonEngine.dcu 23/09/2022 16:15 11,240 uPSI_RestUtils.dcu 23/09/2022 16:16 46,235 VarPyth.dcu 23/09/2022 15:11 63,422 uPSI_Series.dcu Total of Function Calls: 35958 SHA1: 4.7.6.20 D4619B18E231839334AB0FE0B90D4018DC6276A7 CRC32: 9E995FA2 32.2 MB (33,805,592 bytes) Compilation Timestamp 2022-10-17 09:27:44 UTC Signing time 17 Oct 2022 11:48:48 Entry Point 24783132 - Contained Sections 10 C:\maXbox\EKON_BASTA\EKON19\Windows Kits\10\bin\x64>signtool verify /v /pa maXbox4.exe Verifying: maXbox4.exe Signature Index: 0 (Primary Signature) Hash of file (sha1): 5E556D92930A5ED88CBDAE8E5A174EE8D3161F56 Signing Certificate Chain: Issued to: maXboxCertAuth Issued by: maXboxCertAuth Expires: Sun Jan 01 01:59:59 2040 SHA1 hash: 6F83207B500DCC0E32A719599CBC6BD7E6B2A04D Issued to: maXbox4signer Issued by: maXboxCertAuth Expires: Sun Jan 01 01:59:59 2040 SHA1 hash: 6A89501B76D47C189A60BF1070BAA2FBFD38D7D7 Issued to: maXbox4exe Issued by: maXbox4signer Expires: Sun Jan 01 01:59:59 2040 SHA1 hash: F0EB0CA218C5707FAC78921F81092CECA12AD0E9 The signature is timestamped: Mon Oct 17 11:48:48 2022 Timestamp Verified by: Issued to: USERTrust RSA Certification Authority Issued by: USERTrust RSA Certification Authority Expires: Tue Jan 19 01:59:59 2038 SHA1 hash: 2B8F1B57330DBBA2D07A6C51F70EE90DDAB9AD8E Issued to: Sectigo RSA Time Stamping CA Issued by: USERTrust RSA Certification Authority Expires: Tue Jan 19 01:59:59 2038 SHA1 hash: 02D65B95E28370C1570095FA88F923DD937FAD8F Issued to: Sectigo RSA Time Stamping Signer #3 Issued by: Sectigo RSA Time Stamping CA Expires: Thu Aug 11 01:59:59 2033 SHA1 hash: AB34013AAC4097319F081AF0B318E183F80F7881 Successfully verified: maXbox4.exe Number of files successfully Verified: 1 Number of warnings: 0 Number of errors: 0 C:\maXbox\EKON_BASTA\EKON19\Windows Kits\10\bin\x64> MD5 863f4a600090421779a0d4855f31593c SHA-1 b2b44fc20da22111ef81553b94b0b903b9d7fa7a SHA-256 66e02bfc560c5082c2bfcb5e4b8e2a7b19fa1f60386474097625d55c7cc6b472 Vhash 0370a6666d5c0d555c051031e0900e5003116012z33034z17013109054843115z10 Authentihash 4999cd522416fd5fc367b54d2d00b253177a463c174fea96ece121a50e639e16 Imphash da442fa7c70f4ee112e5300f1dacb062 SSDEEP 393216:lWhOYZrD7vZw7VJ1T8pGxysz1Pg8DeDAmcAR9+xR7R/j4ENWDQXZd5eGlJFUVTKv:0OYZrD7cvNbzmcs9I9Rn5PdGfod TLSH T113778C62B1C0D632D05705788C0FD6E85A6A3D206DB4949B79F6BF8D2E311A17F362CB File type Win32 EXE Magic PE32 executable for MS Windows (GUI) Intel 80386 32-bit TrID Windows ActiveX control (60.1%) InstallShield setup (22.2%) Win64 Executable (generic) (5.4%) DOS Borland compiled Executable (generic) (5.1%) Win32 Executable (generic) (2.3%) DetectItEasy PE32 Compiler: Borland Delphi (2006) Linker: Turbo Linker (2.25*,Delphi) [GUI32,signed] File size 32.44 MB (34014488 bytes) Verifying: maXbox4.exe Signature Index: 0 (Primary Signature) Hash of file (sha1): 221468297F0D9C645950C99EFB8F92C12E1C9A39 Signing Certificate Chain: Issued to: maXboxCertAuth Issued by: maXboxCertAuth Expires: Sun Jan 01 00:59:59 2040 SHA1 hash: 6F83207B500DCC0E32A719599CBC6BD7E6B2A04D Issued to: maXbox4signer Issued by: maXboxCertAuth Expires: Sun Jan 01 00:59:59 2040 SHA1 hash: 6A89501B76D47C189A60BF1070BAA2FBFD38D7D7 Issued to: maXbox4exe Issued by: maXbox4signer Expires: Sun Jan 01 00:59:59 2040 SHA1 hash: F0EB0CA218C5707FAC78921F81092CECA12AD0E9 The signature is timestamped: Thu Dec 08 11:12:55 2022 Timestamp Verified by: Issued to: USERTrust RSA Certification Authority Issued by: USERTrust RSA Certification Authority Expires: Tue Jan 19 00:59:59 2038 SHA1 hash: 2B8F1B57330DBBA2D07A6C51F70EE90DDAB9AD8E Issued to: Sectigo RSA Time Stamping CA Issued by: USERTrust RSA Certification Authority Expires: Tue Jan 19 00:59:59 2038 SHA1 hash: 02D65B95E28370C1570095FA88F923DD937FAD8F Issued to: Sectigo RSA Time Stamping Signer #3 Issued by: Sectigo RSA Time Stamping CA Expires: Thu Aug 11 00:59:59 2033 SHA1 hash: AB34013AAC4097319F081AF0B318E183F80F7881 Successfully verified: maXbox4.exe Number of files successfully Verified: 1 Number of warnings: 0 Number of errors: 0 C:\maXbox\EKON_BASTA\EKON19\Windows Kits\10\bin\x64> Borland Conf 1999 Video: https://www.youtube.com/watch?v=m1Gn4echQIE http://www.softwareschule.ch/examples/classifier_compare2confusion2.py.htm Over the last few years, it has become more and more common to deploy server side solutions (and in fact any type of application) to lightweight containers rather than physical machines or virtual machines, as this allows more flexibility(also in terms of testing),a better way to rebuild the same execution environment, and more scalability. https://www.udemy.com/course/learn-coding-from-the-scratch/learn/ - Valuable information-Clear explanations Engaging delivery-Helpful practice activities - Accurate course description - Knowledgeable instructor This Version is dedicated to Katherine Goble Johnson, NASA mathematician --- The girl who asked questions --- https://github.com/joaopauloschuler/neural-api https://sourceforge.net/projects/cai/ http://www.formatio-reticularis.de/code.html http://cyberunits.sourceforge.net/ https://torry.net/files/tools/developers/scripters/maxbox4.zip https://softwareschule.code.blog/ https://maxbox4.wordpress.com/ https://my6.code.blog/2020/01/17/maxbox4machine/ https://www.filecroco.com/download-maxbox/ https://towardsdatascience.com/how-to-implement-machine-learning-for-predictive-maintenance-4633cdbe4860 https://www.udemy.com/course/learn-coding-from-the-scratch/learn/ https://data.world/maxbox https://data.world/maxbox/maxbox https://maxbox4.files.wordpress.com/2020/08/twinwizard-copy.jpeg?w=688&h=&zoom=2 https://maxbox4.files.wordpress.com/2020/07/ice4_interlaken_max.jpg?w=768&h=&zoom=2 https://github.com/maxkleiner/maXbox4/blob/master/objectdetector3.ipynb https://colab.research.google.com/github/maxkleiner/maXbox4/blob/master/objectdetector3.ipynb https://my6.code.blog/ https://entwickler-konferenz.de/blog/machine-learning-mit-cai/ https://kiosk.entwickler.de/windows-developer-magazin/windows-developer-magazin-10-20/erklaerbare-modelle-schaffen-vertrauen/ https://entwickler-konferenz.de/blog/machine-learning-mit-cai/ https://repl.it/@MaxKleiner/machinelearning4#main.py https://maxbox4.wordpress.com/2020/05/15/ekon-24/ https://colab.research.google.com/github/maxkleiner/maXbox/blob/master/EKON24_SimpleImageClassificationCPU.ipynb https://github.com/maxkleiner/maXbox4/blob/master/sentimenttree2.ipynb https://towardsdatascience.com/6-amateur-mistakes-ive-made-working-with-train-test-splits-916fabb421bb https://repl.it/@maxbox/machinelearning4#main.py https://maxbox.sourceforge.io/ https://linuxschweizag.wordpress.com/ https://maxkleiner1.medium.com/ https://ideone.com/hQ3zAd https://appdb.winehq.org/objectManager.php?sClass=version&iId=39678 https://bitbucket.org/maxbox4/maxbox4/downloads/ https://entwickler-konferenz.de/blog/machine-learning-mit-cai/ https://github.com/maxkleiner/python4delphi/blob/master/Source/PythonEngine.pas https://maxbox4.blogspot.com/ https://wiki.freepascal.org/Python4Delphi https://www.clevercomponents.com/articles/article052/ https://entwickler-konferenz.de/delphi-innovations-fundamentals/vcl4python/ Async/Await: Bake the parallel library features into the language/compilers, much like C#, Delphi and other languages have done over recent years (ala async, await). That makes it possible/easier to write highly scalable servers, over the top of asynchronous I/O. Yes, it's technically possible now, but it's so damned difficult to get right/prove it's right that very few have attempted it. This also make it possible to use the Promise pattern, something along these lines - https://github.com/Real-Serious-Games/C-Sharp-Promise to handle async tasks. Benfits: Write scalable task oriented server code without messing with low level threading, write responsive non blocking client code. This is something that is possible to do only with the extensive support of a compiler and there’s absolutely no way to write an async/await clone in Delphi. But… there’s a simple trick which allows you to write the code in almost the same way. It uses OmniThreadLibrary’s Async construct and the magic of anonymous methods. Caveats : Microsoft have a patent on Async/Await Max Kleiner's professional environment is in the areas of OOP, UML and coding - among other things as a trainer, developer and consultant. The focus is on training, IT security and frameworks that work in a service-oriented manner. As a lecturer at a university of applied sciences and on a work contract, microcontrollers and machine learning have also been added. His published book “Patterns in C #” is a constant companion in the digital jungle. Association Rules uncover the relationship between two or more attributes. It is mainly in the form of- If antecedent than consequent. Picture Exhibition 2021 https://my6.code.blog/2021/11/12/duesseldorf-ekon-25/ https://github.com/maxkleiner/neural-api https://my6.code.blog/2021/09/08/improver-4/ https://my6.code.blog/2020/11/09/grauzone/ https://github.com/maxkleiner/DelphiVCL4Python https://www.scribd.com/document/553749096/Blaise-101-UK-6P-Max-Kleiner-V-Nr91-Tutor-Synthetic-Data-SynDat https://opensea.io/maxbox4 https://blogs.embarcadero.com/fun-maxbox-is-an-all-in-one-script-engine-application-powered-by-delphi/ https://www.academia.edu/37015210/Machine_Learning_maXbox_starter60_1 https://github.com/maxkleiner/agsi-data https://www.hybrid-analysis.com/sample/c6e8c0828c61b0a05cb26ebdafe6985983eb8f6b4d92fb99ad2fa62d2ba50bed Data Scientist also requires strong technical skills in: 1. Math (e.g. linear algebra, calculus and probability). 2. Statistics (e.g. hypothesis testing and summary statistics). 3. Machine learning tools and techniques(e.g.k-nearest neighbours,random forests,ensemble methods,svm). 4. Software engineering skills (e.g.distributed computing,algorithms and data structures). 5. Data mining. 6. Data cleaning and merging. 7. Data visualization (e.g. plottsystem for R ggplot2, py and JavaScript library for manipulating documents based on data d3.js) and reporting techniques. 8. Unstructured data techniques. 9. R and/or SAS languages. 10. SQL databases and database querying languages. 11. Python (most common), C/C++ Java, Perl. 12. Big data platforms like Hadoop, Hive & Pig. 13. Cloud tools like Amazon S3. 14. Pascal Python in maXbox4 15. TotInf in maXbox4 Data Analyst 1. Work with IT teams, management and/or data scientists to determine organizational goals. 2. Mine data from primary and secondary sources. 3. Clean and prune data to discard irrelevant information. 4. Analyze and interpret results using standard statistical tools and techniques. 5. Pinpoint trends, correlations and patterns in complicated data sets. 6. Identify new opportunities for process improvement. 7. Provide concise data reports and clear data visualizations for management. 8. Design, create and maintain relational databases and data systems. 9. Triage code problems and data-related issues. 10. check always the semantic consistency (does data make valid sense?) When you run a Python script, the interpreter converts a Python program into something that that the computer can understand. Executing a Python program can be done in two ways: calling the Python interpreter with a shebang line, and using the interactive Python shell or to invoke the script file from a script shell editor like crontab or maXbox. I show 4 solutions. Suppose you have a python script file httpheader1.py: "G:\maXbox\works2022\maxbox4\examples\httpheader1.py" Doc : AssignFile versus TStringlist --------------------------------- In addition to the old style file handling routines mentioned above, a new system exists that uses concept of streams (- of data) at a higher abstraction level. Means data can be read from or written to any location (disk, memory, hardware ports etc.) by one uniform interface. In addition, most string handling classes have the ability to load and save content from/to a file. These methods are usually named SaveToFile and LoadFromFile. in // old style assign file ____ ______. _____ _____ \ \/ /\_ |__ _______ ___ / \\__ \ \ / | __ \ / _ \ \/ / | Y Y \/ __ \_/ \ | \_\ ( <_> > < |__|_| (____ /___/\ \ |___ /\____/__/\_ \ \/ \/ \_/ \/ \/ Sort of a microservice you find at: https://www.academia.edu/31112544/Work_with_microservice_maXbox_starter48.pdf .,,uod8B8bou,,. ..,uod8BBBBBBBBBBBBBBBBRPFT?l!i:. ,=m8BBBBBBBBBBBBBBBRPFT?!|||||||||||||| !...:!TVBBBRPFT||||||||||!!^^""' |||| !.......:!?|||||!!^^""' |||| !.........|||| |||| !.........|||| ## |||| !.........|||| |||| !.........|||| |||| !.........|||| |||| !.........|||| |||| `.........|||| ,|||| .;.......|||| _.-!!||||| .,uodWBBBBb.....|||| _.-!!|||||||||!:' !YBBBBBBBBBBBBBBb..!|||:..-!!|||||||!iof68BBBBBb.... !..YBBBBBBBBBBBBBBb!!||||||||!iof68BBBBBBRPFT?!:: `. !....YBBBBBBBBBBBBBBbaaitf68BBBBBBRPFT?!::::::::: `. !......YBBBBBBBBBBBBBBBBBBBRPFT?!::::::;:!^"`;::: `. !........YBBBBBBBBBBRPFT?!::::::::::^''...::::::; iBBbo. `..........YBRPFT?!::::::::::::::::::::::::;iof68bo. WBBBBbo. `..........:::::::::::::::::::::::;iof688888888888b. `YBBBP^' `........::::::::::::::::;iof688888888888888888888b. ` `......:::::::::;iof688888888888888888888888888888b. `....:::;iof688888888888888888888888888888888899fT! `..::!8888888888888888888888888888888899fT|!^"' `' !!988888888888888888888888899fT|!^"' `!!8888888888888888899fT|!^"' `!988888888899fT|!^"' `!9899fT|!^"' `!^"' Each service should be independently developed and deployed. No coordination should be needed with other service teams if no breaking API changes have been made. Each service is effectively it's own product with it's own codebase and lifecycle. Hybrid Analysis 7:27 PM (1 hour ago) to Congratulations! Your analysis is done and available at: https://www.hybrid-analysis.com/sample/102653b74b1efb16af424c243130e3c0395f9875d0e8900e688dd42a25d218a3?environmentId=160 --- Falcon Sandbox Analysis Overview --- https://www.hybrid-analysis.com/sample/102653b74b1efb16af424c243130e3c0395f9875d0e8900e688dd42a25d218a3 --- Falcon Sandbox Analysis Summary --- File Name: maXbox4.exe Analysis State: SUCCESS Threat Verdict: no specific threat Threat Score: n/a/100 AV Detection Ratio: n/a AV Family Name: Time of analysis: 2022-12-15 18:16:53 File Size (bytes): 34057496 File Type: PE32 executable (GUI) Intel 80386, for MS Windows Contacted Domains: none Contacted Hosts: none Environment: Windows 10 64 bit (ID: 160) Submission name: maXbox4.exe Size: 33MiB Type: peexe executable Mime:application/x-dosexec SHA256: 97943841d5908ea0846dc6763b14941350a0c1aa5d2b6248bfc79ffad7a0314e Copy SHA256 to clipboard Operating System: Windows Last Anti-Virus Scan: 01/25/2023 08:08:02 (UTC) Last Sandbox Report: 01/25/2023 08:08:00 (UTC) ---- /~@@~\, _______ . _\_\___/\ __ /\___|_|_ . _______ / ____ |=| \ <_+> / |=| ____ \ ~| |\|=|======\\______//======|=|/| |~ |_ | \ | | / | | \==-| \ | mX4 | / |----|~~) | | | | | | |____/~/ | | \____\____/____/ / / / | | {----------} /____/ / |___| /~~~~~~~~~~~~\ |_/~|_|/ \_/ [/~~~~~||~~~~~\] /__|\ | | | |||| | (/|[[\) [_] | | | | |_____| |_____| (_____) (_____) | | | | | | | | |/~~~\| |/~~~\| /|___|\ /|___|\ <_______><_______> A microservice architecture shifts around complexity. Instead of a single complex system, you have a bunch of simple services with complex interactions. Simplify API development for users, teams, and enterprises with the Swagger open source and professional toolset. Find out how Swagger can help you design, document your APIs at scale. >>> _od#HMM6&*MMMH::-_ _dHMMMR??MMM? ""| `"'-?Hb_ .~HMMMMMMMMHMMM#M? `*HMb. ./?HMMMMMMMMMMM"*""" &MHb. /'|MMMMMMMMMMM' - `*MHM\ / |MMM'MMHHM'' .MMMHb | 9HMMP .Hq, TMM'MMH / |MM\,H-""&&6\__ `MMMMMMb | `""HH#, \ - MMMMMMM| | `HoodHMM###. `9MMMMMH | .MMMMMMMM##\ `*"?HM | .. ,HMMMMMMMMMMMo\. |M | |MMMMM'MMMMMMM'MNHo |M | ?MMMMMMM'MMMMMMMM* |H |. `#MMMMMMMM'MMMM' .M| \ `MMMMMMMMMMM* |P `\ MMMMMMMMT"' ,H `\ `MMM'MMH? ./ \. |MMMH#" ,/ `\. |MMP' ./' `~\ `HM:.- . ,/' "-\_ '_\ . _.-" "-\-#odMM\_,oo==-" This is what we want to use in maXbox: const res = await fetch("https://libretranslate.com/translate", { method: "POST", body: JSON.stringify({ q: "Hello!", source: "en", target: "es" }), headers: { "Content-Type": "application/json" } }); console.log(await res.json()); Feature update to Windows 10, version 22H2 Target Machine Intel 386 or later processors and compatible processors SHA1: 4.7.6.20 F60338A77B77F2032061BF72A545AFB727F6395F f60338a77b77f2032061bf72a545afb727f6395f CRC32: 48455EF8 32.8 MB (34,419,992 bytes) Compilation Timestamp 2023-01-26 15:36:15 UTC Signing time 26 Jan 2023 16:41:42 Entry Point 25033256 - Contained Sections 10 sha1: f60338a77b77f2032061bf72a545afb727f6395f sha256: 9347258d5985a2fe88a1df45c3cd99747babbaa034de3e1725139684a7b6e1c7 https://maxbox4.wordpress.com/2022/11/17/data-science-story/ Teach and Train it with the Jupyter Notebook: Tested on Delphi 10.4 Community Edition Update 2 Lazarus V 2.2.4 for Windows 64 bit maXbox4 Version 4.7.6.20 PyScripter 4.1.1.0 x64 SVGImage32Package270.bpl V 3.9.4 jupyter notebook v7.0.0a11 MD5 3a228997326e3ab981e047e406ee0a77 SHA-1 f60338a77b77f2032061bf72a545afb727f6395f SHA-256 9347258d5985a2fe88a1df45c3cd99747babbaa034de3e1725139684a7b6e1c7 Vhash 0370a6666d5c0d555c051031e0900e5003116012z33034z17883109054843115z10 Authentihash 344a8eeb7669f994df01e8ba7af69e8b4a3827b782c4733506002905656ec483 Imphash 1cdc6c1287a2d8f5bfb5ac0d1f3fcaf6 SSDEEP 393216:6clUvGNCN3jg98pGx8RzxU0+jBLe9xcuMjJoy3edsNzViWVD52WB/CefyTeFcncH:AGNCN4F9AgjidOvNmcimfoc TLSH T134778C62B1C0D632D05705788C0BD6D85A6A3D207DB4949B79F6BF8E2E31161BF362CB File type Win32 EXE Magic PE32 executable for MS Windows (GUI) Intel 80386 32-bit TrID Windows ActiveX control (60.1%) InstallShield setup (22.2%) Win64 Executable (generic) (5.4%) DOS Borland compiled Executable (generic) (5.1%) Win32 Executable (generic) (2.3%) DetectItEasy PE32 Compiler: Borland Delphi (2006) Linker: Turbo Linker (2.25*,Delphi) [GUI32,signed] File size 32.83 MB (34419992 bytes) https://github.com/maxkleiner/Bayes_theorem/blob/master/clusterclass4penguins.ipynb https://github.com/maxkleiner/maXbox4/blob/master/clusterclass4penguins.ipynb https://github.com/maxkleiner/maXbox4/releases/download/V4.2.4.80/maXbox4.exe https://my6.code.blog/2022/09/02/webpostdata/ https://maxbox4.wordpress.com/2022/01/31/tutorials-overview-2014-2022/ https://blogs.embarcadero.com/why-a-data-scientist-chooses-delphi-for-powerful-real-world-visualizations/ https://youtu.be/k1-bv-74Rf8 https://maxbox4.wordpress.com/2023/05/23/mapbox-in-maxbox/ https://linuxschweizag.wordpress.com/2023/04/06/tutorials/ https://en.wikipedia.org/wiki/Anathema_(band) https://github.com/project-jedi/jvcl/blob/master/jvcl/devtools/JvclVclClx/Utils.pas https://github.com/gabr42/GpDelphiUnits/tree/master/src https://github.com/TheUnknownOnes/theunknownones/blob/master/Libraries/CommonTools/uGraphicalTools.pas https://github.com/coderserdar/DelphiComponents/blob/main/Other/API%20Pack/API_source/API_strings.pas https://github.com/graemeg/dunit2/blob/master/src/TestUtils.pas Songs for maXbox 1. Beat the Blues /2. Play Chess /3. Cary Copper (White magic) /4. Eat Garlic (NowAge) 5. Exerce de Meditation /6. Practise running (Japan) /7. Bett von Nord nach Süd – Zeitraum 8. Olemos Bruja /9. Listen white noise (Lord of Darkness) https://sourceforge.net/projects/maxbox/files/maXbox_Archive/Improver/Improver_4_Edition_2021.zip/download C:\maXbox\EKON_BASTA\EKON19\Windows Kits\10\bin\x64>signtool verify /v /pa maXbox4.exe V4.7.6.50 V Verifying: maXbox4.exe Signature Index: 0 (Primary Signature) Hash of file (sha1): FD55A476E52E8A13C41DD3AF5F0A1115DC390EB0 Signing Certificate Chain: Issued to: maXboxCertAuth Issued by: maXboxCertAuth Expires: Sun Jan 01 01:59:59 2040 SHA1 hash: 6F83207B500DCC0E32A719599CBC6BD7E6B2A04D Issued to: maXbox4signer Issued by: maXboxCertAuth Expires: Sun Jan 01 01:59:59 2040 SHA1 hash: 6A89501B76D47C189A60BF1070BAA2FBFD38D7D7 Issued to: maXbox4exe Issued by: maXbox4signer Expires: Sun Jan 01 01:59:59 2040 SHA1 hash: F0EB0CA218C5707FAC78921F81092CECA12AD0E9 The signature is timestamped: Thu Jun 15 08:42:33 2023 Timestamp Verified by: Issued to: USERTrust RSA Certification Authority Issued by: USERTrust RSA Certification Authority Expires: Tue Jan 19 01:59:59 2038 SHA1 hash: 2B8F1B57330DBBA2D07A6C51F70EE90DDAB9AD8E Issued to: Sectigo RSA Time Stamping CA Issued by: USERTrust RSA Certification Authority Expires: Tue Jan 19 01:59:59 2038 SHA1 hash: 02D65B95E28370C1570095FA88F923DD937FAD8F Issued to: Sectigo RSA Time Stamping Signer #4 Issued by: Sectigo RSA Time Stamping CA Expires: Thu Aug 03 01:59:59 2034 SHA1 hash: AE62AF750A0CBD47D6461F7568E2BC8CE7CA4F94 Successfully verified: maXbox4.exe Number of files successfully Verified: 1 Number of warnings: 0 Number of errors: 0 C:\maXbox\EKON_BASTA\EKON19\Windows Kits\10\bin\x64> C:\maXbox\EKON_BASTA\EKON19\Windows Kits\10\bin\x64> C:\maXbox\EKON_BASTA\EKON19\Windows Kits\10\bin\x64> -----_____ _____------ __ ----_ ___---- ___------ \ ----________ ---- \ -----__ | _____) __- / \ _______----- ___-- \ /)\ ------_______ ---____ \__/ / -----__ \ -- _ /\ --__--__ \_____/ \_/\ ----| / | | |___________| | | ((_(_)| )_) | \_((_(_)|/(_) \ ( \_____________) https://maxbox4.wordpress.com/blog/ Total of Function Calls: 36852 SHA1: 4.7.6.50 D4FD4CACFD766EB8F78F2BB7B5EFDDEBB386597A d4fd4cacfd766eb8f78f2bb7b5efddebb386597a CRC32: C1DCD693 33.50 MB (35,128,600 bytes) Compilation Timestamp 2023-05-31 12:44:17 UTC Signtime 31 May 2023 14:48:34 Entry Point 25234104 - Contained Sections 10 sha1: d4fd4cacfd766eb8f78f2bb7b5efddebb386597a sha256: 4dfbada6765e47c72b7c2496f831419b3461fa7c4ac6e05e2a941b501e10e022 Total of Function Calls: 36449 SHA1: 4.7.6.50 C56F0A26DFBE706E6A1A9D0E23B6114AFCC09CDC c56f0a26dfbe706e6a1a9d0e23b6114afcc09cdc CRC32: 29BCAE4D 33.12 MB (34,724,120 bytes) Compilation Timestamp 2023-05-21 13:42:16 UTC Signtime 21 May 2023 15:45:22 Entry Point 25102976 - Contained Sections 10 sha1: c56f0a26dfbe706e6a1a9d0e23b6114afcc09cdc sha256: ca5b41a709e61c1174d5105d1edc2759e01bd3c4a57a30b54dad568e104cac77 Total of Function Calls: 36781 SHA1: 4.7.6.50 FBC9E7794EEF888DCBE94350D8F53A8FD05BD51F fbc9e7794eef888dcbe94350d8f53a8fd05bd51f CRC32: 94780E06 33.37 MB (34,993,432 bytes) Compilation Timestamp 2023-05-26 07:25:55 UTC Signtime 26 May 2023 09:30:37 Entry Point 25209520 - Contained Sections 10 sha1: fbc9e7794eef888dcbe94350d8f53a8fd05bd51f sha256: c9f275808708fa8bbee56f816a6ae90f2438dd8a7085ecf8e4bbcff1e1747571 https://sourceforge.net/projects/maxbox/files/Examples/13_General/ Total of Function Calls: 36798 SHA1: 4.7.6.50 CAA09249B338ED2814B760FA549DAD47F6C789D2 caa09249b338ed2814b760fa549dad47f6c789d2 CRC32: 17A61798 33.41 MB (35,033,880) Compilation Timestamp 2023-05-30 13:17:50 UTC Signtime 30 May 2023 15:20:39 Entry Point 25217720 - Contained Sections 10 http://www.softwareschule.ch/maxbox_functions.txt sha1: caa09249b338ed2814b760fa549dad47f6c789d2 sha256: 222ee48c3409cbf176ffe9037d7958952e6754549c66d8397e927ad68ee3be17 Total of Function Calls: 36834 SHA1: 4.7.6.50 EDE730F514834A85ECA6D0190DAC8CA6046C26EE ede730f514834a85eca6d0190dac8ca6046c26ee CRC32: 4E7C4A2B 33.49 MB (35,117,336 bytes) Compilation Timestamp 2023-05-31 08:25:23 UTC Signtime 31 May 2023 10:33:00 Entry Point 25225912 - Contained Sections 10 sha1: ede730f514834a85eca6d0190dac8ca6046c26ee sha256: 168f85cff6ecdfcc4e7614758bbdb333a38f4896f94b7056f3e53af8fd15a66b Total of Function Calls: 36852 SHA1: 4.7.6.50 D4FD4CACFD766EB8F78F2BB7B5EFDDEBB386597A d4fd4cacfd766eb8f78f2bb7b5efddebb386597a CRC32: C1DCD693 33.50 MB (35,128,600 bytes) Compilation Timestamp 2023-05-31 12:44:17 UTC Signtime 31 May 2023 14:48:34 Entry Point 25234104 - Contained Sections 10 sha1: d4fd4cacfd766eb8f78f2bb7b5efddebb386597a sha256: 4dfbada6765e47c72b7c2496f831419b3461fa7c4ac6e05e2a941b501e10e022 Total of Function Calls: 36947 SHA1: 4.7.6.50 C430FDBA9880317E31D4DA2F66C884799298FCC3 c430fdba9880317e31d4da2f66c884799298fcc3 CRC32: 5BD9839C 33.62 MB (35,257,624 bytes) Compilation Timestamp 2023-06-06 14:16:08 UTC Signtime 06 June 2023 16:22:14 Entry Point 25287360 - Contained Sections 10 sha1: c430fdba9880317e31d4da2f66c884799298fcc3 sha256: 1658eb368e4e8621c51d8e568de40a12be00ad02c63dfe7a3b655603661dc4f9 V4.7.6.50 IV Amount of Functions: 22064 Amount of Procedures: 12992 Amount of Constructors: 2051 Amount of Destructors: 14 Totals of Calls: 37121 SHA1: of 4.7.6.50 9E9D9D10762AE0D0BC8AFD747C2381EA5478AE49 CRC32: 01B431EE: 35558168 bytes  mX4 executed: 12/06/2023 15:52:43 Runtime: 0:16:6.980 Memload: 41% use  Total of Function Calls: 37121 SHA1: 4.7.6.50 9E9D9D10762AE0D0BC8AFD747C2381EA5478AE49 9e9d9d10762ae0d0bc8afd747c2381ea5478ae49 CRC32: 01B431EE 33.91 MB (35,558,168 bytes) Compilation Timestamp 2023-06-12 13:17:28 UTC Signtime 12 June 2023 15:20:10 Entry Point 25377544 - Contained Sections 10 sha1: 9e9d9d10762ae0d0bc8afd747c2381ea5478ae49 sha256: fa0f30abf34292e91070a5bd4682040eb6af79a8f6c7f55111c9692153120988 V4.7.6.50 V Total of Function Calls: 37372 SHA1: 4.7.6.50 D047DBD5412C3E4A436089018B9C7FACF17A2EB5 d047dbd5412c3e4a436089018b9c7facf17a2eb5 CRC32: 38562FA8 34.04 MB (35,697,944 bytes) Compilation Timestamp 2023-06-15 06:40:19 UTC Signtime 15 June 2023 08:42:33 Entry Point 25484072 - Contained Sections 10 sha1: d047dbd5412c3e4a436089018b9c7facf17a2eb5 sha256: 193679043c46821c4b2460269111ff112e7c67b49e9cd9d951854e61bceedac7 maXbox4.exe 4.7.6.50 This report is generated from a file or URL submitted to this webservice on June 12th 2023 14:22:33 (UTC) Guest System: Windows 7 64 bit, Professional, 6.1 (build 7601), Service Pack 1 Report generated by Falcon Sandbox v10.1.5 © Hybrid Analysis Classification (TrID) 60.1% (.OCX) Windows ActiveX control 22.2% (.EXE) InstallShield setup 5.4% (.EXE) Win64 Executable (generic) 5.1% (.EXE) DOS Borland compiled Executable (generic) 2.3% (.EXE) Win32 Executable (generic) Story of V5 4.7.6.50 V 33.3 MB (34,993,432 bytes) 33.5 MB (35,128,600 bytes) 31.5. I 33.8 MB (35,454,744 bytes) 10.6. II 33.9 MB (35,558,168 bytes) 13.6. III 33.9 MB (35,673,880 bytes) 14.6 IV 34.0 MB (35,697,944 bytes) 15.6. V https://www.hybrid-analysis.com/sample/fa0f30abf34292e91070a5bd4682040eb6af79a8f6c7f55111c9692153120988 https://www.hybrid-analysis.com/sample/882ddadb9b330318bfff73d8db66d1a33be575be4cede3960374bfeb7c49c968 https://linuxschweizag.wordpress.com/2023/04/06/tutorials/ https://maxbox4.wordpress.com/2023/05/23/mapbox-in-maxbox/ https://www.integrate.io/blog/building-an-etl-pipeline-in-python/ https://medium.com/@zenrows/puppeteer-avoid-detection-517a252eb27 https://pixelscan.net/ https://github.com/z505/powtils/blob/master/dev/examples/webcmd1/htmout.pas https://www.heise.de/select/make/2022/5/softlinks/xwmq?wt_mc=pred.red.make.make052022.102.softlink.softlink https://towardsdatascience.com/5-most-powerful-one-liners-you-should-know-in-python-programming-c9d49a89b7f3 https://github.com/MakeMagazinDE/Solder-Paste-Dispenser https://linuxschweizag.wordpress.com/2023/04/06/tutorials/ https://tinyurl.com/maxboxtutorials https://tinyurl.com/maxbox4 Release Notes maXbox 5.0.2.40 Dec. 2023 mX502 beta64-bit function AddBomToIStream(const Stream: IStream): IStream'); function AddBomToStream(const Stream: IStream): IStream'); function Intf2Obj(x: IInterface): TObject'); function getmemstreamfromIStream(avariant: variant): TMemorystream'); function getmemstreamfromIStream2(avariant: variant): TMemorystream'); function getmemStreamfromIStream2File(avariant: variant; apath: string): Tmemorystream'); //function getmemStreamfromIStream2File(avariant: variant; apath: string): Tmemorystream; CL.AddDelphiFunction('function SumSquaredDigits(N: integer): integer'); function SumSquaredDigits(N: integer): integer'); maXbox5 alpha version 5.0.1.21 beta maXbox5 alpha version 5.0.1.22 beta Ocean550 maXbox5 alpha version 5.0.1.22 beta Ocean560 maXbox5 beta version 5.0.2.24 beta Ocean580 20/11/2023 maXbox5 beta version 5.0.2.28 beta Ocean590 25/11/2023 maXbox5 beta version 5.0.2.30 beta Ocean600 28/11/2023 maXbox5 beta version 5.0.2.30 beta Ocean600 06/12/2023 maXbox5 beta version 5.0.2.31 beta Ocean610 11/12/2023 maXbox5 beta version 5.0.2.40 beta Ocean620 16/12/2023 maXbox5 beta version 5.0.2.60 beta Ocean660 02/01/2024 maXbox5 beta version 5.0.2.70 beta Ocean670 05/01/2024 maXbox5 beta version 5.0.2.80 beta Ocean680 17/01/2024 maXbox5 beta version 5.0.2.90 beta Ocean690 28/01/2024 🐞 maXbox5 beta version 5.0.2.95 beta Ocean690 01/02/2024 🐞 maXbox5 beta version 5.0.3.40 beta Ocean710 04/02/2024 🐞 maXbox5 beta version 5.0.3.60 beta Ocean720 12/02/2024 🐞 maXbox5 beta version 5.0.4.70 beta Ocean740 18/02/2024 🐞 maXbox5 beta version 5.1.4.70 PEXN Ocean770 25/02/2024 🐞 maXbox5 beta version 5.1.4.80 PEXN Ocean770 01/03/2024 🐞 maXbox5 beta version 5.1.4.80 PEXN Ocean800 03/03/2024 🐞 maXbox5 beta version 5.1.4.80 UnitExplor Ocean820 08/03/2024 🐞 maXbox5 beta version 5.1.4.80 UnitExplor Ocean840 10/03/2024 🐞 maXbox5 beta version 5.1.4.90 UnitExplor Ocean840 15/03/2024 🐞 maXbox5 beta version 5.1.4.90 II UnitExplor Ocean860 20/03/2024 🐞 maXbox5 beta version 5.1.4.90 III UnitExplor Ocean860 21/03/2024 🐞 ------------------------------------------------------ This file was provided by: https://github.com/maxkleiner/maXbox4/tree/master/source2023_1_64bitbox If you downloaded it from somewhere else, please let us know: maxkleiner1@gmail.com https://maxbox4.wordpress.com/ Primo loco Fac totum Actas volat maxbox5.zip has 250 files Viruscheck as clean at: https://www.virustotal.com/gui/file/f1d09d3d7a98ac8b91618d47bdf7625867fb2b12e202d72f59ac312967257eb3/detection https://www.virustotal.com/gui/file/b4c41dd487f28e2c3cad2285f048b640579f5a4b8ce08d889e99b7c2122fe566?nocache=1 https://www.virustotal.com/gui/file/21c11f025db024bdfbadf890c4d495f38a418fac4baefbd0af6a5c687e6055a2?nocache=1 https://www.virustotal.com/gui/file/6c0883d1ac971b54b026e776b7d47a6d3ffa52b2083f18c85ccdbcf1f5b0b3e8/detection https://www.virustotal.com/gui/file/2a965afa61b2717ae0af5d683cb7b9d0fa17356027f68919751ea748dedfb90c/detection https://www.virustotal.com/gui/file/4580bf9ec64db20fc102b539ccff9fa7ecf0a8a1648d2ff147df83ca34768e07/detection https://www.virustotal.com/gui/file/442681ad017536c569230b5f78d8fd4dcebd9e2adc1559d50e68ac9a0e57a8aa/detection https://metadefender.opswat.com/results/file/bzI0MDMwMzF6cWNBQVpoOEJwTjlFWkJ2cDc_mdaas/regular/overview https://www.hybrid-analysis.com/sample/442681ad017536c569230b5f78d8fd4dcebd9e2adc1559d50e68ac9a0e57a8aa Viruscheck as clean at: https://www.virustotal.com/gui/file/b985359cba2be29838b8dafdca41f9042d919254e59d36def159b49f6d078516/detection https://www.virustotal.com/gui/file/04ca4906fa42471a019f961551558d06d748223efc1a8e33e296f84fe88b6913/detection https://metadefender.opswat.com/results/file/bzI0MDIyNWt2bFZIWFdHQUZRY2J2a0ROUm0_mdaas/regular/overview https://www.hybrid-analysis.com/sample/04ca4906fa42471a019f961551558d06d748223efc1a8e33e296f84fe88b6913 Viruscheck as clean at: https://www.virustotal.com/gui/file/998280f98383457e9148bb73f0787b25f3173af1aa52a854dcd78cc52bb0df2b/detection https://metadefender.opswat.com/results/file/bzI0MDIxOElhRDNoUVBueXJIdDBvU0pla0k_mdaas/regular/overview https://www.hybrid-analysis.com/sample/998280f98383457e9148bb73f0787b25f3173af1aa52a854dcd78cc52bb0df2b https://www.virustotal.com/gui/file/5439e647a22a33aa87caaea96adc16f867c78321ea5249fc3a92a7a6fe2980fa/detection https://metadefender.opswat.com/results/file/bzI0MDIxNUxvY2xxWFN2VDhHSHdKZ0xsbFE_mdaas/regular/overview https://www.hybrid-analysis.com/sample/928326a4211b50edc4fcd88aa001d19c69d1bc33292dc121c4c7d7d5a4c1eaf9 https://www.virustotal.com/gui/file/90de12e5f0ff2307023ff96644be35a976ea1ea3df497e1060cca3f11c5918bc/detection https://metadefender.opswat.com/results/file/bzI0MDIxMktiTUpkWnl5YmtaVjh3OEk2Rl9w_mdaas/regular/overview https://www.hybrid-analysis.com/sample/90de12e5f0ff2307023ff96644be35a976ea1ea3df497e1060cca3f11c5918bc/65ca1e1c20f2c83e7a086b7b https://www.virustotal.com/gui/file/4bf74727ef80b99a10ef7daf8a0c2be4b54415387df87cf57ed9d334ca826088/detection https://www.virustotal.com/gui/file/7d0f6a42f1fc75f82bace5ce1704018839b2366b7689a40b1bef0f39fb169d96/detection https://www.hybrid-analysis.com/sample/5c6fd68214935dcbe13ed14529a265d2d4a12a2cfabbdb2c43754118bcecc615 https://www.virustotal.com/gui/file/5c6fd68214935dcbe13ed14529a265d2d4a12a2cfabbdb2c43754118bcecc615/detection https://www.virustotal.com/gui/file/a0cb07f0ada81f317b8bdda7ada408619624a1148347c5365ed3fa2d8fae4862/detection https://www.virustotal.com/gui/file/da34199785ae5371e2cf8a23a12b68295f7c968ba0c8a24f367baf0c5f091439/detection https://metadefender.opswat.com/results/file/bzI0MDEwMTJJSTN0R3h5dHV6MS1wdzBpLWo_mdaas/regular/sandbox/details https://www.virustotal.com/gui/file/048dae8dab0df4bc6b3f77233a3a4c8f2ca0a56517a9861bb94c2179cfdb87fe/detection https://www.virustotal.com/gui/file/0d31956549a268645a2616f0c358772042f44f69714d4f0de6ba455d99f40855/detection https://www.hybrid-analysis.com/sample/a6215ee348a7434b90f215362731337c36bb6e711c61d5cf5fdc213e6e9ee36f/657191c420cba00ce108a768 https://www.virustotal.com/gui/file/a6215ee348a7434b90f215362731337c36bb6e711c61d5cf5fdc213e6e9ee36f/detection https://www.hybrid-analysis.com/sample/f999d8522736906d9c93c1867ec536c3dbdd6ec8a939982572534835f7253743 https://www.virustotal.com/gui/file/f999d8522736906d9c93c1867ec536c3dbdd6ec8a939982572534835f7253743/detection https://www.virustotal.com/gui/file/3e1dee4a7d1120b8b706d6d08bfc756fe8a13abd4df0317958f7b6a0e4c8ee0d/detection https://www.virustotal.com/gui/file/cae3a4eae8f3bcfbd972c4675894891f35d5ef97c326624e0e8b2f585aea0911?nocache=1 https://www.virustotal.com/gui/file/ee1d20b3e44855308813d54b3768a97c842524e1a021ec6adfacb022e523a40f?nocache=1 https://www.virustotal.com/gui/file/00e6bb40d6e3ab176e5d9024b52975d710df5ad0cdfb79e5ce255db8a386bf10?nocache=1 https://www.virustotal.com/gui/file/ffd69c30dbe891a029451899400be4409ebf78718ec8fc2ec5ceaf13a01238d8/detection https://www.virustotal.com/gui/file/1058b2b6004a73ebd6d4b3ecc54b36dec94be97c0c2c75e406d266712b3db011/detection https://www.virustotal.com/gui/file/0c0851d0ebe022fa42360465d803cdc11e6ae81b688ac3a8a4f06e6203914ff2/detection https://www.virustotal.com/gui/file/67dee7d584bd6d53bef4f6891b9b73521302cdc66a2c4cc7d8ea96939bed6450/detection https://www.virustotal.com/gui/file/34040f3dd5f929ef4b3142bf3b2a206057ef58956595ecfa7ab2cd91e4e66ee5/detection https://www.virustotal.com/gui/file/ce681d23c7e3ec6febc0af5e7fd87674d65e63f595641e87092c01957a27f894/detection https://www.virustotal.com/gui/file/82591ab1b613368f3a4c235300d79bc958867244326292d9ec940619dc874afe/details https://www.virustotal.com/gui/file/2100cc8d605b5396f3acdb4c235615281b3938767270517f102afc6bb48c582a/detection https://www.virustotal.com/gui/file/3659aa9ef8e9e85da0bef15c6f9af88da869023c549b98688cba7a6062966dcf/detection https://www.virustotal.com/gui/file/dc542ca67bec024448447e01e31197cda60374e47b7f4c61ece2d79c8312e375/detection https://www.virustotal.com/gui/file/5af156d782e755b35fccd72dcb4cea8729c50c332fc00e69272028297bf2373d/details The individual DLL files like dmath64.dll are provided free of charge with the understanding that the user is familiar with their use. If you need further information, please see: https://maxbox4.wordpress.com/ or ask your question in the forum: https://github.com/maxkleiner/maXbox4/issues https://forum.dll-files.com/ DISCLAIMER AND LIMITATION OF LIABILITY The Following Refers to all Files with the Extension of "dll" or dlls compressed as "zip" or files as "exe" or compressed as "zip". All files are provided on an as is basis. No guarantees or warranties are given or implied. Downloading files from this site is free of charge and the user assumes all risks of any damages that may occur, including but not limited to loss of data, damages to hardware, or loss of business profits. We do our best to ensure that all files are virus-free using available means. However, all files have not been tested for functionality or contamination. Many have been sent to us by visitors like yourself. Thus, we suggest that you do a virus scan using an up-to-date version of an anti-virus program before use. Please use at your own risk. Diff from 5.0.2.28 to 5.0.2.30 ------------------------------------------------------------------ C:\maxbox\maxbox4\maxbox4\examples>fc 52output.txt 50output.txt Comparing files 52Output.txt and 50OUTPUT.TXT ***** 52Output.txt CommonTools CompFileIo Compilers.URunner ***** 50OUTPUT.TXT CommonTools Compilers.URunner ***** ***** 52Output.txt IdIPAddress IdIPMCastBase IdIPMCastClient IdIPWatch IdLogBase ***** 50OUTPUT.TXT IdIPAddress IdLogBase ***** ***** 52Output.txt IdLPR IdMailBox IdMappedPortUDP ***** 50OUTPUT.TXT IdLPR IdMappedPortUDP ***** ***** 52Output.txt IdMessageCoderXXE IdMessageCollection IdMessageParts ***** 50OUTPUT.TXT IdMessageCoderXXE IdMessageParts ***** ***** 52Output.txt IdQotd IdQotdServer IdQOTDUDP ***** 50OUTPUT.TXT IdQotd IdQOTDUDP ***** ***** 52Output.txt uPSI_ComObjOleDB_utils uPSI_CompFileIo uPSI_CompilersURunner ***** 50OUTPUT.TXT uPSI_ComObjOleDB_utils uPSI_CompilersURunner ***** ***** 52Output.txt uPSI_IdIOHandlerStream uPSI_IdIPMCastBase uPSI_IdIPMCastClient uPSI_IdIPWatch uPSI_IdLogBase ***** 50OUTPUT.TXT uPSI_IdIOHandlerStream uPSI_IdLogBase ***** ***** 52Output.txt uPSI_IdLPR uPSI_IdMailBox uPSI_IdMappedPortUDP ***** 50OUTPUT.TXT uPSI_IdLPR uPSI_IdMappedPortUDP ***** ***** 52Output.txt uPSI_IdQotd uPSI_IdQotdServer uPSI_IdQOTDUDP ***** 50OUTPUT.TXT uPSI_IdQotd uPSI_IdQOTDUDP ***** ***** 52Output.txt uPSI_JvHtmlParser uPSI_JvImageDrawThread uPSI_JvImageWindow ***** 50OUTPUT.TXT uPSI_JvHtmlParser uPSI_JvImageWindow ***** ***** 52Output.txt ZURL Contains ModulesCountEnd___: 3390 ***** 50OUTPUT.TXT ZURL Contains ModulesCountEnd___: 3392 ***** F:\maxbox\maxbox5\maxbox5\examples https://www.virustotal.com/gui/file/f64df137d0ae2fc724d3bbd419c850b9262554776aadfed03c0b5cb27e7806bb/details procedure testcommonfunc; begin SFileExpr','String').SetString( '(([a-zA-Z]:)?[^\*\?="<>|:,;\+\^]+)'); SWarningFilePosExpr','String').SetString( SFileExpr + ':(\d+):'); WideLF2','Char').SetString( WideChar ( #10 )); WideNull2','Char').SetString( WideChar ( #0 )); AnsiLineFeed','Char').SetString( AnsiChar ( #10 )); AnsiCarriageReturn','Char').SetString( AnsiChar ( #13 )); AnsiCrLf','String').SetString( AnsiString ( #13#10 )); WordBreakString','String').SetString( ',.;:"´`°^!?&$@§%#~[](){}<>-=+*/\| '); function GetIconIndexFromFile( const AFileName : string; const ASmall : boolean) : integer'); GetLongFileName2( const APath : string) : string'); StrIsLeft( AText, ALeft : PWideChar) : Boolean'); StrIsRight( AText, ARight : PChar) : Boolean'); StrGetToken2( var Content : PChar; Separators, WhiteSpace, QuoteChars : TSysCharSet) : string'); StrUnQuote( const AText : string) : string'); LightenColor( Color : TColor; Percentage : integer) : TColor'); DarkenColor2( Color : TColor; Percentage : integer) : TColor'); SelectionBackgroundColor( ) : TColor'); ApplicationVersion : string'); CompareVersion( const A, B : String) : Integer'); ConnectedToInternet : boolean'); GetNthLine( const S : string; LineNo : integer) : string'); GetLineRange( const S : string; StartLine, EndLine : integer) : string'); GetWordAtPos(const LineText:string;Start:Integer;WordChars:TSysCharSet;ScanBackwards:boolean;ScanForward:bool HandleBrackets: Bool) : string'); FormatDocString( const DocString : string) : string'); CalcIndent( S : string; TabWidth : integer) : integer'); DirIsPythonPackage( Dir : string) : boolean'); FileIsPythonPackage( FileName : string) : boolean'); GetPackageRootDir( Dir : string) : string'); FileNameToModuleName( const FileName : string) : string'); HTMLSafe( const S : string) : string'); GetParamStr( P : PChar; var Param : string) : PChar'); ReadLnFromStream( Stream : TStream; AMaxLineLength : Integer; AExceptionIfEOF : Boolean) : AnsiString'); ParsePySourceEncoding( Textline : string) : string'); SyncWideInputQuery( const ACaption, APrompt : string; var Value : string) : Boolean'); CleanEOLs( S : AnsiString) : AnsiString;'); CleanEOLs1( S : string) : string;'); SortedIdentToInt( const Ident : string; var Int : Longint;const SortedMa: array of TIdentMapEntry;CaseSensitive Bool): Bool'); ComparePythonIdents( const S1, S2 : string) : Integer;'); ComparePythonIdents1( List : TStringList; Index1, Index2 : Integer) : Integer;'); SetDefaultFonts( const AFont : TFont)'); SetDesktopIconFonts( const AFont : TFont)'); SetVistaContentFonts2( const AFont : TFont)'); VSNextWordPos( SynEdit : TCustomSynEdit; const XY : TBufferCoord) : TBufferCoord'); VSPrevWordPos( SynEdit : TCustomSynEdit; const XY : TBufferCoord) : TBufferCoord'); ExtractPyErrorInfo( E : Variant; var FileName : string; var LineNo : Integer; var Offset : Integer)'); FileToAnsiStr( const FileName : String) : AnsiString'); FileToEncodedStr( const AFileName : string) : AnsiString'); FileToStr2( const AFileName : string) : string'); WalkThroughDirectories( const Paths, Masks: string; const PreCallback:TDirectoryWalkProc;onst Recursive:Boolean)'); GetFilesInPaths( Paths, Masks : string; FileList : TStrings; Recursive : Boolean)'); GetDirectoriesInPaths( Paths, Masks : string; DirList : TStrings; Recursive : Boolean)'); StrTrimCharsLeft2( const S : string; const Chars : TSysCharSet) : string'); StrTrimCharsRight2( const S : string; const Chars : TSysCharSet) : string'); StrToken2( var S : String; Separator : Char) : string'); GetClipboardWideText : string'); SetClipboardWideText( AText : string)'); ClipboardProvidesWideText : Boolean'); CanActuallyFocus( WinControl : TWinControl) : Boolean'); CompiledRegExpr( Expr : string) : TRegExpr'); IsDigits( S : string) : Boolean'); Dedent( const S : string) : string'); IdentRE','String').SetString( '[A-Za-z_][A-Za-z0-9_]*'); DottedIdentRE','String').SetString( '[A-Za-z_][A-Za-z0-9_.]*'); https://www.hybrid-analysis.com/sample/f64df137d0ae2fc724d3bbd419c850b9262554776aadfed03c0b5cb27e7806bb { Expands environment variables } function ExpandEnv(const S: string): string; { Surrounds string with quotes when it contains spaces and is not quoted } function AddQuotesUnless(const S: string): string; { Prepares an application name or the command line parameters for execution } function PrepareCommandLine(S: string): string; procedure SaveBitmapToStream(ABitmap: TBitmap; AToStream: TStream); function LoadBitmapFromStream(AFromStream: TStream): TBitmap; procedure SaveStringToStreamUTF8(AString: string; AStream: TStream); function LoadStringFromStreamUTF8(AStream: TStream): string; function LoadSubStreamFromStream(const AFromStream, AToSubStream: TStream): boolean;'); procedure SaveSubStreamToStream(const AFromSubStream, AToStream: TStream);'); function Date8ToStringRFC822(Const Date8AAfficher: string): string; Function TextMeters(AMeters: Single; DecPlace, MaxLen, PosPoint: Byte): String; Function RealFrmDegreeText(AText:String):double; function TextDegreeMinuteSecondFrmDec(Value: Double; AAccuracy: Integer): String; function WideCharsInSet( wcstr:WideString; wcset:TBits):Boolean; function JSONUnescape(const Source: string; CRLF: string{ = #13#10}): string; function parseJsonvalue(jsonutf8: string): string; procedure SaveBitmapToStream(ABitmap: TBitmap; AToStream: TStream); function LoadBitmapFromStream(AFromStream: TStream): TBitmap; procedure SaveStringToStreamUTF8(AString: string; AStream: TStream); function LoadStringFromStreamUTF8(AStream: TStream): string; function LoadSubStreamFromStream(const AFromStream, AToSubStream: TStream): boolean;'); procedure SaveSubStreamToStream(const AFromSubStream, AToStream: TStream);'); function Date8ToStringRFC822(Const Date8AAfficher: string): string; Function TextMeters(AMeters: Single; DecPlace, MaxLen, PosPoint: Byte): String; Function RealFrmDegreeText(AText:String):double; function TextDegreeMinuteSecondFrmDec(Value: Double; AAccuracy: Integer): String; procedure setdebugcheck(false); function TAddressGeoCodeOSM5('Hauptbahnhof, Graz, Austria'): TLatlong; function libCompilerString: string; function EncodeURIComponent2('http://www.google.com/search?q=big%25%26little') writeln(utf8decode(EncodeURIComponent2('http://www.google.com/search?q=big%25%26little'))); { alatlong:= TAddressGeoCodeOSM5('Hauptbahnhof, Graz, Austria'); writeln('OSM5 res back_: '+alatlong.descript); //writeln('get geocoords: '+flots(latlong.lat)+' '+flots(latlong.long)); writeln('get geocoords: '+format(' lat: %.4f - lon: %.4f',[alatlong.lat,alatlong.long])); } type TTimeZoneMode = (zmError, zmIgnore, zmAsUTC, zmAsLocal); TTimeZoneInfo = record HourOff: Integer; MinOff: Integer; HasTimeZone: Boolean; IsUTC: Boolean; end; function AdjustTimeZone(var DateTime: TDateTime; const TimeZone: TTimeZoneInfo; TimeZoneMode: TTimeZoneMode): Boolean; function AdjustTime(Value: TDateTime; HourOff, MinOff: Integer): TDateTime; function BufToBytes(var buf: string; fromindex, len: integer): TBytes;'); function BufToString_ANSI(var buf: string; fromindex, len: integer): string;'); function BufToString_UNICODE(var buf: string; fromindex, len: integer; optsourcecodepage: integer): string;'); function StringToVarArray(const S: string): Variant; begin Result := Unassigned; if S <> '' then begin Result := VarArrayCreate([0, Length(S) - 1], varByte); Move(Pointer(S)^, VarArrayLock(Result)^, Length(S)); VarArrayUnlock(Result); end; end; function IsCOMObjectActive(ClassName: string): Boolean; var ClassID: TCLSID; Unknown: IUnknown; begin try ClassID := ProgIDToClassID(ClassName); Result := GetActiveObject(ClassID, nil, Unknown) = S_OK; except // raise; Result := False; end; end; function IsCOMObjectActive2(const ClassName: string): Boolean; var ClassID: TCLSID; Unknown: IUnknown; begin Result := False; if Succeeded(CLSIDFromProgID(PWideChar(WideString(ClassName)), ClassID)) then Result := Succeeded(GetActiveObject(ClassID, nil, Unknown)); end; function IsObjectAvailable(const ClassName: string): Boolean; var ClassID: TCLSID; begin Result := Succeeded(CLSIDFromProgID(PWideChar(WideString(ClassName)), ClassID)); end; function ResolveShellLink(const Path: string): string; function IsCOMObjectActive2(const ClassName: string): Boolean;'); function IsCOMObjectAvailable(const ClassName: string): Boolean;'); procedure setdebugcheck(false); procedure setdebugcheck(true); procedure maxform1.console; procedure maxform1.setconsole; procedure loadjpegresource3(_instance: cardinal; aimage: Timage; aresname: string); procedure loadjpegresource4(_instance: cardinal; aimage: Timage; aresname, restyp: string); function loadanyresource5(_instance: cardinal; aresname, restyp: string): TResourceStream; function loadjpegresource5(_instance: cardinal; aresname: string): Graphics.TBitmap; procedure loadjpegresource4(_instance: cardinal; aimage: Timage; aresname, restyp: string); var RS: TResourceStream; JPGImage: TJPEGImage; begin JPGImage := TJPEGImage.Create; //result:= Timage.Create(nil); try RS := TResourceStream.Create(_Instance, aresname, pwidechar(restyp)); try JPGImage.LoadFromStream(RS); aimage.Picture.Graphic := JPGImage; finally RS.Free; end; finally JPGImage.Free; end; end; procedure saveasunicode; //v5.02.60 begin //to save contexr as unicode - append(Text(mycodestring)) maxform1.memo1.lines.savetofile(maxform1.Act_Filename, TEncoding.UTF8); maxform1.memo2.lines.Add('----File saved as Unicode!----UTF8 ??'); maxform1.memo1.Lines.LoadFromFile(maxform1.Act_Filename, TEncoding.UTF8); end; procedure saveasansi; //v5.02.60 begin //to save contexr as unicode - append(Text(mycodestring)) maxform1.memo1.lines.savetofile(maxform1.Act_Filename, TEncoding.ansi); maxform1.memo2.lines.Add('----File saved as Ansi!----Ansi8'); end; MD5 41db8bf9bdb25d4335f6783ad68ae8e5 SHA-1 ddf3fa4e3ccb0835082c8d8bbd9ddd98a5b5c7b5 SHA-256 da34199785ae5371e2cf8a23a12b68295f7c968ba0c8a24f367baf0c5f091439 maXbox5 beta version 5.0.2.70 beta Ocean670 04/01/2024 ------------------------------------------------------ This file was provided by: https://github.com/maxkleiner/maXbox4/tree/master/source2023_1_64bitbox If you downloaded it from somewhere else, please let us know: maxkleiner1@gmail.com https://maxbox4.wordpress.com/ Primo loco - Fac totum - Actas volat maxbox5.zip has 196 files V.5.0.2.70 uPSI_flcUnicodeCodecs procedure SIRegister_flcUnicodeCodecs(CL: TPSPascalCompiler); begin CL.AddTypeS('TCodecErrorAction', '( eaException, eaStop, eaIgnore, eaSkip, eaReplace )'); CL.AddTypeS('TCodecReadLFOption', '( lrPass, lrNormalize )'); CL.AddTypeS('TCodecWriteLFOption', '( lwLF, lwCR, lwCRLF )'); CL.AddTypeS('ByteChar','AnsiChar'); CL.AddTypeS('TCodecReadEvent', 'Procedure ( Sender : TObject; var Buf, Count ' +': Longint; var Ok : Boolean)'); CL.AddTypeS('TCodecWriteEvent', 'Procedure ( Sender : TObject; const Buf, Count : Longint)'); SIRegister_TCustomUnicodeCodec(CL); //&&&&&&CL.AddTypeS('TUnicodeCodecClass', 'class of TCustomUnicodeCodec'); CL.AddTypeS('TUnicodeCodecClass', 'TCustomUnicodeCodec'); SIRegister_EUnicodeCodecException(CL); Procedure RegisterCodecs( const Codecs : array of TUnicodeCodecClass)'); Function GetCodecClassByAlias( const CodecAlias : String) : TUnicodeCodecClass'); Function GetCodecClassByAliasA( const CodecAlias : RawByteString) : TUnicodeCodecClass'); Function GetCodecClassByAliasU( const CodecAlias : UnicodeString) : TUnicodeCodecClass'); Function GetSystemEncodingName : String'); Function GetSystemEncodingCodecClass : TUnicodeCodecClass'); Function DetectUTFEncoding(const Buf : __Pointer; const BufSize : Integer; out BOMSize : Integer) : TUnicodeCodecClass'); Function EncodingToUTF16U(const CodecClass : TUnicodeCodecClass;const Buf:__Pointer;const BufSize Integer): UnicodeString;'); Function EncodingToUTF16U1(const CodecClass : TUnicodeCodecClass; const S : RawByteString) : UnicodeString;'); Function EncodingToUTF16U2(const CodecAlias : String; const Buf : __Pointer; const BufSize : Integer) : UnicodeString;'); Function EncodingToUTF16U3(const CodecAlias : String; const S : RawByteString) : UnicodeString;'); Function UTF16ToEncodingU(const CodecClass : TUnicodeCodecClass; const S : UnicodeString) : RawByteString;'); Function UTF16ToEncodingU1(const CodecAlias : String; const S : UnicodeString) : RawByteString;'); SIRegister_TUTF8Codec(CL); SIRegister_TUTF16LECodec(CL); SIRegister_TUTF16BECodec(CL); SIRegister_TUCS4BECodec(CL); SIRegister_TUCS4LECodec(CL); SIRegister_TUCS4_2143Codec(CL); SIRegister_TUCS4_3412Codec(CL); SIRegister_TUCS2Codec(CL); SIRegister_TCustomSingleByteCodec(CL); //CL.AddTypeS('TUnicodeSingleByteCodecClass', 'class of TCustomSingleByteCodec'); SIRegister_TISO8859_1Codec(CL); SIRegister_TISO8859_2Codec(CL); SIRegister_TISO8859_3Codec(CL); SIRegister_TISO8859_4Codec(CL); SIRegister_TISO8859_5Codec(CL); SIRegister_TISO8859_6Codec(CL); SIRegister_TISO8859_7Codec(CL); SIRegister_TISO8859_8Codec(CL); SIRegister_TISO8859_9Codec(CL); SIRegister_TISO8859_10Codec(CL); SIRegister_TISO8859_13Codec(CL); SIRegister_TISO8859_14Codec(CL); SIRegister_TISO8859_15Codec(CL); SIRegister_TWindows37Codec(CL); SIRegister_TWindows437Codec(CL); SIRegister_TWindows500Codec(CL); SIRegister_TWindows708Codec(CL); SIRegister_TWindows737Codec(CL); SIRegister_TWindows775Codec(CL); SIRegister_TWindows850Codec(CL); SIRegister_TWindows852Codec(CL); SIRegister_TWindows855Codec(CL); SIRegister_TWindows857Codec(CL); SIRegister_TWindows858Codec(CL); SIRegister_TWindows861Codec(CL); SIRegister_TWindows862Codec(CL); SIRegister_TWindows863Codec(CL); SIRegister_TWindows864Codec(CL); SIRegister_TWindows865Codec(CL); SIRegister_TWindows866Codec(CL); SIRegister_TWindows869Codec(CL); SIRegister_TWindows870Codec(CL); SIRegister_TWindows874Codec(CL); SIRegister_TWindows875Codec(CL); SIRegister_TWindows1026Codec(CL); SIRegister_TWindows1047Codec(CL); SIRegister_TWindows1140Codec(CL); SIRegister_TWindows1141Codec(CL); SIRegister_TWindows1142Codec(CL); SIRegister_TWindows1143Codec(CL); SIRegister_TWindows1144Codec(CL); SIRegister_TWindows1145Codec(CL); SIRegister_TWindows1146Codec(CL); SIRegister_TWindows1147Codec(CL); SIRegister_TWindows1148Codec(CL); SIRegister_TWindows1149Codec(CL); SIRegister_TWindows1250Codec(CL); SIRegister_TWindows1251Codec(CL); SIRegister_TWindows1252Codec(CL); SIRegister_TWindows1253Codec(CL); SIRegister_TWindows1254Codec(CL); SIRegister_TWindows1255Codec(CL); SIRegister_TWindows1256Codec(CL); SIRegister_TWindows1257Codec(CL); SIRegister_TWindows1258Codec(CL); SIRegister_TIBM037Codec(CL); SIRegister_TIBM038Codec(CL); SIRegister_TIBM256Codec(CL); SIRegister_TIBM273Codec(CL); SIRegister_TIBM274Codec(CL); SIRegister_TIBM275Codec(CL); SIRegister_TIBM277Codec(CL); SIRegister_TIBM278Codec(CL); SIRegister_TIBM280Codec(CL); SIRegister_TIBM281Codec(CL); SIRegister_TIBM284Codec(CL); SIRegister_TIBM285Codec(CL); SIRegister_TIBM290Codec(CL); SIRegister_TIBM297Codec(CL); SIRegister_TIBM420Codec(CL); SIRegister_TIBM423Codec(CL); SIRegister_TIBM424Codec(CL); SIRegister_TIBM437Codec(CL); SIRegister_TIBM500Codec(CL); SIRegister_TIBM850Codec(CL); SIRegister_TIBM851Codec(CL); SIRegister_TIBM852Codec(CL); SIRegister_TIBM855Codec(CL); SIRegister_TIBM857Codec(CL); SIRegister_TIBM860Codec(CL); SIRegister_TIBM861Codec(CL); SIRegister_TIBM862Codec(CL); SIRegister_TIBM863Codec(CL); SIRegister_TIBM864Codec(CL); SIRegister_TIBM865Codec(CL); SIRegister_TIBM866Codec(CL); SIRegister_TIBM868Codec(CL); SIRegister_TIBM869Codec(CL); SIRegister_TIBM870Codec(CL); SIRegister_TIBM871Codec(CL); SIRegister_TIBM874Codec(CL); SIRegister_TIBM875Codec(CL); SIRegister_TIBM880Codec(CL); SIRegister_TIBM904Codec(CL); SIRegister_TIBM905Codec(CL); SIRegister_TIBM918Codec(CL); SIRegister_TIBM1004Codec(CL); SIRegister_TIBM1026Codec(CL); SIRegister_TIBM1047Codec(CL); SIRegister_TMacLatin2Codec(CL); SIRegister_TMacRomanCodec(CL); SIRegister_TMacCyrillicCodec(CL); SIRegister_TMacGreekCodec(CL); SIRegister_TMacIcelandicCodec(CL); SIRegister_TMacTurkishCodec(CL); SIRegister_TUSASCIICodec(CL); SIRegister_TEBCDIC_USCodec(CL); SIRegister_TKOI8_RCodec(CL); SIRegister_TJIS_X0201Codec(CL); SIRegister_TNextStepCodec(CL); CL.AddDelphiFunction('Procedure UnicodeCodecTest'); CL.AddDelphiFunction('Procedure TestUnicodeCodecs'); end; Doc: https://www.fileformat.info/info/unicode/char/262e/index.htm CL.AddDelphiFunction('function GetElementAtIndex(S: String; StrIdx : Integer): String;'); function NormalizeText(Str: string): string; '); function GetFirstCodepointSize(const S: UTF8String): Integer; function Utf8ToUtf16( const sIn: AnsiString; iSrcCodePage: DWord): WideString; procedure SaveString2(const AFile, AText: string); procedure SaveString3(const AFile, AText: string; Append: Boolean); //UTF8 procedure DelimitedStringToStringList(s, sDelim: string; var SL: TStringList); function loadjpegresource5(_instance: cardinal; aresname: string): Graphics.TBitmap; function DSplitString(sInput:string; Delimiter:string): TStringArray;'); CL.AddDelphiFunction('function SplitString2(sInput:string; Delimiter:string): TStringArray;'); function LoadFile3(const FileName: TFileName): string; var Stri: TStrings; Stream: TStream; begin stream:= TFileStream.Create(FileName, fmOpenRead or fmShareDenyWrite); Stri:= TStringlist.create; try try stri.LoadFromStream(Stream, TEncoding.UTF8); result:= stri.Text; except Result := ''; // Deallocates memory stream.Free; raise; end; finally stri.Free; stream.Free; end; end; http://www.softwareschule.ch/download/maxbox_starter60_1.pdf constructor TStreamWriter.Create(const Filename: string; Append: Boolean); begin if not Append or not FileExists(Filename) then FStream := TFileStream.Create(Filename, fmCreate) else begin FStream := TFileStream.Create(Filename, fmOpenWrite); FStream.Seek(0, soEnd); end; Create(FStream); FOwnsStream := True; end; constructor TStreamWriter.Create(const Filename: string; Append: Boolean; Encoding: TEncoding; BufferSize: Integer); begin if not Append or not FileExists(Filename) then FStream := TFileStream.Create(Filename, fmCreate) else begin FStream := TFileStream.Create(Filename, fmOpenWrite); FStream.Seek(0, soEnd); end; Create(FStream, Encoding, BufferSize); FOwnsStream := True; end; procedure SaveString3(const AFile, AText: string; Append: Boolean); var Writer: TStreamWriter; //, TEncoding.UTF8 begin //GetElementAtIndex { Create a new stream writer directly. } Writer:= TStreamWriter.Create(Afile, append, TEncoding.UTF8); try Writer.Write(Atext); finally { Close and free the writer. } Writer.Free; end; end; bugs bug in 64-bit box bug box wanna mention general bugs found since version 5.0.2.70 to 5.0.3.40 ---------------------------------------------------------- 1. [var as word type] Having a var as word type you get a type mismatch unless you change word to dword (list below) Example: DecodeDate( Date : TDateTime; var Year, Month, Day : Word); change var ttyear, ttMonth, ttDay : dWord; DecodeDate(now, ttYear,ttMonth, ttDay); 2. [inttoAscii instead of chr] some functions need IntToAscii( Value : Int64; Digits : Int) :Str; instead of chr() function 3. [enums or set] a few properties cant load a set of like //Font.Style:= [fsBold]; just uncomment helps - on progress use Font.Style2:= FSStrikeout2; or Font.Style2:= fsBold2 4. ASM64.inc got an avcrash by record of record struct, solution is to inline the function like: function LineI(const p1,p2:TPoint):Tline; {Make a Tline record from two points record} begin result.p1:=p1; result.p2:=p2; end; ordered list of [var as word type] in maxbox_functions http://www.[softwareschule.ch/maxbox_functions.htm](http://www.softwareschule.ch/maxbox_functions.htm) line regex: Rex.Regex:= '(?i)(\bVar\b.*\bWord\b)'; https://stackoverflow.com/questions/2219830/regular-expression-to-find-two-strings-anywhere-in-input 0 648 Func DecLimit3( var B : Word; const Limit : Word; const Decr : Word) : Word; 1 655 Func DecLimitClamp3(var B:Word;const Limit: Word; const Decr : Word) : Word; 2 659 Func DecodeDateFully(DateTime: TDateTime; var Year,Month,Day,DOW:Word):Bool 3 1597 Func IncLimit3( var B : Word; const Limit : Word; const Incr : Word) : Word; 4 1604 Func IncLimitClamp3( var B : Word; const Limit : Word; const Incr : Word) : Word; 5 1689 Func InternalDecodeDate(DateTime:TDateTime;var Year,Month,Day,DOW:Word):Boolean 6 2072 Func NormalizeBcd(const InBcd TBcd;var OutBcd:TBcd;const Prec,Scale Word):Bool 7 3073 Func WeekOfTheMonth1( const AValue : TDateTime; var AYear, AMonth : Word) : Word; 8 3075 Func WeekOfTheYear1( const AValue : TDateTime; var AYear : Word) : Word; 9 3424 Proc JDecodeDate( Date : TDateTime; var Year, Month, Day : Word); 10 3425 Proc DecodeDate1( Date : TDateTime; var Year : Int; var Month, Day : Word); 11 3475 Proc FileTimeToDosDateTime1( const FileTime : TFileTime; var Date, Time: Word); 12 3684 //Func StrWord( var S : PAnsiChar; out Word : Ansistr) :Bool 13 3770 Proc DateDiff(Date1, Date2: TDateTime; var Days, Months, Years: Word); 14 4944 Proc DateDiff(Date1, Date2: TDateTime; var Days, Months, Years: Word); 15 5462 Proc IncLimW( var B : Word; const Limit : Word) 16 5467 Proc DecLimW( var B : Word; const Limit : Word) 17 5482 Proc SwapW( var B1, B2 : Word) 18 5887 Func Str2WordS(const S: ShortString; var I : Word) :Bool 19 5999 Proc SetFlag( var Flags : Word; FlagMask : Word) 20 6000 Proc ClearFlag( var Flags : Word; FlagMask : Word) 21 6009 Proc ExchangeWords( var I, J : Word) 22 6012 Proc FillWord( var Dest, Count :Card; Filler : Word) 23 6245 Proc ValWord( const S : ShortString; var Wd : word; var ErrorCode : Int) 24 6708 Func ExtractAssociatedIcon(hInst:HINST;lpIconPath:PChar;var lpiIcon:Word):HICON 25 8323 Proc SetYear( var D : TDateTime; const Year : Word) 26 8324 Proc SetMonth( var D : TDateTime; const Month : Word) 27 8325 Proc SetDay( var D : TDateTime; const Day : Word) 28 8326 Proc SetHour( var D : TDateTime; const Hour : Word) 29 8327 Proc SetMinute( var D : TDateTime; const Minute : Word) 30 8328 Proc SetSecond( var D : TDateTime; const Second : Word) 31 8329 Proc SetMillisecond( var D : TDateTime; const Milliseconds : Word) 32 8371 Proc ISOWeekNumber( const D : TDateTime; var WeekNumber, WeekYear : Word) 33 12860 Proc PtrInc( var P, Delta : Word) 34 12861 Proc PtrDec( var P, Delta : Word) 35 14513 //Proc VersionExtractFileInfo(const FixedInfo:TVSFixedFileInfo;var Major,Minor,Build,Revision:Word); 36 14514 //Proc VersionExtractProductInfo(const FixedInfo:TVSFixedFileInfo;var Major,Minor,Build,Revision:Word); 37 15206 Proc glDivMod( Dividend : Int; Divisor : Word; var Result, Remainder : Word) 38 16185 Proc SubString_Insert(var Str:str;Separator:Char;SubStrIndex:Word;Value:str); 39 16186 Proc SubString_Edit(var Str:str;Separator:Char;SubStringIndex:Word; NewValue:str); 40 16187 Func SubString_Remove(var Str:str; Separator:Char; SubStringIndex : Word) :Bool; 41 16232 Proc cyAddMonths( var aMonth, aYear : Word; Months : Int); 42 18439 Func Str2WordL( const S : Ansistr; var I : Word) :Bool; 43 20442 Func GetAppVersion(const ALibName:str;var MajorVersion,MinorVersion,BuildNumber,RevisionNumber:Word):Bool; 44 21533 Proc SwapWord2( var x : word); 45 21549 Func Printf2( const s :Str; var Buf:Str; size : word) :Str; 46 21550 Func Printfx( const s :Str; var Buf:Str; size : word) :Str; 47 21605 Proc DecodeDatereal( Date : TDatetimeReal; var Year, Month, Day : Word); 48 21606 Proc DecodeDateTimereal(const AValue:TDatetimeReal;var Year,Month,Day,Hour,Minute,Second,MilliSecond:Word); 49 21607 Proc DecodeTimereal( Time : TDatetimeReal; var Hour, Min, Sec, MSec : Word); 50 21638 Func parsetimeISO(timestr:str;var hourval,minval,secval:word;var offsethourval,offsetminval:Int;var UTC:bool):bool; 51 21639 Func parsedateISO( datestr :Str; var yearval, monthval, dayval : word) :Bool; 52 21641 Proc jdtodate(jday:float; var year, month, day, hour, minute, second, msec : word); 53 21645 Proc getdatedos( var year, month, mday, wday : word); 54 21646 Proc gettimedos( var hour, minute, second, sec100 : word); 55 21662 Proc JulianToGregorian(JulianDN:big_Int_t;var Year,Month,Day:Word);; 56 21671 Func IsValidISODateStringExt(datestr:shortstring;strict:bool;var Year,Month,Day:word):bool; 57 21673 Func IsValidISOTimeStringExt(timestr:shortstring;strict:boolean;var hour,min,sec:word;var offhour,offmin: smallint):bool; 58 21678 Proc UNIXToDateTime2(epoch:big_Int_t; var year,month,day,hour,minute,second: Word); 59 22594 CRC16Init( var CRC16 : Word); 60 23517 Func ABGetNext1( var AB : array of byte; ST : word) : word'); 61 27731 Function GetHotkey( var pwHotkey : word) : HResult'); 62 27779 Function azuJPEGDimensions( Filename : string; var X, Y : Word) : boolean'); 63 30247 Procedure apiOsBuildInfo( var v1, v2, v3, v4 : word)'); 64 31207 procedure(Sender: TObject; var Key: Word; Shift: TShiftState); 65 31320 Proc BooleansToBits1( var Dest : Word; const B : TBooleanArray); 66 31352 Proc cbPathKeyDown( Sender : TObject; var Key : Word; Shift : TShiftState) 67 31407 Proc ColorRGBToHLS( clrRGB : TColorRef; var Hue, Luminance, Saturation : Word) 68 31432 Proc CopyBytesToHostWord(const ASource:TIdBytes;const ASourceIndex:Int;var VDest: Word) 69 31472 Proc DecodeDate( DateTime : TDateTime; var Year, Month, Day : Word) 70 31473 Proc DecodeDate(const DateTime: TDateTime; var Year, Month, Day: Word); 71 31479 Proc DecodeTime( DateTime : TDateTime; var Hour, Min, Sec, MSec : Word) 72 31480 Proc DecodeTime(const DateTime: TDateTime; var Hour, Min, Sec, MSec: Word); 73 31517 Proc DivMod( Dividend : Int; Divisor : Word; var Result, Remainder : Word) 74 31761 Proc IncAMonth( var Year, Month, Day : Word; NumberOfMonths : Int) 75 31827 Proc ListViewKeyDown( Sender : TObject; var Key : Word; Shift : TShiftState) 76 32145 Proc SaveToClipboardFormat(var AFormat:Word; var AData: THandle; var APalette: HPALETTE) 77 32146 Proc SaveToClipboardFormat(var Format: Word; var Data : THandle; var APalette: HPALETTE) 78 32258 Proc SHORTCUTTOKEY( SHORTCUT : TSHORTCUT; var KEY : WORD; var SHIFT : TSHIFTSTATE) 79 32335 Proc SwapOrd3( var I, J : Word); 80 33091 Func WordIsOk(const AWord:Str; var VW: Word):Bool; 81 38402 Proc GetJPGSize(const sFile:Str; var wWidth, wHeight: Word); 82 38403 Proc GetPNGSize(const sFile:Str; var wWidth, wHeight: Word); 83 38405 Proc GetGIFSize(const sGIFFile:Str; var wWidth, wHeight: Word); 84 38659 Func ScanNumber(const S:Str; var Pos: Int; var Number: Word):Bool; 85 39122 Proc DecDay( var Year : Int; var Month, Day : Word); 86 39123 Proc DecDays( var Year : Int; var Month, Day : Word; const Days : Int); 87 39130 Proc FirstDayOfWeekYmd( var Year : Int; var Month, Day : Word); 88 39161 Proc diIncMonth( var Year : Int; var Month, Day : Word); 89 39162 Proc diIncMonths(var Year :Int; var Month, Day:Word; const NumberOfMonths:Int); 90 39163 Proc diIncDay( var Year : Int; var Month, Day : Word); 91 39164 Proc IncDays( var Year : Int; var Month, Day : Word; const Days : Int); 92 39191 Proc LastDayOfWeekYmd( var Year : Int; var Month, Day : Word); procedure SIRegister_OAuth(CL: TPSPascalCompiler); begin CL.AddClassN(CL.FindClass('TOBJECT'),'EOAuthException'); CL.AddClassN(CL.FindClass('TOBJECT'),'TOAuthConsumer'); CL.AddClassN(CL.FindClass('TOBJECT'),'TOAuthToken'); CL.AddClassN(CL.FindClass('TOBJECT'),'TOAuthRequest'); CL.AddClassN(CL.FindClass('TOBJECT'),'TOAuthSignatureMethod'); CL.AddClassN(CL.FindClass('TOBJECT'),'TOAuthSignatureMethod_HMAC_SHA1'); CL.AddClassN(CL.FindClass('TOBJECT'),'TOAuthSignatureMethod_PLAINTEXT'); SIRegister_TOAuthConsumer(CL); SIRegister_TOAuthToken(CL); SIRegister_TOAuthRequest(CL); SIRegister_TOAuthSignatureMethod(CL); SIRegister_TOAuthSignatureMethod_HMAC_SHA1(CL); SIRegister_TOAuthSignatureMethod_PLAINTEXT(CL); SIRegister_TOAuthUtil(CL); CL.AddConstantN('UnixStartDateTime','TDateTime').SetInt(25569); // CL.AddConstantN('DefCalcPrecision','LongInt').SetInt( 15); CL.AddConstantN('JSONRESTGET','String').setstring('{"method":"GET","url":"https://data.sncf.com","resource":"api/records/1.0/search/'+ '","contenttype":"","auth":{"method":"NONE","username":"","passwordkey":"",'+ '"password":"","passwordkey":"","clientid":"","clientsecret":"","authcode":"","'+ 'accesstoken":"","accesstokensecret":"","requesttoken":"","requesttokensecret":"",'+ '"refreshtoken":"","signaturemethod":"","responsetype":"","endpointauth":"",'+ '"endpointaccesstoken":"","endpointrequesttoken":"","endpointredirect":"",'+ '"authscope":""},"parameters":[{"name":"dataset","value":"gares-pianos",'+ '"kind":"GET/POST","encode":true},{"name":"rows","value":"100","kind":"GET/POST",'+ '"encode":true},{"name":"facet","value":"gare","kind":"GET/POST","encode":true},'+ '{"name":"q","value":"Paris","kind":"GET/POST","encode":true}],"body":""}'); end; Verifying: maXbox5.exe Signature Index: 0 (Primary Signature) Hash of file (sha256): 8CF17E0D7519771801217DD3FD339F5E222DEB19E4FFC94667DB1E6C83A7913D Signing Certificate Chain: Issued to: maXboxCertAuth Issued by: maXboxCertAuth Expires: Sun Jan 01 00:59:59 2040 SHA1 hash: 6F83207B500DCC0E32A719599CBC6BD7E6B2A04D Issued to: maXbox4signer Issued by: maXboxCertAuth Expires: Sun Jan 01 00:59:59 2040 SHA1 hash: 6A89501B76D47C189A60BF1070BAA2FBFD38D7D7 Issued to: maXbox4exe Issued by: maXbox4signer Expires: Sun Jan 01 00:59:59 2040 SHA1 hash: F0EB0CA218C5707FAC78921F81092CECA12AD0E9 The signature is timestamped: Thu Jan 04 12:42:33 2024 Timestamp Verified by: Issued to: GlobalSign Issued by: GlobalSign Expires: Sun Dec 10 01:00:00 2034 SHA1 hash: 8094640EB5A7A1CA119C1FDDD59F810263A7FBD1 Issued to: GlobalSign Timestamping CA - SHA384 - G4 Issued by: GlobalSign Expires: Sun Dec 10 01:00:00 2034 SHA1 hash: F585500925786F88E721D235240A2452AE3D23F9 Issued to: Globalsign TSA for CodeSign1 - R6 Issued by: GlobalSign Timestamping CA - SHA384 - G4 Expires: Sun May 08 08:45:38 2033 SHA1 hash: CA3E8CFD7CFD329A99359A9A38F86185F0B01C4A Successfully verified: maXbox5.exe Number of files successfully Verified: 1 Number of warnings: 0 Number of errors: 0 https://www.hybrid-analysis.com/sample/84dd7e157da55d608cba95feb7d705ccda48cdf7c980fec964c183198741e0db https://www.virustotal.com/gui/file/faaa1ecf193afb5bfe1f3dd489ca830db38a3ad67ca0e2cad54fc0256d45d40e/detection SHA-1 EXE 105e9a9e443d5c2e6e11584f79feb886a6b5045c SHA-256 faaa1ecf193afb5bfe1f3dd489ca830db38a3ad67ca0e2cad54fc0256d45d40e --- Falcon Sandbox Analysis Overview --- https://www.hybrid-analysis.com/sample/faaa1ecf193afb5bfe1f3dd489ca830db38a3ad67ca0e2cad54fc0256d45d40e V5.0.2.80 Recode Tech RegExBox procedure SIRegister_RegularExpressions(CL: TPSPascalCompiler); begin CL.AddTypeS('TRegExOption', '( rroNone, rroIgnoreCase, rroMultiLine, rroExplicitC' +'apture, rroCompiled, rroSingleLine, rroIgnorePatternSpace, rroNotEmpty )'); CL.AddTypeS('TRegExOptions', 'set of TRegExOption'); SIRegister_TGroup(CL); CL.AddClassN(CL.FindClass('TOBJECT'),'TGroupCollectionEnumerator'); SIRegister_TGroupCollection(CL); SIRegister_TGroupCollectionEnumerator(CL); SIRegister_TMatch(CL); CL.AddClassN(CL.FindClass('TOBJECT'),'TMatchCollectionEnumerator'); SIRegister_TMatchCollection(CL); SIRegister_TMatchCollectionEnumerator(CL); CL.AddTypeS('TMatchEvaluator', 'Function ( const Match : TMatch) : string'); SIRegister_TRegEx(CL); end; with CL.AddClassN(CL.FindClass('TOBJECT'),'TRegEx') do begin Constructor Create( const Pattern : string; Options : TRegExOptions)'); Constructor Create1( const Pattern : string)'); Function IsMatch( const Input : string) : Boolean;'); Function IsMatch1( const Input : string; StartPos : Integer) : Boolean;'); Function IsMatch2( const Input, Pattern : string) : Boolean;'); Function IsMatch3( const Input, Pattern : string; Options : TRegExOptions) : Boolean;'); Function Escape( const Str : string; UseWildCards : Boolean) : string'); Function Match( const Input : string) : TMatch;'); Function Match1( const Input : string; StartPos : Integer) : TMatch;'); Function Match2( const Input : string; StartPos, Length : Integer) : TMatch;'); Function Match3( const Input, Pattern : string) : TMatch;'); Function Match4( const Input, Pattern : string; Options : TRegExOptions) : TMatch;'); Function Matches( const Input : string) : TMatchCollection;'); Function Matches1( const Input : string; StartPos : Integer) : TMatchCollection;'); Function Matches2( const Input, Pattern : string) : TMatchCollection;'); Function Matches3( const Input, Pattern : string; Options : TRegExOptions) : TMatchCollection;'); Function Replace( const Input, Replacement : string) : string;'); Function Replace1( const Input : string; Evaluator : TMatchEvaluator) : string;'); Function Replace2( const Input, Replacement : string; Count : Integer) : string;'); Function Replace3( const Input : string; Evaluator : TMatchEvaluator; Count : Integer) : string;'); Function Replace4( const Input, Pattern, Replacement : string) : string;'); Function Replace5( const Input, Pattern : string; Evaluator : TMatchEvaluator) : string;'); Function Replace6( const Input, Pattern, Replacement : string; Options : TRegExOptions) : string;'); Function Replace7( const Input, Pattern : string; Evaluator : TMatchEvaluator; Options : TRegExOptions) : string;'); end; end; function TBytesMerge(arr1, arr2: TBytes): TBytes; var ofs: integer; begin setlength(result, length(arr1) + length(arr2)); ofs := 0; if length(arr1)>0 then begin Move(arr1[0], result[ofs], length(arr1)); inc(ofs, length(arr1)); end; if length(arr2)>0 then begin Move(arr2[0], result[ofs], length(arr2)); inc(ofs, length(arr2)); end; end; function parsejsonvalue2(JsonUTF8: string): string; var LJSONValue: TJSONValue; begin { convert String to JSON } LJSONValue:=TJSONObject.ParseJSONValue(TEncoding.UTF8.GetBytes(JsonUtf8),0); result:= LJSONValue.ToString; end; function Exit3(exitcode: integer): integer; begin system.exit(exitcode); end; function StringToBytes_Encode(const s: string; destcodepage: integer; withBOM: boolean = true): TBytes; function BytesToString_Decode(arr: TBytes; optsourcecodepage: integer = 0): string; CL.AddDelphiFunction('Function SystemCodePage : Integer'); CL.AddDelphiFunction('Function GetCodePage : Integer'); function ConvertToNegative (const Bitmap: TBitmap): TBitmap; function BufToString_ANSI(var buf: string; fromindex, len: integer): string;'); function BufToString_UNICODE(var buf: string; fromindex, len: integer; optsourcecodepage: integer): string;'); function GetGeoInfoMap5save(const lat,lon, zoom: double; asize: integer; const UrlGeoLookupInfo, apath: string; showfile: boolean): string; function GetGeoInfoMap5(const lat,lon, zoom: double; asize: integer; UrlGeoLookupInfo, apath: string; showfile: boolean): string; ex.call: GetGeoInfoMap5(51.22,6.77,12,850, mapboxAPIEKONKey, ExePath+'examples\667_roboline_outdoor_layer5.png', true); functions TAddressGeoCodeOSM5('Hauptbahnhof, Graz, Austria'): TLatlong; Verifying: maXbox5.exe Signature Index: 0 (Primary Signature) Hash of file (sha256): 5FFFCCDAC0A0E1D6E142F8825BD1DFF1E16A5C71F1BBEA17FD926BCF255D9E31 Signing Certificate Chain: Issued to: maXboxCertAuth Issued by: maXboxCertAuth Expires: Sun Jan 01 00:59:59 2040 SHA1 hash: 6F83207B500DCC0E32A719599CBC6BD7E6B2A04D Issued to: maXbox4signer Issued by: maXboxCertAuth Expires: Sun Jan 01 00:59:59 2040 SHA1 hash: 6A89501B76D47C189A60BF1070BAA2FBFD38D7D7 Issued to: maXbox4exe Issued by: maXbox4signer Expires: Sun Jan 01 00:59:59 2040 SHA1 hash: F0EB0CA218C5707FAC78921F81092CECA12AD0E9 The signature is timestamped: Wed Jan 17 12:02:12 2024 Timestamp Verified by: Issued to: GlobalSign Issued by: GlobalSign Expires: Sun Dec 10 01:00:00 2034 SHA1 hash: 8094640EB5A7A1CA119C1FDDD59F810263A7FBD1 Issued to: GlobalSign Timestamping CA - SHA384 - G4 Issued by: GlobalSign Expires: Sun Dec 10 01:00:00 2034 SHA1 hash: F585500925786F88E721D235240A2452AE3D23F9 Issued to: Globalsign TSA for CodeSign1 - R6 Issued by: GlobalSign Timestamping CA - SHA384 - G4 Expires: Sun May 08 08:45:38 2033 SHA1 hash: CA3E8CFD7CFD329A99359A9A38F86185F0B01C4A Successfully verified: maXbox5.exe Number of files successfully Verified: 1 Number of warnings: 0 Number of errors: 0 function StringToBytes_Encode(const s: string; destcodepage: integer; withBOM: boolean = true): TBytes; function BytesToString_Decode(arr: TBytes; optsourcecodepage: integer = 0): string; CL.AddDelphiFunction('Function SystemCodePage : Integer'); CL.AddDelphiFunction('Function GetCodePage : Integer'); writeln('lib compiler: '+libcompilerstring); function EncodeURIComponent2('http://www.google.com/search?q=big%25%26little') writeln(utf8decode(EncodeURIComponent2('http://www.google.com/search?q=big%25%26little'))); { alatlong:= TAddressGeoCodeOSM5('Hauptbahnhof, Graz, Austria'); writeln('OSM5 res back_: '+alatlong.descript); //writeln('get geocoords: '+flots(latlong.lat)+' '+flots(latlong.long)); writeln('get geocoords: '+format(' lat: %.4f - lon: %.4f',[alatlong.lat,alatlong.long])); } functions TAddressGeoCodeOSM5('Hauptbahnhof, Graz, Austria'): TLatlong; function libCompilerString: string; function DisplayTBytes(Buf: TBytes): String; function EncodeURIComponent2('http://www.google.com/search?q=big%25%26little') writeln(utf8decode(EncodeURIComponent2('http://www.google.com/search?q=big%25%26little'))); { alatlong:= TAddressGeoCodeOSM5('Hauptbahnhof, Graz, Austria'); writeln('OSM5 res back_: '+alatlong.descript); //writeln('get geocoords: '+flots(latlong.lat)+' '+flots(latlong.long)); writeln('get geocoords: '+format(' lat: %.4f - lon: %.4f',[alatlong.lat,alatlong.long])); } procedure maxform1.console; procedure maxform1.setconsole; function ConvertToNegative (const Bitmap: TBitmap): TBitmap; procedure loadjpegresource3(_instance: cardinal; aimage: Timage; aresname: string); procedure loadjpegresource4(_instance: cardinal; aimage: Timage; aresname, restyp: string); function loadanyresource5(_instance: cardinal; aresname, restyp: string): TResourceStream; function loadjpegresource5(_instance: cardinal; aresname: string): Graphics.TBitmap; procedure BurrowsWheeler procedure testUnicode(typ: byte); const SMILEY_UTF8_SLIGHTLY_SMILING_FACE: TBytes = [$E2, $98, $BA]; // Unicode Code Point: U+263A begin if typ = 1 then ShowMessage('hi unicode '+TEncoding.UTF8.GetString(SMILEY_UTF8_SLIGHTLY_SMILING_FACE)); if typ= 2 then maxform1.memo2.lines.add(TEncoding.UTF8.GetString(SMILEY_UTF8_SLIGHTLY_SMILING_FACE)); if typ= 3 then maxform1.caption:= maxform1.Caption +(TEncoding.UTF8.GetString(SMILEY_UTF8_SLIGHTLY_SMILING_FACE)); end; 502 UNICODE Test maXbox Version Check File Zodiacal symbols See also Asian zodiacal symbols among the animal symbols in the range 1F400-1F418. 2648 ♈ ARIES → 1F40F 🐏 ram 2649 ♉ TAURUS 264A ♊ GEMINI 264B ♋ CANCER → 1F980 🦀 crab 264C ♌ LEO → 1F981 🦁 lion face 264D ♍ VIRGO = minim (alternate glyph) 264E ♎ LIBRA → 2696 ⚖ scales → 1F75E 🝞 alchemical symbol for sublimation 264F ♏ SCORPIUS = Scorpio = minim, drop → 1F982 🦂 scorpion 2650 ♐ SAGITTARIUS → 1F3F9 🏹 bow and arro this end send2 plus: 㼿 this end send2 plus: ?? V5.0.2.95 procedure SIRegister_TIdIOHandler(CL: TPSPascalCompiler); begin //with RegClassS(CL,'TIdComponent', 'TIdIOHandler') do with CL.AddClassN(CL.FindClass('TIdComponent'),'TIdIOHandler') do begin Constructor Create( AOwner : TComponent)'); Procedure Free;'); Procedure AfterAccept'); Function Connected : Boolean'); Procedure CheckForDisconnect( ARaiseExceptionIfDisconnected : Boolean; AIgnoreBuffer : Boolean)'); Function CheckForDataOnSource( ATimeout : Integer) : Boolean'); Procedure Close'); Procedure CloseGracefully'); Function MakeDefaultIOHandler( AOwner : TComponent) : TIdIOHandler'); Function MakeIOHandler( ABaseType : TIdIOHandlerClass; AOwner : TComponent) : TIdIOHandler'); Function TryMakeIOHandler( ABaseType : TIdIOHandlerClass; AOwner : TComponent) : TIdIOHandler'); Procedure RegisterIOHandler'); Procedure SetDefaultClass'); RegisterMethod('Function WaitFor(const AString:string; ARemoveFromBuffer:Boolean; AInclusive : Boolean; AByteEncoding : IIdTextEncoding; ATimeout : Integer; AAnsiEncoding : IIdTextEncoding) : string'); RegisterMethod('Procedure Write( const ABuffer : TIdBytes; const ALength : Integer; const AOffset : Integer);'); Procedure WriteDirect( const ABuffer : TIdBytes; const ALength : Integer; const AOffset : Integer)'); Procedure Open'); Function Readable( AMSec : Integer) : Boolean'); Procedure Write1( const AOut : string; AByteEncoding : IIdTextEncoding; ASrcEncoding : IIdTextEncoding);'); Procedure WriteLn2( AEncoding : IIdTextEncoding);'); RegisterMethod('Procedure WriteLn1( const AOut : string);'); Procedure WriteLn3( const AOut : string; AByteEncoding : IIdTextEncoding; ASrcEncoding : IIdTextEncoding);'); Procedure WriteLnRFC( const AOut : string; AByteEncoding : IIdTextEncoding; ASrcEncoding : IIdTextEncoding)'); Procedure Write4(AValue:TStrings;AWriteLinesCount: Boolean; AByteEncoding IIdTextEncoding;ASrcEncoding:IIdTextEncoding);'); Procedure Write5( AValue : Byte);'); Procedure Write6( AValue : Char; AByteEncoding : IIdTextEncoding; ASrcEncoding : IIdTextEncoding);'); Procedure Write7( AValue : Int16; AConvert : Boolean);'); Procedure Write8( AValue : UInt16; AConvert : Boolean);'); Procedure Write9( AValue : Int32; AConvert : Boolean);'); Procedure Write10( AValue : UInt32; AConvert : Boolean);'); Procedure Write11( AValue : Int64; AConvert : Boolean);'); Procedure Write12( AValue : TIdUInt64; AConvert : Boolean);'); Procedure Write13( AStream : TStream; ASize : TIdStreamSize; AWriteByteCount : Boolean);'); Procedure WriteStream( AStream : TStream; ASize : TIdStreamSize; AWriteByteCount : Boolean);'); Procedure WriteStream2( AStream : TStream; ASize : TIdStreamSize; AWriteByteCount : Boolean);'); Procedure WriteRFCStrings(AStrings:TStrings;AWriteTerminator:Boolean;AByteEncoding:IIdTextEncoding;ASrcEncoding:IIdTextEncoding)'); Function WriteFile( const AFile : String; AEnableTransferFile : Boolean) : Int64'); Function AllData( AByteEncoding : IIdTextEncoding; ADestEncoding : IIdTextEncoding) : string'); Function InputLn( const AMask : string; AEcho : Boolean;ATabWidth:Integer;AMaxLineLengt:Int;AByteEncoding:IIdTextEncoding;AAnsiEncoding:IIdTextEncoding):string; Procedure Capture14( ADest: TStream; AByteEncoding:IIdTextEncoding; ADestEncoding : IIdTextEncoding);'); Procedure Capture15(ADest:TStream; ADelim string;AUsesDotTransparency:Boolean;AByteEncoding:IIdTextEncoding;ADestEncoding:IIdTextEncoding);'); Procedure Capture16(ADest:TStream;out VLineCount:Int;const ADelim:string;AUsesDotTransparency Bool;AByteEncoding:IIdTextEncoding;ADestEncoding:IIdTextEncoding);'); Procedure Capture17( ADest: TStrings; AByteEncoding: IIdTextEncoding; ADestEncoding : IIdTextEncoding);'); Procedure Capture18(ADest:TStrings;const ADelim string; AUsesDotTransparency:Boolean;AByteEncoding: IIdTextEncoding;ADestEncoding:IIdTextEncoding);'); Procedure Capture19(ADest:TStrings;out VLineCount:Int;const ADelim:string;AUsesDotTransparency:Bool;AByteEncoding:IIdTextEncoding;ADestEncoding:IIdTextEncoding); Procedure ReadBytes var VBuffer : TIdBytes; AByteCount : Integer; AAppend : Boolean)'); Function ReadLn( AByteEncoding : IIdTextEncoding; ADestEncoding : IIdTextEncoding) : string;'); Function ReadLn1: string;'); Function ReadLn21( ATerminator:string; AByteEncoding:IIdTextEncoding; ADestEncoding:IIdTextEncoding):string;'); Function ReadLn22( ATerminator: string;ATimeout:Integer;AMaxLineLength:Integer;AByteEncoding:IIdTextEncoding;ADestEncoding:IIdTextEncoding):string;'); Function ReadLnRFC23(var VMsgEnd : Boolean; AByteEncoding : IIdTextEncoding; ADestEncoding : IIdTextEncoding):string;'); Function ReadLnRFC24(var VMsgEnd:Boolean;const ALineTerminator:string;const ADelim:string;AByteEncoding:IIdTextEncoding;ADestEncoding:IIdTextEncoding):string;'); Function ReadLnWait( AFailCount : Integer; AByteEncoding : IIdTextEncoding; ADestEncoding : IIdTextEncoding):string'); Function ReadLnSplit(var AWasSplit:Boolean;ATerminator:string;ATimeout:Integer;AMaxLineLength:Integer; AByteEncoding : IIdTextEncoding; ADestEncoding : IIdTextEncoding) : string'); Function ReadChar( AByteEncoding : IIdTextEncoding; ADestEncoding : IIdTextEncoding) : Char'); Function ReadByte : Byte'); Function ReadString(ABytes: Integer;AByteEncoding:IIdTextEncoding;ADestEncoding:IIdTextEncoding):string'); Function ReadInt16( AConvert : Boolean) : Int16'); Function ReadUInt16( AConvert : Boolean) : UInt16'); Function ReadInt32( AConvert : Boolean) : Int32'); Function ReadUInt32( AConvert : Boolean) : UInt32'); Function ReadInt64( AConvert : Boolean) : Int64'); Function ReadUInt64( AConvert : Boolean) : TIdUInt64'); Procedure ReadStream( AStream : TStream; AByteCount : TIdStreamSize; AReadUntilDisconnect : Boolean)'); Procedure ReadStrings(ADest:TStrings;AReadLinesCount:Integer;AByteEncoding:IIdTextEncoding;ADestEncoding:IIdTextEncoding)'); Procedure Discard( AByteCount : Int64)'); Procedure DiscardAll'); Procedure WriteBufferCancel'); Procedure WriteBufferClear'); Procedure WriteBufferClose'); Procedure WriteBufferFlush25;'); Procedure WriteBufferFlush26( AByteCount : Integer);'); Procedure WriteBufferOpen27;'); Procedure WriteBufferOpen28( AThreshold : Integer);'); Function WriteBufferingActive : Boolean'); Function InputBufferIsEmpty : Boolean'); Procedure InputBufferToStream( AStream : TStream; AByteCount : Integer)'); Function InputBufferAsString( AByteEncoding : IIdTextEncoding;ADestEncoding:IIdTextEncoding):string'); RegisterProperty('ConnectTimeout', 'Integer', iptrw); ClosedGracefully', 'Boolean', iptr); InputBuffer', 'TIdBuffer', iptr); LargeStream', 'Boolean', iptrw); MaxCapturedLines', 'Integer', iptrw); Opened', 'Boolean', iptr); ReadTimeout', 'Integer', iptrw); ReadLnTimedout', 'Boolean', iptr); WriteBufferThreshold', 'Integer', iptr); DefStringEncoding', 'IIdTextEncoding', iptrw); DefAnsiEncoding', 'IIdTextEncoding', iptrw); Destination', 'string', iptrw); Host', 'string', iptrw); Intercept', 'TIdConnectionIntercept', iptrw); MaxLineLength', 'Integer', iptrw); MaxLineAction', 'TIdMaxLineAction', iptrw); Port', 'Integer', iptrw); RecvBufferSize', 'Integer', iptrw); SendBufferSize', 'Integer', iptrw); end; end; procedure SIRegister_TIdIOHandler2(CL: TPSPascalCompiler); begin //with RegClassS(CL,'TIdComponent', 'TIdIOHandler') do with CL.AddClassN(CL.FindClass('TIdComponent'),'TIdIOHandler') do begin Constructor Create( AOwner : TComponent)'); Procedure Free;'); Procedure AfterAccept'); Function Connected : Boolean'); Procedure CheckForDisconnect( ARaiseExceptionIfDisconnected : Boolean; AIgnoreBuffer : Boolean)'); Function CheckForDataOnSource( ATimeout : Integer) : Boolean'); Procedure Close'); Procedure CloseGracefully'); Function MakeDefaultIOHandler( AOwner : TComponent) : TIdIOHandler'); Function MakeIOHandler( ABaseType : TIdIOHandlerClass; AOwner : TComponent) : TIdIOHandler'); Function TryMakeIOHandler( ABaseType : TIdIOHandlerClass; AOwner : TComponent) : TIdIOHandler'); Procedure RegisterIOHandler'); Procedure SetDefaultClass'); Function WaitFor( const AString : string; ARemoveFromBuffer : Boolean; AInclusive : Boolean; AByteEncoding : IIdTextEncoding; ATimeout : Integer; AAnsiEncoding : IIdTextEncoding) : string'); Procedure Write( const ABuffer : TIdBytes; const ALength : Integer; const AOffset : Integer);'); Procedure WriteDirect(const ABuffer : TIdBytes; const ALength : Integer; const AOffset : Integer)'); Procedure Open'); Function Readable( AMSec : Integer) : Boolean'); Procedure Write1( const AOut : string; AByteEncoding : IIdTextEncoding; ASrcEncoding : IIdTextEncoding);'); Procedure WriteLn2( AEncoding : IIdTextEncoding);'); Procedure WriteLn3( const AOut : string; AByteEncoding : IIdTextEncoding; ASrcEncoding : IIdTextEncoding);'); Procedure WriteLn1( const AOut : string);'); Procedure WriteLn0( const AOut : string);'); Procedure WriteLnRFC( const AOut : string; AByteEncoding : IIdTextEncoding; ASrcEncoding : IIdTextEncoding)'); Procedure Write4( AValue: TStrings;AWriteLinesCount:Boolean; AByteEncoding:IIdTextEncoding; ASrcEncoding: IIdTextEncoding);'); Procedure Write5( AValue: Byte);'); Procedure Write6( AValue: Char; AByteEncoding : IIdTextEncoding; ASrcEncoding : IIdTextEncoding);'); Procedure Write7( AValue: Int16; AConvert : Boolean);'); Procedure Write8( AValue: UInt16; AConvert : Boolean);'); Procedure Write9( AValue: Int32; AConvert : Boolean);'); Procedure Write10( AValue : UInt32; AConvert : Boolean);'); Procedure Write11( AValue : Int64; AConvert : Boolean);'); Procedure Write12( AValue : TIdUInt64; AConvert : Boolean);'); Procedure Write13( AStream : TStream; ASize : TIdStreamSize; AWriteByteCount : Boolean);'); Procedure WriteStream( AStream : TStream; ASize : TIdStreamSize; AWriteByteCount : Boolean);'); Procedure WriteStream2( AStream : TStream; ASize : TIdStreamSize; AWriteByteCount : Boolean);'); Procedure WriteStream0( AStream : TStream; ASize : TIdStreamSize; AWriteByteCount : Boolean);'); Procedure WriteRFCStrings( AStrings : TStrings; AWriteTerminator : Boolean; AByteEncoding : IIdTextEncoding; ASrcEncoding : IIdTextEncoding)'); Function WriteFile( const AFile : String; AEnableTransferFile : Boolean) : Int64'); Function AllData( AByteEncoding : IIdTextEncoding; ADestEncoding : IIdTextEncoding) : string'); Function InputLn(const AMask:string;AEcho:Boolean;ATabWidth:Integer;AMaxLineLength:Integer;AByteEncoding:IIdTextEncoding;AAnsiEncoding:IIdTextEncoding):string; Procedure Capture14( ADest : TStream; AByteEncoding : IIdTextEncoding; ADestEncoding : IIdTextEncoding);'); Procedure Capture15( ADest : TStream; ADelim : string; AUsesDotTransparency : Boolean; AByteEncoding : IIdTextEncoding; ADestEncoding : IIdTextEncoding);'); Procedure Capture16( ADest : TStream; out VLineCount : Integer; const ADelim : string; AUsesDotTransparency : Boolean; AByteEncoding : IIdTextEncoding; ADestEncoding : IIdTextEncoding);'); Procedure Capture17( ADest : TStrings; AByteEncoding : IIdTextEncoding; ADestEncoding : IIdTextEncoding);'); Procedure Capture18(ADest:TStrings;const ADelim:string;AUsesDotTransparency:Boolean; AByteEncoding:IIdTextEncoding;ADestEncoding:IIdTextEncoding);'); Procedure Capture19( ADest : TStrings; out VLineCount : Integer; const ADelim : string; AUsesDotTransparency : Boolean; AByteEncoding : IIdTextEncoding; ADestEncoding : IIdTextEncoding);'); Procedure ReadBytes( var VBuffer : TIdBytes; AByteCount : Integer; AAppend : Boolean)'); Function ReadLn( AByteEncoding : IIdTextEncoding; ADestEncoding : IIdTextEncoding) : string;'); Function ReadLn1: string;'); Function ReadLn0: string;'); Function ReadLn21( ATerminator : string; AByteEncoding : IIdTextEncoding; ADestEncoding : IIdTextEncoding) : string;'); Function ReadLn22(ATerminator:string;ATimeout:Integer;AMaxLineLength:Integer;AByteEncoding:IIdTextEncoding;ADestEncoding:IIdTextEncoding):string;'); Function ReadLn00( ATerminator : string; ATimeout : Integer; AMaxLineLength : Integer;) : string;'); Function ReadLn01( ATerminator : string; ) : string;'); Function ReadLnRFC23( var VMsgEnd : Boolean; AByteEncoding : IIdTextEncoding; ADestEncoding : IIdTextEncoding) : string;'); Function ReadLnRFC24( var VMsgEnd : Boolean; const ALineTerminator : string; const ADelim : string; AByteEncoding:IIdTextEncoding;ADestEncoding:IIdTextEncoding):string;'); Function ReadLnWait( AFailCount : Integer; AByteEncoding : IIdTextEncoding; ADestEncoding : IIdTextEncoding) : string'); Function ReadLnSplit(var AWasSplit:Boolean;ATerminator:string;ATimeout:Integer;AMaxLineLength:Integer;AByteEncoding:IIdTextEncoding;ADestEncoding:IIdTextEncoding):string'); Function ReadChar( AByteEncoding : IIdTextEncoding; ADestEncoding: IIdTextEncoding) : Char'); Function ReadByte : Byte'); Function ReadString( ABytes: Integer; AByteEncoding : IIdTextEncoding; ADestEncoding:IIdTextEncoding) : string'); Function ReadInt16( AConvert: Boolean) : Int16'); Function ReadUInt16( AConvert : Boolean) : UInt16'); Function ReadInt32( AConvert : Boolean) : Int32'); Function ReadUInt32( AConvert : Boolean) : UInt32'); Function ReadInt64( AConvert : Boolean) : Int64'); Function ReadUInt64( AConvert : Boolean) : TIdUInt64'); Procedure ReadStream( AStream : TStream; AByteCount : TIdStreamSize; AReadUntilDisconnect : Boolean)'); Procedure ReadStream0( AStream : TStream; AByteCount : TIdStreamSize; AReadUntilDisconnect : Boolean)'); Procedure ReadStrings( ADest : TStrings; AReadLinesCount : Integer; AByteEncoding : IIdTextEncoding; ADestEncoding : IIdTextEncoding)'); Procedure Discard( AByteCount : Int64)'); Procedure DiscardAll'); Procedure WriteBufferCancel'); Procedure WriteBufferClear'); Procedure WriteBufferClose'); Procedure WriteBufferFlush25;'); Procedure WriteBufferFlush26( AByteCount : Integer);'); Procedure WriteBufferOpen27;'); Procedure WriteBufferOpen28( AThreshold : Integer);'); Function WriteBufferingActive : Boolean'); Function InputBufferIsEmpty : Boolean'); Procedure InputBufferToStream( AStream : TStream; AByteCount : Integer)'); Function InputBufferAsString( AByteEncoding : IIdTextEncoding; ADestEncoding : IIdTextEncoding) : string'); ConnectTimeout', 'Integer', iptrw); ClosedGracefully', 'Boolean', iptr); InputBuffer', 'TIdBuffer', iptr); LargeStream', 'Boolean', iptrw); MaxCapturedLines', 'Integer', iptrw); Opened', 'Boolean', iptr); ReadTimeout', 'Integer', iptrw); ReadLnTimedout', 'Boolean', iptr); WriteBufferThreshold', 'Integer', iptr); DefStringEncoding', 'IIdTextEncoding', iptrw); DefAnsiEncoding', 'IIdTextEncoding', iptrw); Destination', 'string', iptrw); Host', 'string', iptrw); Intercept', 'TIdConnectionIntercept', iptrw); MaxLineLength', 'Integer', iptrw); MaxLineAction', 'TIdMaxLineAction', iptrw); Port', 'Integer', iptrw); RecvBufferSize', 'Integer', iptrw); RegisterProperty('SendBufferSize', 'Integer', iptrw); end; end; procedure SIRegister_cSocksUtils(CL: TPSPascalCompiler); begin CL.AddConstantN('SOCKS_DEFAULTPORT','LongInt').SetInt( 1080); SOCKS_DEFAULTPORT_STR','String').SetString( '1080'); FindClass('TOBJECT'),'ESocks'); SOCKS4_MSG_VERSION','LongInt').SetInt( 4); SOCKS4_REQ_CODE_CONNECT','LongInt').SetInt( 1); SOCKS4_REQ_CODE_BIND','LongInt').SetInt( 2); SOCKS4_RESP_CODE_GRANTED','LongInt').SetInt( 90); SOCKS4_RESP_CODE_FAILED','LongInt').SetInt( 91); SOCKS4_RESP_CODE_NO_IDENTD','LongInt').SetInt( 92); SOCKS4_RESP_CODE_IDENTD_MISMATCH','LongInt').SetInt( 93); Function Socks4ErrorDescription( const Code : Integer) : String'); CL.AddTypeS('TSocks4Message', 'record Version : Byte; Code : Byte; DestPort :' +' Word; DestIP : LongWord; end'); CL.AddTypeS('TIP4Addr', 'record Addr32 : LongWord; end'); // CL.AddTypeS('PSocks4Message', '^TSocks4Message TIP4Addr = record { case Integer of 0 : (Addr8 : array[0..3] of Byte); 1 : (Addr16 : array[0..1] of Word); 2 : (Addr32 : LongWord); } ///( end; // will not work'); Procedure PopulateSocks4Message( var Msg : TSocks4Message; const Code : Byte; const IP : TIP4Addr; const Port : Word)'); Function Socks4Request( const Code : Byte; const IP : TIP4Addr; const Port : Word; const UserID : AnsiString) : AnsiString'); Function Socks4ConnectRequest( const IP : TIP4Addr; const Port : Word; const UserID : AnsiString) : AnsiString'); Function Socks4BindRequest( const IP : TIP4Addr; const Port : Word; const UserID : AnsiString) : AnsiString'); Function Socks4aRequest( const Code : Byte; const Domain : AnsiString; const Port : Word; const UserID : AnsiString) : AnsiString'); Function Socks4aConnectRequest( const Domain : AnsiString; const Port : Word; const UserID : AnsiString) : AnsiString'); Procedure PopulateSocks4ErrorResponse( var Msg : TSocks4Message; const Code : Byte)'); Function IsGrantedSocks4ResponseCode( const Code : Byte) : Boolean'); CL.AddConstantN('SOCKS5_MSG_VERSION','LongInt').SetInt( 5); CL.AddTypeS('TSocks5Greeting', 'record Version : Byte; Methods : Byte; Method1 : Byte; end'); //CL.AddTypeS('PSocks5Greeting', '^TSocks5Greeting // will not work'); SOCKS5_METHOD_NOAUTH','LongInt').SetInt( 0); SOCKS5_METHOD_GSSAPI','LongInt').SetInt( 1); SOCKS5_METHOD_USERPASS','LongInt').SetInt( 2); SOCKS5_METHOD_RESERVED0','LongInt').SetInt( 3); SOCKS5_METHOD_PRIVATE0','LongWord').SetUInt( $80); SOCKS5_METHOD_INVALID','LongWord').SetUInt( $FF); Procedure PopulateSocks5Greeting( var Greeting : TSocks5Greeting; const Method : Byte)'); Procedure PopulateSocks5GreetingNoAuth( var Greeting : TSocks5Greeting)'); Procedure PopulateSocks5GreetingUserPass( var Greeting : TSocks5Greeting)'); CL.AddTypeS('TSocks5GreetingResponse', 'record Version : Byte; Method : Byte; end'); // CL.AddTypeS('PSocks5GreetingResponse', '^TSocks5GreetingResponse // will not work'); Procedure PopulateSocks5GreetingResponse( var Response : TSocks5GreetingResponse; const Method : Byte)'); Function Socks5GreetingResponse( const Method : Byte) : AnsiString'); SOCKS5_USERPASS_VERSION','LongInt').SetInt( 1); SOCKS5_USERPASS_MAX_MSG_SIZE','LongInt').SetInt( 513); SOCKS5_USERPASS_STATUS_OK','LongInt').SetInt( 0); SOCKS5_USERPASS_STATUS_FAIL','LongInt').SetInt( 1); Function Socks5UserPassMessage( const Username, Password : AnsiString) : AnsiString'); CL.AddTypeS('TSocks5UserPassResponse', 'record Version : Byte; Status : Byte; end'); //CL.AddTypeS('PSocks5UserPassResponse', '^TSocks5UserPassResponse // will notwork'); Procedure PopulateSocks5UserPassResponse( var Response : TSocks5UserPassResponse; const Status : Byte)'); SOCKS5_REQ_CODE_CONNECT','LongInt').SetInt( 1); SOCKS5_REQ_CODE_BIND','LongInt').SetInt( 2); SOCKS5_REQ_CODE_UDP_ASSOCIATE','LongInt').SetInt( 3); SOCKS5_RESP_CODE_Success','LongInt').SetInt( 0); SOCKS5_RESP_CODE_GeneralServerFailure','LongInt').SetInt( 1); SOCKS5_RESP_CODE_ConnectionNotAllowed','LongInt').SetInt( 2); SOCKS5_RESP_CODE_NetworkUnreachable','LongInt').SetInt( 3); SOCKS5_RESP_CODE_HostUnreachable','LongInt').SetInt( 4); SOCKS5_RESP_CODE_ConnectionRefused','LongInt').SetInt( 5); SOCKS5_RESP_CODE_TTLExpired','LongInt').SetInt( 6); SOCKS5_RESP_CODE_CommandNotSupported','LongInt').SetInt( 7); SOCKS5_RESP_CODE_AddressTypeNotSupported','LongInt').SetInt( 8); SOCKS5_ADDR_TYPE_IP4','LongInt').SetInt( 1); SOCKS5_ADDR_TYPE_DOMAIN','LongInt').SetInt( 3); SOCKS5_ADDR_TYPE_IP6','LongInt').SetInt( 4); SOCKS5_ADDRMSG_MAX_MSG_SIZE','LongInt').SetInt( 296); Function Socks5ErrorDescription( const Code : Integer) : String'); TSocks5IP4Message', 'record Version : Byte; Code : Byte; Reserve' d : Byte; AddrType : Byte; IP4Addr : TIP4Addr; Port : Word; end'); CL.AddTypeS('TIP6Addr', 'record Addr32 : array[0..3] of LongWord; end'); { TIP6Addr = record case Integer of 0 : (Addr8 : array[0..15] of Byte); 1 : (Addr16 : array[0..7] of Word); 2 : (Addr32 : array[0..3] of LongWord); } // CL.AddTypeS('PSocks5IP4Message', '^TSocks5IP4Message // will not work'); Procedure PopulateSocks5IP4Message( var Msg : TSocks5IP4Message; const Command : Byte; const Addr : TIP4Addr;const NetPort: Word)'); Procedure PopulateSocks5IP4ErrorReply( var Msg : TSocks5IP4Message; const ResponseCode : Byte)'); CL.AddTypeS('TSocks5IP6Message', 'record Version : Byte; Code : Byte; Reserve' +'d : Byte; AddrType : Byte; IP6Addr : TIP6Addr; Port : Word; end'); // CL.AddTypeS('PSocks5IP6Message', '^TSocks5IP6Message // will not work'); Procedure PopulateSocks5IP6Message( var Msg : TSocks5IP6Message; const Command : Byte; const Addr : TIP6Addr; const NetPort: Word)'); Procedure PopulateSocks5IP6ErrorReply( var Msg : TSocks5IP6Message; const ResponseCode : Byte)'); TSocks5DomainMessageHeader', 'record Version : Byte; Code : Byte' ; Reserved : Byte; AddrType : Byte; NameLen : Byte; end'); // CL.AddTypeS('PSocks5DomainMessageHeader', '^TSocks5DomainMessageHeader // will not work'); Procedure PopulateSocks5DomainMessageHeader( var MsgHdr : TSocks5DomainMessageHeader; const Command : Byte; const Domain : AnsiString)'); Function Socks5DomainRequest( const Command : Byte; const Domain : AnsiString; const NetPort : Word) : AnsiString'); CL.AddTypeS('TSocks5ResponseHeader', 'record Version : Byte; Code : Byte; Res' +'erved : Byte; AddrType : Byte; Addr1 : Byte; end'); // CL.AddTypeS('PSocks5ResponseHeader', '^TSocks5ResponseHeader // will not work'); // CL.AddDelphiFunction('Function Socks5ResponseSize( const Header : PSocks5ResponseHeader) : Integer'); //CL.AddConstantN('SOCKS5_MAX_MSG_SIZE','socks5size').SetString( SOCKS5_USERPASS_MAX_MSG_SIZE); Procedure CSocksSelfTest'); Procedure CSocksUnitTest'); end; (*----------------------------------------------------------------------------*) procedure SIRegister_RNavigateLongLat(CL: TPSPascalCompiler); begin //with RegClassS(CL,'TOBJECT', 'RNavigateLongLat') do with CL.AddClassN(CL.FindClass('TOBJECT'),'RNavigateLongLat') do begin RegisterMethod('Procedure GoGoogle'); Procedure GoGoogleDirectionsTo( ADestination : RNavigateLongLat; AMapLoc : Integer)'); Procedure SetToNull'); Procedure CreateDec( ADecLong, ADecLatt : Double)'); Procedure Create( ALongRad, ALatRad : Double)'); Procedure GoogleScaleByMeters( AMeters : Double)'); Function LocatationText( ASecDecPlaces : Integer) : String'); Function LocatationCsv( ADecPlaces : Integer) : String'); Function LongitudeText( ASecDecPlaces : Integer) : String'); Function LatitudeText( ASecDecPlaces : Integer) : String'); Function MetresFrom( AStart : RNavigateLongLat) : Double'); Function MetresFromPrecision( AStart : RNavigateLongLat; out ARadiansToStart, ARadiansFromStart : Double; AAllowPolarRoute : Boolean) : Double'); Function LocationAtMtrsRad( AMeters, ATrueHeadingRadians : Double) : RNavigateLongLat'); Function LocationAt( AMeters, ATrueHeadingDegrees : Double) : RNavigateLongLat'); Function HeadingFrom( AStart : RNavigateLongLat) : Double'); Function HeadingInRadFrom( AStart : RNavigateLongLat) : Double'); Function GoogleLink : String'); Function GoogleLinkDirectionsTo(ADestination:RNavigateLongLat; AMapLoc: Integer) : String'); Function IsValid : Boolean'); Function NotNull : Boolean'); Function HeadingFromAsText( AStart : RNavigateLongLat; ADecPlace : Integer) : String'); RegisterProperty('Longitude', 'Double', iptrw); RegisterProperty('Latitude', 'Double', iptrw); RegisterProperty('LongAsRad', 'Double', iptr); RegisterProperty('LatAsRad', 'Double', iptr); RegisterProperty('GoogleScale', 'Integer', iptrw); end; end; (*----------------------------------------------------------------------------*) procedure SIRegister_IsNavUtils2(CL: TPSPascalCompiler); begin SIRegister_RNavigateLongLat(CL); Function TextMeters2( AMeters : Single; DecPlace, MaxLen, PosPoint : Byte) : String'); Function AngleDecFrmDegreeMinuteSecond(ADegrees,AMinutes:Integer;ASeconds:Double): Double;'); Function TextDegreeMinuteSecond( ARadians : Double; AAccuracy : Integer) : String;'); Function TextDegreeMinuteSecondFrmDec2( Value : Double; AAccuracy : Integer) : String'); Procedure CalNewDoubleAverageAndSumOfSquares( ANewSample : Double; var ARunningAveage, ARunningAveageSumOfSqrs : Double; ANoOfSamples : Integer)'); Procedure CalNewRationalAngleDegreesAverageAndSumOfSquares( ANewSample : Double; var ARunningAngleAve, RunningAngleSumOfSquares : Double; ANoOfSamples : Integer; AReturn0to360 : Boolean)'); Procedure CalNewRationalAngleRadiansAverageAndSumOfSquares(ANewSample:Double;var RunningAngleSumOfSquares,ARunningAngleAve:Double;ANoOfSamples:Integer)'); Function CalDoubleStdDevFromSumOfSquares(ARunningAveageSumOfSqrs Double; ANoOfSamples : Integer) : Double'); Function MtrsPerDegreeLongAdjustForLatitude( ALatitudeDegree : Double) : Double'); Function RealFrmDegreeText2( AText : String) : double'); CL.AddConstantN('EarthRad','Double').setExtended( 6371008.8); MtrsPerDegree','Double').setExtended( Pi * 6371008.8 / 180); AngleDegreeChar','String').SetString( '°'); AngleMins','String').SetString( ''''); AngleSecs','String').SetString( '"'); EffectiveZero','Extended').setExtended( 0.0000000001); end; procedure SIRegister_TAChartUtils(CL: TPSPascalCompiler); begin CL.AddConstantN('CHART_COMPONENT_IDE_PAGE','String').SetString( 'Chart'); CL.AddConstantN('taPERCENT','Extended').setExtended( 0.01); CL.AddConstantN('clTAColor','LongWord').SetUInt( $20000000); CL.AddConstantN('DEFAULT_FONT_SIZE','LongInt').SetInt( 10); CL.AddClassN(CL.FindClass('TOBJECT'),'EChartError'); CL.AddClassN(CL.FindClass('TOBJECT'),'EChartIntervalError'); CL.AddClassN(CL.FindClass('TOBJECT'),'EListenerError'); CL.AddClassN(CL.FindClass('TOBJECT'),'EDrawDataError'); CL.AddTypeS('TDoublePoint', 'record X : Double; Y : Double; end'); CL.AddTypeS('TATPointArray', 'array of TPoint'); CL.AddTypeS('TDoublePointArray', 'array of TDoublepoint'); CL.AddTypeS('TChartDistance', 'Integer'); CL.AddTypeS('TATPercent', 'Integer'); CL.AddTypeS('TTransformFunc', 'Function ( A : Double) : Double'); CL.AddTypeS('TImageToGraphFunc', 'Function ( AX : Integer) : Double'); CL.AddTypeS('TGraphToImageFunc', 'Function ( AX : Double) : Integer'); CL.AddTypeS('TChartUnits', '( cuPercent, cuAxis, cuGraph, cuPixel )'); CL.AddTypeS('TOverrideColor', '( ocBrush, ocPen )'); CL.AddTypeS('TOverrideColors', 'set of TOverrideColor'); // CL.AddTypeS('TSeriesMarksStyle', '( smsCustom, smsNone, smsValue, smsPercent,' // +' smsLabel, smsLabelPercent, smsLabelValue, smsLegend, smsPercentTotal, sms' // +'LabelPercentTotal, smsXValue )'); CL.AddTypeS('TDoubleInterval', 'record FStart : Double; FEnd : Double; end'); CL.AddTypeS('TNearestPointTarget', '( nptPoint, nptXList, nptYList, nptCustom)'); CL.AddTypeS('TNearestPointTargets', 'set of TNearestPointTarget'); SIRegister_TIntervalList(CL); CL.AddTypeS('TCaseOfTwo', '( cotNone, cotFirst, cotSecond, cotBoth )'); // SIRegister_TIndexedComponent(CL); // SIRegister_TTypedFPListEnumerator(CL); // SIRegister_TIndexedComponentList(CL); CL.AddClassN(CL.FindClass('TOBJECT'),'TBroadcaster'); //SIRegister_TListener(CL); //SIRegister_TBroadcaster(CL); //SIRegister_TDrawDataItem(CL); //CL.AddTypeS('TDrawDataItemClass', 'class of TDrawDataItem'); //SIRegister_TDrawDataRegistry(CL); //SIRegister_TPublishedIntegerSet(CL); //SIRegister_THistory(CL); //CL.AddTypeS('PStr', '^String // will not work'); //SIRegister_TClassRegistryItem(CL); //SIRegister_TClassRegistry(CL); CL.AddConstantN('PUB_INT_SET_ALL','String').SetString( ''); CL.AddConstantN('PUB_INT_SET_EMPTY','String').SetString( '-'); CL.AddConstantN('ORIENTATION_UNITS_PER_DEG','LongInt').SetInt( 10); Function BoundsSize( ALeft, ATop : Integer; ASize : TSize) : TRect'); Function Deg16ToRad( ADeg16 : Integer) : Double'); Function DoubleInterval( AStart, AEnd : Double) : TDoubleInterval'); Procedure Exchange0( var A, B : Integer);'); Procedure Exchange1( var A, B : Double);'); Procedure Exchange2( var A, B : TDoublePoint);'); Procedure Exchange3( var A, B : String);'); Function FormatIfNotEmpty( AFormat, AStr : String) : String'); Function IfThen4( ACond : Boolean; ATrue, AFalse : TObject) : TObject;'); Function TAInterpolateRGB( AColor1, AColor2 : Integer; ACoeff : Double) : Integer'); Function IntToColorHex( AColor : Integer) : String'); Function IsEquivalent( const A1, A2 : Double) : Boolean'); Function IsNan5( const APoint : TDoublePoint) : Boolean;'); Function NumberOr( ANum : Double; ADefault : Double) : Double'); Function OrientToRad( AOrient : Integer) : Double'); Function RadToDeg16( ARad : Double) : Integer'); Function RadToOrient( ARad : Double) : Integer'); Function RoundChecked( A : Double) : Integer'); Procedure TASetPropDefaults( AObject : TPersistent; APropNames : array of String)'); Function TASplit( AString : String; ADest : TStrings; ADelimiter : Char) : TStrings'); Function StrToFloatDefSep( const AStr : String) : Double'); //CL.AddDelphiFunction('Procedure Unused( const A1)'); //CL.AddDelphiFunction('Procedure Unused( const A1, A2)'); //CL.AddDelphiFunction('Procedure Unused( const A1, A2, A3)'); Procedure UpdateMinMax6( AValue : Double; var AMin, AMax : Double);'); Procedure UpdateMinMax7( AValue : Integer; var AMin, AMax : Integer);'); Function WeightedAverage( AX1, AX2, ACoeff : Double) : Double'); end; function PointsAdd(const A, B: TPoint): TPoint; function PointsDec(const A, B: TPoint): TPoint; function PointsAbs(const P: TPoint): TPoint; Successfully verified: maXbox5.exe Number of files successfully Verified: 1 Number of warnings: 0 Number of errors: 0 Verifying: maXbox5.exe Signature Index: 0 (Primary Signature) Hash of file (sha256): 621EEB523ABA49E248D624F4DC59ACFB331142818BBBC80F6E1C07C931BF6030 Signing Certificate Chain: Issued to: maXboxCertAuth Issued by: maXboxCertAuth Expires: Sun Jan 01 00:59:59 2040 SHA1 hash: 6F83207B500DCC0E32A719599CBC6BD7E6B2A04D Issued to: maXbox4signer Issued by: maXboxCertAuth Expires: Sun Jan 01 00:59:59 2040 SHA1 hash: 6A89501B76D47C189A60BF1070BAA2FBFD38D7D7 Issued to: maXbox4exe Issued by: maXbox4signer Expires: Sun Jan 01 00:59:59 2040 SHA1 hash: F0EB0CA218C5707FAC78921F81092CECA12AD0E9 The signature is timestamped: Thu Feb 01 13:25:23 2024 Timestamp Verified by: Issued to: GlobalSign Issued by: GlobalSign Expires: Sun Dec 10 01:00:00 2034 SHA1 hash: 8094640EB5A7A1CA119C1FDDD59F810263A7FBD1 Issued to: GlobalSign Timestamping CA - SHA384 - G4 Issued by: GlobalSign Expires: Sun Dec 10 01:00:00 2034 SHA1 hash: F585500925786F88E721D235240A2452AE3D23F9 Issued to: Globalsign TSA for CodeSign1 - R6 Issued by: GlobalSign Timestamping CA - SHA384 - G4 Expires: Sun May 08 08:45:38 2033 SHA1 hash: CA3E8CFD7CFD329A99359A9A38F86185F0B01C4A Successfully verified: maXbox5.exe Number of files successfully Verified: 1 Number of warnings: 0 Number of errors: 0 Verifying: maXbox5.exe Signature Index: 0 (Primary Signature) Hash of file (sha256): CD6C8BB37F8D06425107871E6C072E57974D2ED4D1FC48FC83E6E9517DEEE405 Signing Certificate Chain: Issued to: maXboxCertAuth Issued by: maXboxCertAuth Expires: Sun Jan 01 00:59:59 2040 SHA1 hash: 6F83207B500DCC0E32A719599CBC6BD7E6B2A04D Issued to: maXbox4signer Issued by: maXboxCertAuth Expires: Sun Jan 01 00:59:59 2040 SHA1 hash: 6A89501B76D47C189A60BF1070BAA2FBFD38D7D7 Issued to: maXbox4exe Issued by: maXbox4signer Expires: Sun Jan 01 00:59:59 2040 SHA1 hash: F0EB0CA218C5707FAC78921F81092CECA12AD0E9 The signature is timestamped: Sun Feb 25 17:51:02 2024 Timestamp Verified by: Issued to: GlobalSign Issued by: GlobalSign Expires: Sun Dec 10 01:00:00 2034 SHA1 hash: 8094640EB5A7A1CA119C1FDDD59F810263A7FBD1 Issued to: GlobalSign Timestamping CA - SHA384 - G4 Issued by: GlobalSign Expires: Sun Dec 10 01:00:00 2034 SHA1 hash: F585500925786F88E721D235240A2452AE3D23F9 Issued to: Globalsign TSA for CodeSign1 - R6 Issued by: GlobalSign Timestamping CA - SHA384 - G4 Expires: Sun May 08 08:45:38 2033 SHA1 hash: CA3E8CFD7CFD329A99359A9A38F86185F0B01C4A Successfully verified: maXbox5.exe Number of files successfully Verified: 1 Number of warnings: 0 Number of errors: 0 Verifying: maXbox5.exe Signature Index: 0 (Primary Signature) Hash of file (sha256): A32B3BECFEA379F1474702D1C80ADE0DDADBC0645BD6E72189D58EDAB422E872 Signing Certificate Chain: Issued to: maXboxCertAuth Issued by: maXboxCertAuth Expires: Sun Jan 01 00:59:59 2040 SHA1 hash: 6F83207B500DCC0E32A719599CBC6BD7E6B2A04D Issued to: maXbox4signer Issued by: maXboxCertAuth Expires: Sun Jan 01 00:59:59 2040 SHA1 hash: 6A89501B76D47C189A60BF1070BAA2FBFD38D7D7 Issued to: maXbox4exe Issued by: maXbox4signer Expires: Sun Jan 01 00:59:59 2040 SHA1 hash: F0EB0CA218C5707FAC78921F81092CECA12AD0E9 The signature is timestamped: Fri Mar 08 13:42:13 2024 Timestamp Verified by: Issued to: GlobalSign Issued by: GlobalSign Expires: Sun Dec 10 01:00:00 2034 SHA1 hash: 8094640EB5A7A1CA119C1FDDD59F810263A7FBD1 Issued to: GlobalSign Timestamping CA - SHA384 - G4 Issued by: GlobalSign Expires: Sun Dec 10 01:00:00 2034 SHA1 hash: F585500925786F88E721D235240A2452AE3D23F9 Issued to: Globalsign TSA for CodeSign1 - R6 Issued by: GlobalSign Timestamping CA - SHA384 - G4 Expires: Sun May 08 08:45:38 2033 SHA1 hash: CA3E8CFD7CFD329A99359A9A38F86185F0B01C4A Successfully verified: maXbox5.exe Number of files successfully Verified: 1 Number of warnings: 0 Number of errors: 0 Verifying: maXbox5.exe Signature Index: 0 (Primary Signature) Hash of file (sha256): 2955B78E468DA665BA818E9346C946B067ABFEEBEB44333FF47A1E0A8EE84F51 Signing Certificate Chain: Issued to: maXboxCertAuth Expires: Sun Jan 01 00:59:59 2040 SHA1 hash: 6F83207B500DCC0E32A719599CBC6BD7E6B2A04D Issued to: maXbox4signer Issued by: maXboxCertAuth Expires: Sun Jan 01 00:59:59 2040 SHA1 hash: 6A89501B76D47C189A60BF1070BAA2FBFD38D7D7 Issued to: maXbox4exe Issued by: maXbox4signer Expires: Sun Jan 01 00:59:59 2040 SHA1 hash: F0EB0CA218C5707FAC78921F81092CECA12AD0E9 The signature is timestamped: Sun Mar 10 16:51:04 2024 Timestamp Verified by: Issued to: GlobalSign Issued by: GlobalSign Expires: Sun Dec 10 01:00:00 2034 SHA1 hash: 8094640EB5A7A1CA119C1FDDD59F810263A7FBD1 Issued to: GlobalSign Timestamping CA - SHA384 - G4 Issued by: GlobalSign Expires: Sun Dec 10 01:00:00 2034 SHA1 hash: F585500925786F88E721D235240A2452AE3D23F9 Issued to: Globalsign TSA for CodeSign1 - R6 Issued by: GlobalSign Timestamping CA - SHA384 - G4 Expires: Sun May 08 08:45:38 2033 SHA1 hash: CA3E8CFD7CFD329A99359A9A38F86185F0B01C4A Successfully verified: maXbox5.exe Number of files successfully Verified: 1 Number of warnings: 0 Number of errors: 0 Verifying: maXbox5.exe Signature Index: 0 (Primary Signature) Hash of file (sha256): D0B4D0A01596445DABB47A9A2D1A4A43176F06EA18BEB7AEBCA8EDAFA5F16F11 Signing Certificate Chain: Issued to: maXboxCertAuth Issued by: maXboxCertAuth Expires: Sun Jan 01 00:59:59 2040 SHA1 hash: 6F83207B500DCC0E32A719599CBC6BD7E6B2A04D Issued to: maXbox4signer Issued by: maXboxCertAuth Expires: Sun Jan 01 00:59:59 2040 SHA1 hash: 6A89501B76D47C189A60BF1070BAA2FBFD38D7D7 Issued to: maXbox4exe Issued by: maXbox4signer Expires: Sun Jan 01 00:59:59 2040 SHA1 hash: F0EB0CA218C5707FAC78921F81092CECA12AD0E9 The signature is timestamped: Fri Mar 15 15:05:51 2024 Timestamp Verified by: Issued to: GlobalSign Issued by: GlobalSign Expires: Sun Dec 10 01:00:00 2034 SHA1 hash: 8094640EB5A7A1CA119C1FDDD59F810263A7FBD1 Issued to: GlobalSign Timestamping CA - SHA384 - G4 Issued by: GlobalSign Expires: Sun Dec 10 01:00:00 2034 SHA1 hash: F585500925786F88E721D235240A2452AE3D23F9 Issued to: Globalsign TSA for CodeSign1 - R6 Issued by: GlobalSign Timestamping CA - SHA384 - G4 Expires: Sun May 08 08:45:38 2033 SHA1 hash: CA3E8CFD7CFD329A99359A9A38F86185F0B01C4A Successfully verified: maXbox5.exe Number of files successfully Verified: 1 Number of warnings: 0 Number of errors: 0 Verifying: maXbox5.exe Signature Index: 0 (Primary Signature) Hash of file (sha256): D85C1B5A864E6E95B5F6A32892D33577979832BA9B1207D0CEDCCB80FDA0A347 Signing Certificate Chain: Issued to: maXboxCertAuth Issued by: maXboxCertAuth Expires: Sun Jan 01 00:59:59 2040 SHA1 hash: 6F83207B500DCC0E32A719599CBC6BD7E6B2A04D Issued to: maXbox4signer Issued by: maXboxCertAuth Expires: Sun Jan 01 00:59:59 2040 SHA1 hash: 6A89501B76D47C189A60BF1070BAA2FBFD38D7D7 Issued to: maXbox4exe Issued by: maXbox4signer Expires: Sun Jan 01 00:59:59 2040 SHA1 hash: F0EB0CA218C5707FAC78921F81092CECA12AD0E9 The signature is timestamped: Thu Mar 21 16:25:12 2024 Timestamp Verified by: Issued to: GlobalSign Issued by: GlobalSign Expires: Sun Dec 10 01:00:00 2034 SHA1 hash: 8094640EB5A7A1CA119C1FDDD59F810263A7FBD1 Issued to: GlobalSign Timestamping CA - SHA384 - G4 Issued by: GlobalSign Expires: Sun Dec 10 01:00:00 2034 SHA1 hash: F585500925786F88E721D235240A2452AE3D23F9 Issued to: Globalsign TSA for CodeSign1 - R6 Issued by: GlobalSign Timestamping CA - SHA384 - G4 Expires: Sun May 08 08:45:38 2033 SHA1 hash: CA3E8CFD7CFD329A99359A9A38F86185F0B01C4A Successfully verified: maXbox5.exe Number of files successfully Verified: 1 Number of warnings: 0 Number of errors: 0 https://archive.org/details/maxbox4 https://archive.org/details/maxbox5 https://medium.com/@maxkleiner1/geocoding-iv-572a602f4daa https://maxkleiner1.medium.com/geocoding-v-e230038051aa http://www.softwareschule.ch/examples/geocoding7.htm https://blogs.embarcadero.com/why-a-data-scientist-chooses-delphi-for-powerful-real-world-visualizations/ https://www.virustotal.com/gui/file/f1d09d3d7a98ac8b91618d47bdf7625867fb2b12e202d72f59ac312967257eb3/details https://www.hybrid-analysis.com/sample/6c0883d1ac971b54b026e776b7d47a6d3ffa52b2083f18c85ccdbcf1f5b0b3e8