Hallo,
ich hab grad ein Problem an dem ich (fast) verzweifle (etwas dramatisch aber das steigert die Erwartungen
)
Ich möchte die Eingabe in einer Zelle prüfen und zwar nach folgenden Kriterien:
- maximal 3 Zeichen
- an erster Stelle darf nur ein "S" oder eine "0" stehen
- wenn an erster Stelle eine "0" steht, darf keine weitere Eingabe möglich sein
- wenn an erster Stelle ein "S" steht, dann dürfen danach nur noch Ziffern kommen
Die maximale Eingabe von 3 Zeichen hab ich schon gelöst:
Delphi-Quellcode:
procedure TEinstellungenForm.StringGrid_ZugzieleKeyPress(Sender: TObject;
var Key: Char);
var
Zeile: Integer;
Spalte: Integer;
Text: String;
begin
//Zeile und Spalte auslesen
Zeile := StringGrid_Zugziele.Row;
Spalte := StringGrid_Zugziele.Col;
Text := StringGrid_Zugziele.Cells[Spalte, Zeile];
//Tastenprüfung abhängig der ausgewählten Spalte
If Spalte = 0 then
begin
//prüfen ob die gedrückte Taste in der Liste der erlaubten Taste ist
If not (Key in ['S', '0'..'9', #8]) then
Key := #0;
//Die Länge der Eingabe begrenzen (Rücktaste aber zulassen)
If not (Key = #8) then
If length(Text) >= 3 then
Key := #0;
end;
end;
Aber wie kann ich den Rest bewerkstelligen?
mfg
Helmi
>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<