Référence Canvas

Résolu
cs_Jean_Jean Messages postés 615 Date d'inscription dimanche 13 août 2006 Statut Membre Dernière intervention 13 décembre 2018 - 10 janv. 2007 à 13:04
cs_Jean_Jean Messages postés 615 Date d'inscription dimanche 13 août 2006 Statut Membre Dernière intervention 13 décembre 2018 - 14 janv. 2007 à 09:40
Bonjour,
Je créé un composant dérivant de TgraphicControl qui dessine différentes formes dont je donne un extrait de l'une d'elle, plus bas. J'ai rendu publique une procédure paint qui fait appel à cette fonction, mais je ne suis pas sûr que ce soit la bonne méthode.
 Je souhaiterai supprimer la référence à Form1, mais je n'ai pas trouvé de solution.
 Dois-je créer un Handle de Canvas, mais comment dire ensuite au composant que le parent de TLed peut être quelconque. Dans la procedure de création de la fiche principale, je déclare bien  aLed.Parent  := Form1; , mais cela ne semble pas indiquer à la procedure Paint du composant que le Canvas de la Form1 est l'endroit où il faut dessiner!!!???!!

procedure TLed.DrawLedCircle(Centre:Tpoint;aDex,aDInt:Byte;ClEx,ClIn:TColor);
  var R : Byte;
begin  
  With Form1.Canvas do
  begin
    Brush.Color := ClEx;
    Pen.Color   := ClEx;
    Pen.Width   := 1;
    R := aDEx div 2;
    Ellipse(Centre.X-R,Centre.Y-R,Centre.X+R,Centre.Y+R);
    ...
  end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  aLed := TLed.create(Self); // création d'1 led de type TLed
  aLed.Parent  := Form1;
...
end;

 Voilà, je m'en remet à vos lumières delphistes.
Merci à vous!

22 réponses

Cirec Messages postés 3833 Date d'inscription vendredi 23 juillet 2004 Statut Modérateur Dernière intervention 18 septembre 2022 50
10 janv. 2007 à 13:42
Salut,

Normalement si ton TLed est dérivé de TGraphicControl il dispose de son propre Canvas ...

Donc
With Canvas Do Begin
...
End;

Devrait suffir
Ce qui aura quand même pour effet au final de dessiner au bon endroit

With Canvas as Owner as TForm do ... Mdr
 
@+
Cirec

<hr size="2" />
3
Rejoignez-nous