Autor Beitrag
a.ebert
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 50



BeitragVerfasst: Di 07.02.06 15:27 
Moin!
Ich bin grad dabei ein Kalkulationsprogramm zu erstellen. Bin da aber auf ein Problem mit meiner Ausgabe gestoßen. Und zwar lautet meine Ausgabe(beispielhaft):

ausblenden Delphi-Quelltext
1:
Edit1.text:=FloatToStr((StrToFloat(Edit2.Text))+(StrToFloat(Edit3.Text))					


Und jetzt möchte ich, dass wenn ich die Zahlen in Edit2 und Edit3 eingegeben hab, sofort das Ergebnis in Edit1 erscheint. Dies soll aber ohne Button funktionieren. So dass ich nur die Editfelder in meiner Form stehen hab und keine Buttons.

Bis jetzt ist es so, dass ich erst die Zahlen in Edit2 und Edit3 schreibe. Dann muss ich in Edit1 klicken und eine beliebige Taste drücken, damit das Ergebnis ausgegeben wird.

Hoffe ihr könnt mir helfen. Aber Danke schon mal!

Moderiert von user profile iconGausi: B- durch Delphi-Tags ersetzt
Limster
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 72


Delphi 5 & 7 Enterprise
BeitragVerfasst: Di 07.02.06 15:41 
Titel: Hi!
Wie wärs im OnChange-Event vom Edit2 ?
Dem Edit3 den selben Event zuweisen...

und mit
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
try
  Edit1.text:=FloatToStr((StrToFloat(Edit2.Text))+(StrToFloat(Edit3.Text));
except
  (* wurde Fehlerhaft eingetippt oder ein Fehler durch irgendwas anderes,
     dann Edit1 leer machn                                                *)

  Edit1.Text := '';
end;

ausrechnen

mfg

Moderiert von user profile iconGausi: Code- durch Delphi-Tags ersetzt
a.ebert Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 50



BeitragVerfasst: Di 07.02.06 16:07 
Danke erstmal, aber ich bekomm jetzt folgende Fehlermeldung, wenn ich in Edit2 ne Zahl schreib:

Im Projekt Project1.exe ist eine Exception der KlasseEConvertError aufgetreten. Meldung: '' 'ist kein gültiger Gleitkommawert'. Prozeß wurde angehalten. Mit Einzelne Anweisung odert Start fortsetzen.

Kann mir darunter nicht wirklich viel vorstellen, weil ich noch nicht die nötige Erfahrung mit Delphi habe.

Kannst du mir da bisschen weiterhelfen?
Danny87
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 688

Windows 10 Pro 64bit
Sprachen: HTML, PHP, JavaScript, Delphi || IDE: RAD Studio 10.1 Berlin Starter, WeBuilder
BeitragVerfasst: Di 07.02.06 16:13 
Hi!
ändere deinen code mal so:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
if (Edit1.Text <> '') and (Edit2.Text <> '') then
  begin
    try
      Edit1.text:=FloatToStr((StrToFloat(Edit2.Text))+(StrToFloat(Edit3.Text));
    except
      Edit1.Text := '';
    end;
  end;


IMHO sollte es so funktionieren.


gruss daniel
a.ebert Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 50



BeitragVerfasst: Di 07.02.06 16:28 
Ich kann zwar jetzt schon Zahlen eingeben, aber die Ausgabe funktioniert immernoch nicht. Wenn ich alle Zahlen eingegeben hab,passiert nichts. Und wenn ich dann in Edit1 reinklicke, dann kommt wieder die selbe Fehlermeldung wie vorher!
Marc.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1876
Erhaltene Danke: 129

Win 8.1, Xubuntu 15.10

BeitragVerfasst: Di 07.02.06 18:08 
also bei mir klappts wunderbar ;)

lass mich raten... es klappt nicht, weil in einem editfeld, kein wert steht :roll:
=> '' + 123 = " '' is not a valid floating point point value"... kann das stimmen? :)

machs so:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
procedure TForm1.Edit2Change(Sender: TObject);
begin
 if edit3.Text = '' then edit1.Text := '';
  if edit2.Text <> '' then
   if edit3.Text <> '' then
    Edit1.text:= FloatToStr((StrToFloat(Edit2.Text))+(StrToFloat(Edit3.Text)));
end;

procedure TForm1.Edit3Change(Sender: TObject);
begin
 if edit3.Text = '' then edit1.Text := '';
  if edit2.Text <> '' then
   if edit3.Text <> '' then
    Edit1.text:=FloatToStr((StrToFloat(Edit2.Text))+(StrToFloat(Edit3.Text)));
end;
a.ebert Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 50



BeitragVerfasst: Mi 08.02.06 08:59 
DANKE! Es läuft jetzt genauso wie ich es mir vorgestellt habe und ich kann weiter arbeiten.