Autor Beitrag
Method_Man
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mi 20.10.04 19:14 
Hi Leute,

da bin ich wieder :D

Das letzte Programm habe ich durch eure Hilfe geschafft, jetzt wollte ich mal bisschen kompliziertere Sachen programmieren.

Habe mir 3 Edit Felder und 4 Buttons auf dem Form1 erstellt.

Auf den Buttons steht + , - , * , /
Man kann die Zahl die +, -, * oder / gerechnet soll in den 1. Edit Feld eintippen, natürlich tippt man in die 2. Stelle mit was sie *,/- oder + gerechnet soll.

Und zwischen den 2. Edit Feldern, ist noch ein Edit Feld wo das Zeichen +,-,*,/ angezeigt wird wenn man auf die jeweilige Buttons klickt.

Und bei dem 4. Edit Feld steht dann die Lösung.

ausblenden Delphi-Quelltext
1:
2:
3:
4:
procedure TForm1.Button4Click(Sender: TObject);
begin
Edit4.Text:=(Edit1.text+Edit2.Text);
Edit3.Text:=' +'


Wenn ich jetzt z.B. 5+ 10 rechnen will zeigt er mir 510 an nicht 15.

Wie müsst ich es formulieren damit es 15 anzeigt, kann mir da jemand behilflich sein?

Gruss Method_Man


Zuletzt bearbeitet von Method_Man am Fr 22.10.04 14:07, insgesamt 3-mal bearbeitet
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mi 20.10.04 19:33 
Wendet man den "+" Operator auf Zeichenketten an, werden diese verbunden, wendet man ihn auf zahlen an, werden diese addiert. Du musst also die Zeichen in den Edits erst umwandeln.
BenBE
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 8721
Erhaltene Danke: 191

Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
BeitragVerfasst: Mi 20.10.04 19:35 
StrToInt und IntToStr
Bzw. die Float-Äquivalente
StrToFloat und FloatToStr

_________________
Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
eniac
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 75

Win 98, Win XP, SuSE Linux 9.0
D3 Prof
BeitragVerfasst: Mi 20.10.04 19:37 
sers,

So wie du das geschrieben hast addierst du nicht die Zahlenwerte, sondern hängst nur die Buchstaben aneinander.
Damit dein Programm mit Zahlenwerten rechnet musst du den Inhalt von Edit erst in eine Variable umwandeln.

Versuch mal

ausblenden Delphi-Quelltext
1:
Edit4.Text:=IntToStr(StrToInt(Edit1.text)+StrToInt(Edit2.Text));					


Erklärung:
Mit StrToInt wandelst du erst den Inhalt der beiden Edits in Zahlen um (von String nach Integer), addierst dann die beiden Zahlen und wandelst die Ergebniszahl wieder in eine String um, die mit Edit angezeigt wird.

Wenn das Programm nicht nur mit integer-Zahlen (ganzen Zahlen) laufen soll veruch mal FloatToStr bzw. StrToFloat.
Method_Man
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mi 20.10.04 20:13 
Danke ich habs geschafft.

Nur noch eine Frage, warum zeigt er mir eine Fehlermeldung wenn ich keine Zahl in die Edit Felder schreibe und auf +,-,* oder / Button dabei drücke.

Dann stürtzt nämlich immer mein Programm ab. :oops:
Larus
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 431



BeitragVerfasst: Mi 20.10.04 20:23 
Titel: ungültiger wert???
Zitat:
Nur noch eine Frage, warum zeigt er mir eine Fehlermeldung wenn ich keine Zahl in die Edit Felder schreibe und auf +,-,* oder / Button dabei drücke.

Dann stürtzt nämlich immer mein Programm ab. :oops:


Joah... liegt vieleicht daran... das es was zu rechnen versucht was nicht da is :wink: bzw. mit Buchstaben kann man schlecht rechnen... solltst also dafür sorgen das im editfeld nur zahlen stehen und das diese nie leer sind.. mindestens 0 sollte imma drinstehen :!:

Hoffe ich habe dir geholfen
MoD17
ontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic starofftopic starofftopic star
Beiträge: 36

WinXP, RedHat 9
D7 pers, D6 pers
BeitragVerfasst: Mi 20.10.04 20:35 
Zitat:
Joah... liegt vieleicht daran... das es was zu rechnen versucht was nicht da is bzw. mit Buchstaben kann man schlecht rechnen... solltst also dafür sorgen das im editfeld nur zahlen stehen und das diese nie leer sind.. mindestens 0 sollte imma drinstehen


stimmt,
kann man einfach lösen, indem man z.b. in die prozeduren, die +,-,usw berechnen (als erste zeile in den prozeduren!) schreibt:
ausblenden Quelltext
1:
 if edit1.text:='' then edit1.text:=0;					


gruss
MoD17
wulfskin
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 1349
Erhaltene Danke: 1

Win XP
D5 Pers (SSL), D2005 Pro, C, C#
BeitragVerfasst: Mi 20.10.04 20:52 
MoD17 hat folgendes geschrieben:
kann man einfach lösen, indem man z.b. in die prozeduren, die +,-,usw berechnen (als erste zeile in den prozeduren!) schreibt:
ausblenden Quelltext
1:
 if edit1.text:='' then edit1.text:=0;					
Und was ist, wenn im Edit-Felder ein Leerzeichen ist oder irgend eine Zeichenkette steht?
Ich würde lieber auf Nummer sicher gehen und checken, ob auch wirklich eine Zahl drinsteht, zum Beispiel so:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
function IsInteger(const S: String): Boolean;
var
  I: Integer;
begin
  Result := False;
  for I := 1 to Length(S) do begin
    if not (S[I] in ['0'..'9']) then
      Exit;
  end;
  if Length(S) > 0 then
    Result := True;
end;
Gruß Hape!

_________________
Manche antworten um ihren Beitragszähler zu erhöhen, andere um zu Helfen.
MoD17
ontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic starofftopic starofftopic star
Beiträge: 36

WinXP, RedHat 9
D7 pers, D6 pers
BeitragVerfasst: Mi 20.10.04 21:00 
jau, hast recht
aber da mein info-lehrer da nicht drauf gekommen ist, hat mir das bis jetzt gereicht :mrgreen:

gruss
MoD17