Komponenten zur Laufzeit erzeugen E2313



  • Hallo,

    ich muß in meinem Programm mehrere RadioButton zur Laufzeit erzeugen.
    Habe mir das Beispiel aus der FAQ genommen, klappt auch wunderbar.
    So sieht das bei mir aus:

    TRadioButton *NeuerRadioButton[Waagenanzahl];
        for (int i = 0; i < Waagenanzahl; i++)
        {
          NeuerRadioButton[i] = new TRadioButton(this);
          NeuerRadioButton[i]->Top = Waage1RadioButton->Top +((i+1)*17);
          NeuerRadioButton[i]->Left = Waage1RadioButton->Left;
          NeuerRadioButton[i]->Height = Waage1RadioButton->Height;
          NeuerRadioButton[i]->Width = Waage1RadioButton->Width;
          NeuerRadioButton[i]->Tag = Waage1RadioButton->Tag+i+1;
          NeuerRadioButton[i]->Parent = this;
          NeuerRadioButton[i]->Caption = "Waage &" + IntToStr(i+2);
          NeuerRadioButton[i]->Hint = "Anwahl der Waage " + IntToStr(i+2);
          NeuerRadioButton[i]->ShowHint = true;
          NeuerRadioButton[i]->Name = "Waage" + IntToStr(i+2);
          NeuerRadioButton[i]->OnClick = Waage1RadioButtonClick;
          NeuerRadioButton[i]->Show();
        }
    

    Das Blöde ist nur, daß irgendwo im Programm erst festgelegt wird wie groß Waagenanzahl ist.
    D.h. bei Programmstart wird in einer ini-Datei die Anzahl festgelegt.
    Also dies:

    const int Waagenanzahl = 5;
    

    geht nicht.

    Ich bekomme ständit den Fehler E2313 Konstantenausdruck erforderlich.
    Wie bekomme ich eine Variable Anzahl der Komponenten hin?
    Danke



  • Hi,
    schau mal in der Hilfe unter vector und in dem Zusammenhang unter push_back()!

    Alexander Sulfrian

    PS. Es geht auch list o.ä.



  • Siehe FAQ, "Komponenten - dynamische arrays ..."



  • Super, danke an Euch beide.

    Jetzt gehts.


Anmelden zum Antworten