Neue Komponente von TGraphicControll ableiten
-
Hallo,
habe eine Komponente MyLed von TGraphic Controll abgeleitete und die Methode
Paint überschrieben.#include <Controls.hpp> #include <Classes.hpp> #include <Forms.hpp> //--------------------------------------------------------------------------- class PACKAGE MyLed : public TGraphicControl { private: protected: public: __fastcall MyLed(TComponent* Owner); void __fastcall Paint(void); __published: __property Color; }; //--------------------------------------------------------------------------- #endif #pragma package(smart_init) //--------------------------------------------------------------------------- // ValidCtrCheck wird benutzt, um sicherzustellen, daß die erzeugten Komponenten // keine rein virtuellen Funktionen besitzen. // static inline void ValidCtrCheck(MyLed *) { new MyLed(NULL); } //--------------------------------------------------------------------------- __fastcall MyLed::MyLed(TComponent* Owner) : TGraphicControl(Owner) { Color = clYellow; } //--------------------------------------------------------------------------- namespace Myled { void __fastcall PACKAGE Register() { TComponentClass classes[1] = {__classid(MyLed)}; RegisterComponents("Beispiele", classes, 0); } } //--------------------------------------------------------------------------- void __fastcall MyLed::Paint(void) { Canvas->Rectangle(1,60,1,60); }Zuerst war ich erfreut ein gelbes Rechteck zu gesicht zu bekommen, doch ohne
etwas am SourceCode zu änder ist es plötzlich nicht mehr sichtbar.
Was mache ich hier falsch.
-
versuchs mal mit:
void __fastcall MyLed::Paint(void) { TGraphicControl::Paint(); Canvas->Rectangle(1,60,1,60); }Edit: nach ein paar Tests gehts wahrscheinlich eher mit:
void __fastcall MyLed::Paint(void) { Canvas->Brush->Color = Color; Canvas->Pen->Color = Color; Canvas->Rectangle(1,1,60,60); }außerdem solltest du die Breite und Höhe der Komponente einstellen, da sie sonst mit beiden Werten Null ist
Grüße
Linnea