vom Aufbau sieht es so aus, dass ich mehrere Textfelder habe und möchte den Eintrag ('0'..'9';' ,' ;' .') in einer Funktion prüfen um Code zu sparen.
In der Funktion kommt "TTranslateString" statt "PWideChar" an.
1. Wie wandel ich den String wieder um?
2. Kann ich den Code in Edit1 noch kürzen oder so schreiben, das damit mehrere Textfelder geprüft werden?
Die Variablen im interface:
Code: Alles auswählen
Eingabe: array[0..99] of char;
CharStr: string;
Meine Funktion:
Code: Alles auswählen
// Prüfen ist Zahl?
function TForm1.IstNum(Eingabe: array of char; Antwort: boolean): boolean;
begin
//Key := Eingabe[High(Eingabe)];
if not (Eingabe in ['0'..'9', ',']) then
begin
ShowMessage('Nur Zahlen sind zulässig');
Antwort:= false;
end
else
begin
Antwort:= true;
end;
end;
Im Exitereigniss eines Textfeldes (wobei mir der Code noch zu lang ist und ich überlege den Code einzusparen.
Code: Alles auswählen
procedure TForm1.Edit1Exit(Sender: TObject);
var
Antwort: boolean;
begin
strpcopy(Edit1.Caption, CharStr);
Eingabe:= CharStr;
IstNum(Eingabe, Antwort);
if Antwort = false then
begin
Edit1.SetFocus;
Edit1.SelectAll;
end;
end;
Freue mich über jeden Tipp und Hilfe zur Selbsthilfe.
Viele Grüsse
Marco