Entwickler-Ecke
Sonstiges (Delphi) - if a=ZAHL
Killuminati91 - So 08.02.09 23:05
Titel: if a=ZAHL
Moin, hab grad mit Delphi angefangen und will nen kleinen Taschenrechner machen.
Wenn man ins Edit-Feld etwas anderes als eine Zahl eingibt soll beim drücken des Knopfes eine Meldung kommen, aber wie genau stelle ich das an? Hier mein Quelltext:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26:
| procedure TForm1.BtnPlusClick(Sender: TObject); var a, b, c : Integer; begin if a=Zahl then begin a:=StrToInt(EdPlus1.Text); end else begin ShowMessage('Bitte nur Zahlen eingeben!'); end
if b=Zahl then begin b:=StrToInt(EdPlus2.Text); end else begin ShowMessage('Bitte nur Zahlen eingeben!'); end
c:=a+b; EdPlus3.Text:=IntToStr(c);
end; |
jaenicke - So 08.02.09 23:12
Hallo und :welcome: im Forum!
Wie wäre es so: ;-)
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| procedure TForm1.BtnPlusClick(Sender: TObject); var a, b: Integer; begin if not TryStrToInt(EdPlus1.Text, a) or not TryStrToInt(EdPlus2.Text, b) then begin ShowMessage('Bitte nur Zahlen eingeben!'); Exit; end;
EdPlus3.Text := IntToStr(a + b); end; |
TryStrToInt gibt dir zurück ob die Umwandlung erfolgreich war und legt das Ergebnis in den zweiten Parameter.
Exit verlässt die aktuelle Schleife oder Prozedur, der Quelltext danach wird also nicht mehr ausgeführt (hier die Ergebnisanzeige).
Oder:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| procedure TForm1.BtnPlusClick(Sender: TObject); var a, b: Integer; begin if TryStrToInt(EdPlus1.Text, a) and TryStrToInt(EdPlus2.Text, b) then EdPlus3.Text := IntToStr(a + b) else ShowMessage('Bitte nur Zahlen eingeben!'); end; |
// EDIT:
Vielleicht noch was zu deinem Code:
Killuminati91 hat folgendes geschrieben : |
Delphi-Quelltext 1: 2: 3:
| if a=Zahl then begin a:=StrToInt(EdPlus1.Text); | |
Du willst ja nicht schauen ob a eine Zahl ist, sondern ob in EdPlus1.Text eine Zahl drin steht. ;-)
In a ist bis dahin ja noch nichts drin.
Blackheart666 - So 08.02.09 23:41
Lässt nur Zahlen und
. zu.
Delphi-Quelltext
1: 2: 3: 4: 5:
| procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char); begin if not( Key in ['0'..'9', #8] ) then Key := #0; end; |
jaenicke - So 08.02.09 23:50
Ich glaube dazu wäre eine kleine Erklärung sinnvoll:
Mit dem Code kannst man gleich verhindern, dass in die Editfelder etwas anderes als Zahlen eingegeben werden.
Um den Code zu nutzen müssen beide Editfelder markiert werden und dann im Objektinspektor (links unten normalerweise) unter Ereignisse in das Eingabefeld neben OnKeyPress doppelt geklickt werden. In die dann erstellte Methode gehört dann der Code.
Dieser sorgt bei einem Tastendruck dafür, dass alles außer Zahlen und Backspace verworfen wird.
ololo - Do 22.10.09 13:53
ohne dieses alte thema unnütz pushen zu wollen^^:
man sollte meinermeinung nach den code so machen:
Delphi-Quelltext
1: 2:
| if not (key in ['0'..'9', #8, #46] ) then key := #0; |
dann hat man die entfernen taste auch noch dabei, die benutz ich da auch des öfteren...;)
greetz
ThunderDragon - Di 08.06.10 09:00
oder
Delphi-Quelltext
1: 2:
| if not TryStrToInt(Edit1.Text,lIntVar) then Key := #0; |
Edit: Sorry, dass sollte eigentlich in einen anderen Thread ...
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!