Radiobutton und Combobox items kombinieren



  • Hallo habe die Komponenten wie in dem Bild zu sehen ist.

    Ich möchte nun wenn ich Radiobutton suchen auswähle 6 items beim Combobox haben zur Auswahl und wenn ich löschen wähle nur 3. Wie kann ich dies machen?

    http://www.abload.de/thumb/radio_combo59kj.jpg



  • erstelle die Items zur Laufzeit bei der onClick Methode des RadioButtons

    void __fastcall TForm1::RadioButton1Click(TObject *Sender)
    {
      ComboBox1->Clear();
      for (int i=0;i<6;i++)
       {
         ComboBox1->AddItem("Item_"+IntToStr(i+1),0);
       }
    }
    

    und bei dem anderen RadioButton halt die Schleife nur 3 mal.

    Gruß



  • @notloggedin

    Vielen Dank für deine Antwort. Aber wenn ich das so mache wie du es geschrieben hast, ercheint ja nur Item_1.. und die eigentlichen Namen der items werden überschrieben.

    Die items der Combox für suchen sollen folgende sein:

    bitte wählen
    Name
    Vorname
    Geburtsdatum
    Stadt
    Land

    und für löschen lediglich:

    bitte wählen
    Name
    Vorname



  • kein Problem, dann so:

    __fastcall TForm1::TForm1(TComponent* Owner)
            : TForm(Owner)
    {
      item_names[0] = "Name";
      item_names[1] = "Vorname";
      item_names[2] = "Geburtsdatum";
      item_names[3] = "Stadt";
      item_names[4] = "Land";
    }
    //---------------------------------------------------------------------------
    
    void __fastcall TForm1::CheckBox1Click(TObject *Sender)
    {
    
      ComboBox1->Clear();
    
      for (int i=0;i<5;i++)
       {
         ComboBox1->AddItem(item_names[i],0);
       }
      ComboBox1->Text = "bitte wählen";
      ComboBox1->ItemIndex = -1;      //kein Item gewaehlt
    
    }
    //---------------------------------------------------------------------------
    void __fastcall TForm1::CheckBox2Click(TObject *Sender)
    {
      ComboBox1->Clear();
    
      for (int i=0;i<2;i++)
       {
         ComboBox1->AddItem(item_names[i],0);
       }
       ComboBox1->Text = "bitte wählen";
       ComboBox1->ItemIndex = -1;      //kein Item gewaehlt
    }
    

    und das Array als private im Header:

    private:	// Anwender-Deklarationen
            AnsiString item_names[5];   //Array Typ AnsiString
    

    Das "bitte wählen" dürfte ja kein echtes Item sein, deshalb habe ich das als Text eingefügt und den Index auf -1 gesetzt. Die Schleife hat daher nur 5 Durchgänge.



  • @notloggedin

    danke notloggedin hast was gut bei mir


Anmelden zum Antworten