Grafika
2.08.1999
  • Rysowanie na obiektach, które nie posiadają Canvas.

       Obiekty takie, jak na przykład TPanel, nie posiadają właściwości Canvas. Więc co mamy robić, gdy chcemy coś na panelu narysować? Sprawa jest całkiem prosta i sprowadza się do stworzenia obiektu TControlCanvas i ustawienia jego właściwości Control na żądaną kontrolkę.

//W pliku nagłówkowym

TControlCanvas *CCanvas;

// W pliku źródłowym

__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
    CCanvas = new TControlCanvas;
    CCanvas->Control = Panel1;
}
//---------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)
{
 //narysujemy wypełniony czerwony prostokąt
 CCanvas->Brush->Color = clRed;
 TRect panel(10, 10, Panel1->Width - 10, Panel1->Height - 10);
 CCanvas->FillRect(panel);
 //i napiszemy jakiś tekst...
 CCanvas->Font->Size = 24;
 CCanvas->Font->Color = clYellow;
 CCanvas->TextRect(panel, 10, 10, "A teraz piszemy na panelu!");
}