AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Buchstaben als Fehlermeldung in Editfeldern

Ein Thema von wolfaa · begonnen am 26. Jan 2011 · letzter Beitrag vom 27. Jan 2011
Antwort Antwort
Seite 1 von 2  1 2      
wolfaa

Registriert seit: 14. Jan 2011
11 Beiträge
 
Delphi 7 Personal
 
#1

Buchstaben als Fehlermeldung in Editfeldern

  Alt 26. Jan 2011, 21:52
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:
procedure TForm1.RechenBtnClick(Sender: TObject);
begin
DatenAktualisieren;
MaskeAktualisieren;


if EdGasverbrauch.Text = '0then
begin
   EdGaspreis.Text:= ' ';
   ShowMessagePos('Bitte geben sie eine Zahl ein, die im Bereich über 0 liegt!', 300, 300);
end;
vielen dank im vorraus den oberen teil mit daten und maske einfach ignorieren
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.768 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Buchstaben als Fehlermeldung in Editfeldern

  Alt 26. Jan 2011, 21:55
Guten Abend,

wandele den Text in einen Integer um und prüfe auf >0

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Benutzerbild von Deep-Sea
Deep-Sea

Registriert seit: 17. Jan 2007
907 Beiträge
 
Delphi XE2 Professional
 
#3

AW: Buchstaben als Fehlermeldung in Editfeldern

  Alt 26. Jan 2011, 23:20
  1. Ein try-except-Block ist keine Schleife und wird für dein Vorhaben wohl auch nicht benötigt.
  2. Ein TSpinEdit (oder das TJvSpinEdit von den JEDIs) ist für reine Zahleingaben wohl die bessere Wahl
Chris
Die Erfahrung ist ein strenger Schulmeister: Sie prüft uns, bevor sie uns lehrt.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

AW: Buchstaben als Fehlermeldung in Editfeldern

  Alt 27. Jan 2011, 08:15
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 Microsoft beachten):
SetWindowLong(Edit.Handle, GWL_STYLE, GetWindowLong(Edit.Handle, GWL_STYLE) or ES_NUMBER);
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
rokli

Registriert seit: 21. Mär 2009
Ort: Rödinghausen
301 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: Buchstaben als Fehlermeldung in Editfeldern

  Alt 27. Jan 2011, 10:18
Hallo das geht wesentlich einfacher:

Du öffnest Dir die ONKEYPRESS Methode des Feldes, was Du eingrenzen möchtest und fügst ein:

Delphi-Quellcode:
// nur Ziffern im Feld erlauben
if not ((StrScan('0123456789', Key) <> nil) or (Key = Char(VK_BACK))) then
       Key := #0;
Alles was in der StrScan Klammer steht, wird zugelassen und ausserdem kannst Du noch mit der Backspace Taste zurückgehen; alles andere wird ignoriert.

Gruß
Rolf
Rolf
wenn nicht anders angegeben, schreibe ich zu D7, XE2 und MS SQL - ansonsten fragen Sie ihren Administrator oder einen Operator. Update 06/2020: Delphi 10.4 Sydney
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

AW: Buchstaben als Fehlermeldung in Editfeldern

  Alt 27. Jan 2011, 10:25
Über die Zwischenablage bekommt man dann aber trotzdem noch Murks hinein.
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
rokli

Registriert seit: 21. Mär 2009
Ort: Rödinghausen
301 Beiträge
 
Delphi 10.4 Sydney
 
#7

AW: Buchstaben als Fehlermeldung in Editfeldern

  Alt 27. Jan 2011, 10:32
Über die Zwischenablage bekommt man dann aber trotzdem noch Murks hinein.
... wenn ich mal für das Pentagon programmiere, überleg ich mir was anderes ...
Rolf
wenn nicht anders angegeben, schreibe ich zu D7, XE2 und MS SQL - ansonsten fragen Sie ihren Administrator oder einen Operator. Update 06/2020: Delphi 10.4 Sydney

Geändert von rokli (27. Jan 2011 um 10:34 Uhr)
  Mit Zitat antworten Zitat
Satty67

Registriert seit: 24. Feb 2007
Ort: Baden
1.566 Beiträge
 
Delphi 2007 Professional
 
#8

AW: Buchstaben als Fehlermeldung in Editfeldern

  Alt 27. Jan 2011, 11:00
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;
  Mit Zitat antworten Zitat
Benutzerbild von Deep-Sea
Deep-Sea

Registriert seit: 17. Jan 2007
907 Beiträge
 
Delphi XE2 Professional
 
#9

AW: Buchstaben als Fehlermeldung in Editfeldern

  Alt 27. Jan 2011, 11:19
@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?
Chris
Die Erfahrung ist ein strenger Schulmeister: Sie prüft uns, bevor sie uns lehrt.
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#10

AW: Buchstaben als Fehlermeldung in Editfeldern

  Alt 27. Jan 2011, 11:46
Über die Zwischenablage bekommt man dann aber trotzdem noch Murks hinein.
... wenn ich mal für das Pentagon programmiere, überleg ich mir was anderes ...
Jo, denn ein normalo Anwender kann mit Murks und dadurch bedingte Exceptions super umgehen.
Nur das Pentagon hat den Bedarf an sauber programmierten Anwendungen
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:18 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz