Weil besch****eise IFOPT nur für Einbuchstabige Optionen funktioniert?
Und jupp {$IF Low(string) = 0}
. (es sollte so gehn, aber falls nicht, dann halt ein normales IF)
Notfalls einfach den String-Helper nehmen ... der arbeitet immer ab 0.
Es mag zwar sein, dass Uwe das nicht so gemeint hatte, aber ich hab' genau sowas gesucht und es jetzt so umgesetzt:
Delphi-Quellcode:
{$IF Low(string) = 0}
{$DEFINE ZBS_IS_ON}
{$ZEROBASEDSTRINGS OFF}
{$IFEND}
{$IFDEF ZBS_IS_ON}
// mein abhängiger Code
{$ENDIF}
// Am Ende:
{$IFDEF ZBS_IS_ON}
{$UNDEFINE ZBS_IS_ON}
{$ZEROBASEDSTRINGS ON}
{$ENDIF}
Die Daten wegen denen das gemacht wird sind ja in einem RawByteString,
weil man das "Alphabet" damit einfach komfortabler als mit einem Byte-Array
definieren kann und dadurch hängt die Basis des Index einfach am ZBS an oder aus.
Und nein: ich will nicht zur Laufzeit jedesmal die Basis für den Index Berechnen
lassen, wenn es nicht sein muss.
=> Danke für alle Beiträge, war ja auch was für mich funktionierendes dabei.