![]() |
Hilfe mit value Befehl
Hallo zusammen!
letztens hat uns unser Lehrer gezeigt, wie man ein Programm absturzsicher machen kann. Verstanden hat es leider keiner und den Quelltext hat er auch nicht rausgegeben "Probiert das mal alleine". Prima, wie soll ich denn etwas programmieren, wenn ich nichteinmal den Ansatz kenne? Das einzige, was ich mitbekam war, dass er irgendetwas mit Value schwafelte, mehr nicht. Mein konkretes Problem ist jetzt: Was muss ich in den Quelltext eingeben, dass mit mein Programm nicht abstürzt, wenn ich ins Edit1-Feld nicht "4", sondern "vier" eingebe? Danke an alle, die bis hier hergelesen haben und mir versuchen zu helfen :) |
Re: Hilfe mit value Befehl
In eine Edit-Feld kannst du problemlos "vier" eingeben, da es ja einen String aufnimmt.
Ich weiß nicht, von was dein Lehrer geredet hat, ich könnte mir vorstellen, das er die .value Eigenschaft von Datenbankzugriffsobjekten gemeint hat welche Varianten sind. [Edit: oder er hat den val()-Befeh gemeint] |
Re: Hilfe mit value Befehl
Achso, sorry, das hätte ich erwähnen sollen :oops:
Die zahlen der beiden Editfelder muss man Multiplizieren, d.h ich habe ja schon stehen: Edit1.text:=strtofloat(z1); Edit2.text:=strtofloat(z2); Ergebnis:=(z1*z2); |
Re: Hilfe mit value Befehl
Aber wenn du die Zahlen multiplizieren willst muss das dann nich heißen:
Delphi-Quellcode:
Wenn du abfragen willst ob ein eingegebener Wert keine Zahl ist würd ich dir if...then... Empfehlen.
z1:=strtofloat(Edit1.text);
z2:=strtofloat(Edit2.text); Ergebnis:=(z1*z2); |
Re: Hilfe mit value Befehl
Zitat:
Delphi-Quellcode:
müßte es heißen oder besser
z1 := strtofloat(Edit1.text);
z2 := strtofloat(Edit1.text); Ergebnis := (z1*z2);
Delphi-Quellcode:
if (TryStrToFloat( Edit1.Text, z1)) and (TryStrToFloat( Edit2.Text, z2)) then
Ergebnis:=(z1*z2) else //Fehler; |
Re: Hilfe mit value Befehl
Ach genau :wall: . Naj wird Zeit dass es wieder Wochenende wird.
Jetzt hab ich doch gedacht du willst mich verbessrn naja. |
Re: Hilfe mit value Befehl
Delphi-Quellcode:
Genau das steht jetzt bei mir ^^"
z1:=strtofloat(Edit1.text);
z2:=strtofloat(Edit2.text); summe:=z1*z2; @mkinzler Ist dein letzter Code jetzt der Code, der zum absturzsicheren Programm führt? |
Re: Hilfe mit value Befehl
Ja. Zumindest bezüglich dieser Typumwandlungen
|
Re: Hilfe mit value Befehl
also ich würde dir die verwendung eines try/except-Blockes empfehlen (falls ich dein Problem richtig verstanden habe, du wirst nicht gerade mit Informationen um dich)
|
Re: Hilfe mit value Befehl
Man kann auch das OnKeyPress Event abfangen den Key Code (Wert der gedrückten Taste) analysieren:
Delphi-Quellcode:
Gruß
procedure TfrmMain.Edit1KeyPress(Sender: TObject; var Key: Char);
begin if not (Key in [#46, #48..#57, #8]) then Key := #0; end; Andi |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:02 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 by Thomas Breitkreuz