![]() |
Rechenprogramm
Da ich noch ein absoluter anfänger in Delphi bin habe ich auch so eine Frage:
Ich will halt ein Rechenprogramm erstellen halt so was wie es den unter Windows schon installiert ist. Ich wollte erstmal mit etwas einfachen anfangen also wollt ich erstmal zwei eingabefelder erstellen und einen Label wo das Ergebnis zu sehen ist. Achja und einen Button halt der das ergebnis anzeigt auf dem Label. So alles wunderbar hab es gemacht so wie es in einen Turorial stand mit dem Code damit das Programm auch die beiden Eingaben Addiert. Sieht bei mir so aus:
Delphi-Quellcode:
ich habe es auch mit Variabel versucht aber das Programm rechnet das nicht aus sonder gibt mir auf dem Label die beiden Zahlen hintereinanderweg geschrieben.
Label3.Caption := Edit1.Text + Edit2.Text;
Also wenn ich in Feld 1 eingebe: 10 Und in Feld 2 eingebe: 10 Dann rechnet er nicht 10 + 10 und zeigt 20 an sonder er zeigt 1010 an. Achja ich benutze Delphi 2007. Ich hoffe jemand kennt die Antwort. |
Re: Rechenprogramm
Hallo,
zum Rechnen solltest Du die Strings in Edit1.Text und Edit2.Text erst einmal in Zahlen umwandeln. Das kannst Du mit StrToInt machen. Das Ergebnis solltest Du dann wieder in einen String wandeln z.B. mit IntToStr. Grüße Klaus |
Re: Rechenprogramm
Das ist ganz einfach:
Edit1.Text ist ein String, also eine Zeichenkette. Das heißt dass Delphi das Geschriebene nichta ls "echte" Zahlen, sondern nur als Zeichen behandelt und somit die beiden Strings der Edit-Felder aneinander packt. Um zu rechnen musst du den text in einen Zahlenwert umwandeln, z.b. in eine Ganzzahl (integer)
Delphi-Quellcode:
Wenn du es ausgeben möchtest musst du es genau umgekehrt machen, z.b.
Zahl1 := StrToInt(Edit1.Text);
Delphi-Quellcode:
Edit3.Text := InttoStr(Ergebnis);
|
Re: Rechenprogramm
Sieht bei mir jetzt so aus funktioniert aber trotzdem nicht:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var zahl1, zahl2, ergebnis : integer; begin Zahl1 := StrToInt(Edit1.Text); Zahl2 := StrToInt(Edit2.Text); ergebnis := Zahl1+Zahl2; Label3.Caption := Inttostr(ergebnis); end; |
Re: Rechenprogramm
Was heißt "funktioniert nicht"? Der Code ist schonmal OK (von fehlenden Fehlerprüfungen abgesehen).
|
Re: Rechenprogramm
gibt er dir ne fehlermeldung oder was genau funktioniert nicht sollte nämlich eigentlich so laufen..
|
Re: Rechenprogramm
Ja der gibt trotzdem noch z.B. (10+10) = 1010 aus anstatt 20.
|
Re: Rechenprogramm
Hast Du auch neu kompiliert?
|
Re: Rechenprogramm
Ja kompilieren ist ja Programm Starten oder nicht. Also F9 bei delphi 2007
|
Re: Rechenprogramm
Lösch einfach mal die ".dcu"-Dateien aus dem ProjektOrdner.
|
Re: Rechenprogramm
Geht trotzdem nicht...
|
Re: Rechenprogramm
Mach mal in der Entwurfsansicht einen Doppelklick auf den Button. Springt Delphi dann auf den geposteten Code?
|
Re: Rechenprogramm
Ahh auf einmal geht es weiß auch nicht warum aber es geht.
Danke an alle |
Re: Rechenprogramm
Liste der Anhänge anzeigen (Anzahl: 1)
Kann mir jemand ein Tutorial geben wie ich das hier verwirklichen kann ? (Bild)
|
Re: Rechenprogramm
Zitat:
Das ist im Grunde das selbe, wenn du auf die Buttons klickst, dann musst du die Zahl einfach an den "Text" in dem Editfeld "dranhängen":
Delphi-Quellcode:
beim klicken auf einen "Rechenbutton" musst du die erste Zahl in einer Variablen speichern, die Rechenart und das Feld leeren:
procedure TForm1.bt3Click(Sender: TObject);
begin edZahl.Text := edZahl.Text + '3' end;
Delphi-Quellcode:
Dann gibt der Nutzer die zweite Zahl ein und wenn er dann auf "=" klickt musst du nur die erste, gespeicherte Zahl mit der anderen zusammenrechnen, je nach dem worauf er vorher geklickt hat.
MeineIntegerVariable := StrToInt(edZahl.Text);
MeineAndereIntegerVariable := 1; // z.B 1 für +, 2 für -, 3 für + und 4 für / edZahl.Text := '';
Delphi-Quellcode:
Gruß
case of
1: IntToStr(MeineIntegerVariable + StrToInt(edZahl.Text)); 2: ... 3: ... 4: ... // bei Geteilt ("/") darfst du das Round() nicht vergessen, wenn du nur ganze Zahlen haben möchtest else ShowMessage('Sie müssen erst auf ein Rechenzeichen klicken'); // Der Benutzer hat auf kein Zeichen vorher geklickt end; MeineIntegerVariable := 0; MeineIAndereIntegerVariable := -1; Tarry |
Re: Rechenprogramm
Bei mir gibt er mir hier schon eine Fehlermeldung:
Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
begin Edit2.Text := Edit2.Text + '1'; end; |
Re: Rechenprogramm
welchen denn ? (Screen)
Bei mir funktioniert der Einwandfrei... |
Re: Rechenprogramm
Liste der Anhänge anzeigen (Anzahl: 1)
Diese Meldung:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:00 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 by Thomas Breitkreuz