syshelp.inc 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564
  1. {%mainunit syshelpers.pp}
  2. { ---------------------------------------------------------------------
  3. TGUIDHelper
  4. ---------------------------------------------------------------------}
  5. Procedure NotImplemented(S : String);
  6. begin
  7. Raise Exception.Create('Not yet implemented : '+S);
  8. end;
  9. Class Function TGUIDHelper.Create(const Data; DataEndian: TEndian = CPUEndian): TGUID; overload; static; inline;
  10. begin
  11. Result:=Create(Data,DataEndian=TEndian.Big)
  12. end;
  13. Class Function TGUIDHelper.Create(const B: TBytes; DataEndian: TEndian = CPUEndian): TGUID; overload; static; inline;
  14. begin
  15. Result:=Create(B,0,DataEndian);
  16. end;
  17. Class Function TGUIDHelper.Create(const B: TBytes; AStartIndex: Cardinal; DataEndian: TEndian = CPUEndian): TGUID; overload; static;
  18. begin
  19. if ((System.Length(B)-AStartIndex)<16) then
  20. raise EArgumentException.CreateFmt('The length of a GUID array must be at least %d',[]);
  21. Result:=Create(B,AStartIndex,DataEndian=TEndian.Big);
  22. end;
  23. Class Function TGUIDHelper.Create(const S: string): TGUID; overload; static;
  24. begin
  25. Result:=StringToGUID(S);
  26. end;
  27. Class Function TGUIDHelper.Create(A: Integer; B: SmallInt; C: SmallInt; const D: TBytes): TGUID; overload; static;
  28. begin
  29. if (System.Length(D)<>8) then
  30. raise EArgumentException.CreateFmt('The length of a GUID array must be %d',[]);
  31. Result:=Create(Cardinal(A),Word(B),Word(C),D[0],D[1],D[2],D[3],D[4],D[5],D[6],D[7]);
  32. end;
  33. Class Function TGUIDHelper.Create(A: Integer; B: SmallInt; C: SmallInt; D, E, F, G, H, I, J, K: Byte): TGUID; overload; static;
  34. begin
  35. Result:=Create(Cardinal(A),Word(B),Word(C),D,E,F,G,H,I,J,K);
  36. end;
  37. Class Function TGUIDHelper.Create(A: Cardinal; B: Word; C: Word; D, E, F, G, H, I, J, K: Byte): TGUID; overload; static;
  38. begin
  39. Result.D1 := Cardinal(A);
  40. Result.D2 := Word(B);
  41. Result.D3 := Word(C);
  42. Result.D4[0] := D;
  43. Result.D4[1] := E;
  44. Result.D4[2] := F;
  45. Result.D4[3] := G;
  46. Result.D4[4] := H;
  47. Result.D4[5] := I;
  48. Result.D4[6] := J;
  49. Result.D4[7] := K;
  50. end;
  51. Class Function TGUIDHelper.NewGuid: TGUID; static;
  52. begin
  53. CreateGUID(Result)
  54. end;
  55. Function TGUIDHelper.ToByteArray(DataEndian: TEndian = CPUEndian): TBytes;
  56. begin
  57. SetLength(Result, 16);
  58. if DataEndian<>CPUEndian then
  59. begin
  60. PCardinal(@Result[0])^ := SwapEndian(D1);
  61. PWord(@Result[4])^ := SwapEndian(D2);
  62. PWord(@Result[6])^ := SwapEndian(D3);
  63. Move(D4, Result[8], 8);
  64. end
  65. else
  66. Move(D1, Result[0], SizeOf(Self));
  67. end;
  68. Function TGUIDHelper.ToString(SkipBrackets : Boolean = False): string;
  69. begin
  70. Result:=GuidToString(Self);
  71. If SkipBrackets then
  72. Result:=Copy(Result,2,Length(Result)-2);
  73. end;
  74. {$define TStringHelper:=TAnsiStringHelper}
  75. {$define TStringChar:=AnsiChar}
  76. {$define TStringType:=AnsiString}
  77. {$define PTStringChar:=PAnsiChar}
  78. {$define TSHStringArray:=TAnsiStringArray}
  79. {$define IS_ANSISTRINGHELPER}
  80. {$i syshelps.inc}
  81. {$undef TStringHelper}
  82. {$undef TStringChar}
  83. {$undef TStringType}
  84. {$undef PTStringChar}
  85. {$undef TSHStringArray}
  86. {$undef IS_ANSISTRINGHELPER}
  87. {$define TStringHelper:=TWideStringHelper}
  88. {$define TStringChar:=WideChar}
  89. {$define TStringType:=WideString}
  90. {$define PTStringChar:=PWideChar}
  91. {$define TSHStringArray:=TWideStringArray}
  92. {$define IS_WIDESTRINGHELPER}
  93. {$i syshelps.inc}
  94. {$undef TStringHelper}
  95. {$undef TStringChar}
  96. {$undef TStringType}
  97. {$undef PTStringChar}
  98. {$undef TSHStringArray}
  99. {$undef IS_WIDESTRINGHELPER}
  100. {$define TStringHelper:=TUnicodeStringHelper}
  101. {$define TStringChar:=UnicodeChar}
  102. {$define TStringType:=UnicodeString}
  103. {$define PTStringChar:=PUnicodeChar}
  104. {$define TSHStringArray:=TUnicodeStringArray}
  105. {$define IS_UNICODESTRINGHELPER}
  106. {$i syshelps.inc}
  107. {$undef TStringHelper}
  108. {$undef TStringChar}
  109. {$undef TStringType}
  110. {$undef PTStringChar}
  111. {$undef TSHStringArray}
  112. {$undef IS_UNICODESTRINGHELPER}
  113. {$define TStringHelper:=TShortStringHelper}
  114. {$define TStringChar:=AnsiChar}
  115. {$define TStringType:=ShortString}
  116. {$define IS_SHORTSTRINGHELPER}
  117. {$define PTStringChar:=PAnsiChar}
  118. {$define TSHStringArray:=TShortStringArray}
  119. {$i syshelps.inc}
  120. {$undef TStringHelper}
  121. {$undef TStringChar}
  122. {$undef TStringType}
  123. {$undef PTStringChar}
  124. {$undef TSHStringArray}
  125. {$undef IS_SHORTSTRINGHELPER}
  126. { ---------------------------------------------------------------------
  127. TCurrencyHelper
  128. ---------------------------------------------------------------------}
  129. function TCurrencyHelper.GetMaxValue: Currency;
  130. begin
  131. Result:=MaxCurrency;
  132. end;
  133. function TCurrencyHelper.GetMinValue: Currency;
  134. begin
  135. Result:=MinCurrency;
  136. end;
  137. function TCurrencyHelper.Ceil: Int64;
  138. begin
  139. Result:=System.Trunc(Self);
  140. if Currency(Result)<Self then
  141. Result:=Result+1;
  142. end;
  143. function TCurrencyHelper.Floor: Int64;
  144. begin
  145. Result:=System.Trunc(Self);
  146. if Currency(Result)>Self then
  147. Result:=Result-1;
  148. end;
  149. function TCurrencyHelper.Frac: Currency;
  150. begin
  151. Result:=System.Frac(Self);
  152. end;
  153. class function TCurrencyHelper.Parse(const S: string; const AFormatSettings: TFormatSettings): Currency;
  154. begin
  155. Result:=StrToCurr(S, AFormatSettings);
  156. end;
  157. class function TCurrencyHelper.Parse(const S: string): Currency;
  158. begin
  159. Result:=StrToCurr(S);
  160. end;
  161. class function TCurrencyHelper.Size: Integer;
  162. begin
  163. Result:=SizeOf(Currency);
  164. end;
  165. function TCurrencyHelper.ToString(const AFormatSettings: TFormatSettings): string;
  166. begin
  167. Result:=CurrToStr(Self, AFormatSettings);
  168. end;
  169. function TCurrencyHelper.ToString: string;
  170. begin
  171. Result:=CurrToStr(Self);
  172. end;
  173. class function TCurrencyHelper.ToString(const Value: Currency; const AFormatSettings: TFormatSettings): string;
  174. begin
  175. Result:=CurrToStr(Value, AFormatSettings);
  176. end;
  177. class function TCurrencyHelper.ToString(const Value: Currency): string;
  178. begin
  179. Result:=CurrToStr(Value);
  180. end;
  181. function TCurrencyHelper.Trunc: Int64;
  182. begin
  183. Result:=System.Trunc(Self);
  184. end;
  185. class function TCurrencyHelper.TryParse(const S: string; out Value: Currency; const AFormatSettings: TFormatSettings): Boolean;
  186. begin
  187. Result:=True;
  188. try
  189. Value:=StrToCurr(S, AFormatSettings);
  190. except
  191. on E: Exception do
  192. Result:=False;
  193. end;
  194. end;
  195. class function TCurrencyHelper.TryParse(const S: string; out Value: Currency): Boolean;
  196. begin
  197. Result:=True;
  198. try
  199. Value:=StrToCurr(S);
  200. except
  201. on E: Exception do
  202. Result:=False;
  203. end;
  204. end;
  205. { ---------------------------------------------------------------------
  206. TSingleHelper
  207. ---------------------------------------------------------------------}
  208. {$MACRO ON}
  209. {$IFDEF FPC_HAS_TYPE_SINGLE}
  210. {$define TFLOATHELPER:=TSingleHelper}
  211. {$define FLOATTYPE:=Single}
  212. {$define TFloatRec:=TSingleRec}
  213. {$i syshelpf.inc}
  214. {$UNDEF TFloatRec}
  215. {$ENDIF FPC_HAS_TYPE_SINGLE}
  216. { ---------------------------------------------------------------------
  217. TDoubleHelper
  218. ---------------------------------------------------------------------}
  219. {$IFDEF FPC_HAS_TYPE_DOUBLE}
  220. {$define TFLOATHELPER:=TDoubleHelper}
  221. {$define FLOATTYPE:=Double}
  222. {$define TFloatRec:=TDoubleRec}
  223. {$i syshelpf.inc}
  224. {$UNDEF TFloatRec}
  225. {$ENDIF FPC_HAS_TYPE_DOUBLE}
  226. { ---------------------------------------------------------------------
  227. TExtendedHelper
  228. ---------------------------------------------------------------------}
  229. {$ifdef FPC_HAS_TYPE_EXTENDED}
  230. {$define TFLOATHELPER:=TExtendedHelper}
  231. {$define FLOATTYPE:=Extended}
  232. {$define TFloatRec:=TExtended80Rec}
  233. {$i syshelpf.inc}
  234. {$UNDEF TFloatRec}
  235. {$ENDIF FPC_HAS_TYPE_EXTENDED}
  236. { ---------------------------------------------------------------------
  237. TByteHelper
  238. ---------------------------------------------------------------------}
  239. {$define TORDINALHELPER:=TByteHelper}
  240. {$define TORDINALTYPE:=Byte}
  241. {$define TORDINALBITINDEX:=TByteBitIndex}
  242. {$define TORDINALNIBBLEINDEX:=TByteNibbleIndex}
  243. {$define TORDINALOVERLAY:=TByteOverlay}
  244. {$define TORDINALTYPESIZE1}
  245. {$i syshelpo.inc}
  246. {$undef TORDINALTYPESIZE1}
  247. { ---------------------------------------------------------------------
  248. TShortintHelper
  249. ---------------------------------------------------------------------}
  250. {$define TORDINALHELPER:=TShortIntHelper}
  251. {$define TORDINALTYPE:=ShortInt}
  252. {$define TORDINALBITINDEX:=TShortIntBitIndex}
  253. {$define TORDINALNIBBLEINDEX:=TShortIntNibbleIndex}
  254. {$define TORDINALOVERLAY:=TShortIntOverlay}
  255. {$define TORDINALTYPESIZE1}
  256. {$i syshelpo.inc}
  257. {$undef TORDINALTYPESIZE1}
  258. { ---------------------------------------------------------------------
  259. TSmallintHelper
  260. ---------------------------------------------------------------------}
  261. {$define TORDINALHELPER:=TSmallIntHelper}
  262. {$define TORDINALTYPE:=SmallInt}
  263. {$define TORDINALBITINDEX:=TSmallIntBitIndex}
  264. {$define TORDINALNIBBLEINDEX:=TSmallIntNibbleIndex}
  265. {$define TORDINALBYTEINDEX:=TWordByteIndex}
  266. {$define TORDINALOVERLAY:=TWordOverlay}
  267. {$define TORDINALTYPESIZE2}
  268. {$i syshelpo.inc}
  269. {$undef TORDINALTYPESIZE2}
  270. { ---------------------------------------------------------------------
  271. TWordHelper
  272. ---------------------------------------------------------------------}
  273. {$define TORDINALHELPER:=TWordHelper}
  274. {$define TORDINALTYPE:=Word}
  275. {$define TORDINALBITINDEX:=TWordBitIndex}
  276. {$define TORDINALNIBBLEINDEX:=TWordNibbleIndex}
  277. {$define TORDINALBYTEINDEX:=TWordByteIndex}
  278. {$define TORDINALOVERLAY:=TWordOverlay}
  279. {$define TORDINALTYPESIZE2}
  280. {$i syshelpo.inc}
  281. {$undef TORDINALTYPESIZE2}
  282. { ---------------------------------------------------------------------
  283. TCardinalHelper
  284. ---------------------------------------------------------------------}
  285. {$define TORDINALHELPER:=TCardinalHelper}
  286. {$define TORDINALTYPE:=Cardinal}
  287. {$define TORDINALBITINDEX:=TCardinalBitIndex}
  288. {$define TORDINALNIBBLEINDEX:=TCardinalNibbleIndex}
  289. {$define TORDINALBYTEINDEX:=TCardinalByteIndex}
  290. {$define TORDINALWORDINDEX:=TCardinalWordIndex}
  291. {$define TORDINALOVERLAY:=TDwordOverlay}
  292. {$define TORDINALTYPESIZE4}
  293. {$i syshelpo.inc}
  294. {$undef TORDINALTYPESIZE4}
  295. { ---------------------------------------------------------------------
  296. TIntegerHelper
  297. ---------------------------------------------------------------------}
  298. {$define TORDINALHELPER:=TIntegerHelper}
  299. {$define TORDINALTYPE:=Integer}
  300. {$define TORDINALBITINDEX:=TIntegerBitIndex}
  301. {$define TORDINALNIBBLEINDEX:=TIntegerNibbleIndex}
  302. {$define TORDINALBYTEINDEX:=TIntegerByteIndex}
  303. {$define TORDINALWORDINDEX:=TIntegerWordIndex}
  304. {$if sizeof(Integer)=2}
  305. {$define TORDINALOVERLAY:=TWordOverlay}
  306. {$define TORDINALTYPESIZE2}
  307. {$elseif sizeof(Integer)=4}
  308. {$define TORDINALOVERLAY:=TDwordOverlay}
  309. {$define TORDINALTYPESIZE4}
  310. {$else}
  311. {$fatal Unsupported Integer type size}
  312. {$endif}
  313. {$i syshelpo.inc}
  314. {$undef TORDINALTYPESIZE2}
  315. {$undef TORDINALTYPESIZE4}
  316. { ---------------------------------------------------------------------
  317. TLongIntHelper
  318. ---------------------------------------------------------------------}
  319. {$define TORDINALHELPER:=TLongIntHelper}
  320. {$define TORDINALTYPE:=LongInt}
  321. {$define TORDINALBITINDEX:=TLongIntBitIndex}
  322. {$define TORDINALNIBBLEINDEX:=TLongIntNibbleIndex}
  323. {$define TORDINALBYTEINDEX:=TLongIntByteIndex}
  324. {$define TORDINALWORDINDEX:=TLongIntWordIndex}
  325. {$define TORDINALOVERLAY:=TDwordOverlay}
  326. {$define TORDINALTYPESIZE4}
  327. {$i syshelpo.inc}
  328. {$undef TORDINALTYPESIZE4}
  329. { ---------------------------------------------------------------------
  330. TInt64Helper
  331. ---------------------------------------------------------------------}
  332. {$define TORDINALHELPER:=TInt64Helper}
  333. {$define TORDINALTYPE:=Int64}
  334. {$define TORDINALBITINDEX:=TInt64BitIndex}
  335. {$define TORDINALNIBBLEINDEX:=TInt64NibbleIndex}
  336. {$define TORDINALBYTEINDEX:=TInt64ByteIndex}
  337. {$define TORDINALWORDINDEX:=TInt64WordIndex}
  338. {$define TORDINALDWORDINDEX:=TInt64DWordIndex}
  339. {$define TORDINALOVERLAY:=TQwordOverlay}
  340. {$define TORDINALTYPESIZE8}
  341. {$i syshelpo.inc}
  342. {$undef TORDINALTYPESIZE8}
  343. { ---------------------------------------------------------------------
  344. TQWordHelper
  345. ---------------------------------------------------------------------}
  346. {$define TORDINALHELPER:=TQWordHelper}
  347. {$define TORDINALTYPE:=QWord}
  348. {$define TORDINALBITINDEX:=TQwordBitIndex}
  349. {$define TORDINALNIBBLEINDEX:=TQwordNibbleIndex}
  350. {$define TORDINALBYTEINDEX:=TQwordByteIndex}
  351. {$define TORDINALWORDINDEX:=TQWordWordIndex}
  352. {$define TORDINALDWORDINDEX:=TQWordDWordIndex}
  353. {$define TORDINALOVERLAY:=TQwordOverlay}
  354. {$define TORDINALTYPESIZE8}
  355. {$i syshelpo.inc}
  356. {$undef TORDINALTYPESIZE8}
  357. { ---------------------------------------------------------------------
  358. TNativeIntHelper
  359. ---------------------------------------------------------------------}
  360. {$define TORDINALHELPER:=TNativeIntHelper}
  361. {$define TORDINALTYPE:=NativeInt}
  362. {$define TORDINALBITINDEX:=TNativeIntBitIndex}
  363. {$if sizeof(NativeInt)=2}
  364. {$define TORDINALNIBBLEINDEX:=TSmallIntNibbleIndex}
  365. {$define TORDINALBYTEINDEX:=TSmallIntByteIndex}
  366. {$define TORDINALOVERLAY:=TSmallIntOverlay}
  367. {$define TORDINALTYPESIZE2}
  368. {$elseif sizeof(NativeInt)=4}
  369. {$define TORDINALNIBBLEINDEX:=TLongIntNibbleIndex}
  370. {$define TORDINALBYTEINDEX:=TLongIntByteIndex}
  371. {$define TORDINALWORDINDEX:=TLongIntWordIndex}
  372. {$define TORDINALOVERLAY:=TLongIntOverlay}
  373. {$define TORDINALTYPESIZE4}
  374. {$elseif sizeof(NativeInt)=8}
  375. {$define TORDINALNIBBLEINDEX:=TInt64NibbleIndex}
  376. {$define TORDINALBYTEINDEX:=TInt64ByteIndex}
  377. {$define TORDINALWORDINDEX:=TInt64WordIndex}
  378. {$define TORDINALDWORDINDEX:=TInt64DWordIndex}
  379. {$define TORDINALOVERLAY:=TInt64Overlay}
  380. {$define TORDINALTYPESIZE8}
  381. {$else}
  382. {$fatal Unsupported NativeInt type size}
  383. {$endif}
  384. {$i syshelpo.inc}
  385. {$undef TORDINALTYPESIZE2}
  386. {$undef TORDINALTYPESIZE4}
  387. {$undef TORDINALTYPESIZE8}
  388. { ---------------------------------------------------------------------
  389. TNativeUIntHelper
  390. ---------------------------------------------------------------------}
  391. {$define TORDINALHELPER:=TNativeUIntHelper}
  392. {$define TORDINALTYPE:=NativeUInt}
  393. {$define TORDINALBITINDEX:=TNativeUIntBitIndex}
  394. {$if sizeof(NativeUInt)=2}
  395. {$define TORDINALNIBBLEINDEX:=TWordNibbleIndex}
  396. {$define TORDINALBYTEINDEX:=TWordByteIndex}
  397. {$define TORDINALOVERLAY:=TWordOverlay}
  398. {$define TORDINALTYPESIZE2}
  399. {$elseif sizeof(NativeUInt)=4}
  400. {$define TORDINALNIBBLEINDEX:=TDwordNibbleIndex}
  401. {$define TORDINALBYTEINDEX:=TDwordByteIndex}
  402. {$define TORDINALWORDINDEX:=TDwordWordIndex}
  403. {$define TORDINALOVERLAY:=TDwordOverlay}
  404. {$define TORDINALTYPESIZE4}
  405. {$elseif sizeof(NativeUInt)=8}
  406. {$define TORDINALNIBBLEINDEX:=TQwordNibbleIndex}
  407. {$define TORDINALBYTEINDEX:=TQwordByteIndex}
  408. {$define TORDINALWORDINDEX:=TQwordWordIndex}
  409. {$define TORDINALDWORDINDEX:=TQwordDWordIndex}
  410. {$define TORDINALOVERLAY:=TQwordOverlay}
  411. {$define TORDINALTYPESIZE8}
  412. {$else}
  413. {$fatal Unsupported NativeUInt type size}
  414. {$endif}
  415. {$i syshelpo.inc}
  416. {$undef TORDINALTYPESIZE2}
  417. {$undef TORDINALTYPESIZE4}
  418. {$undef TORDINALTYPESIZE8}
  419. { ---------------------------------------------------------------------
  420. TBooleanHelper
  421. ---------------------------------------------------------------------}
  422. {$define TBOOLHELPER:=TBooleanHelper}
  423. {$define TBOOLTYPE:=Boolean}
  424. {$i syshelpb.inc}
  425. { ---------------------------------------------------------------------
  426. TBoolean8Helper
  427. ---------------------------------------------------------------------}
  428. {$define TBOOLHELPER:=TBoolean8Helper}
  429. {$define TBOOLTYPE:=Boolean8}
  430. {$i syshelpb.inc}
  431. { ---------------------------------------------------------------------
  432. TBoolean16Helper
  433. ---------------------------------------------------------------------}
  434. {$define TBOOLHELPER:=TBoolean16Helper}
  435. {$define TBOOLTYPE:=Boolean16}
  436. {$i syshelpb.inc}
  437. { ---------------------------------------------------------------------
  438. TBoolean32Helper
  439. ---------------------------------------------------------------------}
  440. {$define TBOOLHELPER:=TBoolean32Helper}
  441. {$define TBOOLTYPE:=Boolean32}
  442. {$i syshelpb.inc}
  443. { ---------------------------------------------------------------------
  444. TBoolean64Helper
  445. ---------------------------------------------------------------------}
  446. {$define TBOOLHELPER:=TBoolean64Helper}
  447. {$define TBOOLTYPE:=Boolean64}
  448. {$i syshelpb.inc}
  449. { ---------------------------------------------------------------------
  450. TByteBoolHelper
  451. ---------------------------------------------------------------------}
  452. {$define TBOOLHELPER:=TByteBoolHelper}
  453. {$define TBOOLTYPE:=ByteBool}
  454. {$i syshelpb.inc}
  455. { ---------------------------------------------------------------------
  456. TWordBoolHelper
  457. ---------------------------------------------------------------------}
  458. {$define TBOOLHELPER:=TWordBoolHelper}
  459. {$define TBOOLTYPE:=WordBool}
  460. {$i syshelpb.inc}
  461. { ---------------------------------------------------------------------
  462. TLongBoolHelper
  463. ---------------------------------------------------------------------}
  464. {$define TBOOLHELPER:=TLongBoolHelper}
  465. {$define TBOOLTYPE:=LongBool}
  466. {$i syshelpb.inc}
  467. { ---------------------------------------------------------------------
  468. TQWordBoolHelper
  469. ---------------------------------------------------------------------}
  470. {$define TBOOLHELPER:=TQWordBoolHelper}
  471. {$define TBOOLTYPE:=QWordBool}
  472. {$i syshelpb.inc}