![]() |
Buchstaben als Fehlermeldung in Editfeldern
hallo ich würde gerne wissen wie man eine fehlerabweisung mit einer try-except(?)-schleife schreibt die BUCHSTABEN abweist d.h. wenn man buchstaben in das textfeld eingibt wird eine fehlermeldung gemacht...
und das gleiche mit zahlen im negativen bereich. ich habe das schon mit 0 geschafft komme aber jetzt nicht weiter.
Delphi-Quellcode:
vielen dank im vorraus den oberen teil mit daten und maske einfach ignorieren:)
procedure TForm1.RechenBtnClick(Sender: TObject);
begin DatenAktualisieren; MaskeAktualisieren; if EdGasverbrauch.Text = '0' then begin EdGaspreis.Text:= ' '; ShowMessagePos('Bitte geben sie eine Zahl ein, die im Bereich über 0 liegt!', 300, 300); end; |
AW: Buchstaben als Fehlermeldung in Editfeldern
Guten Abend,
wandele den Text in einen Integer um und prüfe auf >0 Grüße Klaus |
AW: Buchstaben als Fehlermeldung in Editfeldern
|
AW: Buchstaben als Fehlermeldung in Editfeldern
Und wenn es unbedingt ein Standard-Edit sein muss: man kann mit TryStrToInt prüfen, ob es sich um eine Zahl handelt. Oder man erweitert den Style des Edits um ES_NUMBER (Hinweise von
![]()
Delphi-Quellcode:
SetWindowLong(Edit.Handle, GWL_STYLE, GetWindowLong(Edit.Handle, GWL_STYLE) or ES_NUMBER);
|
AW: Buchstaben als Fehlermeldung in Editfeldern
Hallo das geht wesentlich einfacher:
Du öffnest Dir die ONKEYPRESS Methode des Feldes, was Du eingrenzen möchtest und fügst ein:
Delphi-Quellcode:
Alles was in der StrScan Klammer steht, wird zugelassen und ausserdem kannst Du noch mit der Backspace Taste zurückgehen; alles andere wird ignoriert.
// nur Ziffern im Feld erlauben
if not ((StrScan('0123456789', Key) <> nil) or (Key = Char(VK_BACK))) then Key := #0; Gruß Rolf |
AW: Buchstaben als Fehlermeldung in Editfeldern
Über die Zwischenablage bekommt man dann aber trotzdem noch Murks hinein.
|
AW: Buchstaben als Fehlermeldung in Editfeldern
Zitat:
|
AW: Buchstaben als Fehlermeldung in Editfeldern
Für ein Formular hatte ich eine Lösung in der Art (Ereignisse allen Number-Edits zugeordnet):
Delphi-Quellcode:
procedure TestEditValue(AEdit : TEdit; ChangeColor : Boolean);
begin try StrToInt(AEdit.Text); if ChangeColor then AEdit.Color := clWindow except if ChangeColor then AEdit.Color := $B0B0FF else AEdit.Text := '0'; end; end; procedure TForm1.Edit1Change(Sender: TObject); begin if Sender is TEdit then TestEditValue(TEdit(Sender), True); end; procedure TForm1.Edit1Exit(Sender: TObject); begin if Sender is TEdit then TestEditValue(TEdit(Sender), False); end; |
AW: Buchstaben als Fehlermeldung in Editfeldern
@Satty67:
Wie DeddyH schon sagte, ist TryStrToInt für so eine Lösung die bessere Wahl. Warum auch sinnlos eine Exception auslösen, die man eh sofort wieder abfängt? @Satty67 & rokli: Was spricht denn nun gegen den Einsatz von SpinEdit, ggf. MaskEdit oder die von DeddyH genannte Methode? :gruebel: |
AW: Buchstaben als Fehlermeldung in Editfeldern
Zitat:
Nur das Pentagon hat den Bedarf an sauber programmierten Anwendungen :roll: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:22 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz