/[projects]/dao/DelphiScanner/Components/tpsystools_4.04/source/COM/_StString.pas
ViewVC logotype

Annotation of /dao/DelphiScanner/Components/tpsystools_4.04/source/COM/_StString.pas

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2671 - (hide annotations) (download)
Tue Aug 25 18:15:15 2015 UTC (8 years, 10 months ago) by torben
File size: 38834 byte(s)
Added tpsystools component
1 torben 2671 (* ***** BEGIN LICENSE BLOCK *****
2     * Version: MPL 1.1
3     *
4     * The contents of this file are subject to the Mozilla Public License Version
5     * 1.1 (the "License"); you may not use this file except in compliance with
6     * the License. You may obtain a copy of the License at
7     * http://www.mozilla.org/MPL/
8     *
9     * Software distributed under the License is distributed on an "AS IS" basis,
10     * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
11     * for the specific language governing rights and limitations under the
12     * License.
13     *
14     * The Original Code is TurboPower SysTools
15     *
16     * The Initial Developer of the Original Code is
17     * TurboPower Software
18     *
19     * Portions created by the Initial Developer are Copyright (C) 1996-2002
20     * the Initial Developer. All Rights Reserved.
21     *
22     * Contributor(s):
23     *
24     * ***** END LICENSE BLOCK ***** *)
25    
26     {*********************************************************}
27     {* _STSTRING.PAS 3.00 *}
28     {*********************************************************}
29    
30     {$I STDEFINE.INC}
31     {$I STCOMDEF.INC}
32     unit _StString;
33    
34     interface
35    
36     uses
37     ComObj, Classes, SysTools_TLB, StdVcl;
38    
39     type
40     TStString = class(TAutoObject, IStString)
41     private {Private declarations }
42     FTokens : IStStringList;
43     FTokensList : TStringList;
44     FIsLicensed : Boolean;
45     public {Public declarations }
46     procedure Initialize; override;
47     destructor Destroy; override;
48     protected {Protected declarations }
49     { IStString - Methods }
50     function AddBackSlash(const DirName: WideString): WideString; safecall;
51     function AsciiCount(const S, WordDelims, Quote: WideString): Integer; safecall;
52     function AsciiPosition(N: Integer; const S, WordDelims, Quote: WideString; var Pos: Integer): WordBool; safecall;
53     function BinaryB(B: Byte): WideString; safecall;
54     function BinaryW(W: Integer): WideString; safecall;
55     function BinaryL(L: Integer): WideString; safecall;
56     function Center(const S: WideString; Len: Integer): WideString; safecall;
57     function CenterCh(const S, C: WideString; Len: Integer): WideString; safecall;
58     function CharCount(const S, C: WideString): Integer; safecall;
59     function CharExists(const S, C: WideString): WordBool; safecall;
60     function CharStr(const C: WideString; Len: Integer): WideString; safecall;
61     function CleanPathName(const PathName: WideString): WideString; safecall;
62     function Commaize(L: Integer): WideString; safecall;
63     function CommaizeCh(L: Integer; const Ch: WideString): WideString; safecall;
64     function CompString(const S1, S2: WideString): Integer; safecall;
65     function CompUCString(const S1, S2: WideString): Integer; safecall;
66     function ContainsOnly(const S, Chars: WideString; var BadPos: Integer): WordBool; safecall;
67     function ContainsOtherThan(const S, Chars: WideString; var BadPos: Integer): WordBool; safecall;
68     function CopyFromNthWord(const S, WordDelims, AWord: WideString; N: Integer; var SubString: WideString): WordBool; safecall;
69     function CopyFromToWord(const S, WordDelims, Word1, Word2: WideString; N1, N2: Integer; var SubString: WideString): WordBool; safecall;
70     function CopyLeft(const S: WideString; Len: Integer): WideString; safecall;
71     function CopyMid(const S: WideString; First, Len: Integer): WideString; safecall;
72     function CopyRight(const S: WideString; First: Integer): WideString; safecall;
73     function CopyWithin(const S, Delimiter: WideString; Strip: WordBool): WideString; safecall;
74     function DefaultExtension(const Name, Ext: WideString): WideString; safecall;
75     function DeleteFromNthWord(const S, WordDelims, AWord: WideString; N: Integer; var SubString: WideString): WordBool; safecall;
76     function DeleteFromToWord(const S, WordDelims, Word1, Word2: WideString; N1, N2: Integer; var SubString: WideString): WordBool; safecall;
77     function DeleteWithin(const S, Delimeter: WideString): WideString; safecall;
78     function Detab(const S: WideString; TabSize: Byte): WideString; safecall;
79     function Entab(const S: WideString; TabSize: Byte): WideString; safecall;
80     function Ext2Str(R: OleVariant; Width, Places: Byte): WideString; safecall;
81     function ExtractAscii(N: Integer; const S, WordDelims, Quote: WideString): WideString; safecall;
82     function ExtractTokens(const S, Delims, QuoteChar: WideString; AllowNulls: WordBool; out Tokens: IStStringList): Integer; safecall;
83     function ExtractWord(N: Integer; const S, WordDelims: WideString): WideString; safecall;
84     function Filter(const S, Filters: WideString): WideString; safecall;
85     function FloatForm(const Mask: WideString; R: Double; L: Integer; const LtCurr, RtCurr, Sep, DecPt: WideString): WideString; safecall;
86     function ForceExtension(const Name, Ext: WideString): WideString; safecall;
87     function HasExtension(const Name: WideString; var DotPos: Integer): WordBool; safecall;
88     function HexB(B: Byte): WideString; safecall;
89     function HexW(W: Integer): WideString; safecall;
90     function HexL(L: Integer): WideString; safecall;
91     function IsChAlpha(const C: WideString): WordBool; safecall;
92     function IsChAlphaNumeric(const C, Numbers: WideString): WordBool; safecall;
93     function IsChNumeric(const C, Numbers: WideString): WordBool; safecall;
94     function IsStrAlpha(const S: WideString): WordBool; safecall;
95     function IsStrAlphaNumeric(const S, Numbers: WideString): WordBool; safecall;
96     function IsStrNumeric(const S, Numbers: WideString): WordBool; safecall;
97     function JustExtension(const Name: WideString): WideString; safecall;
98     function JustFilename(const PathName: WideString): WideString; safecall;
99     function JustName(const PathName: WideString): WideString; safecall;
100     function JustPathname(const PathName: WideString): WideString; safecall;
101     function KeepChars(const S, Chars: WideString): WideString; safecall;
102     function LastString(const S, AString: WideString; var Position: Integer): WordBool; safecall;
103     function LastWord(const S, WordDelims, AWord: WideString; var Position: Integer): WordBool; safecall;
104     function LastWordAbs(const S, WordDelims: WideString; var Position: Integer): WordBool; safecall;
105     function LeftPad(const S: WideString; Len: Integer): WideString; safecall;
106     function LeftPadCh(const S, C: WideString; Len: Integer): WideString; safecall;
107     function LeftTrimChars(const S, Chars: WideString): WideString; safecall;
108     function Long2Str(L: Integer): WideString; safecall;
109     function LongIntForm(const Mask: WideString; L: Integer; const LtCurr, RtCurr, Sep: WideString): WideString; safecall;
110     function OctalB(B: Byte): WideString; safecall;
111     function OctalW(W: Integer): WideString; safecall;
112     function OctalL(L: Integer): WideString; safecall;
113     function Pad(const S: WideString; Len: Integer): WideString; safecall;
114     function PadCh(const S, C: WideString; Len: Integer): WideString; safecall;
115     function Real2Str(R: Double; Width, Places: Byte): WideString; safecall;
116     function RepeatString(const S: WideString; var Repetitions: Integer; MaxLen: Integer): WideString; safecall;
117     function ReplaceWord(const S, WordDelims, OldWord, NewWord: WideString; N: Integer; var Replacements: Integer): WideString; safecall;
118     function ReplaceWordAll(const S, WordDelims, OldWord, NewWord: WideString; var Replacements: Integer): WideString; safecall;
119     function ReplaceString(const S, OldString, NewString: WideString; N: Integer; var Replacements: Integer): WideString; safecall;
120     function ReplaceStringAll(const S, OldString, NewString: WideString; var Replacements: Integer): WideString; safecall;
121     function RightTrimChars(const S, Chars: WideString): WideString; safecall;
122     function Scramble(const S, Key: WideString): WideString; safecall;
123     function Str2Ext(const S: WideString; var R: OleVariant): WordBool; safecall;
124     function Str2Int16(const S: WideString; var I: Smallint): WordBool; safecall;
125     function Str2Long(const S: WideString; var I: Integer): WordBool; safecall;
126     function Str2Real(const S: WideString; var R: Double): WordBool; safecall;
127     function Str2Word(const S: WideString; var W: Integer): WordBool; safecall;
128     function StrChDelete(const S: WideString; Pos: Integer): WideString; safecall;
129     function StrChInsert(const S, C: WideString; Pos: Integer): WideString; safecall;
130     function StrChPos(const P, C: WideString; var Pos: Integer): WordBool; safecall;
131     function StrStCopy(const S: WideString; Pos, Count: Integer): WideString; safecall;
132     function StrStDelete(const S: WideString; Pos, Count: Integer): WideString; safecall;
133     function StrStInsert(const S1, S2: WideString; Pos: Integer): WideString; safecall;
134     function StrStPos(const P, S: WideString; var Pos: Integer): WordBool; safecall;
135     function StrWithin(const S, SearchStr: WideString; Start: Integer; var Position: Integer): WordBool; safecall;
136     function Substitute(const S, FromStr, ToStr: WideString): WideString; safecall;
137     function Trim(const S: WideString): WideString; safecall;
138     function TrimChars(const S, Chars: WideString): WideString; safecall;
139     function TrimLead(const S: WideString): WideString; safecall;
140     function TrimSpaces(const S: WideString): WideString; safecall;
141     function TrimTrail(const S: WideString): WideString; safecall;
142     function ValPrep(const S: WideString): WideString; safecall;
143     function WordCount(const S, WordDelims: WideString): Integer; safecall;
144     function WordPos(const S, WordDelims, AWord: WideString; N: Integer; var Position: Integer): WordBool; safecall;
145     function WordPosition(N: Integer; const S, WordDelims: WideString; var Position: Integer): WordBool; safecall;
146     procedure WordWrap(const InSt: WideString; var OutSt, Overlap: WideString; Margin: Integer; PadToMArgin: WordBool); safecall;
147     function License(const Key: WideString): WordBool; safecall;
148     function Soundex(const S: WideString): WideString; safecall;
149     end;
150    
151     implementation
152    
153     uses ComServ, StStrL, StStrW, _StUtil {$IFDEF LICENSE}, ActiveX, StComLic {$ENDIF};
154    
155     { ********** TStString Interface ********************************************************* }
156     procedure TStString.Initialize;
157     begin
158     inherited Initialize;
159     FTokensList := TStringList.Create;
160     FTokens := TStStringList.Create(FTokensList);
161     {$IFDEF LICENSE}
162     FIsLicensed := False;
163     {$ELSE}
164     FIsLicensed := True;
165     {$ENDIF}
166     end;
167    
168     destructor TStString.Destroy;
169     begin
170     if Assigned (FTokensList) then
171     FTokensList.Free;
172    
173     FTokens := nil;
174     inherited Destroy;
175     end;
176    
177     { ********** TStString Methods *********************************************************** }
178     function TStString.AddBackSlash(const DirName: WideString): WideString;
179     begin
180     {$IFDEF LICENSE}
181     if (not FIsLicensed) or (not COMHasBeenLicensed) then
182     OleError(CLASS_E_NOTLICENSED);
183     {$ENDIF}
184     Result := StStrW.AddBackSlashW(DirName);
185     end;
186    
187     function TStString.AsciiCount(const S, WordDelims,
188     Quote: WideString): Integer;
189     begin
190     {$IFDEF LICENSE}
191     if (not FIsLicensed) or (not COMHasBeenLicensed) then
192     OleError(CLASS_E_NOTLICENSED);
193     {$ENDIF}
194     Result := StStrW.AsciiCountW(S, WordDelims, Quote[1])
195     end;
196    
197     function TStString.AsciiPosition(N: Integer; const S, WordDelims,
198     Quote: WideString; var Pos: Integer): WordBool;
199     begin
200     {$IFDEF LICENSE}
201     if (not FIsLicensed) or (not COMHasBeenLicensed) then
202     OleError(CLASS_E_NOTLICENSED);
203     {$ENDIF}
204     Result := StStrW.AsciiPositionW(Cardinal(N), S, WordDelims, Quote[1], Cardinal(Pos));
205     end;
206    
207     function TStString.BinaryB(B: Byte): WideString;
208     begin
209     {$IFDEF LICENSE}
210     if (not FIsLicensed) or (not COMHasBeenLicensed) then
211     OleError(CLASS_E_NOTLICENSED);
212     {$ENDIF}
213     Result := StStrW.BinaryBW(B);
214     end;
215    
216     function TStString.BinaryW(W: Integer): WideString;
217     begin
218     {$IFDEF LICENSE}
219     if (not FIsLicensed) or (not COMHasBeenLicensed) then
220     OleError(CLASS_E_NOTLICENSED);
221     {$ENDIF}
222     Result := StStrW.BinaryWW(W);
223     end;
224    
225     function TStString.BinaryL(L: Integer): WideString;
226     begin
227     {$IFDEF LICENSE}
228     if (not FIsLicensed) or (not COMHasBeenLicensed) then
229     OleError(CLASS_E_NOTLICENSED);
230     {$ENDIF}
231     Result := StStrW.BinaryLW(Cardinal(L));
232     end;
233    
234     function TStString.Center(const S: WideString; Len: Integer): WideString;
235     begin
236     {$IFDEF LICENSE}
237     if (not FIsLicensed) or (not COMHasBeenLicensed) then
238     OleError(CLASS_E_NOTLICENSED);
239     {$ENDIF}
240     Result := StStrW.CenterW(S, Cardinal(Len));
241     end;
242    
243     function TStString.CenterCh(const S, C: WideString;
244     Len: Integer): WideString;
245     begin
246     {$IFDEF LICENSE}
247     if (not FIsLicensed) or (not COMHasBeenLicensed) then
248     OleError(CLASS_E_NOTLICENSED);
249     {$ENDIF}
250     Result := StStrW.CenterChW(S, C[1], Cardinal(Len));
251     end;
252    
253     function TStString.CharCount(const S, C: WideString): Integer;
254     begin
255     {$IFDEF LICENSE}
256     if (not FIsLicensed) or (not COMHasBeenLicensed) then
257     OleError(CLASS_E_NOTLICENSED);
258     {$ENDIF}
259     Result := StStrW.CharCountW(S, C[1]);
260     end;
261    
262     function TStString.CharExists(const S, C: WideString): WordBool;
263     begin
264     {$IFDEF LICENSE}
265     if (not FIsLicensed) or (not COMHasBeenLicensed) then
266     OleError(CLASS_E_NOTLICENSED);
267     {$ENDIF}
268     Result := StStrW.CharExistsW(S, C[1]);
269     end;
270    
271     function TStString.CharStr(const C: WideString; Len: Integer): WideString;
272     begin
273     {$IFDEF LICENSE}
274     if (not FIsLicensed) or (not COMHasBeenLicensed) then
275     OleError(CLASS_E_NOTLICENSED);
276     {$ENDIF}
277     Result := StStrW.CharStrW(C[1], Cardinal(Len));
278     end;
279    
280     function TStString.CleanPathName(const PathName: WideString): WideString;
281     begin
282     {$IFDEF LICENSE}
283     if (not FIsLicensed) or (not COMHasBeenLicensed) then
284     OleError(CLASS_E_NOTLICENSED);
285     {$ENDIF}
286     Result := StStrW.CleanPathNameW(PathName);
287     end;
288    
289     function TStString.Commaize(L: Integer): WideString;
290     begin
291     {$IFDEF LICENSE}
292     if (not FIsLicensed) or (not COMHasBeenLicensed) then
293     OleError(CLASS_E_NOTLICENSED);
294     {$ENDIF}
295     Result := StStrW.CommaizeW(LongInt(L));
296     end;
297    
298     function TStString.CommaizeCh(L: Integer;
299     const Ch: WideString): WideString;
300     begin
301     {$IFDEF LICENSE}
302     if (not FIsLicensed) or (not COMHasBeenLicensed) then
303     OleError(CLASS_E_NOTLICENSED);
304     {$ENDIF}
305     Result := StStrW.CommaizeChW(LongInt(L), Ch[1]);
306     end;
307    
308     function TStString.CompString(const S1, S2: WideString): Integer;
309     begin
310     {$IFDEF LICENSE}
311     if (not FIsLicensed) or (not COMHasBeenLicensed) then
312     OleError(CLASS_E_NOTLICENSED);
313     {$ENDIF}
314     Result := StStrW.CompStringW(S1, S2);
315     end;
316    
317     function TStString.CompUCString(const S1, S2: WideString): Integer;
318     begin
319     {$IFDEF LICENSE}
320     if (not FIsLicensed) or (not COMHasBeenLicensed) then
321     OleError(CLASS_E_NOTLICENSED);
322     {$ENDIF}
323     Result := StStrW.CompUCStringW(S1, S2);
324     end;
325    
326     function TStString.ContainsOnly(const S, Chars: WideString;
327     var BadPos: Integer): WordBool;
328     begin
329     {$IFDEF LICENSE}
330     if (not FIsLicensed) or (not COMHasBeenLicensed) then
331     OleError(CLASS_E_NOTLICENSED);
332     {$ENDIF}
333     Result := StStrW.ContainsOnlyW(S, Chars, Cardinal(BadPos));
334     end;
335    
336     function TStString.ContainsOtherThan(const S, Chars: WideString;
337     var BadPos: Integer): WordBool;
338     begin
339     {$IFDEF LICENSE}
340     if (not FIsLicensed) or (not COMHasBeenLicensed) then
341     OleError(CLASS_E_NOTLICENSED);
342     {$ENDIF}
343     Result := StStrW.ContainsOtherThanW(S, Chars, Cardinal(BadPos));
344     end;
345    
346     function TStString.CopyFromNthWord(const S, WordDelims, AWord: WideString;
347     N: Integer; var SubString: WideString): WordBool;
348     begin
349     {$IFDEF LICENSE}
350     if (not FIsLicensed) or (not COMHasBeenLicensed) then
351     OleError(CLASS_E_NOTLICENSED);
352     {$ENDIF}
353     Result := StStrW.CopyFromNthWordW(S, WordDelims, AWord, Cardinal(N), SubString);
354     end;
355    
356     function TStString.CopyFromToWord(const S, WordDelims, Word1,
357     Word2: WideString; N1, N2: Integer; var SubString: WideString): WordBool;
358     begin
359     {$IFDEF LICENSE}
360     if (not FIsLicensed) or (not COMHasBeenLicensed) then
361     OleError(CLASS_E_NOTLICENSED);
362     {$ENDIF}
363     Result := StStrW.CopyFromToWordW(S, WordDelims, Word1, Word2, Cardinal(N1), Cardinal(N2), SubString);
364     end;
365    
366     function TStString.CopyLeft(const S: WideString; Len: Integer): WideString;
367     begin
368     {$IFDEF LICENSE}
369     if (not FIsLicensed) or (not COMHasBeenLicensed) then
370     OleError(CLASS_E_NOTLICENSED);
371     {$ENDIF}
372     Result := StStrW.CopyLeftW(S, Cardinal(Len));
373     end;
374    
375     function TStString.CopyMid(const S: WideString; First,
376     Len: Integer): WideString;
377     begin
378     {$IFDEF LICENSE}
379     if (not FIsLicensed) or (not COMHasBeenLicensed) then
380     OleError(CLASS_E_NOTLICENSED);
381     {$ENDIF}
382     Result := StStrW.CopyMidW(S, Cardinal(First), Cardinal(Len));
383     end;
384    
385     function TStString.CopyRight(const S: WideString;
386     First: Integer): WideString;
387     begin
388     {$IFDEF LICENSE}
389     if (not FIsLicensed) or (not COMHasBeenLicensed) then
390     OleError(CLASS_E_NOTLICENSED);
391     {$ENDIF}
392     Result := StStrW.CopyRightW(S, Cardinal(First));
393     end;
394    
395     function TStString.CopyWithin(const S, Delimiter: WideString;
396     Strip: WordBool): WideString;
397     begin
398     {$IFDEF LICENSE}
399     if (not FIsLicensed) or (not COMHasBeenLicensed) then
400     OleError(CLASS_E_NOTLICENSED);
401     {$ENDIF}
402     Result := StStrW.CopyWithinW(S, Delimiter, Strip);
403     end;
404    
405     function TStString.DefaultExtension(const Name,
406     Ext: WideString): WideString;
407     begin
408     {$IFDEF LICENSE}
409     if (not FIsLicensed) or (not COMHasBeenLicensed) then
410     OleError(CLASS_E_NOTLICENSED);
411     {$ENDIF}
412     Result := StStrW.DefaultExtensionW(Name, Ext);
413     end;
414    
415     function TStString.DeleteFromNthWord(const S, WordDelims,
416     AWord: WideString; N: Integer; var SubString: WideString): WordBool;
417     begin
418     {$IFDEF LICENSE}
419     if (not FIsLicensed) or (not COMHasBeenLicensed) then
420     OleError(CLASS_E_NOTLICENSED);
421     {$ENDIF}
422     Result := StStrW.DeleteFromNthWordW(S, WordDelims, AWord, Cardinal(N), SubString);
423     end;
424    
425     function TStString.DeleteFromToWord(const S, WordDelims, Word1,
426     Word2: WideString; N1, N2: Integer; var SubString: WideString): WordBool;
427     begin
428     {$IFDEF LICENSE}
429     if (not FIsLicensed) or (not COMHasBeenLicensed) then
430     OleError(CLASS_E_NOTLICENSED);
431     {$ENDIF}
432     Result := StStrW.DeleteFromToWordW(S, WordDelims, Word1, Word2, Cardinal(N1), Cardinal(N2), SubString);
433     end;
434    
435     function TStString.DeleteWithin(const S,
436     Delimeter: WideString): WideString;
437     begin
438     {$IFDEF LICENSE}
439     if (not FIsLicensed) or (not COMHasBeenLicensed) then
440     OleError(CLASS_E_NOTLICENSED);
441     {$ENDIF}
442     Result := StStrW.DeleteWithinW(S, Delimeter);
443     end;
444    
445     function TStString.Detab(const S: WideString; TabSize: Byte): WideString;
446     begin
447     {$IFDEF LICENSE}
448     if (not FIsLicensed) or (not COMHasBeenLicensed) then
449     OleError(CLASS_E_NOTLICENSED);
450     {$ENDIF}
451     Result := StStrW.DetabW(S, TabSize);
452     end;
453    
454     function TStString.Entab(const S: WideString; TabSize: Byte): WideString;
455     begin
456     {$IFDEF LICENSE}
457     if (not FIsLicensed) or (not COMHasBeenLicensed) then
458     OleError(CLASS_E_NOTLICENSED);
459     {$ENDIF}
460     Result := StStrW.EntabW(S, TabSize);
461     end;
462    
463     function TStString.Ext2Str(R: OleVariant; Width, Places: Byte): WideString;
464     var
465     X : Extended;
466     begin
467     {$IFDEF LICENSE}
468     if (not FIsLicensed) or (not COMHasBeenLicensed) then
469     OleError(CLASS_E_NOTLICENSED);
470     {$ENDIF}
471     {!! Will this work with an OleVariant instead of Extended? !!}
472     X := R;
473     Result := StStrW.Ext2StrW(X, Width, ShortInt(Places));
474     end;
475    
476     function TStString.ExtractAscii(N: Integer; const S, WordDelims,
477     Quote: WideString): WideString;
478     begin
479     {$IFDEF LICENSE}
480     if (not FIsLicensed) or (not COMHasBeenLicensed) then
481     OleError(CLASS_E_NOTLICENSED);
482     {$ENDIF}
483     Result := StStrW.ExtractAsciiW(Cardinal(N), S, WordDelims, Quote[1]);
484     end;
485    
486     function TStString.ExtractTokens(const S, Delims, QuoteChar: WideString;
487     AllowNulls: WordBool; out Tokens: IStStringList): Integer;
488     begin
489     {$IFDEF LICENSE}
490     if (not FIsLicensed) or (not COMHasBeenLicensed) then
491     OleError(CLASS_E_NOTLICENSED);
492     {$ENDIF}
493     FTokensList.Clear;
494     Result := StStrW.ExtractTokensW(S, Delims, QuoteChar[1], AllowNulls, FTokensList);
495     Tokens := FTokens;
496     end;
497    
498     function TStString.ExtractWord(N: Integer; const S,
499     WordDelims: WideString): WideString;
500     begin
501     {$IFDEF LICENSE}
502     if (not FIsLicensed) or (not COMHasBeenLicensed) then
503     OleError(CLASS_E_NOTLICENSED);
504     {$ENDIF}
505     Result := StStrW.ExtractWordW(Cardinal(N), S, WordDelims);
506     end;
507    
508     function TStString.Filter(const S, Filters: WideString): WideString;
509     begin
510     {$IFDEF LICENSE}
511     if (not FIsLicensed) or (not COMHasBeenLicensed) then
512     OleError(CLASS_E_NOTLICENSED);
513     {$ENDIF}
514     Result := StStrW.FilterW(S, Filters);
515     end;
516    
517     function TStString.FloatForm(const Mask: WideString; R: Double; L: Integer;
518     const LtCurr, RtCurr, Sep, DecPt: WideString): WideString;
519     begin
520     {$IFDEF LICENSE}
521     if (not FIsLicensed) or (not COMHasBeenLicensed) then
522     OleError(CLASS_E_NOTLICENSED);
523     {$ENDIF}
524     Result := StStrW.FloatFormW(Mask, R, LtCurr, RtCurr, Sep[1], DecPt[1])
525     end;
526    
527     function TStString.ForceExtension(const Name, Ext: WideString): WideString;
528     begin
529     {$IFDEF LICENSE}
530     if (not FIsLicensed) or (not COMHasBeenLicensed) then
531     OleError(CLASS_E_NOTLICENSED);
532     {$ENDIF}
533     Result := StStrW.ForceExtensionW(Name, Ext);
534     end;
535    
536     function TStString.HasExtension(const Name: WideString;
537     var DotPos: Integer): WordBool;
538     begin
539     {$IFDEF LICENSE}
540     if (not FIsLicensed) or (not COMHasBeenLicensed) then
541     OleError(CLASS_E_NOTLICENSED);
542     {$ENDIF}
543     Result := StStrW.HasExtensionW(Name, Cardinal(DotPos));
544     end;
545    
546     function TStString.HexB(B: Byte): WideString;
547     begin
548     {$IFDEF LICENSE}
549     if (not FIsLicensed) or (not COMHasBeenLicensed) then
550     OleError(CLASS_E_NOTLICENSED);
551     {$ENDIF}
552     Result := StStrW.HexBW(B);
553     end;
554    
555     function TStString.HexW(W: Integer): WideString;
556     begin
557     {$IFDEF LICENSE}
558     if (not FIsLicensed) or (not COMHasBeenLicensed) then
559     OleError(CLASS_E_NOTLICENSED);
560     {$ENDIF}
561     Result := StStrW.HexWW(W);
562     end;
563    
564     function TStString.HexL(L: Integer): WideString;
565     begin
566     {$IFDEF LICENSE}
567     if (not FIsLicensed) or (not COMHasBeenLicensed) then
568     OleError(CLASS_E_NOTLICENSED);
569     {$ENDIF}
570     Result := StStrW.HexLW(LongInt(L));
571     end;
572    
573     function TStString.IsChAlpha(const C: WideString): WordBool;
574     begin
575     {$IFDEF LICENSE}
576     if (not FIsLicensed) or (not COMHasBeenLicensed) then
577     OleError(CLASS_E_NOTLICENSED);
578     {$ENDIF}
579     Result := StStrW.IsChAlphaW(C[1]);
580     end;
581    
582     function TStString.IsChAlphaNumeric(const C,
583     Numbers: WideString): WordBool;
584     begin
585     {$IFDEF LICENSE}
586     if (not FIsLicensed) or (not COMHasBeenLicensed) then
587     OleError(CLASS_E_NOTLICENSED);
588     {$ENDIF}
589     Result := StStrW.IsChAlphaNumericW(C[1], Numbers);
590     end;
591    
592     function TStString.IsChNumeric(const C, Numbers: WideString): WordBool;
593     begin
594     {$IFDEF LICENSE}
595     if (not FIsLicensed) or (not COMHasBeenLicensed) then
596     OleError(CLASS_E_NOTLICENSED);
597     {$ENDIF}
598     Result := StStrW.IsChNumericW(C[1], Numbers);
599     end;
600    
601     function TStString.IsStrAlpha(const S: WideString): WordBool;
602     begin
603     {$IFDEF LICENSE}
604     if (not FIsLicensed) or (not COMHasBeenLicensed) then
605     OleError(CLASS_E_NOTLICENSED);
606     {$ENDIF}
607     Result := StStrW.IsStrAlphaW(S);
608     end;
609    
610     function TStString.IsStrAlphaNumeric(const S,
611     Numbers: WideString): WordBool;
612     begin
613     {$IFDEF LICENSE}
614     if (not FIsLicensed) or (not COMHasBeenLicensed) then
615     OleError(CLASS_E_NOTLICENSED);
616     {$ENDIF}
617     Result := StStrW.IsStrAlphaNumericW(S, Numbers);
618     end;
619    
620     function TStString.IsStrNumeric(const S, Numbers: WideString): WordBool;
621     begin
622     {$IFDEF LICENSE}
623     if (not FIsLicensed) or (not COMHasBeenLicensed) then
624     OleError(CLASS_E_NOTLICENSED);
625     {$ENDIF}
626     Result := StStrW.IsStrNumericW(S, Numbers);
627     end;
628    
629     function TStString.JustExtension(const Name: WideString): WideString;
630     begin
631     {$IFDEF LICENSE}
632     if (not FIsLicensed) or (not COMHasBeenLicensed) then
633     OleError(CLASS_E_NOTLICENSED);
634     {$ENDIF}
635     Result := StStrW.JustExtensionW(Name);
636     end;
637    
638     function TStString.JustFilename(const PathName: WideString): WideString;
639     begin
640     {$IFDEF LICENSE}
641     if (not FIsLicensed) or (not COMHasBeenLicensed) then
642     OleError(CLASS_E_NOTLICENSED);
643     {$ENDIF}
644     Result := StStrW.JustFilenameW(PathName);
645     end;
646    
647     function TStString.JustName(const PathName: WideString): WideString;
648     begin
649     {$IFDEF LICENSE}
650     if (not FIsLicensed) or (not COMHasBeenLicensed) then
651     OleError(CLASS_E_NOTLICENSED);
652     {$ENDIF}
653     Result := StStrW.JustNameW(PathName);
654     end;
655    
656     function TStString.JustPathname(const PathName: WideString): WideString;
657     begin
658     {$IFDEF LICENSE}
659     if (not FIsLicensed) or (not COMHasBeenLicensed) then
660     OleError(CLASS_E_NOTLICENSED);
661     {$ENDIF}
662     Result := StStrW.JustPathnameW(PathName);
663     end;
664    
665     function TStString.KeepChars(const S, Chars: WideString): WideString;
666     begin
667     {$IFDEF LICENSE}
668     if (not FIsLicensed) or (not COMHasBeenLicensed) then
669     OleError(CLASS_E_NOTLICENSED);
670     {$ENDIF}
671     Result := StStrW.KeepCharsW(S, Chars);
672     end;
673    
674     function TStString.LastString(const S, AString: WideString;
675     var Position: Integer): WordBool;
676     begin
677     {$IFDEF LICENSE}
678     if (not FIsLicensed) or (not COMHasBeenLicensed) then
679     OleError(CLASS_E_NOTLICENSED);
680     {$ENDIF}
681     Result := StStrW.LastStringW(S, AString, Cardinal(Position));
682     end;
683    
684     function TStString.LastWord(const S, WordDelims, AWord: WideString;
685     var Position: Integer): WordBool;
686     begin
687     {$IFDEF LICENSE}
688     if (not FIsLicensed) or (not COMHasBeenLicensed) then
689     OleError(CLASS_E_NOTLICENSED);
690     {$ENDIF}
691     Result := StStrW.LastWordW(S, WordDelims, AWord, Cardinal(Position));
692     end;
693    
694     function TStString.LastWordAbs(const S, WordDelims: WideString;
695     var Position: Integer): WordBool;
696     begin
697     {$IFDEF LICENSE}
698     if (not FIsLicensed) or (not COMHasBeenLicensed) then
699     OleError(CLASS_E_NOTLICENSED);
700     {$ENDIF}
701     Result := StStrW.LastWordAbsW(S, WordDelims, Cardinal(Position));
702     end;
703    
704     function TStString.LeftPad(const S: WideString; Len: Integer): WideString;
705     begin
706     {$IFDEF LICENSE}
707     if (not FIsLicensed) or (not COMHasBeenLicensed) then
708     OleError(CLASS_E_NOTLICENSED);
709     {$ENDIF}
710     Result := StStrW.LeftPadW(S, Cardinal(Len));
711     end;
712    
713     function TStString.LeftPadCh(const S, C: WideString;
714     Len: Integer): WideString;
715     begin
716     {$IFDEF LICENSE}
717     if (not FIsLicensed) or (not COMHasBeenLicensed) then
718     OleError(CLASS_E_NOTLICENSED);
719     {$ENDIF}
720     Result := StStrW.LeftPadChW(S, C[1], Cardinal(Len));
721     end;
722    
723     function TStString.LeftTrimChars(const S, Chars: WideString): WideString;
724     begin
725     {$IFDEF LICENSE}
726     if (not FIsLicensed) or (not COMHasBeenLicensed) then
727     OleError(CLASS_E_NOTLICENSED);
728     {$ENDIF}
729     Result := StStrW.LeftTrimCharsW(S, Chars);
730     end;
731    
732     function TStString.Long2Str(L: Integer): WideString;
733     begin
734     {$IFDEF LICENSE}
735     if (not FIsLicensed) or (not COMHasBeenLicensed) then
736     OleError(CLASS_E_NOTLICENSED);
737     {$ENDIF}
738     Result := StStrW.Long2StrW(LongInt(L));
739     end;
740    
741     function TStString.LongIntForm(const Mask: WideString; L: Integer;
742     const LtCurr, RtCurr, Sep: WideString): WideString;
743     begin
744     {$IFDEF LICENSE}
745     if (not FIsLicensed) or (not COMHasBeenLicensed) then
746     OleError(CLASS_E_NOTLICENSED);
747     {$ENDIF}
748     Result := StStrW.LongIntFormW(Mask, LongInt(L), LtCurr, RtCurr, Sep[1]);
749     end;
750    
751     function TStString.OctalB(B: Byte): WideString;
752     begin
753     {$IFDEF LICENSE}
754     if (not FIsLicensed) or (not COMHasBeenLicensed) then
755     OleError(CLASS_E_NOTLICENSED);
756     {$ENDIF}
757     Result := StStrW.OctalBW(B);
758     end;
759    
760     function TStString.OctalW(W: Integer): WideString;
761     begin
762     {$IFDEF LICENSE}
763     if (not FIsLicensed) or (not COMHasBeenLicensed) then
764     OleError(CLASS_E_NOTLICENSED);
765     {$ENDIF}
766     Result := StStrW.OctalWW(W);
767     end;
768    
769     function TStString.OctalL(L: Integer): WideString;
770     begin
771     {$IFDEF LICENSE}
772     if (not FIsLicensed) or (not COMHasBeenLicensed) then
773     OleError(CLASS_E_NOTLICENSED);
774     {$ENDIF}
775     Result := StStrW.OctalLW(LongInt(L));
776     end;
777    
778     function TStString.Pad(const S: WideString; Len: Integer): WideString;
779     begin
780     {$IFDEF LICENSE}
781     if (not FIsLicensed) or (not COMHasBeenLicensed) then
782     OleError(CLASS_E_NOTLICENSED);
783     {$ENDIF}
784     Result := StStrW.PadW(S, Cardinal(Len));
785     end;
786    
787     function TStString.PadCh(const S, C: WideString; Len: Integer): WideString;
788     begin
789     {$IFDEF LICENSE}
790     if (not FIsLicensed) or (not COMHasBeenLicensed) then
791     OleError(CLASS_E_NOTLICENSED);
792     {$ENDIF}
793     Result := StStrW.PadChW(S, C[1], Cardinal(Len));
794     end;
795    
796     function TStString.Real2Str(R: Double; Width, Places: Byte): WideString;
797     begin
798     {$IFDEF LICENSE}
799     if (not FIsLicensed) or (not COMHasBeenLicensed) then
800     OleError(CLASS_E_NOTLICENSED);
801     {$ENDIF}
802     Result := StStrW.Real2StrW(R, Width, ShortInt(Places));
803     end;
804    
805     function TStString.RepeatString(const S: WideString;
806     var Repetitions: Integer; MaxLen: Integer): WideString;
807     begin
808     {$IFDEF LICENSE}
809     if (not FIsLicensed) or (not COMHasBeenLicensed) then
810     OleError(CLASS_E_NOTLICENSED);
811     {$ENDIF}
812     Result := StStrW.RepeatStringW(S, Cardinal(Repetitions), Cardinal(MaxLen));
813     end;
814    
815     function TStString.ReplaceWord(const S, WordDelims, OldWord,
816     NewWord: WideString; N: Integer; var Replacements: Integer): WideString;
817     begin
818     {$IFDEF LICENSE}
819     if (not FIsLicensed) or (not COMHasBeenLicensed) then
820     OleError(CLASS_E_NOTLICENSED);
821     {$ENDIF}
822     Result := StStrW.ReplaceWordW(S, WordDelims, OldWord, NewWord, Cardinal(N), Cardinal(Replacements));
823     end;
824    
825     function TStString.ReplaceWordAll(const S, WordDelims, OldWord,
826     NewWord: WideString; var Replacements: Integer): WideString;
827     begin
828     {$IFDEF LICENSE}
829     if (not FIsLicensed) or (not COMHasBeenLicensed) then
830     OleError(CLASS_E_NOTLICENSED);
831     {$ENDIF}
832     Result := StStrW.ReplaceWordAllW(S, WordDelims, OldWord, NewWord, Cardinal(Replacements));
833     end;
834    
835     function TStString.ReplaceString(const S, OldString, NewString: WideString;
836     N: Integer; var Replacements: Integer): WideString;
837     begin
838     {$IFDEF LICENSE}
839     if (not FIsLicensed) or (not COMHasBeenLicensed) then
840     OleError(CLASS_E_NOTLICENSED);
841     {$ENDIF}
842     Result := StStrW.ReplaceStringW(S, OldString, NewString, Cardinal(N), Cardinal(Replacements));
843     end;
844    
845     function TStString.ReplaceStringAll(const S, OldString,
846     NewString: WideString; var Replacements: Integer): WideString;
847     begin
848     {$IFDEF LICENSE}
849     if (not FIsLicensed) or (not COMHasBeenLicensed) then
850     OleError(CLASS_E_NOTLICENSED);
851     {$ENDIF}
852     Result := StStrW.ReplaceStringAllW(S, OldString, NewString, Cardinal(Replacements));
853     end;
854    
855     function TStString.RightTrimChars(const S, Chars: WideString): WideString;
856     begin
857     {$IFDEF LICENSE}
858     if (not FIsLicensed) or (not COMHasBeenLicensed) then
859     OleError(CLASS_E_NOTLICENSED);
860     {$ENDIF}
861     Result := StStrW.RightTrimCharsW(S, Chars);
862     end;
863    
864     function TStString.Scramble(const S, Key: WideString): WideString;
865     begin
866     {$IFDEF LICENSE}
867     if (not FIsLicensed) or (not COMHasBeenLicensed) then
868     OleError(CLASS_E_NOTLICENSED);
869     {$ENDIF}
870     Result := StStrW.ScrambleW(S, Key);
871     end;
872    
873     function TStString.Str2Ext(const S: WideString;
874     var R: OleVariant): WordBool;
875     var
876     R1 : Extended;
877     begin
878     {$IFDEF LICENSE}
879     if (not FIsLicensed) or (not COMHasBeenLicensed) then
880     OleError(CLASS_E_NOTLICENSED);
881     {$ENDIF}
882     R1 := R;
883     Result := StStrW.Str2ExtW(S, R1);
884     R := R1;
885     end;
886    
887     function TStString.Str2Int16(const S: WideString;
888     var I: Smallint): WordBool;
889     begin
890     {$IFDEF LICENSE}
891     if (not FIsLicensed) or (not COMHasBeenLicensed) then
892     OleError(CLASS_E_NOTLICENSED);
893     {$ENDIF}
894     Result := StStrW.Str2Int16W(S, I);
895     end;
896    
897     function TStString.Str2Long(const S: WideString; var I: Integer): WordBool;
898     begin
899     {$IFDEF LICENSE}
900     if (not FIsLicensed) or (not COMHasBeenLicensed) then
901     OleError(CLASS_E_NOTLICENSED);
902     {$ENDIF}
903     Result := StStrW.Str2LongW(S, LongInt(I));
904     end;
905    
906     function TStString.Str2Real(const S: WideString; var R: Double): WordBool;
907     begin
908     {$IFDEF LICENSE}
909     if (not FIsLicensed) or (not COMHasBeenLicensed) then
910     OleError(CLASS_E_NOTLICENSED);
911     {$ENDIF}
912     Result := StStrW.Str2RealW(S, R);
913     end;
914    
915     function TStString.Str2Word(const S: WideString; var W: Integer): WordBool;
916     var
917     W1 : Word;
918     begin
919     {$IFDEF LICENSE}
920     if (not FIsLicensed) or (not COMHasBeenLicensed) then
921     OleError(CLASS_E_NOTLICENSED);
922     {$ENDIF}
923     Result := StStrW.Str2WordW(S, W1);
924     W := W1;
925     end;
926    
927     function TStString.StrChDelete(const S: WideString;
928     Pos: Integer): WideString;
929     begin
930     {$IFDEF LICENSE}
931     if (not FIsLicensed) or (not COMHasBeenLicensed) then
932     OleError(CLASS_E_NOTLICENSED);
933     {$ENDIF}
934     Result := StStrW.StrChDeleteW(S, Cardinal(Pos));
935     end;
936    
937     function TStString.StrChInsert(const S, C: WideString;
938     Pos: Integer): WideString;
939     begin
940     {$IFDEF LICENSE}
941     if (not FIsLicensed) or (not COMHasBeenLicensed) then
942     OleError(CLASS_E_NOTLICENSED);
943     {$ENDIF}
944     Result := StStrW.StrChInsertW(S, C[1], Cardinal(Pos));
945     end;
946    
947     function TStString.StrChPos(const P, C: WideString;
948     var Pos: Integer): WordBool;
949     begin
950     {$IFDEF LICENSE}
951     if (not FIsLicensed) or (not COMHasBeenLicensed) then
952     OleError(CLASS_E_NOTLICENSED);
953     {$ENDIF}
954     Result := StStrW.StrChPosW(P, C[1], Cardinal(Pos));
955     end;
956    
957     function TStString.StrStCopy(const S: WideString; Pos,
958     Count: Integer): WideString;
959     begin
960     {$IFDEF LICENSE}
961     if (not FIsLicensed) or (not COMHasBeenLicensed) then
962     OleError(CLASS_E_NOTLICENSED);
963     {$ENDIF}
964     Result := StStrW.StrStCopyW(S, Cardinal(Pos), Cardinal(Count));
965     end;
966    
967     function TStString.StrStDelete(const S: WideString; Pos,
968     Count: Integer): WideString;
969     begin
970     {$IFDEF LICENSE}
971     if (not FIsLicensed) or (not COMHasBeenLicensed) then
972     OleError(CLASS_E_NOTLICENSED);
973     {$ENDIF}
974     Result := StStrW.StrStDeleteW(S, Cardinal(Pos), Cardinal(Count));
975     end;
976    
977     function TStString.StrStInsert(const S1, S2: WideString;
978     Pos: Integer): WideString;
979     begin
980     {$IFDEF LICENSE}
981     if (not FIsLicensed) or (not COMHasBeenLicensed) then
982     OleError(CLASS_E_NOTLICENSED);
983     {$ENDIF}
984     Result := StStrW.StrStInsertW(S1, S2, Cardinal(Pos));
985     end;
986    
987     function TStString.StrStPos(const P, S: WideString;
988     var Pos: Integer): WordBool;
989     begin
990     {$IFDEF LICENSE}
991     if (not FIsLicensed) or (not COMHasBeenLicensed) then
992     OleError(CLASS_E_NOTLICENSED);
993     {$ENDIF}
994     Result := StStrW.StrStPosW(P, S, Cardinal(Pos));
995     end;
996    
997     function TStString.StrWithin(const S, SearchStr: WideString;
998     Start: Integer; var Position: Integer): WordBool;
999     begin
1000     {$IFDEF LICENSE}
1001     if (not FIsLicensed) or (not COMHasBeenLicensed) then
1002     OleError(CLASS_E_NOTLICENSED);
1003     {$ENDIF}
1004     Result := StStrW.StrWithinW(S, SearchStr, Cardinal(Start), Cardinal(Position));
1005     end;
1006    
1007     function TStString.Substitute(const S, FromStr,
1008     ToStr: WideString): WideString;
1009     begin
1010     {$IFDEF LICENSE}
1011     if (not FIsLicensed) or (not COMHasBeenLicensed) then
1012     OleError(CLASS_E_NOTLICENSED);
1013     {$ENDIF}
1014     Result := StStrW.SubstituteW(S, FromStr, ToStr);
1015     end;
1016    
1017     function TStString.Trim(const S: WideString): WideString;
1018     begin
1019     {$IFDEF LICENSE}
1020     if (not FIsLicensed) or (not COMHasBeenLicensed) then
1021     OleError(CLASS_E_NOTLICENSED);
1022     {$ENDIF}
1023     Result := StStrW.TrimW(S);
1024     end;
1025    
1026     function TStString.TrimChars(const S, Chars: WideString): WideString;
1027     begin
1028     {$IFDEF LICENSE}
1029     if (not FIsLicensed) or (not COMHasBeenLicensed) then
1030     OleError(CLASS_E_NOTLICENSED);
1031     {$ENDIF}
1032     Result := StStrW.TrimCharsW(S, Chars);
1033     end;
1034    
1035     function TStString.TrimLead(const S: WideString): WideString;
1036     begin
1037     {$IFDEF LICENSE}
1038     if (not FIsLicensed) or (not COMHasBeenLicensed) then
1039     OleError(CLASS_E_NOTLICENSED);
1040     {$ENDIF}
1041     Result := StStrW.TrimLeadW(S);
1042     end;
1043    
1044     function TStString.TrimSpaces(const S: WideString): WideString;
1045     begin
1046     {$IFDEF LICENSE}
1047     if (not FIsLicensed) or (not COMHasBeenLicensed) then
1048     OleError(CLASS_E_NOTLICENSED);
1049     {$ENDIF}
1050     Result := StStrW.TrimSpacesW(S);
1051     end;
1052    
1053     function TStString.TrimTrail(const S: WideString): WideString;
1054     begin
1055     {$IFDEF LICENSE}
1056     if (not FIsLicensed) or (not COMHasBeenLicensed) then
1057     OleError(CLASS_E_NOTLICENSED);
1058     {$ENDIF}
1059     Result := StStrW.TrimTrailW(S);
1060     end;
1061    
1062     function TStString.ValPrep(const S: WideString): WideString;
1063     begin
1064     {$IFDEF LICENSE}
1065     if (not FIsLicensed) or (not COMHasBeenLicensed) then
1066     OleError(CLASS_E_NOTLICENSED);
1067     {$ENDIF}
1068     Result := StStrW.ValPrepW(S);
1069     end;
1070    
1071     function TStString.WordCount(const S, WordDelims: WideString): Integer;
1072     begin
1073     {$IFDEF LICENSE}
1074     if (not FIsLicensed) or (not COMHasBeenLicensed) then
1075     OleError(CLASS_E_NOTLICENSED);
1076     {$ENDIF}
1077     Result := StStrW.WordCountW(S, WordDelims);
1078     end;
1079    
1080     function TStString.WordPos(const S, WordDelims, AWord: WideString;
1081     N: Integer; var Position: Integer): WordBool;
1082     begin
1083     {$IFDEF LICENSE}
1084     if (not FIsLicensed) or (not COMHasBeenLicensed) then
1085     OleError(CLASS_E_NOTLICENSED);
1086     {$ENDIF}
1087     Result := StStrW.WordPosW(S, WordDelims, AWord, Cardinal(N), Cardinal(Position));
1088     end;
1089    
1090     function TStString.WordPosition(N: Integer; const S,
1091     WordDelims: WideString; var Position: Integer): WordBool;
1092     begin
1093     {$IFDEF LICENSE}
1094     if (not FIsLicensed) or (not COMHasBeenLicensed) then
1095     OleError(CLASS_E_NOTLICENSED);
1096     {$ENDIF}
1097     Result := StStrW.WordPositionW(Cardinal(N), S, WordDelims, Cardinal(Position));
1098     end;
1099    
1100     procedure TStString.WordWrap(const InSt: WideString; var OutSt,
1101     Overlap: WideString; Margin: Integer; PadToMArgin: WordBool);
1102     begin
1103     {$IFDEF LICENSE}
1104     if (not FIsLicensed) or (not COMHasBeenLicensed) then
1105     OleError(CLASS_E_NOTLICENSED);
1106     {$ENDIF}
1107     StStrW.WordWrapW(InSt, OutSt, Overlap, Cardinal(Margin), PadToMargin);
1108     end;
1109    
1110     function TStString.License(const Key: WideString): WordBool;
1111     begin
1112     {$IFDEF LICENSE}
1113     Result := COMIsValidKey(Key);
1114    
1115     { License the objects used in this class }
1116     FTokens.License(Key);
1117    
1118     {$ELSE}
1119     Result := True;
1120     {$ENDIF}
1121     FIsLicensed := Result;
1122     end;
1123    
1124     function TStString.Soundex(const S: WideString): WideString;
1125     begin
1126     {$IFDEF LICENSE}
1127     if (not FIsLicensed) or (not COMHasBeenLicensed) then
1128     OleError(CLASS_E_NOTLICENSED);
1129     {$ENDIF}
1130     Result := StStrL.SoundexL(S);
1131     end;
1132    
1133     initialization
1134     TAutoObjectFactory.Create(ComServer, TStString, Class_StString, ciMultiInstance, tmBoth);
1135     end.

  ViewVC Help
Powered by ViewVC 1.1.20