Komponente zur Laufzeit erstellen: Dynamischer Name
-
Hallo!
Ich erzeuge eine Komponente - in diesem Fall TButton - zur Laufzeit.
TButton *Button1 = new TButton(this); Button1->Top = 10; Button1->Left = 10; Button1->Caption = "Caption"; Button1->Parent=this;
Das Problem ist, dass der Name direkt definiert wird.
Ich möchte diesen Vorgang beliebig ausführen, sodass der Name zum Beispiel durch einen String und einem Integer entsteht. Innerhalb einer for-Schleife soll der jeweilige Name kreiert werden.Button + i
Anschließend möchte ich die Buttons außerhalb dieser Funktion benutzen.
Danke im Voraus und Tschö!
-
.... also ich hab das mal so gelöst. Eventuell hilft es weiter.
Gruß
Werner
#include <vcl.h> #pragma hdrstop #include "Unit1.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; TButton *MeinButton[4] = {0}; //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- void __fastcall TForm1::FormCreate(TObject *Sender) { int lft = 10; for (int i = 1;i < 4; i++) { MeinButton[i] = new TButton(this); MeinButton[i]->Parent = Form1; MeinButton[i]->Left = lft; MeinButton[i]->Top = 10 ; MeinButton[i]->Caption = "Button " + IntToStr(i); lft = lft + 100; } } //---------------------------------------------------------------------------
-
Fantastisch! Goldig!
Genau so etwas habe ich gemeint. Ich danke dir!
-
Hallo
Die Lösung mit einem Array hättest du auch in der FAQ hier im Builder-Forum finden können.
bis bald
akari