Witam,
Próbuję zrobić komponent dziedziczący z TRichEdit, który dodatkowo ma pasek TToolBar z przyciskami do formatowania tekstu.
Zrobiłem coś takiego:
// RichEditFormat.h
class PACKAGE TRichEditFormat : public TRichEdit
{
private:
TToolBar *TTBFormatowanie;
protected:
public:
__fastcall TRichEditFormat(TComponent* Owner);
__fastcall ~TRichEditFormat(void);
__published:
__property TToolBar *Formatowanie = {read = TTBFormatowanie, write = TTBFormatowanie};
};
// TRichEditFormat.cpp
static inline void ValidCtrCheck(TRichEditFormat *)
{
new TRichEditFormat(NULL);
}
//---------------------------------------------------------------------------
__fastcall TRichEditFormat::TRichEditFormat(TComponent* Owner)
: TRichEdit(Owner)
{
TToolButton *ttb = NULL;
if(TTBFormatowanie != NULL) {
// Przycisk wyrownanie do lewej
ttb = new TToolButton(TTBFormatowanie);
ttb->Parent = TTBFormatowanie;
ttb->Grouped = true;
ttb->Style = tbsCheck;
ttb->Caption = "Lewa";
// ... Dodawanie innych przyciskow
};
}
//---------------------------------------------------------------------------
namespace RicheditFormat
{
void __fastcall PACKAGE Register()
{
TComponentClass classes[1] = {__classid(TRichEditFormat)};
RegisterComponents("Standard", classes, 0);
}
}
//---------------------------------------------------------------------------
I problem polega na tym, że po dodaniu do formy komponentu ToolBara i TRichEditFormatowanie, ustawiam w TRichEditFormatowanie właściwość Formatowanie na TToolBar1 i w konstruktorze TRichEditFormatowanie właściwość Formatowanie i TTBFormatowanie są równe NULL. Dopiero później ustawiane są na adres ToolBar-a dodanego do formy.
W którym miejscu komponentu powinienem tworzyć przyciski na ToolBar ?
--
Pozdrawiam,
Jacek Q.