Berechnungen abhängig von Optionsfeld



  • Hallo Leute,

    hab ein kleines(für mich großes) Problem, und zwar habe ich eine kleine dialogbasierte Anwendung geschrieben(benutze Visual C++ 6.0), nix ernstes nur ne kleine Berechnung aber für mich schon viel. 🙂 Habe 3 Eingabefelder, die berechnet werden(geht schon), nun möchte ich aber noch zwischen 2 Berechnungsmethoden wählen können und habe deshalb Optionsfelder genommen, sieht compiliert schon schick aus aber leider (noch) ohne Funktion....
    Kann mir dabei jemand auf die Sprünge helfen?

    MfG
    silo2001



  • silo2001 schrieb:

    Hallo Leute,

    hab ein kleines(für mich großes) Problem, und zwar habe ich eine kleine dialogbasierte Anwendung geschrieben(benutze Visual C++ 6.0), nix ernstes nur ne kleine Berechnung aber für mich schon viel. 🙂 Habe 3 Eingabefelder, die berechnet werden(geht schon), nun möchte ich aber noch zwischen 2 Berechnungsmethoden wählen können und habe deshalb Optionsfelder genommen, sieht compiliert schon schick aus aber leider (noch) ohne Funktion....
    Kann mir dabei jemand auf die Sprünge helfen?

    MfG
    silo2001

    Aloha,

    Du startest ja sicherlich auf einen Button Deine Berechnungen.
    In die OnButtonStarteBerechnung() schreibst Du einfach die Abfrage, welcher optionbutton selektiert ist.

    switch(GetCheckedRadioButton(IDC_BUTTON1,IDC_BUTTON2)){
    
    case IDC_BUTTON1:
    	{
    
                      starte_berechnungsart1();
    		break;
    	}
    
    case IDC_BUTTON2:
    	{
    
                     start_berechnungsart2();
    		break;
    
    	}
    
    default:
            AfxMessageBox("Naja, nen Button solltest Du schon auswählen")
            return;
    
    }
    

    Grüße

    BOA



  • Er wollte da mit 2 Optionsfelder machen, NICHT mit 2 Buttons, lol

    also du hast ja anscheinend die 2 Opt Felder schon erstellt, welche dann schick aussehen.

    Jetzt musst halt bei der ersten wählen in den Properties, Group = TRUE
    bei der 2ten nicht. da lässt es sein. dann bei der ersten mal rechte maustaste drüken und memervarible vergeben.

    dann am besten noch, damit es noch schicker aussieht so n kasten drum machen, schimpft sich glaub groupbox oder so.

    dann kannst machen

    .....ONKLICKICLICKBUTTON1
    {
    
    if ( m_opt_berechung != -1 )       // m_opt_berechung, die membervariable
    {
    
    if ( m_opt_berechung == 0 )        // 0 gleich, erster opt feld, 1 gleich 2ter, -1 gleich keines ausgewählt
    {
    Berechnung1();
    }
    
    if( m_opt_berechung == 1 )
    {
    Berechnung2();
    }
    else
    {
    AfxMessageBox("BUG!!!!");
    }
    
    }
    
    }
    

    wenn du step by step brauchst, einfach mal googeln und dummy erklärung anschauen

    EDIT: jetzt seh ich auch was der vorgänger gemeint hat. naja IDC_BUTTON heissen normalerweise Buttons und IDC_RADIO1 die radio felder. ok die namen sind ja wirkürlich, aber als fremder kann man in die irre geleitet werden.



  • fletscher schrieb:

    EDIT: jetzt seh ich auch was der vorgänger gemeint hat. naja IDC_BUTTON heissen normalerweise Buttons und IDC_RADIO1 die radio felder. ok die namen sind ja wirkürlich, aber als fremder kann man in die irre geleitet werden.

    Aloha Fremder,

    danke, daß ich meine (Radio)Buttons umbenennen darf. 😉

    Grüße

    BOA



  • Danke schön, allerdings geht es bei mir auch ohne des erste if sehr gut. 😉

    Sieht bei mir insgesamt so aus:

    void CRechnerDlg::OnBerech() 
    {
    
    	UpdateData(TRUE);
    
    		if ( m_optfeld == 0 )        // 0 = erstes opt feld, 1 = zweites ausgewählt 
    		{ 
    		m_ergebnis=Berechnung1;
    		} 
    
    		else if( m_optfeld == 1 ) 
    		{ 
    		m_ergebnis=Berechnung2; 
    		} 
    
    		else 
    		{ 
    		AfxMessageBox("Bitte eine Berechnungsart wählen!!!");
    		} 
    
    	UpdateData(FALSE);
    
    }
    

    Da man aber nie zufrieden ist gibt es bald wieder ein neues Thema von mir 🕶

    MfG
    silo2001



  • sieht echt so bei dir aus? das sagst du ja.

    dann hast du also 2 mal speicherplatz reserviert für ein zwischenergebnis???

    was ist bei dir Berechnung1? ein float oder so?
    oder etwa eine fkt names Berechnung1()??

    wo berechnest du eigentlich? normalerweise müsste das ja ungefähr so aussehen

    ....
    if ( m_optfeld == 0 )        // 0 = erstes opt feld, 1 = zweites ausgewählt
            {
            m_ergebnis=m_edit1 + m_edit2;   // z.b.
            } 
    ....
    

    hmmm, oder sieht es gar nicht so aus wie du sagst und du mächtest uns an deiner neuen weltformel gar nicht teilhaben lassen???? 😞



  • Jep stimmt, es sieht etwa so aus wie du sagst/schreibst, die spezielle Formel ist hierbei irrelevant 😉 hab nur zur Vereinfachung Berechnung1 geschrieben, ich bitte um Nachsicht, wollte halt zeigen an der Stelle findet die Berechnung statt (Tippfaul ⚠ ) Habe aber schon die nächste Idee, aber des is wie gesagt ein neues Thema wert 😃

    MfG
    silo2001


Log in to reply