Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Rechenprogramm (https://www.delphipraxis.net/107482-rechenprogramm.html)

dtos 28. Jan 2008 15:47


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:
 Label3.Caption := Edit1.Text + Edit2.Text;
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.

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.

Klaus01 28. Jan 2008 15:57

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

Aurelius 28. Jan 2008 15:58

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:
Zahl1 := StrToInt(Edit1.Text);
Wenn du es ausgeben möchtest musst du es genau umgekehrt machen, z.b.
Delphi-Quellcode:
Edit3.Text := InttoStr(Ergebnis);

dtos 28. Jan 2008 16:07

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;

DeddyH 28. Jan 2008 16:08

Re: Rechenprogramm
 
Was heißt "funktioniert nicht"? Der Code ist schonmal OK (von fehlenden Fehlerprüfungen abgesehen).

lbccaleb 28. Jan 2008 16:09

Re: Rechenprogramm
 
gibt er dir ne fehlermeldung oder was genau funktioniert nicht sollte nämlich eigentlich so laufen..

dtos 28. Jan 2008 16:10

Re: Rechenprogramm
 
Ja der gibt trotzdem noch z.B. (10+10) = 1010 aus anstatt 20.

DeddyH 28. Jan 2008 16:10

Re: Rechenprogramm
 
Hast Du auch neu kompiliert?

dtos 28. Jan 2008 16:12

Re: Rechenprogramm
 
Ja kompilieren ist ja Programm Starten oder nicht. Also F9 bei delphi 2007

Aurelius 28. Jan 2008 16:14

Re: Rechenprogramm
 
Lösch einfach mal die ".dcu"-Dateien aus dem ProjektOrdner.

dtos 28. Jan 2008 16:16

Re: Rechenprogramm
 
Geht trotzdem nicht...

DeddyH 28. Jan 2008 16:17

Re: Rechenprogramm
 
Mach mal in der Entwurfsansicht einen Doppelklick auf den Button. Springt Delphi dann auf den geposteten Code?

dtos 28. Jan 2008 16:17

Re: Rechenprogramm
 
Ahh auf einmal geht es weiß auch nicht warum aber es geht.

Danke an alle

dtos 28. Jan 2008 20:32

Re: Rechenprogramm
 
Liste der Anhänge anzeigen (Anzahl: 1)
Kann mir jemand ein Tutorial geben wie ich das hier verwirklichen kann ? (Bild)

Tarry 28. Jan 2008 20:50

Re: Rechenprogramm
 
Zitat:

Zitat von dtos
Kann mir jemand ein Tutorial geben wie ich das hier verwirklichen kann ? (Bild)

Ja, ...

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:
procedure TForm1.bt3Click(Sender: TObject);
begin
edZahl.Text := edZahl.Text + '3'
end;
beim klicken auf einen "Rechenbutton" musst du die erste Zahl in einer Variablen speichern, die Rechenart und das Feld leeren:

Delphi-Quellcode:
MeineIntegerVariable := StrToInt(edZahl.Text);
MeineAndereIntegerVariable := 1;   // z.B 1 für +, 2 für -, 3 für + und 4 für /
edZahl.Text := '';
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.

Delphi-Quellcode:
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;
Gruß
Tarry

dtos 28. Jan 2008 20:55

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;

Tarry 28. Jan 2008 20:58

Re: Rechenprogramm
 
welchen denn ? (Screen)
Bei mir funktioniert der Einwandfrei...

dtos 28. Jan 2008 21:00

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