Probleme mit Darstellung von Komponenten in neuer Form
-
Ich erzeuge ein Fenster mit folgendem Code, was problemlos funktioniert.
void __fastcall TMain::CreateDBButtonClick(TObject *Sender) { CreateDB = new TCreateDB(this); CreateDB->Show(); Main->Enabled = false; }
wenn ich aber dann in dieser Form dynamische Elemente erstellen will, werden diese nicht angezeigt.
//Header ... DynamicArray<TLabel*> labels; DynamicArray<TEdit*> edits; //... __fastcall TCreateDB::TCreateDB(TComponent* Owner) : TForm(Owner) { int amount = StrToInt(CreateDB->EFeat->Text); CreateDB->Base = new int[amount]; labels.Length = amount; edits.Length = amount; for(int i=0; i<amount; i++) { labels[i] = new TLabel(this); edits[i] = new TEdit(this); labels[i]->Parent = FBaseInput; labels[i]->Top = 12 + 10 * i; labels[i]->Left = 20; labels[i]->Width = 40; labels[i]->Height = 13; labels[i]->Visible = true; labels[i]->Caption = IntToStr(i + 1) + ". Base"; labels[i]->Show(); edits[i]->Parent = FBaseInput; edits[i]->Text = 1024; edits[i]->Top = 10 + 10 * i; edits[i]->Left = 30; edits[i]->Height = 21; edits[i]->Width = 121; edits[i]->Visible = true; edits[i]->Show(); } }
Wenn ich den gleichen Code im Main Frame beim Erzeugen einfüge, funktioniert alles perfekt. Was habe ich vergessen?
-
Der Fehler ist:
labels[i]->Parent = this;
-
Einmal reicht, danke!