Bonjour.
je cherche comment agir sur le canvas d'une TForm à partir d'une méthode d'un class qui de dérive pas de la TForm.
Faut il passer la TForm comme paramètre de la méthode.
Si quelqu'un a un exemple, il serait le bien venu.
Merci de votre aide
Version imprimable
Bonjour.
je cherche comment agir sur le canvas d'une TForm à partir d'une méthode d'un class qui de dérive pas de la TForm.
Faut il passer la TForm comme paramètre de la méthode.
Si quelqu'un a un exemple, il serait le bien venu.
Merci de votre aide
Bonjour,
Il me semble que c'est plus direct et plus réutilisable de passer seulement le canvas que son conteneur (Le TForm). Mais ça marcherait aussi bien.
Ce qui donnerait quelque chose comme
Bien sûr, la procedure Dessine sera plus probablement la méthode d'un objet dont elle utilisera les propriétés, et/ou elle aura plus de paramètres.Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 procedure Dessine ( const Canvas : TCanvas ); begin Canvas.Moveto ( 0, 100 ); Canvas.LineTo ( 100, 100 ); end; procedure Dessine ( const Form : TForm ); overload; begin Form.Canvas.Moveto ( 0, 100 ); Form.Canvas.LineTo ( 100, 100 ); end; procedure TForm1.Button1Click(Sender: TObject); begin Dessine ( Canvas ); Dessine ( Self ); // fait la même chose end;
Ceci dit, je ne pense pas que ce soit une bonne idée de dessiner directement sur le canvas de la Form. Je mettrais une TImage ou une TPaintBox sur la Form, et je dessinerais dans leur canvas.
Merci de ton aide.
Effectivement il es plus judicieux de ne pas dessiner directement dans la Form.