Drukowanie

0

W Builderze mam na formie komponent TPanel koloru białego i na nim umieszczam inne komponenty, np. labele z jakimiś tekstami. Napiszcie jak wydrukować zawartość samego Panelu (tego co się na nim znajduje) a nie całej formy.

0

NIE PRÓBOWAŁEM TEGO! Wiem, że sposób poniższy jest więcej niż nieekonomiczny, ale jest:) . Jak mówiełem nie wiem, czy to zadziała, bo mi się niechce drukarki sieciowej instalować. Jeżeli jedneak zadziała, to wydrukowany obraz może być troszkę (5px?) przesunięty w dół i w prawo od prawdziwego wyglądu panela (sprawdzałem na TImage)

void __fastcall TForm1::Button1Click(TObject *Sender)
{
Printer()->BeginDoc();
int x=10, y=10; //współrzędne panel na kartce
TCanvas &PulpitCanvas = *new TCanvas();
PulpitCanvas.Handle = GetDC(0);
int L = Form1->Left+(Form1->Width-Form1->ClientWidth)+Panel1->Left;
int R = Form1->Left+(Form1->Width-Form1->ClientWidth)+Panel1->Left+Panel1->Width - (Panel1->Width-Panel1->ClientWidth);
int G = Form1->Top+(Form1->Height-Form1->ClientHeight)+Panel1->Top;
int D = Form1->Top+(Form1->Height-Form1->ClientHeight)+Panel1->Top+Panel1->Height;
Printer()->Canvas->CopyRect(Rect(x,y,x+(R-L),y+(D-G)),&PulpitCanvas,Rect(L,G,R,D));
delete &PulpitCanvas;
Printer()->EndDoc();
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1