Announcement

Collapse
No announcement yet.

Dynamisches Feld von TPanel

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Dynamisches Feld von TPanel

    Hallo erst einmal,

    ich versuche ein dynamisches Array von TPanel-Objekten in einem Panel darzustellen. Doch es erscheint keines....

    void __fastcall TForm1::BuildPanelArray( TControl *wohin, int x, int y, int space )
    {
    if ( x <= 0 && x >= 32 )
    return;
    else if ( y <= 0 && y >= 32 )
    return;
    else
    {
    int startX ( space );
    int endeX ( wohin->Width - space );
    int lengthX( endeX - startX );
    int spaceX ( space * (x-1) );
    int widthX ( (lengthX - spaceX) / x );
    int stepX ( widthX + space );

    int startY ( space );
    int endeY ( wohin->Height - space );
    int lengthY( endeY - startY );
    int spaceY ( space * (y-1) );
    int heightY( (lengthY - spaceY) / y );
    int stepY ( heightY + space );

    for ( int loopX = 0 ; loopX < 32 ; loopX++ )
    {
    for ( int loopY = 0 ; loopY < 32 ; loopY++ )
    {
    if ( fPanel[loopX][loopY] == NULL )
    {
    fPanel[loopX][loopY] = new TPanel(wohin);
    }

    fPanel[loopX][loopY]->Top = startX + (loopX * stepX);
    fPanel[loopX][loopY]->Left = startY + (loopY * stepY);
    fPanel[loopX][loopY]->Width = widthX;
    fPanel[loopX][loopY]->Height = heightY;
    fPanel[loopX][loopY]->Color = clLime;

    fPanel[loopX][loopY]->Visible = ((loopX < x) && (loopY < y)) ? true : false;
    fPanel[loopX][loopY]->Enabled = fPanel[loopX][loopY]->Visible;

    fPanel[loopX][loopY]->Update();
    }
    }
    }
    }

  • #2
    also erst einmal, <b>bitte das nächste mal den code besser einrücken</b>, den das kann man ja kaum lesen!!!

    probier mal deinen neuen <b>tpanel</b> objekten der eigenschaft <b>parent</b> das übergeordnete objekt nochmals zuzuweisen. teilweise hat er probleme damit wenn man es einfach beim aufruf von <b>new</b> mit angibt. also nicht nur so:<br><br><b>TPanel* MyPanel = new TPanel(ParentPanel);</b><br><br>wobei dann parentpanel das übergeordnete sein soll. sondern danach nochmal:<br><br><b>MyPanel->Parent = ParentPanel;</b><br><br>probier das mal!

    bis dann und noch viel spaß

    Comment


    • #3
      hat geklappt, danke..

      Comment

      Working...
      X