Komponente zur laufzeit erzeugen
-
ich erzeuge durch
TCheckBox *cbAgregate[30];ein Komponenten arry in der .h datei
in der cppAnzahlAgregate = AgregateListe->Count; for (int x = 0; x<AnzahlAgregate; x++) { cbAgregate[x] = new TCheckBox(this); cbAgregate[x]->Parent = Form1; cbAgregate[x]->Left = 24; cbAgregate[x]->Top = 100+x*16; cbAgregate[x]->Caption = AgregateListe->Strings[x]; cbAgregate[x]->Checked = iniMaschinenDaten->ReadBool(comboMaschinen->Items->Strings[cbMaschinen->ItemIndex], cbAgregate[x]->Caption, false); }und
void __fastcall TForm1::FormDestroy(TObject *Sender) { for (int x = 0; x<AnzahlAgregate; x++) { delete cbAgregate[x]; } } //---- TStringList *AgregateListe = new TStringList;und jetzt zu meiner frage:
mit TCheckBox *cbAgregate[30]; reserviere ich ja speicher für 30 CheckBoxe.
kann ich nicht zuerst die TStringList über -> Count Abfragen und dan entsprechend Speicher reservieren?
zB:AnzahlAgregate = AgregateListe->Count; TCheckBox *cbAgregate[AnzahlAgregate];
-
Hallo
dazu brauchst du entweder DynamicArray (die einfache VCL-Variante) oder std::vector (die Standart-C++ Variant).
Beides sollte im Forum und BCB-Hilfe ausreichend erklärt sein./Edit : Da hab ich wohl Standard falsch geschrieben... peinlich
bis bald
akari
-
danke für die antwort.. ich werde mich da mal weiter informieren..
-
Siehe FAQ, "Komponenten benutzen - dynamische Arrays".