POINTS DE DIFFÉRENTS DIAMÈTRES ET COULEURS AVEC LA MÉTHODE ELLIPSE DE TCANVAS
japee
Messages postés1727Date d'inscriptionvendredi 27 décembre 2002StatutModérateurDernière intervention 6 novembre 2021
-
1 mai 2005 à 18:15
cs_ManChesTer
Messages postés374Date d'inscriptionvendredi 20 octobre 2000StatutModérateurDernière intervention15 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.
cs_ManChesTer
Messages postés374Date d'inscriptionvendredi 20 octobre 2000StatutModérateurDernière intervention15 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és1727Date d'inscriptionvendredi 27 décembre 2002StatutModérateurDernière intervention 6 novembre 20218 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és374Date d'inscriptionvendredi 20 octobre 2000StatutModérateurDernière intervention15 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és1727Date d'inscriptionvendredi 27 décembre 2002StatutModérateurDernière intervention 6 novembre 20218 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és374Date d'inscriptionvendredi 20 octobre 2000StatutModérateurDernière intervention15 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és1727Date d'inscriptionvendredi 27 décembre 2002StatutModérateurDernière intervention 6 novembre 20218 1 mai 2005 à 22:03
Oui, Kenavo, lol ;)
Mais bon, la "pairfection" n'étant pas de ce monde...
cs_Kenavo
Messages postés702Date d'inscriptionvendredi 21 mars 2003StatutMembreDernière intervention 1 octobre 20095 1 mai 2005 à 21:59
Si j'ai pu t'éviter un impair ..... :-))
japee
Messages postés1727Date d'inscriptionvendredi 27 décembre 2002StatutModérateurDernière intervention 6 novembre 20218 1 mai 2005 à 21:52
Merci, ni69 :-)
ni69
Messages postés1418Date d'inscriptionsamedi 12 juin 2004StatutMembreDernière intervention 5 juillet 201012 1 mai 2005 à 19:17
Objectif parfaitement rempli japee ;)
Bravo !
japee
Messages postés1727Date d'inscriptionvendredi 27 décembre 2002StatutModérateurDernière intervention 6 novembre 20218 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...
4 mai 2005 à 11:43
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.
4 mai 2005 à 01:44
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
3 mai 2005 à 23:23
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.
3 mai 2005 à 22:16
J'aimes bien quand tu chipotes, ça m'apprend toujours quelque chose ;)
Bon coding à toi...
japee
3 mai 2005 à 21:36
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.
1 mai 2005 à 22:03
Mais bon, la "pairfection" n'étant pas de ce monde...
1 mai 2005 à 21:59
1 mai 2005 à 21:52
1 mai 2005 à 19:17
Bravo !
1 mai 2005 à 18:15
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)