GUI - Array von Shapes erzeugen

Wir müssen für die Schule momentan Mastermind programmieren (ich gehe jetzt einfach mal davon aus, das dieses Spiele alle kennen). Dafür habe ich mir erstmal eine Klasse für eine Reihe gebastelt (4x farbige Knöpfe und 4x Bewertungsknöpfe) mit noch ein paar zusätzlichen Variablen. Bei den Knöpfen habe ich mich für TShape entschieden, da man bei diesem Objekt die Form ganz leicht in einen Kreis ändern kann.
Da ich mehrere Shapes brauch, habe ich mir 2 mal 4-Arrays dafür erzeugt und mit new den Speicher im Konstruktor zugewiesen. Danach werden im Konstruktor noch die ganzen restlichen Attribute festgelegt.
Mein Problem ist jetzt aber, dass ich bei einem OnClick-Ereignis auf einen Button probehalber einmal eine Instanz von diesem Objekt erzeugt habe, damit ich mir die schönen Kreise einmal ansehen kann. Sie waren aber nicht vorhanden.
Meine Frage lautet deshalb: wie bekomme ich die Dinger sichtbar?

Ich poste vorsichtshalber auch noch den Konstruktor:
Code:
//Konstruktor
CReihe::CReihe(int position)
{       pos=position;
        for (int i=0; i<4; i++)
        {       //Integer initialisieren
                farbe [i]=0;
                bewertung [i]=0;

                //Speicher für die Kreise reservieren
                knoepfe[i]=new TShape (Form1);
                bewertungsknoepfe[i]=new TShape (Form1);

                //Kreise initialisieren
                //Form
                knoepfe[i]->Shape=stCircle;
                bewertungsknoepfe[i]->Shape=stCircle;
                //Enabled
                knoepfe[i]->Enabled=true;
                bewertungsknoepfe[i]->Enabled=true;
                //Höhe
                knoepfe[i]->Height=50;
                bewertungsknoepfe[i]->Height=15;
                //Breite
                knoepfe[i]->Width=50;
                bewertungsknoepfe[i]->Width=15;
                //Sichtbarkeit
                knoepfe[i]->Visible=true;
                bewertungsknoepfe[i]->Visible=true;
                //Align
                knoepfe[i]->Align=alNone;
                bewertungsknoepfe[i]->Align=alNone;
                /*//Anker
                knoepfe[i]->Anchors->akLeft=true;
                bewertungsknoepfe[i]->Anchors->akLeft=true;
                knoepfe[i]->Anchors->akTop=true;
                bewertungsknoepfe[i]->Anchors->akTop=true;
                knoepfe[i]->Anchors->akRight=false;
                bewertungsknoepfe[i]->Anchors->akRight=false;
                knoepfe[i]->Anchors->akBottom=false;
                bewertungsknoepfe[i]->Anchors->akBottom=false; */
                //Farben
                knoepfe[i]->Brush->Color=clWhite;
                bewertungsknoepfe[i]->Brush->Color=clWhite;
                //Position
                knoepfe[i]->Left=150+60*i;
                bewertungsknoepfe[i]->Left=400+17*i;
                knoepfe[i]->Top=50+pos*70;
                bewertungsknoepfe[i]->Top=50+pos*70;
                //Name
                knoepfe[i]->Name="Knopf" + IntToStr(i);
                bewertungsknoepfe[i]->Name="Bewertung" + IntToStr(i);
          }
}//Ende Konstruktor

Edit: Vielleicht hilft die Info ja: C++ Builder 6 unter XP

Edit: Problem gelöst: Es gibt auch noch das Attribut parent, welchem die Form zugewiesen werden muss.
Übrigens bin ich jetzt zur Erkenntnis gekommen, das ich einfach die Frage falsch gestellt hatte. So etwas wie: Objekte zur Laufzeit erstellen oder etwas ähnliches wäre passender gewesen.
 
Zurück
Oben