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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 aussi
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 c->Pen->Color=cbBlack; c->MoveTo(10, 30); c->LineTo(100, 150);
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
Partager