automatisches erstellen von Shapes



  • Hallo,

    ich möchte gern ein Raster erstellen mit Shapes. Die Größe des Rasters ist variabel. Wenn ich nun z.B. sage das Raster ist 4x4, wie kann ich dann die Instanzen von TShape erzeugen? Das mit der Positionierung und Größe der einzelnen Rasterpunkte bekomme ich dann schon hin. Kann ich dann irgendwie ein Array von TShapes erstellen?



  • Hier mal eine ganz banale Lösung, die Werte musst Du halt Deinen Bedürfnissen anpassen, ebenfalls die weiteren Eigenschaften:

    im Header

    private: 	// Anwender-Deklarationen
            TShape *ShapeArray[16];
    
    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
       for( int i=0; i<16; i++)
                 {
                    if(i>-1 && i<4)
                     {
                       ShapeArray[i] = new TShape(this);
                       ShapeArray[i]->Parent = this;
                       ShapeArray[i]->Height= 8;
                       ShapeArray[i]->Width = 8;
                       ShapeArray[i]->Top=20+8*i;
                       ShapeArray[i]->Left=40;
                     }
                    else if(i>3 && i<8)
                     {
                       ShapeArray[i] = new TShape(this);
                       ShapeArray[i]->Parent = this;
                       ShapeArray[i]->Height= 8;
                       ShapeArray[i]->Width = 8;
                       ShapeArray[i]->Top=20+8*(i-4);
                       ShapeArray[i]->Left=48;
                     }
                    else if(i>7 && i<12)
                     {
                       ShapeArray[i] = new TShape(this);
                       ShapeArray[i]->Parent = this;
                       ShapeArray[i]->Height= 8;
                       ShapeArray[i]->Width = 8;
                       ShapeArray[i]->Top=20+8*(i-8);
                       ShapeArray[i]->Left=56;
                     }
                    else if(i>11)
                     {
                       ShapeArray[i] = new TShape(this);
                       ShapeArray[i]->Parent = this;
                       ShapeArray[i]->Height= 8;
                       ShapeArray[i]->Width = 8;
                       ShapeArray[i]->Top=20+8*(i-12);
                       ShapeArray[i]->Left=64;
                     }
                 }
    }
    

    Gruß myerscola



  • Hallo myerscola,

    vielen Dank so bekomme ich es hin.


Anmelden zum Antworten