C++ zwei Label miteinander addieren, multiplizieren, usw.

kingdodo

Lt. Junior Grade
Registriert
Feb. 2006
Beiträge
474
Hallo und guten Abend,

Ich habe da ein Problem. Es geht, wie die Überschrift schon sagt, um das addieren, subtraieren, multipizieren und dividieren, von zwei Labeln. Das kommt so zustande:
Ich habe mehrere Buttons gemacht... wenn man nun Button "1" klickt, steht in dem Label1 die zahl "1"... beim Button"2" die "2" usw... das habe ich dann nochmal gemacht, wenn man auf der rechten seite auf den Button "1" klickt, steht im Label2 die Zahl "1", bei Button "2", die "2"...

jetzt habe ich noch Buttons gemacht, die eine Rechnung ausführen...

kleines Beispiel:
Button1 gecklickt->Zahl "1" in Label1...
Button2 auf der rechten Seite geklickt->Zahl"2" in Label2...

Jetzt will ich , dass durch das drücken eines weiteren Buttons, Label1 mit Label2 addiert wird,

wie kann ich das machen?

Ich hoffe, dass mir jemand helfen kann

mfg. kingdodo

ps. Ich nutze den Borland Builder ver. 6
 
Zuletzt bearbeitet:
Hat denn niemand eine Ahnung, wie das funktioniert?
also Inhalt Label1+ Inhalt Label2

mfg. kingdodo
 
Vielleicht die Werte von den betroffenen Label in int-Typen konvertieren und dann addieren, multiplizieren, etc. !?
 
Also ich bin noch "neuling" in C++, könnte mir wenn jemand Antwortet, vllt. ein kleines Beispiel anhand einses scriptausschnittes zeigen/erklären?

Wenn ich jetzt einfach ein script bekomme, womit das geht, bringt mir das auch nicht viel, weil ich es ja "lernen" will

ps. ist nicht böse gemeint oder so, nur "XunnD", so bringt mir das nicht viel

lg. kingdodo
 
Hi,

also vielleicht haben deine GUI Komponenten auch toInt() Methoden o.ä.

Ansonsten geht es auch mit stringstreams:

Code:
#include <sstream>
// [...]
int value;
std::stringstream stream;

stream << label1.text(); // oder wie du an den text kommst
stream >> value;

// [...]

mfg
 
danke, für die Antwort, aber irgendwie steig ich nicht dahinter, was das bedeuten soll...

stream << label1.text(); // oder wie du an den text kommst
das ist es ja, theoretisch brauche ich ja nur einen Befehl, der mir den Inhalt aus "Label1" bzw. "Label2" ausgibt, also so, dass er damit rechnen kann...

Also so wie ich es versucht hatte:
Code:
{
ergebnis = Label1+Label2;
Label3->Caption=ergebnis(Label1+Label2);
}

was muss ich da ändern, damit es klappt? Also wenn ich Zahl1 und Zahl2 eingeben würde, klappt es ja auch. Also anstatt "Label1" "Zahl1" angeben, würde ja gehn, das hatte ich schon mal ausprobiert
 
Wenn du C++ Neuling bist meine Empfehlung: beschäftige dich mit den Grundlagen und zwar auf Kommandozeilenbasis. Wenn du die beherrschst fällt dir auch die GUI-Programmierung leichter.

Wenn du aber schnell ansprechende GUI-Basierte Programme machen willst ist C# oder VB.Net oder Java besser geeignet.
 
Hallo, danke für den netten Tipp, aber es geht nicht darum, dass ich es lernen will, sondern muss... Es ist für die Schule
 
XunnD schrieb:
Vielleicht die Werte von den betroffenen Label in int-Typen konvertieren und dann addieren, multiplizieren, etc. !?

kingdodo schrieb:
Also ich bin noch "neuling" in C++, könnte mir wenn jemand Antwortet, vllt. ein kleines Beispiel anhand einses scriptausschnittes zeigen/erklären?

Wenn ich jetzt einfach ein script bekomme, womit das geht, bringt mir das auch nicht viel, weil ich es ja "lernen" will

ps. ist nicht böse gemeint oder so, nur "XunnD", so bringt mir das nicht viel

lg. kingdodo

Von learning-by-doing lernt man das meiste, nicht von learning-by-copying (denn darauf wird es wohl hinauslaufen) !

Also konkreter:

Situation: Du hast Werte in deinen Labels stehen

Frage: Wo hast Du den Wert in das Label hinein geschrieben?
Antwort: (wahrscheinlich im Objekt-Inspektor) bei "Caption"

Frage: Wie kann man zur Laufzeit den Wert der Label-Caption wieder auslesen?
Antwort: Von Label1 z.B. durch Label1->Caption

Frage: Von welchem Daten-Typ ist Label1->Caption?
Antwort: AnsiString

Frage: Ist AnsiString zum numerischen Operieren erwünscht?
Antwort: Nein

Frage: Worauf kann ich dann meine mathematische Operatoren anwenden?
Antwort: Auf Ganz- (int, byte, etc.) und Fließkommazahlen (float, single, double, etc.)

Frage: Und wie kriege ich nun den AnsiString zu einem solchen Typ?
Antwort: Hilfe auf, nach "StrToInt" suchen (wenn Du Fließkommazahlen in Deinen Labels hast: StrTofloat)

Das sollten genug Hinweise gewesen sein, mit der Du die Aufgabe jetzt lösen können solltest (schließlich ist es ja Deine Aufgabe, nicht unsere - nicht wahr?)
 
Zurück
Oben