OK, totally off-topic, but this really hurts my eyes.
Function BaseXTable(xNum: Variant; nBase: Extended; lSwStr: Boolean): Variant;
...
Begin
...
If (IsRange(nBase, 2, 252) <> False) Then Begin
If (lSwStr <> True) Then Begin
...
End;
OMG!
I don't even know where to begin here.
IsRange() returns a boolean, why compare it to another boolean, and why "<>False"?
The "<>False" suggests that there are more options than True/False.
Essentially "<>False" is "not False", which of course is "True".
So you want to know if IsRange() returns True.
The proper way to do so is simply:
If IsRange(nBase, 2, 252) Then Begin
And mutatis mutandis (google that):
[rant]
And no, comparing a Boolean to True or False does NOT make your code better readable.
Also if you do that, you are rather inconsistent, since the expression (ABoolean = False) results in yet another boolean expression, and you seem to have decided that you need to compare a Boolean expression agains either True of False, so to be consistent you should do if ((ABoolean=False)=True), but even this then is a Boolean expression, which, by your standards has to be compared against True or False, so it needs to be extended to (((ABoolean=False)=True)=True), which unfortunately in itself is a Boolean expression, which in all fairness needs to be compared against True or False, so we get ((((ABoolean=False)=True)=True)=True), which of course still is not enough, so
(((((ABoolean=False)=True)=True)=True)=True)
etc. etc.
And to be absolutely sure that the compiler knows about True and False, you need to start each Boolean expression by
if not (True xor False) then FatalError;
Just because, you know, the compiler may be off a bit, or you run fpc on a quantum computer, where a Boolean can be True and False at the same time, or even not True and not False (google Schrödingers cat), and this will screw up the logic of your program, so if you run the program on such a system you must abort it (and preferrably display a message stating that programs compiled with freepascal cannot run on quantum computers, and that the compiler sucks and that this has nothing to do with possible bugs in your code, because, you know, you have decades of experience in designing compilers that run flawlessly, because you are a genius, and you really know the meaning of Boolean expressions and why you always must compare them against absolute True and/or False and ....
[/rant]
Sorry, I got a little bit carried away.
The main point of course is that I sincerely wish you have fun programming, wether this is in Pascal or some other language.
And that you don't mind that some grumpy old man, that sometimes wishes programming was as simple as in the days of Turbo Pascal 3.0, writes grumpy comments in threads you started.
If you feel up to it, please rewrite your Boolean expressions to be a litle more in line with the language you write them in.
Bart