Zitat von
DeddyH:
So wie ich das sehe ist die einzig halbwegs sichere Möglichkeit, im OnChange zu versuchen, den Text in eine Zahl zu wandeln.
Dann aber bittte nur mit "Hintergrund wird hellrot, wenns nicht geht"
Einfach sowas wie Edit1.Text := inttostr(strtointdef(edit.text, 0)); ist dermaßen nervig, wenn man mal was falsches eingibt und plötzlich isses wieder null
Oder stell dir vor, du hast in der zwischenablage zufälligerweise noch nen Buchstaben vor der Zahl ==> Man kanns nicht einfügen
Mein Vorschlag daher: einfärben, wenn der Inhalt falsch ist, und beim bestätigen des Dialogs dann auf den Fehler hinweisen (und Cursor reinsetzen)
Es nervt auch wenn das bereits im OnExit geschieht, sodass man sklavisch gezwungen wird, gefälligst sofort nen Wert einzutragen da man sonst nicht rauskommt.
Alles schon erlebt
Die beste Lösung ist eine, die den User nicht gängelt, und so möglichst wenig auffällt.