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
3832
Date d'inscription
vendredi 23 juillet 2004
Statut
Modérateur
Dernière intervention
17 février 2022
48
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