Chers tous,
j'ai un formulaire comprenant plusieurs TPanel (alignés sur alClient).
Un de ces tpanel (nommé PanCompare) comprend un autre TPanel (alTop) et un TPaintBox(aligné sur alClient, nommé Painting).
Je mets ce panel en avant-plan dans le formulaire puis et je voudrais "dessiner" sur le canvas du TPaintBox, sur base du contenu d'un TList:
dans le .h, section protected, il y a:Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 void __fastcall TForm1::Button1Click(TSender *Sender) { PanCompare->BringToFront(); Draw(); } void __fastcall TForm1 :: Draw() { int i; CWayAssistantObjectToDraw *r; Painting->Invalidate(); for (i=0; i<m_lControls->Count; i++) { r=(CWayAssistantObjectToDraw *)m_lControls->Items[i]; r->Draw(Painting->Canvas); } }
Malheureusement:Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 TList *m_lControls; class CWayAssistantObjectToDraw { public: TPoint x,y; AnsiString sText; char cType; TColor Color; void Draw(TCanvas *c) { if (cType=='L') // trace une ligne { c->Pen->Color=Color; c->MoveTo(x.x, x.y); c->LineTo(y.x, y.y); } else // écrit un texte { c->Font->Color=Color; c->TextOut(x.x,x.y, sText); } } }; *********************************************
En mode debug, je vois qu'il fait
et aussiCode:
1
2
3 c->Pen->Color=cbBlack; c->MoveTo(10, 30); c->LineTo(100, 150);
Code:
1
2 c->Font->Color=clRed; c->TextOut(10,10, "line 1");
Mais RIEN n'est dessiné sur mon TPaintBox....
Quelqu'un peut me dire pourquoi?
Merci,
Alain