Dynamisches Labelarray erstellen



  • Hey, ich wollte während der Laufzeit ein Array von Label und Editfeldern erstellen, aber meins klappt schon beim Label nicht. Ich hab in der Suche schon nachgeschaut und es danach auch gemacht, aber mein Lanel wird einfach nicht angezeigt ...

    Hier der Code:

    //---------------------------------------------------------------------------
    
    #include <vcl.h>
    #pragma hdrstop
    
    #include "start.h"
    #include "Unit2.h"
    #include "Unit3.h"
    //---------------------------------------------------------------------------
    #pragma package(smart_init)
    #pragma resource "*.dfm"
    Tfrm_startPacker *frm_startPacker;
    TLabel *lbl_palCount[50] = {0};
    
    int i = 1;
    
    void __fastcall Tfrm_startPacker::btn_addClick(TObject *Sender)
    {
    	if (lbl_length != "") {
    		lbl_palCount[i] = new TLabel(this);
    		lbl_palCount[i]->Parent = frm_startPacker;
    		lbl_palCount[i]->Left = 10;
    		lbl_palCount[i]->Top = 200;
    		lbl_palCount[i]->Visible = true;
    		lbl_palCount[i]->Caption = "hallo" + IntToStr(i++);
    		edit_length->Text = "hallo?"; //war zum Testen, ob if aufgerufen wird
    	}
    }
    


  • Hallo,

    mir ist nicht ganz klar was Du genau erreichen willst, ich habe es mal ein wenig geändert das überhaupt was passiert.

    TLabel *lbl_palCount[50];
    
    void __fastcall Tfrm_startPacker::Button1Click(TObject *Sender)
    {
      for (int i=1;i<51;i++)
       {
        if (lbl_length->Caption != "") {          // Vergleich geändert
            lbl_palCount[i] = new TLabel(this);
            lbl_palCount[i]->Parent = frm_startPacker;
            lbl_palCount[i]->Left = 10;
            lbl_palCount[i]->Top = 15*i;
            lbl_palCount[i]->Visible = true;
            lbl_palCount[i]->Caption = "hallo" + IntToStr(i);  //i++ an der Stelle?
            edit_length->Text = "hallo?"; //war zum Testen, ob if aufgerufen wird
        }
       }
    }
    

    Gruß myerscola



  • Oh Gott bin ich dumm! Ich vergleiche ja die Caption gar nicht! Ich mach aber irgendwie immer so bescheuerte Sachen ^^ Auch wenn ich erst seit 2 Tagen mit dem C++ Builder ...
    Jetzt weiß ich wenigstens, warum ich nix gesehen habe 🙂 Danke!

    Also eigentlich hatte ich einen Button, der bei jedem Drücken eine neue Reihe von Labels erstellt, deshalb hatte ich keine for-schleife drin 😉


Log in to reply