Delphi-PRAXiS
Seite 4 von 6   « Erste     234 56      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Fehler bei Dateneingabe (https://www.delphipraxis.net/157613-fehler-bei-dateneingabe.html)

mkinzler 19. Jan 2011 20:28

AW: Fehler bei Dateneingabe
 
Ja genau das stllt diese Vorgehensweise doch sicher!

snboy2010 19. Jan 2011 20:32

AW: Fehler bei Dateneingabe
 
Welche Vorgehenweise denn?

Egal, ich lass es sein. Gebe die Aufgabe so ab. Dann werden mir hoffentlich nur Punkte für Unvollständigkeit abgezogen.

mkinzler 19. Jan 2011 20:34

AW: Fehler bei Dateneingabe
 
Lies dir nocheinmal #24 und #29 durch

snboy2010 19. Jan 2011 20:46

AW: Fehler bei Dateneingabe
 
Wie soll ich es machen? Wie lautet jetzt die Syntax?

mkinzler 19. Jan 2011 20:49

AW: Fehler bei Dateneingabe
 
Du hast doch schon den ersten Teil. Mach einfach nocheinmal das selbe mitr dem anderen Trenner im else Zweig

snboy2010 19. Jan 2011 21:04

AW: Fehler bei Dateneingabe
 
Wenn Sie es so meinen:
Code:
procedure TForm1.Button1Click(Sender: TObject);
var aktpreis, ver100ben, jahrkm, ausgabevbj, ausgabebkj : double;
begin
  if TryStrToFloat(Edit6.Text,aktpreis) and TryStrToFloat(Edit3.Text,ver100ben)
      and TryStrToFloat(Edit4.Text,jahrkm) then
    begin
      aktpreis := StrToFloat(Edit6.Text);
      ver100ben := StrToFloat(Edit3.Text);
      jahrkm := StrToFloat(Edit4.Text);
    end
  else
  decimalseparator := '.';
   begin
      aktpreis := StrToFloat(Edit6.Text);
      ver100ben := StrToFloat(Edit3.Text);
      jahrkm := StrToFloat(Edit4.Text);
    end;
Das läuft nur bediengt. Ich kann zwar die Eingabe mit , und . machen. Aber: Umswitchen von , auf . geht immer. Wenn ich aber die Eingabe mit einem . mache und dann auf , umswitchen will--> kommt die Fehlermeldung.

Sir Rufo 19. Jan 2011 21:05

AW: Fehler bei Dateneingabe
 
ich würde meinen, dass hier die Delphi-Tags besser angebracht wären :mrgreen:
dann sieht das so aus
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var aktpreis, ver100ben, jahrkm, ausgabevbj, ausgabebkj : double;
begin
  if TryStrToFloat(Edit6.Text,aktpreis) and TryStrToFloat(Edit3.Text,ver100ben)
      and TryStrToFloat(Edit4.Text,jahrkm) then
    begin
      aktpreis := StrToFloat(Edit6.Text);
      ver100ben := StrToFloat(Edit3.Text);
      jahrkm := StrToFloat(Edit4.Text);
    end
  else
  decimalseparator := '.'; // <-- entweder unter das begin verschieben
   begin // <-- oder dieses begin und das end entfernen, denn die sonst zu nix gut :o)
      aktpreis := StrToFloat(Edit6.Text);
      ver100ben := StrToFloat(Edit3.Text);
      jahrkm := StrToFloat(Edit4.Text);
    end;

mkinzler 19. Jan 2011 21:09

AW: Fehler bei Dateneingabe
 
Und die extra StrToFloat() sind wie schön mehrmals erwähnt überflüssig. Das zum Thema richtig Lesen der Antworten!

snboy2010 19. Jan 2011 21:10

AW: Fehler bei Dateneingabe
 
Das Problem bleibt immer noch bestehen.

Sir Rufo 19. Jan 2011 21:23

AW: Fehler bei Dateneingabe
 
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var aktpreis, ver100ben, jahrkm, ausgabevbj, ausgabebkj : double;
begin
  if not TryStrToFloat( StringReplace( Edit6.Text, '.', ',', [] ), aktpreis ) then
    begin
      Edit6.SetFocus;
      Exit;
    end;
  if not TryStrToFloat( StringReplace( Edit3.Text, '.', ',', [] ), ver100ben ) then
    begin
      Edit3.SetFocus;
      Exit;
    end;
  if not TryStrToFloat( StringReplace( Edit4.Text, '.', ',', [] ), jahrkm ) then
    begin
      Edit4.SetFocus;
      Exit;
    end;
  // Jetzt rechnen


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:01 Uhr.
Seite 4 von 6   « Erste     234 56      

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