Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
Delphi 12 Athens
|
AW: Numerische Eingabe in Stinggrid validieren
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
|