Abfolge ??
-
Hallo
was die Operatoren machen sollen, ist mir klar, ich verstehe nur deine Umsatzung nicht. Speziell die des +, wo du auf ein Tag zugreifst.
Zum Beispiel sehe ich nicht wie du mal eine Zahl aus einem Edit holst und in Zahl1 oder Zahl2 steckts.bis bald
akari
-
langsam versteh ich das auch nicht mehr, was ich machen will, also:
Mann soll die erste Zahl zum beispiel 12 durch die Buttons 1 und 2 klicken.
wenn man nun auf das + zeichen klikt, soll er sich die erste zahl also 12 merken, die anzeige wo vorher 12 gestanden ist, auf nichts zurücksetzen, damit man die zweite zahl einkicken kann z.B. 16. nun soll er die vorher gespeicherte Zahl12 mir der neuen zahl 16 addieren, sich das ergebnis merken und beim klick auf das gleichheitszeichen das resultat 28 bringen.
wahlweise dann die anderen Operatoren mit ihren verschiedenen rechenarten dasselbetönt simpel oder
aber ich bin irgendwie zu blöd!!

die hauptsache ist aber, dass das ganze nur mit einem Feld, in dem die Zahl steht, auskommt
WIE DER WINDOWSRECHNER
.
-
Hallo
mal ein einfaches Beispiel für + :
void __fastcall TForm1::Button1AddClick(TObject *Sender) { float Zahl = StrToFloat(Label1->Caption); // Zahl aus Label holen und speichern Ergebnis += Zahl; // Ergebnis bestimmen Label1->Caption = ""; // Eingabe zurücksetzen }Ich empfehle dir noch, die globale Variable
float Ergebnis;in die Header-Datei des Forms, direkt unter das Symbol
private :zu schreiben. Den Rest brauchst du nicht.
bis bald
akari
-
das sollte eigentlich ganz gut klappen, aber er bringt noch die fehlermeldung mit der gleitkommazahl
irgendwie bringt er zetzt immer das doppelte de zahl als ergebnis.appropos gleitkommazahl, was ist das und wie bringe ich es wieder weg?
-
Hallo
aber er bringt noch die fehlermeldung mit der gleitkommazahl
welche Fehlermeldung genau?
Bitte mit betreffendem Code-Auschnitt.appropos gleitkommazahl, was ist das und wie bringe ich es wieder weg?
int = Festkommazahl = Ganze Zahl
float = Gleitkommazahl = Gebrochene Zahl, z.B. 1,3
näheres kannst du in einem passendem Buch oder Tutorial finden, siehe Menüeintrag ganz oben rechts.bis bald
akari
-
1.25 ist kein gültiger gleitkommawert
muss ich da mit FloatToStrF arbeiten?
und zum addieren macht er zum beispiel wenn ich 2 + 2 klicke, 4 aber wenn ich nochmals +2 klicke macht er 8 dann 16 usw
er verdoppelt alles

-
Hallo
1.25 ist kein gültiger gleitkommawert
im deutschen wird Komma als Dezimaltrennzeichen genommen.
FloatToStrF
schau in die Hilfe zu diesem Befehl, damit du weist wofür du das brauchst
und zum addieren macht er zum beispiel wenn ich 2 + 2 klicke, 4 aber wenn ich nochmals +2 klicke macht er 8 dann 16 usw
kann es sein, das du das Ergebnis nach der Operation noch mal ins Label für die Eingabe schreibst?
bis bald
akari
-
tönt für dich warscheinlich komisch aber ja
also in einem Label wo auch die Zahlen kommen wenn man sie klickt.
das mit dem komma ist mir jetzt klargeworden
ist das wenn ich das so mache unmöglich oder wie kann ich das verbessern?
-
noch zu dem was
void __fastcall TForm1::ButtonNumberClick(TObject *Sender) { TControl *Component = dynamic_cast<TComponent *> (Sender); if (Component == NULL) return; AnsiString Zeichen = IntToStr(Component->Tag); Label1 ->Caption = Label1 ->Caption + Zeichen; }bei ButtonNumberClick ist doch die Zahl einzufügen, oder? also zB Zahl10Click und das dann bei allen, oder?
er sagt Component sei ein undefiniertes Symbol. und
[C++ Fehler] Styl.cpp(21): E2034 Konvertierung von 'TComponent *' nach 'TControl *' nicht möglichWas muss ich dagegen tun?
und was muss ich mit dem einen Label machen, damit er richtig rechnet?
danke
-
Hallo
bei ButtonNumberClick ist doch die Zahl einzufügen, oder? also zB Zahl10Click und das dann bei allen, oder?
Nein, eben nicht. Es gibt nur eine Methode, und die heißt ButtonNumberClick.
Auf diese verweist du mit dem Objektinspektor die OnClickEvents aller Ziffernbuttons.
Vergiss nicht, die Tags der Buttons zu belegen und die Methode im private-Part der Klassendeklaration in der Header-Datei des Forms zu deklarieren.und was muss ich mit dem einen Label machen, damit er richtig rechnet?
Ich kann keine Fehlerquelle ausmachen, poste noch mal relevaten aktuellen Code oder Debuge mal. Such mal im Forum nach *Breakpoint*, dann solltest du finden wie das geht.
bis bald
akari
-
Auf diese verweist du mit dem Objektinspektor die OnClickEvents aller Ziffernbuttons.
also ein allgemeiner OnKlickEvent solls geben, aber ist das wenn ich auf der TForm1 bin auf OnKlick klicke? oder wo ist dieser NumberKlick?
irgendwie bin ich zu dumm für das

-
und meinst du mit Funktion zuweisen zum beispiel etwas, das nachher oben als constante eingegeben werde muss?
oder was meinst du damit?das prinzip versteh ich schon nur die Umsetzung...
-
Hallo
also noch mal von von :
- lösch aus allen bestehenden Eventfunktion für Ziffernbuttons die Befehle, und speichere das Projekt. Dann sollten die Funktion komplett verschwinden.
- Nummerier die Tags der Ziffernbuttons anhand der dargestellten Ziffer
- Gehe zu einem Ziffernbutton, wähle im Objektinspektor die Seite Event aus und
gib bei OnClick einfach ButtonNumberClick ein. Danach <Enter>
- In die erscheinende Funktion ButtonNumberClick kopierst du den von mir geposteten Code mit dem cast<> rein
- Jetzt gehst du durch alle Ziffernbuttons durch und setzt den OnClickEvent auf die ButtonNumberClick-Methode, indem du diese einfach im Dropdown auswählstDann hast du eine gemeinsame Funktion für die Ziffern.
bis bald
akari
-
cool bis hierhin hats geklappt jetzt sagt er nur noch
[C++ Fehler] Styl.cpp(67): E2034 Konvertierung von 'TComponent *' nach 'TControl *' nicht möglichmuss ich TComponent irgendwo angeben?
danke
-
Hallo
sorry kleiner Fehler meinerseits :
[cpp] TComponent *Component = dynamic_cast<TComponent *> (Sender);[/cpp]bis bald
akari
-
ah ok
aber jetzt sagt er was komisches:
[Linker Fehler] Unresolved external '__fastcall TForm1::FormClick(System::TObject *)' referenced from C:\DOKUMENTE UND EINSTELLUNGEN\PALADIN\DESKTOP\DYCON\C++\PROJECT_STYLRECHNER\STYL.OBJ
-
-
ich glaube das ist ein wenig anderes Problem weil bei mir hats kein OnKlick sondern nur
[Linker Fehler] Unresolved external '__fastcall TUnique::FormClick(System::TObject *)' referenced from ...STYL.OBJ
TUnique::FormClick
ist da irgend ein OnKlick?
-
Hallo
wie wie Methode heißt spielt keine Rolle, geh in die Headerdatei und lösch die Deklaration der Methode.
(Ich gehe davon aus, das du die nicht mehr brauchst)bis bald
akari
-
ok hat alles geklappt
danke
hast mir wirklich geholfen
(Für meine Unwissenheit habe ich aber eine Ausrede:
Bin erst 15 und hab erst gerade mit C++ angefangen)
:p