@marabu: willst du etwa jeden buchstaben erst auf den canvas malen, um ihn dann zu prüfen ?
@ichbins:
dein code wird zwar funktionieren, ist aber ungeschickt implementiert, da das pos jedesmal den gesamten (oder einen teil) des strings durchscannen muss, was sehr lange dauern kann, da du ja jedes zeichen eines strings prüfen musst.
am einfachsten prüfst du einfach auf den ordinalwert, oder guckst ob das Zeichen in einer menge enthalten ist
Delphi-Quellcode:
function isAscii(c:char):boolean;
begin
// mengenprüfung
//result := (c in 'A'..'Z','a'..'z','ä','ö','ü');
// oder per ordinalwert
case byte(c) of 32..126, 128..165: result := true;
else result := false;
end;
end;