![]() |
Re: Edit-Feld auf Inhalt überprüfen
Lucki, die übliche fehlermeldung war diese hier:
'' ist kein gültiger Gleitkommawert Ich habe mal die Lösung von Darty versucht und das hat einwandfrei funktioniert! :) Da hab ich auch direkt verstanden wie das angeordnet werden muss, aber trotzdem danke an alle anderen! ;) Wenn ich jetzt keine Zahl eingeb, dann kommt eine Meldung sprich showMessage mit: " Du hast keinen Betrag eingegeben! " Wenn ich jetzt aber Buchstaben reinschreibe, dann kommt die Meldung: " '' ist kein gültiger Gleitkommawert" Kann man das auch noch ändern? |
Re: Edit-Feld auf Inhalt überprüfen
hallo chaozu!
Zitat:
irgenwie scheint mir in deiner überprüfung auf zahleneingaben der wurm drin zu sein ;) versuchs mal so
Delphi-Quellcode:
ACHTUNG: StrToFloat verweigert den tausenderpunkt. aber F1-benutzer wissen das ohnehin :wink:
{$UNTESTED}
tmpvalue: double; begin try tmpvalue:= StrToFloat(EditFeldName.text) except on E: EConvertError do ShowMessage('keine zahl eingegeben'); end; mfg, stefan |
Re: Edit-Feld auf Inhalt überprüfen
Delphi-Quellcode:
Das Komma [,] darf in einem Edit kein Punkt [.] sein.
procedure TForm1.Button1Click(Sender: TObject);
var Zahl: real; begin try Zahl:=StrToFloat(Edit1.Text); //Hier kommt der Code rein, //wenn's eine Gleitkommazahl ist except ShowMessage('keine Zahl eingegeben'); end; end; |
Re: Edit-Feld auf Inhalt überprüfen
Mit val kann man das sehr schön ohne try-except lösen, einfach den Fehlercode abfragen.
|
Re: Edit-Feld auf Inhalt überprüfen
Irgendwie versteh ich die letzten 3 Antworten net :|
Vielleicht hilfts ja, wenn ich mal die Unit1 poste. Also hier is nur ein Teil von 2...ich hab nämlich 2 Buttons und 2 edit.text! Einen für Euro -> DM und einen für DM -> Euro
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
// Umrechnung Mark in Euro // Variablendefinition var Mark, Euro : double; begin if edit1.text <> '' then begin // Code, wenn etwas hinein geschrieben wurde // Eingabe in das Eingabefeld wird in der Variablen Mark abgespeichert Mark := StrToFloat(edit1.text); // Umrechnung in Euro Euro:=0.51129*Mark; // Ausgabe des Ergebnisses showMessage('Betrag in Euro: '+FloatToStrF(Euro,ffNumber,10,2)); end else begin // Code, wenn nichts hinein geschrieben wurde showMessage ('Du hast keinen Betrag eingegeben!'); end end; |
Re: Edit-Feld auf Inhalt überprüfen
Hai Chouzu,
Zitat:
Zitat:
Also... mal überlegen... Im Edit steht ein Buchstabe und Du möchtest daraus eine Zahl machen. Das kann nicht gehen. In den obigen Antworten wird einfach eine "Fehlerbehandlung" eingebaut die den Laufzeitfehler "unterdrückt". Besser wäre es aber die Eingabe von Buchstaben gleich zu unterbinden. |
Re: Edit-Feld auf Inhalt überprüfen
Du willst woh ein Eurorechner machen??
Probiers doch so:
Delphi-Quellcode:
Spider
unit Unit1;
interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Edit1: TEdit; Edit2: TEdit; Button1: TButton; Button2: TButton; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.DFM} procedure TForm1.Button1Click(Sender: TObject); var DM, ER: Extended; begin DM := strtofloat (Edit1.text); ER := DM * 1.95583; //Der Punkt ist sehr wichtig keine Komma!!! ER:=round(ER*100)/100; //Diese Round funktion iist nicht besoners gut //Denn da ist auch 1DM 0€! Edit1.text := floattostr(ER); end; procedure TForm1.Button2Click(Sender: TObject); var EUR, ER: Extended; begin EUR := strtofloat (Edit2.text); ER := EUR / 1.95583; //Hier auch kein Komma! ER:=round(ER*100)/100; //Hier wird gerundet! Edit2.text := Floattostr (ER); end; end. |
Re: Edit-Feld auf Inhalt überprüfen
Zitat:
Code:
Die Berechnung mit dem inversen Multiplizieren ist ausdrücklich unzulässig. Wobei Du noch nicht einmal korrekt invertierst.
Euro = Mark / 1,95583
|
Re: Edit-Feld auf Inhalt überprüfen
Sharky, wenn ich das StrToFloat weglasse, dann gehts gar nicht mehr und ich kanns nicht complimieren.
Oder meintest du was anderes Spider, warum sollte ich denn ein neues Code verwenden, wenn meins doch schon ganz gut klappt? Mal davon abgesehn, geht deins gar nicht. ;) Hast bestimmt 2 showmessage Befehle vergessen! Tom, is das nich im Prinzip das gleiche wie bei mir? |
Re: Edit-Feld auf Inhalt überprüfen
Zitat:
Zitat:
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:36 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