AGB  ·  Datenschutz  ·  Impressum  







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

Edit-Feld auf Inhalt überprüfen

Ein Thema von Chaozu · begonnen am 6. Sep 2003 · letzter Beitrag vom 8. Sep 2003
Antwort Antwort
Seite 2 von 3     12 3      
Benutzerbild von Chaozu
Chaozu

Registriert seit: 23. Mär 2003
Ort: / Û Û \
14 Beiträge
 
#11

Re: Edit-Feld auf Inhalt überprüfen

  Alt 6. Sep 2003, 12:43
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?
  Mit Zitat antworten Zitat
grayfox

Registriert seit: 22. Jan 2003
Ort: Litschau
173 Beiträge
 
Delphi 4 Standard
 
#12

Re: Edit-Feld auf Inhalt überprüfen

  Alt 6. Sep 2003, 13:05
hallo chaozu!

Zitat:
dass meine edit.text überprüft wird, ob was geschrieben wurde, bevor ich auf OK klicke
dann schreib die prüfroutine in den OnExitEvent ed TEdit-feldes. dieser wird nach einem foukus-wechsel aufgerufen.

irgenwie scheint mir in deiner überprüfung auf zahleneingaben der wurm drin zu sein
versuchs mal so

Delphi-Quellcode:
{$UNTESTED}
  tmpvalue: double;
begin
  try
    tmpvalue:= StrToFloat(EditFeldName.text)
  except
    on E: EConvertError do
      ShowMessage('keine zahl eingegeben');
end;
ACHTUNG: StrToFloat verweigert den tausenderpunkt. aber F1-benutzer wissen das ohnehin

mfg, stefan
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#13

Re: Edit-Feld auf Inhalt überprüfen

  Alt 6. Sep 2003, 14:39
Delphi-Quellcode:
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;
Das Komma [,] darf in einem Edit kein Punkt [.] sein.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#14

Re: Edit-Feld auf Inhalt überprüfen

  Alt 6. Sep 2003, 15:32
Mit val kann man das sehr schön ohne try-except lösen, einfach den Fehlercode abfragen.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Chaozu
Chaozu

Registriert seit: 23. Mär 2003
Ort: / Û Û \
14 Beiträge
 
#15

Re: Edit-Feld auf Inhalt überprüfen

  Alt 6. Sep 2003, 22:56
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;
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#16

Re: Edit-Feld auf Inhalt überprüfen

  Alt 7. Sep 2003, 08:02
Hai Chouzu,

Zitat von Chaozu:
Wenn ich jetzt aber Buchstaben reinschreibe, dann kommt die Meldung: " '' ist kein gültiger Gleitkommawert"
und dann versuchst Du mit diesem Code:

Zitat von Chaozu:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
.
.

  if edit1.text <> 'then
    begin // Code, wenn etwas hinein geschrieben wurde
    Mark := StrToFloat(edit1.text);
.
.
.
den Inhalt des Editfeldes in eine (Float)Zahl zu wandeln.

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.
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#17

Re: Edit-Feld auf Inhalt überprüfen

  Alt 7. Sep 2003, 08:10
Du willst woh ein Eurorechner machen??
Probiers doch so:
Delphi-Quellcode:
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.
Spider
  Mit Zitat antworten Zitat
Tom

Registriert seit: 7. Jan 2003
318 Beiträge
 
RAD-Studio 2009 Pro
 
#18

Re: Edit-Feld auf Inhalt überprüfen

  Alt 7. Sep 2003, 08:19
Zitat von Chaozu:
Delphi-Quellcode:
    // Umrechnung in Euro
    Euro:=0.51129*Mark;
Gemäß EZB und den entsprechenden Gesetzen in Europa und des Bundes gibt es nur eine Möglichkeit der Umrechnung:
Code:
Euro = Mark / 1,95583
Die Berechnung mit dem inversen Multiplizieren ist ausdrücklich unzulässig. Wobei Du noch nicht einmal korrekt invertierst.
  Mit Zitat antworten Zitat
Benutzerbild von Chaozu
Chaozu

Registriert seit: 23. Mär 2003
Ort: / Û Û \
14 Beiträge
 
#19

Re: Edit-Feld auf Inhalt überprüfen

  Alt 8. Sep 2003, 01:21
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?
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#20

Re: Edit-Feld auf Inhalt überprüfen

  Alt 8. Sep 2003, 01:42
Zitat von Chaozu:
Sharky, wenn ich das StrToFloat weglasse, dann gehts gar nicht mehr und ich kanns nicht complimieren.
Oder meintest du was anderes
Wo hat Sharky gesagt, dass du das StrToFloat weglassen sollst?
Zitat:
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!
Hättest du seien Code mal etwas genauer angekuckt, hättest du gesehen, dass er das Ergebnis wieder in einem Edit ausgibt.
Zitat:
Tom, is das nich im Prinzip das gleiche wie bei mir?
Das Prinzip schon, nur zulässig ist nur Tom's Version.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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 15:10 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