Panel designen und vervielfältigen



  • Hallo zusammen,
    ich habe eine Frage bezüglich C++ Builder. Wenn ich ein Fenster zur Entwurfszeit gestallte kann ich später von diesem Fenster beliebig viele Duplikate erzeugen. Mich interessiert ob ich nicht genau denselben Verhalten bei einem Panel erreichen kann? Das duplizierte Panel muss dabei alle VCL-Objekte wie zur Entwurfszeit beinhalten.

    Ist das überhaupt Möglich?

    Ich bin für jede Bemerkung dankbar!
    Mit freundlichen Grüßen
    coder24h



  • Wenn du vom Panel ableitest wie das beim Formular geschieht, dann bestimmt...



  • brauchst du vielleicht sowas?

    hiermit erstellst du 8x8 panels

    vieleicht hift es dir ja weiter

    greetz

    //globale variable
    TPanel* Panels[MAXY][MAXX];  //array zum erstellen der Panels // maxy maxx sind constante variablen
    
    for (int y=0; y<MAXY; y++){ //Schleife, um  Panels dynamisch zu erstellen
        for(int x=0; x<MAXX; x++){
            Panels[y][x] = new TPanel(this); //erstellt ein neues Panel
            Panels[y][x]->Parent = this; //ordnet das Label dem Hauptformular zu
            Panels[y][x]->Top = 100 + 31*y; //Abstand zum oberen Fensterrand
            Panels[y][x]->Left = 250 + 31*x; //Abstand zum linken Fensterrand
            Panels[y][x]->Width = 30; //Panel-Breite
            Panels[y][x]->Height = 30; //Panel-Höhe
            Panels[y][x]->AutoSize = false; //feste Panel-Breite
            Panels[y][x]->Caption = IntToStr(y) + IntToStr(x); //Text ins Panelfeld
            Panels[y][x]->Color = clWhite;  //Panel-FDarbe
        }
      }
    


  • Hallo

    direkt TPanel dynamisch erstellen ist aber meistens ineffektiv, denn dann muß man ja die Buttons u.a. auch noch extra reinschreiben.

    Der beste Weg ist wie von junix geschrieben einmal eine Klasse von TPanel zu erstellen, dort die Buttons fest integrieren und dann diese Klasse dynamisch zu instanzieren.

    bis bald
    akari



  • Klingt als wäre es Zeit für einen weiteren glorreichen Einsatz von TFrame.
    Ich denke unterm Strich ist es das, was coder24h sucht.

    Schönes Wochenende zusammen.



  • Dankeschön für Ihre Anteilname!
    Wenn ich eine Klasse von meinem Panel erzeuge ist die Komponente Panel unsichtbar, und die ganzen Objekte müssen manuell bzw. zur Laufzeit positioniert werden, gerade das wollte ich vermeiden da sehr viele unterschiedliche Komponenten integriert werden müssen.
    Mit TFrame habe ich noch nicht gearbeitet, sollte man diese Komponente vermeiden?



  • TFrame bringt dieses Verhalten mit, ich bedanke mich bei allen!
    *
    Vielen Dank
    coder24h*
    🙂



  • Hallo

    Wenn ich eine Klasse von meinem Panel erzeuge ist die Komponente Panel unsichtbar, und die ganzen Objekte müssen manuell bzw. zur Laufzeit positioniert werden

    Soetwas kann man alles in der Klasse festlegen, da kommst du so oder so nicht drum, wenn du dynamisch arbeiten willst.
    Und was da unsichtbar sein soll, weiß ich jetzt nicht.

    TFrame ist schon in Ordnung. Ich denke aber, für ein Panel alleine brauchst du kein Frame (wenn du nicht den OI zum Button-Positionierung nehmen willst).
    Trame ist sinnvoll, wenn du ganze Fenster-Teile wiederverwenden willst.

    bis bald
    akari


Anmelden zum Antworten