Создание компонента
Если я делаю свой компонент, что нужно добавить к моему классу, чтобы он имел графический вид. Добавить TCanvas? а что с ним потом делать...
Это если уж так необходимо написать свой компонент. А может, следует оценить альтернативные варианты. Скажем, вместо полноценного компонента использовать Frame, разместить на нём PaintBox и рисовать на его Canvas'е.
Цитата:
Originally posted by Mistake
Если я делаю свой компонент, что нужно добавить к моему классу, чтобы он имел графический вид. Добавить TCanvas? а что с ним потом делать...
Если я делаю свой компонент, что нужно добавить к моему классу, чтобы он имел графический вид. Добавить TCanvas? а что с ним потом делать...
Графические компоненты наследуются от TGraphicControl вроде... Так есть и канва...
Вот как я объявляю функцию Paint
class PACKAGE TBLockCircuit : public TGraphicControl
{
protected:
virtual void __fastcall Paint(void);
.CPP
void __fastcall TBLockCircuit::Paint()
{
TGraphicControl::Paint();
Canvas->Pen->Color=FCBorder;
Canvas->Pen->Style=psSolid;
Canvas->Rectangle(FLeft,FTop,Length*FShale,FShale*Heigth);
Canvas->Brush->Color=FCFill;
Canvas->FillRect(Rect(1,FTop+1,Length*FShale+FLeft-1,FTop*FShale+Heigth-1));
}
Так я создаю объект в тестовом проекте
void __fastcall TForm1::FormCreate(TObject *Sender)
{
Block=new TBLockCircuit(this);
Block->Parent=this;
Block->Left=10;
Block->Top=10;
}
Но на форме ничего не появляется даже функция Paint моего компонента не вызывается.
Как сделать чтоб работало?
Оказывается, что я наследовал от TWinControl, когда делал свои компоненты. Вот нашел один - что-то вроде TEdit: