POINTS DE DIFFÉRENTS DIAMÈTRES ET COULEURS AVEC LA MÉTHODE ELLIPSE DE TCANVAS

japee Messages postés 1727 Date d'inscription vendredi 27 décembre 2002 Statut Modérateur Dernière intervention 6 novembre 2021 - 1 mai 2005 à 18:15
cs_ManChesTer Messages postés 374 Date d'inscription vendredi 20 octobre 2000 Statut Modérateur Dernière intervention 15 janvier 2021 - 4 mai 2005 à 11:43
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/31125-points-de-differents-diametres-et-couleurs-avec-la-methode-ellipse-de-tcanvas

cs_ManChesTer Messages postés 374 Date d'inscription vendredi 20 octobre 2000 Statut Modérateur Dernière intervention 15 janvier 2021
4 mai 2005 à 11:43
Japee,

Rassure-toi, je me suis douté que c'etais de l'inatention, ca nous arrive à tous, surtout quand on bosse trops, il n'y a pas de honte à ca.

Une bonne astuce pour eviter se genre de probleme est de relire le code à tete reposée, ca permet souvent de trouvé des erreurs idiotes ou des oublis, c'est normal ....

Encore un chipo (pour le fun) :

procedure StockeTTabPoints(Canvas: TCanvas; PX, PY: Word; Diam: Byte; Color: TColor);
begin
SetLength(TTabPoints, Succ(LongTab));
with TTabPoints[LongTab] do
begin
Cnvs := Canvas;
X := PX;
Y := PY;
D := Diam;
Col := Color;
end;
Inc(LongTab);
end;

Bon Coding...

ManChesTer.
japee Messages postés 1727 Date d'inscription vendredi 27 décembre 2002 Statut Modérateur Dernière intervention 6 novembre 2021 8
4 mai 2005 à 01:44
Exact !

De même, maintenant que tu as attiré mon attention dessus, pareil ici :

procedure InitialiseTTabPoints;
begin
with TForm1 do // <- inutile !
begin
SetLength(TTabPoints, 0);
LongTab := 0;
end;
end;

Honte à moi, mais bon, j'ai bossé un peu vite sur ce code.

J'essaierai dorénavant à l'avenir de ne plus recommencer...

Sniff...

Si tu continues à chipoter comme ça, je vais être obligé de tout refaire morceau par morceau, lol :-p

Bon coding à toi...

japee
cs_ManChesTer Messages postés 374 Date d'inscription vendredi 20 octobre 2000 Statut Modérateur Dernière intervention 15 janvier 2021
3 mai 2005 à 23:23
Note aussi que

procedure StockeTTabPoints(Cnvs: TCanvas; X, Y: Word; D: Byte; Col: TColor);
begin
with TForm1 do <== sert a rien....
begin
SetLength(TTabPoints, Succ(LongTab));
TTabPoints[LongTab].Cnvs := Cnvs;
TTabPoints[LongTab].X := X;
TTabPoints[LongTab].Y := Y;
TTabPoints[LongTab].D := D;
TTabPoints[LongTab].Col := Col;
Inc(LongTab);
end;
end;

Mais c'est toujours du chipotage.

Bon Coding....

ManChesTer.
japee Messages postés 1727 Date d'inscription vendredi 27 décembre 2002 Statut Modérateur Dernière intervention 6 novembre 2021 8
3 mai 2005 à 22:16
Merci pour ton appréciation, Manchester.

J'aimes bien quand tu chipotes, ça m'apprend toujours quelque chose ;)

Bon coding à toi...

japee
cs_ManChesTer Messages postés 374 Date d'inscription vendredi 20 octobre 2000 Statut Modérateur Dernière intervention 15 janvier 2021
3 mai 2005 à 21:36
Pas mal japee, cependant,

j'aurais plutot ecrit :

procedure StockeTTabPoints(Cnvs: TCanvas; X, Y: Word; D: Byte; Col: TColor);
begin
with TForm1 do
begin
SetLength(TTabPoints, Succ(LongTab));
TTabPoints[LongTab].Cnvs := Cnvs;
TTabPoints[LongTab].X := X;
TTabPoints[LongTab].Y := Y;
TTabPoints[LongTab].D := D;
TTabPoints[LongTab].Col := Col;
Inc(LongTab);
end;
end;

procedure DessinePoint(Cnvs: TCanvas; X, Y: Word; D: Byte; Col: TColor;
const Add: Bool = False);
var R: Byte;
begin
if D < 1 then Exit;
with cnvs do
begin
R := D shr 1;
Pen.Color := Col;
Brush.Color := Col;
Dec(X,R);
Dec(Y,R);
Ellipse(X, Y, X + D, Y + D);
end;
if Add then
StockeTTabPoints(Cnvs, X, Y, D, Col);
end;

Mais c'est du chipotage, lol

Bon Coding....

ManChesTer.
japee Messages postés 1727 Date d'inscription vendredi 27 décembre 2002 Statut Modérateur Dernière intervention 6 novembre 2021 8
1 mai 2005 à 22:03
Oui, Kenavo, lol ;)

Mais bon, la "pairfection" n'étant pas de ce monde...
cs_Kenavo Messages postés 702 Date d'inscription vendredi 21 mars 2003 Statut Membre Dernière intervention 1 octobre 2009 5
1 mai 2005 à 21:59
Si j'ai pu t'éviter un impair ..... :-))
japee Messages postés 1727 Date d'inscription vendredi 27 décembre 2002 Statut Modérateur Dernière intervention 6 novembre 2021 8
1 mai 2005 à 21:52
Merci, ni69 :-)
ni69 Messages postés 1418 Date d'inscription samedi 12 juin 2004 Statut Membre Dernière intervention 5 juillet 2010 12
1 mai 2005 à 19:17
Objectif parfaitement rempli japee ;)
Bravo !
japee Messages postés 1727 Date d'inscription vendredi 27 décembre 2002 Statut Modérateur Dernière intervention 6 novembre 2021 8
1 mai 2005 à 18:15
Et merci à Kenavo sans qui j'aurais négligé les chiffres impairs pour le diamètre des points.

Car pourquoi, en effet ?

Je pense que j'étais motivé par d'obscures considérations, tenant plus de l'ostracisme le plus perverti que d'arguments réellement défendables.

J'en demande pardon aux jurés ainsi qu'aux familles des victimes...

(Pardon pour ce délire :-p)
Rejoignez-nous