probleme mit TLabel
-
Hallo,
ich habe folgendes problem. ich habe eine form und 2 klassen. die zweite hab ich selbst angelegt und soll eine TLabel komponente auf die form zeichnen.
ich habe also im header der zweiten klasse unter private geschrieben:
private:
TLabel *lblPunktestand;in der funktion "TKomponente::generiereKomponenten(etliche parameter)" geschrieben:
lblPunktestand = new TLabel(m_form); //m_form ist die Form
lblPunktestand->Top = einer der parameter
lblPunktestand->Left = einer der parameter
lblPunktestand->Caption = "test";leider wird mir die labelkomponente nicht angezeigt. was is da der denkfehler?
gruesse rene
-
also mal genauer beschrieben:
Eigene neue zweite klasse
//--------------------------------------------------------------------------- #pragma hdrstop #include "Unit_Main.h" #include "Unit_Komponenten.h" //--------------------------------------------------------------------------- #pragma package(smart_init) //Konstruktor __fastcall TKomponenten::TKomponenten(TForm *Owner) { m_form = Owner; } //KomponentenBox generieren void __fastcall TKomponenten::generiereKomponenten(int left, int top, int right, int bottom, int lblPunktestandPosTop, int lblPunktestandPosLeft) { //Grundrahmen m_form->Canvas->Rectangle(left, top, right, bottom); //Punktestand anzeigen lblPunktestand = new TLabel(m_form); lblPunktestand->Top = lblPunktestandPosTop; lblPunktestand->Left = lblPunktestandPosLeft; lblPunktestand->Caption = "1000 Punkte"; }automatisch erstellte erste klasse der form
//--------------------------------------------------------------------------- #include <vcl.h> #pragma hdrstop #include "Unit_Main.h" #include "Unit_Komponenten.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- void __fastcall TForm1::FormCreate(TObject *Sender) { //Klasseninstanz von TKomponenten erzeugen komponenten = new TKomponenten(this); } //--------------------------------------------------------------------------- void __fastcall TForm1::FormPaint(TObject *Sender) { //KomponentenBox generieren komponenten->generiereKomponenten(Image1->Width + 20, Image1->Top, Form1->Width - 20, Image1->Top + Image1->Height, Image1->Top + 5, Image1->Width + 25); } //---------------------------------------------------------------------------nix label aufm formular, keine fehlermeldung

gruesse rene
-
Hallo
das übliche Problem...
du must der dynamischen Komponente noch den parent zuweisen//Punktestand anzeigen lblPunktestand = new TLabel(m_form); lblPunktestand->Parent = m_form; // einfügen lblPunktestand->Top = lblPunktestandPosTop; lblPunktestand->Left = lblPunktestandPosLeft; lblPunktestand->Caption = "1000 Punkte";bis bald
akari
-
hallo und danke für die schnelle antwort.
da hab ich auch schon dran gedacht, aber probiert hab ichs natürlich net. als borlandfrischling is man da anfangs etwas erschlagen mit den ganzen methoden.
danke,
gruesse rene
-
besser gesagt ich hatte sogar die hilfe dazu gelesen und mir gedacht, hmmm eigentlich hat das teil ja keine übergeordnete komponente. das die form selbst auch als komponente zählt war mir nicht klar. dachte an sowas wie ne groupbox als übergeodnete komponente.
gruesse rene
-
Hallo
du kannst auch eine GroupBox oder andere von TWinControl abgeleitete Komponenten zuweisen.
bis bald
akari
-
nene, hab ich garnet vor. funzt nu so wie ich das will

danke dir