Hallo, ich hab folgendes Problem in Delphi:
Ich möchte in einem Edit-Feld nur die Eingabe des Zahlenbereichs von 0,5-1,5 Zulassen. Andernfalls erscheint bei Eingabe eine Showmessage.
Kann mir da geholfen werden?
hier mein Auszug aus dem Quellcode:
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if (Key ‚1,5‘) or not (Key in [‚0‘…‚9‘,’,’,#8]) then
begin
Key := #0;
showmessage(‚Falsche Eingabe!‘);
end;
end;
mfG
Niklas
Hallo,
Die Prüfung bei OnKeyPress ist nicht so geschickt, weil man dann sehr eingeschränkt ist beim Editieren. Es ist besser, erst dann zu prüfen, wenn die Eingabe auf gebraucht wird. Wenn man die Eingabe ändern kann, *während* sie gebraucht wird, kann man OnChange nehmen, und dort würde ich nur prüfen, ob der Text gültig ist und nur falls ja, den neuen Wert dem Programm mitteilen (ansonsten ignorieren oder die Farbe des Textes ändern, damit der User erkennt, dass der Text momentan ungültig ist).
procedure TForm1.Edit1OnChange(Sender: TObject);
var
value: Double;
code: integer
begin
val(Edit1.Text, value, code);
if code = 0 then
begin
// Text ist eine gültige Fließkommazahl
// auch prüfen, ob Bereich stimmt
if (value\>=0.5) and (value 0 then
// ungültige Zahl (code\>0)
// oder Zahl außerhalb des Bereichs (code
LG
Jochen