Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.062 Beiträge
 
Delphi 12 Athens
 
#4

AW: Eingabebedingungen

  Alt 26. Aug 2010, 11:46
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;
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu (26. Aug 2010 um 11:52 Uhr)
  Mit Zitat antworten Zitat