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!


Anmelden zum Antworten