Zugriff auf dienamisch generierte Objecte? (Listbox)



  • edit:
    Habe gerade auf der suche nach "align" in der bcb hilfe zufällig ein Beispiel gefunden das ich eben auf der suche nach "new TTabSheet" oder so nicht gefunden habe.

    Natürlich kann jeder seinen Senf dazugeben...ich elrn ja nie aus. 😉

    Den Code editier ich sobald ich fertig bin.

    //jedesmal wenn eins Team gefunden wurde Sheet zum Page Control dazu
            TTabSheet *pPage = new TTabSheet(TeamPageControl);
            pPage->PageControl = TeamPageControl;
            pPage->Caption = AnsiString("Team") + IntToStr(teamcount+1);
            pPage->Name = AnsiString("TeamPageTab") + IntToStr(teamcount+1);
    
          //und ne Listbox in den Sheet
            TListBox *myListbox = new TListBox(pPage);
            myListbox->SetBounds(0,0, pPage->Width, pPage->Height);
            myListbox->Parent = pPage;
            myListbox->Name = AnsiString("ListBoxTeam") + IntToStr(teamcount+1);
            myListbox->Items->Add(IntToStr(teamcount+1));
            teamcount++;
    

    Hi,
    ich habe ein PageControl in das mit obigem Code eine Sheet und ins Sheet eine Listbox erstellen will.

    Der Code oben funktioniert soweit einwandfrei nur leider weiss ich nicht wie ich die Listboxen bzw. den Sheet von ausserhalb befüllen kann.
    Die Zuweisung myListbox->Name = blah; ermöglicht leider kein blah->Items->Add(); oder andere Funktionen wie ich mir das erhofft habe.

    Ich schätze das läuft auf arrays hinaus aber meine array versuche sind glatt in die Hose gegangen.

    Die ganze Procedur wird von einem Button gestartet. Falls der Button aber 2x betätigt wird gibt es einen Absturtz da die Objecte schon vorhanden sind. Was kann ich da machen?

    Wäre nett wenn mir jemand auf die Sprünge helfen könnte.



  • Hallo

    siehe BCB-FAQ hier im Forum, Abschnitt Komponenten benutzen

    bis bald
    akari



  • yoar das habe ich mittlerweile schon probiert, ergibt genau das gleiche Problem wie bei der Variante mit normalen Arrays (aus der Bcb Hilfe)

    TListBox * TeamListBox[18];
    TTabSheet * TeamSheets[18];
    
    if(irgendwas){
            TeamSheets[teamcount+1]= new TTabSheet(TeamPageControl);
            TeamSheets[teamcount+1]->PageControl = TeamPageControl;
            TeamSheets[teamcount+1]->Caption = AnsiString("Team") + IntToStr(teamcount+1);
            TeamSheets[teamcount+1]->Name = AnsiString("TeamPageTab") + IntToStr(teamcount+1);
    
            TeamListBox[teamcount+1]= new TListBox(TeamSheets[teamcount+1]);
            TeamListBox[teamcount+1]->Parent = TeamSheets[teamcount+1];
            TeamListBox[teamcount+1]->Align = alClient;
            TeamListBox[teamcount+1]->Name = AnsiString("ListBoxTeam") + IntToStr(teamcount+1);
            teamcount++;
    }
            [b]TeamListBox[1]->Items->Add("test in box 1");[/b]  //Zugriffsverletzung ;/
    .
    .
    .
    

    Das Erstellen etc. funktioniert einwandfrei.

    Das Problem ist das ich hiermit nicht Zugreifen kann....Crash wgn. Zugriffsverletzung etc.

    jemand Plan?


Anmelden zum Antworten