Einzelnen Beitrag anzeigen

Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#6

AW: Numerische Eingabe in Stinggrid validieren

  Alt 17. Okt 2014, 14:16
Ich denke aber fast, zum Verständniss ist der ASCII-code einfacher...
Wieso sollte der einfacher sein? Bei entsprechend deklarierten Konstanten schlägt man 2 Fliegen mit einer Klappe: der Code wird besser lesbar und man hat bei evtl. Änderungen nur eine einzige zu ändernde Stelle, nämlich die Konstantendeklaration.
Delphi-Quellcode:
procedure TMyForm.MyEditKeyPress(Sender : TObject; var Key : char);
const
  KEY_NONE = #0;
  KEY_BACKSPACE = #8;
begin
  if not (Key in [KEY_BACKSPACE, '0'..'9', '-', DecimalSeparator]) then Key := KEY_NONE
  else if ((Key = DecimalSeparator) or (Key = '-')) and
          (Pos(Key, (Sender as TEdit).Text) > 0) then Key := KEY_NONE
  else if (Key = '-') and
          ((Sender as TEdit).SelStart <> 0) then Key := KEY_NONE;
  // '-' is only allowed as first Character
  // SelStart is the Caret(Text-Curser) Position
end;
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat