Radiobuttons mit "if-struktur" kombinieren ?!?



  • @Sankt M.
    das ist soweit ja auch nicht falsch, aber hast du dir den Beitrag in der FAQ schonmal angeschaut? das ist nämlich genau das was du in dem Fall brauchst, wobei hier nicht TButton sondern TMenuItem die gesuchte Klasse ist



  • Hallo,

    danke! Jetzt bekomme ich eine Fehlermeldung ('D1' ist kein Element von 'MenuItem') - Warum ??

    dynamic_cast<TMenuItem*>(Sender)->D1;
    

    MFG



  • du solltest dir wirklich nochmal den FAQ Beitrag durchlesen und dabei dein Gehirn anschalten, außerdem empfehle ich die BCB-Hilfe zu TMenuItem, da dort alle Eigenschaften aufgelistet und beschrieben stehen, z.B. die Eigenschaft Name



  • Ohje....

    void __fastcall TForm1::D1Click(TObject *Sender)
    {
      dynamic_cast<TMenuItem*>(Sender)->Name;
    }
    //---------------------------------------------------------------------------
    
    void __fastcall TForm1::K1Click(TObject *Sender)
    {
      dynamic_cast<TMenuItem*>(Sender)->Name; 
    }
    

    .. Ich weiss ehrlich nicht wie ich das am besten unterbringen soll ... ?

    Wie bringe ich das jetzt in eine "if-struktur" ?

    MFG



  • oh man, jetzt wir mir das langsam zu blöd hier

    void __fastcall TfrmMain::D1Click(TObject *Sender) 
    { 
    ErgebnisButtonClick (Sender);   
    } 
    void __fastcall TfrmMain::T1Click(TObject *Sender) 
    { 
    ErgebnisButtonClick (Sender);   
    } 
    
    void __fastcall TForm1::ErgebnisButtonClick(TObject *Sender) 
    { 
    TMenuItem *Item = dynamic_cast<TMenuItem*>(Sender);
    if ( !(Item && Item->ClassNameIs("TMenuItem")) ) return;
    if(Item->Name == "K1") 
    { 
    ...
    } 
    else if(Item->Name == "T1")  
    {
    ...
    } 
    }
    


  • Hallo,

    danke funktioniert! Das Problem, das ich jetzt habe ist, dass die "if Anweisungen" in der "if Anweisung" nicht mehr funktionieren. (Das Ergebnis kommt nur durch die Menupunkte (K1 & D1)...

    Die Fett markierte Stelle ist die, die nicht funktioniert (wird nicht ignoriert - passiert überhaupt nichts..)

    [cpp]void __fastcall TForm1::ErgebnisButtonClick(TObject *Sender)
    {
    TMenuItem *Item = dynamic_cast<TMenuItem*>(Sender);
    if ( !(Item && Item->ClassNameIs("TMenuItem")) )
    return;

    // Kreisberechnung
    if(Item->Name == "K1")
    {
    **if(RadioButton1->Checked) // Umfang
    {
    float r = StrToFloatDef(Edit1->Text, 0); // r = Radius (User)
    String Ergebnis = FloatToStr(2 * r * PI);
    Panel1->Caption = Ergebnis;
    StatusBar1->Panels->Items[2]->Text = " Umfang: " + Ergebnis;
    }

    if(RadioButton2->Checked) // Flächeninhalt
    {
    float r = StrToFloatDef(Edit1->Text, 0); // r = Radius (User)
    String Ergebnis = FloatToStr(PI * r * r);
    Panel1->Caption = Ergebnis;
    StatusBar1->Panels->Items[2]->Text = " Flächeninhalt: " + Ergebnis;
    }**}

    }
    else if(Item->Name == "D1")
    {
    **if(RadioButton1->Checked) // Umfang
    {
    float r = StrToFloatDef(Edit1->Text, 0); // r = Radius (User)
    String Ergebnis = FloatToStr(r*r*r); //Nur als Beispiel
    Panel1->Caption = Ergebnis;
    StatusBar1->Panels->Items[2]->Text = " Umfang: " + Ergebnis;
    }

    if(RadioButton2->Checked) // Flächeninhalt
    {
    float r = StrToFloatDef(Edit1->Text, 0); // r = Radius (User)
    String Ergebnis = FloatToStr(PI * r * r) //Nur als Beispiel
    Panel1->Caption = Ergebnis;
    StatusBar1->Panels->Items[2]->Text = " Flächeninhalt: " + Ergebnis;
    }**}
    }
    }[/cpp]

    MFG


Anmelden zum Antworten