Hatte oben meinen Text noch etwas editiert, bzw. ausführlicher ergänzt.
Wie gedsagt, ihr müßt eure Abfragen anpassen.
- das 'G'
wurde schon eingegeben und muß demnach
im Edit geprüft werden
- Key und SelStart beziehen sich nur auf die aktuelle Eingabe, also die Zahlen
Delphi-Quellcode:
//if (Length(EditISOCode.Text) => 3) and (EditISOCode.Text[3] = 'G')
// and (EditISOCode.SelStart = 3) then
if (EditISOCode.SelStart = 3) and (EditISOCode.Text[3] = 'G') then
begin
Statusbar.SimpleText := 'Mit G können Sie nur die Zahlen 0,1,2 und 3 kombinieren, sonst ungültige Containerbezeichnung!';
if not (Key in [#8, '0'..'3']) then Key := #0;
end;
[edit]
ahhh, jetzt seh ich grade das END ... bitte achtet mal mehr auf eure Einrückung ... es ah so aus, als wenn das
if not (key in [#8,'0'..'3']) and ...
innerhalb der vorhergehenden Abfrage liegt.
Hmmm, wenn man das nun nochmal anguckt, dann sollte es eigentlich Funktionieren, so wie du es in Post #1 geschrieben hast.
Oder wird die '3' durch eine Andere Abfrage blockiert?
(Du hast ja nur einen Teil hier gepostet.)
Delphi-Quellcode:
if (Key in ['G']) and (EditISOCode.SelStart = 2) then
Statusbar.SimpleText := 'Mit G können Sie nur die Zahlen 0,1,2 und 3 kombinieren, sonst ungültige Containerbezeichnung!';
//if (Length(EditISOCode.Text) => 3) and (EditISOCode.Text[3] = 'G')
// and (EditISOCode.SelStart = 3) and not (Key in [#8, '0'..'3']) then
if (EditISOCode.SelStart = 3) and (EditISOCode.Text[3] = 'G')
and not (Key in [#8, '0'..'3']) then
Key := #0;
Delphi-Quellcode:
if (Key in ['G']) and (EditISOCode.SelStart = 2) then
Statusbar.SimpleText := 'Mit G können Sie nur die Zahlen 0,1,2 und 3 kombinieren, sonst ungültige Containerbezeichnung!';
//if (Length(EditISOCode.Text) => 3) and (EditISOCode.Text[3] = 'G')
// and (EditISOCode.SelStart = 3) then
if (EditISOCode.SelStart = 3) and (EditISOCode.Text[3] = 'G') then
begin
if Key in [#8, '0'..'3'] then
begin
Statusbar.SimpleText := '';
end
else
begin
Statusbar.SimpleText := 'ungültiges Zeichen';
Key := #0;
end;
end;