Implementierung
-
Ich will in desem click-Ereignis 2 Textboxen auslesen lassen und sodann soll nach dem click gerechnet und eine Linie graphisch dargestellt werden
Ich arbeite mit Power++DANKE
/***********Click-Ereignis ***********/WBool Form1::cb_1_Click( WObject * source, WEventData * event ) { WString text; WDouble Restschuld; text = Textbox_1->GetText(); text = Textbox_2->GetText(); Restschuld =(WInt) schuld+(schuld*JahresZins /100/12)-Monats_Rate; return TRUE;}
-
Woher hast du denn 'schuld', 'Jahreszins' und 'Monats_Rate'?
Ansonsten: Du hast zwei Textboxen, die du auslesen willst - also brauchst du vermutlich auch zwei String-Variablen, in die du ihren Inhalt einlesen kannst. (oder du verarbeitest den Inhalt von Textbox1 weiter, bevor du ihn überschreibst)
-
Hm, ich sehe da nur eine Mitteilung, das jemand mit Power++ , zwei Textboxen auslesen will und eine Linie zeichnen will.
Abgesehen davon das C++ keine Textboxen kennt, wo ist die Frage ?
-
Knuddlbaer schrieb:
Hm, ich sehe da nur eine Mitteilung, das jemand mit Power++ , zwei Textboxen auslesen will und eine Linie zeichnen will.
Abgesehen davon das C++ keine Textboxen kennt, wo ist die Frage ?
WIE???? C++ KENNT KEINE TEXTBOXEN??????????????

-
Renate schrieb:
Knuddlbaer schrieb:
Hm, ich sehe da nur eine Mitteilung, das jemand mit Power++ , zwei Textboxen auslesen will und eine Linie zeichnen will.
Abgesehen davon das C++ keine Textboxen kennt, wo ist die Frage ?
WIE???? C++ KENNT KEINE TEXTBOXEN??????????????

Nein, aber Power++ kennt Textboxen
-
CStoll schrieb:
Woher hast du denn 'schuld', 'Jahreszins' und 'Monats_Rate'?
Ansonsten: Du hast zwei Textboxen, die du auslesen willst - also brauchst du vermutlich auch zwei String-Variablen, in die du ihren Inhalt einlesen kannst. (oder du verarbeitest den Inhalt von Textbox1 weiter, bevor du ihn
überschreibst)Hier ist der ges. code. Mit programmierten Werten wird die Graphik ja gezeichnet.
Aber dann will ich eben in 2 Textboxen die Monats_Rate u. den Zinssatz eingeben und auf den click eine neue Graphik dazu ausgeben lassen.// Declarations added here will be included at the top of the .HPP file
const WDouble schuld = 10000; class __Form1_declspec Form1 : public __Form1_Base { public: WDouble Restschuld; // add your public instance data here private: // add your private instance data here WInt nullX; // Nullpunkt X-Achse WInt nullY; // Nullpunkt Y-Achse WInt maxX; // hoechster x-Wert WInt maxY; // hoechster y-Wert WDouble maxSchuld; // max. Schuld WDouble maxLaufzeit; // max. Laufzeit WDouble pixelProSchuld; WDouble pixelProLaufzeit; WString strLauf[20]; // Beschriftung Lauf WString strSchuld[20]; // Beschriftung Schuld protected: // add your protected instance data here public: void zeichneGrafik( void ); public: WPoint setzePunkt( WDouble zeit, WDouble tiefe ); public: WDouble berechneZeit( WDouble schuld ); }; // Code added here will be included at the top of the .CPP file // Include definitions for resources. #include "WRes.h" WBool Form1::Form1_Create( WObject * source, WCreateEventData * event ) { maxSchuld = 10000; // Hoechster Wert in Schuld maxLaufzeit = 20; // Hoechste Zeit in Laufzeit nullX = 40; // Nullpunkt links unten nullY = GetHeight()-50; // in Bildschirmkoordinaten maxX = GetWidth()-100; // Hoechste erlaubte Bilschirmkoordinaten maxY = 40; /* Mindestgröße des Fensters festlegen, so daß es nie kleiner als */ /* am Anfang werden kann. */ SetMinimumTrackingSize( WSize(GetWidth(), GetHeight()) ); /*--------- Die Einheiten Schuld und Laufzeit in Pixel umrechnen -------*/ pixelProSchuld = (WDouble)( nullY - maxY ) / maxSchuld; pixelProLaufzeit = (WDouble)( maxX - nullX ) / maxLaufzeit; /*-------------------------- Zeichnen der Grafik ----------------------*/ zeichneGrafik(); return FALSE; } Form1::Form1() { } Form1::~Form1() { } /*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/ /* Die Methode 'zeichneGrafik()' führt die grafischen Opertionen aus */ /*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/ void Form1::zeichneGrafik( void ) { WPen stiftKoordinatenKreuz; WPen stiftTeilstrich; WPen stiftKurve; WInt schuld, laufzeit; WDrawText * zahl; /*------------------------- Stifte festlegen --------------------------*/ stiftKoordinatenKreuz.Create( WColorBrightBlue); stiftTeilstrich.Create( WColorBlack,1,WPStyleDot ); stiftKurve.Create( WColorBrightRed, 2 ); // Stift Gitternetz /*------------------------- Koordinatenkreuz zeichnen -----------------*/ WDrawLine *linie = new WDrawLine( setzePunkt(0,0), setzePunkt(0,maxSchuld)); linie->SetPen(stiftKoordinatenKreuz); AddDrawPrimitive( linie ); linie = new WDrawLine( setzePunkt(0,0), setzePunkt(maxLaufzeit,0)); linie->SetPen(stiftKoordinatenKreuz); AddDrawPrimitive( linie ); /*----------------------- Koordinatenkreuz beschriften ----------------*/ WDrawText *xAchse = new WDrawText( setzePunkt(20.6, 0)," Laufzeit in Monaten " ); xAchse->SetFont(GetFont()); AddDrawPrimitive( xAchse ); WDrawText *yAchse = new WDrawText( setzePunkt(+1.3,10000)," Restschuld " ); yAchse->SetFont(GetFont()); AddDrawPrimitive( yAchse ); /*------------------ Zeitachse mit Laufzeitwerten beschriften. --------*/ WInt i=0; for( laufzeit= 0; laufzeit < maxLaufzeit; laufzeit++ ) { zahl = new WDrawText((WPoint) setzePunkt(laufzeit,-1), " "); strLauf[i].Sprintf(" %d ", laufzeit); //zahl->SetNumCharacters( strSec[i].GetLength() ); zahl->SetText(strLauf[i]); zahl->SetFont(GetFont()); AddDrawPrimitive( zahl ); i++; } /*--------------- Die Tiefenachse mit Schuldwerten beschriften. --------*/ i=0; for( schuld=0; schuld < maxSchuld; schuld+=1000) { zahl = new WDrawText((WPoint) setzePunkt(-0.4, schuld+2), ""); strSchuld[i].Sprintf(" %d ", schuld); zahl->SetText(strSchuld[i]); zahl->SetFont(GetFont()); AddDrawPrimitive( zahl ); i++; } /*--------------- Teilstriche für die Laufzeit einzeichnen -----------*/ for( laufzeit =1; laufzeit < maxLaufzeit; laufzeit++) { WDrawLine *teilstrich = new WDrawLine( setzePunkt(laufzeit,0), setzePunkt(laufzeit,maxSchuld)); teilstrich->SetPen(stiftTeilstrich); AddDrawPrimitive( teilstrich ); } /*--------------- Teilstriche für die Schuld einzeichnen --------------*/ for( schuld=1000; schuld < maxSchuld; schuld+=1000 ) { WDrawLine *teilstrich = new WDrawLine(setzePunkt(0,schuld), setzePunkt(maxLaufzeit,schuld)); teilstrich->SetPen(stiftTeilstrich); AddDrawPrimitive( teilstrich ); } /*------------ Kurve für die Tiefe über der Wartezeit zeichnen --------*/ WDouble zeit; WDouble schuld_neu; for( zeit=0; zeit < maxLaufzeit; zeit += 1.0/ 20.50 ) { schuld_neu = berechneZeit(schuld); WDrawLine *kurve = new WDrawLine(setzePunkt(zeit,schuld),setzePunkt(zeit,schuld_neu+1)); kurve->SetPen(stiftKurve); AddDrawPrimitive( kurve ); schuld = schuld_neu; } SetBackColor( WColorBrightCyan ); } /*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/ /* Die Methode 'setzePunkt()' rechnet die übergebenen Koordinaten */ /* um und gibt diese in einem WPoint Objekt zurück */ /*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/ WPoint Form1::setzePunkt( WDouble zeit, WDouble tiefe ) { WPoint punkt; punkt.x =(WInt) (nullX + zeit * pixelProLaufzeit); // Koordinaten für die Laufzeit punkt.y = (WInt) (nullY - tiefe * pixelProSchuld); // Koordinaten für die Schuld return punkt; } /*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/ /* Die Methode 'berechneZeit()' ermittelt die Zeit für eine */ /* vorgegebene schuld */ /*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/ WDouble Form1::berechneZeit( WDouble schuld ) { WDouble Restschuld; WDouble Monats_Rate = 80; WDouble JahresZins = 4; Restschuld =(WInt) schuld+(schuld*JahresZins /100/12)-Monats_Rate; return Restschuld; } /*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/ /* Click-Ereignis */ /*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/ WBool Form1::cb_1_Click( WObject * source, WEventData * event ) { WString text; WDouble Restschuld; WDouble Monats_Rate = 80; WDouble JahresZins = 4; text = Textbox_1->GetText(); text = Textbox_2->GetText(); Restschuld =(WInt) schuld+(schuld*JahresZins /100/12)-Monats_Rate; return TRUE;}
-
lök schrieb:
Renate schrieb:
Knuddlbaer schrieb:
Hm, ich sehe da nur eine Mitteilung, das jemand mit Power++ , zwei Textboxen auslesen will und eine Linie zeichnen will.
Abgesehen davon das C++ keine Textboxen kennt, wo ist die Frage ?
WIE???? C++ KENNT KEINE TEXTBOXEN??????????????

Nein, aber Power++ kennt Textboxen
häääääää?????

-
Dazu mußt du den Inhalt der Textfelder erstmal in Zahlen umwandeln (siehe dazu die FAQ: "Einmal String nach Zahl und zurück"), damit du mit ihnen rechnen kannst.
PS: Wie du die Grafik darstellen kannst, hängt nicht mehr mit ANSI C++ zusammen - da fragst du mal das Handbuch deines Compilers.
-
Renate schrieb:
lök schrieb:
Renate schrieb:
Knuddlbaer schrieb:
Hm, ich sehe da nur eine Mitteilung, das jemand mit Power++ , zwei Textboxen auslesen will und eine Linie zeichnen will.
Abgesehen davon das C++ keine Textboxen kennt, wo ist die Frage ?
WIE???? C++ KENNT KEINE TEXTBOXEN??????????????

Nein, aber Power++ kennt Textboxen
häääääää?????

Ist so.

"TextBox" mag in einer bestimmten Entwicklungsumgebung definiert sein, aber der C++-Sprachstandard kennt ein derartiges Konstrukt nicht. Der definiert lediglich Ein-/Ausgaben für Text ( std::cin u. std::cout ) ...Gruß,
Simon2.