cincap
Messages postés460Date d'inscriptiondimanche 5 décembre 2004StatutMembreDernière intervention 6 avril 20092 1 oct. 2007 à 13:21
Bonjour à toutes et à tous,
@ Barbichette suite à mon message pour le changement de couleurs de flammes, c'est ok pour moi, j'ai vu après coup qu'il fallait mettre en place le fichier dans Windows pour avoir accès aux paramètres.
A ce sujet, si après un aperçu je décide d'annuler j'obtiens une exception et suis obligé de fermer le processus.
Par contre même problème que sur l'autre source ...
à savoir Fuite de mémoire :(
Le problème vient de cette ligne :
image1.Picture.Bitmap:=tbitmap.create;
tu as créer un Bitmap que tu ne libères jamais
Pour résoudre ce petit problème il suffit simplement de supprimer la ligne en question
et tout fonctionne parfaitement et sans fuites de mémoires. (Tester sous D9 D10)
Ensuite la Variable HPrevInst est désaprouvée
[Pascal Avertissement] flammes.dpr(16): W1000 Symbole 'HPrevInst' désapprouvé
Tiré de l'unité System :
HPrevInst: LongWord deprecated; { Handle of previous instance - HPrevInst cannot be tested for multiple instances in Win32}
Ce qui veut dire en français :
HPrevInst ne peut pas être utilisé pour tester de multiples instances sous Win32
Autre chose qui me semble "bizarre" dans les deux fonctions suivantes :
function getRGBQuad(p,n:byte):TRGBQuad;
function GetRGBPaletteEntry(p,n:byte):TPaletteEntry;
Elles demandent deux paramètres en entré alors que les fonctions n'en prennent qu'un en compte ?
On pourrait donc les déclarer comme ceci :
function getRGBQuad(n:byte):TRGBQuad;
function GetRGBPaletteEntry(n:byte):TPaletteEntry;
et dans la fonction GenPalette modifier :
for i:=0 to 255 do mypalette^.palPalEntry[i]:=GetRGBPaletteEntry(2, i);
en
for i:=0 to 255 do mypalette^.palPalEntry[i]:=GetRGBPaletteEntry(i);
Avec les mêmes résultats !!!!
Dernière petite chose :
ton code est très difficile à lire à cause du manque d'identations et du manque d'espace entre les différentes commandes.
Ex:
for i:=1 to NbCercles do
begin
cerclepos[i].x:=random(im.x-im.y shr 2)+im.y shr 3;
cerclepos[i].y:=random(im.y-im.y shr 2)+im.y shr 3;
cerclepos[i].vx:=random(5)-2;
cerclepos[i].vy:=random(5)-2;
end;
est quand même plus facile à lire comme ça ...
For I := 1 To NbCercles Do
Begin
Cerclepos[I].x := Random(im.x - im.y Shr 2) + im.y Shr 3;
Cerclepos[I].y := Random(im.y - im.y Shr 2) + im.y Shr 3;
Cerclepos[I].vx := Random(5) - 2;
Cerclepos[I].vy := Random(5) - 2;
End;
Tout ça pour dire un grand Bravo pour ce superbe résultat
et que ça mérite bien un 10/10 mais la note ne sera attribuée qu'après modification
du code (Fuite de mémoire) ... ce qui est normal ;-)
ps : à quand la version qui prend en charge les systèmes à deux monitors ?
@+
Cirec
nicoodelphi
Messages postés2Date d'inscriptionvendredi 16 février 2007StatutMembreDernière intervention18 juin 2007 16 févr. 2007 à 15:19
à l'ancienne
cs_ManChesTer
Messages postés374Date d'inscriptionvendredi 20 octobre 2000StatutModérateurDernière intervention15 janvier 2021 3 oct. 2005 à 01:56
je sais, je suis un "chipotteur" mais bon....
dans le feux il y a aussi du bleu, puis pour rester dans l'esprit du livre il faut obtimiser donc voici la palette "Made in Manchi", lol
procedure GenPalette;
var
i:integer;
begin
getmem(Mypalette,(256 shl 3)+sizeof(Tlogpalette));
fillchar(Mypalette^,(256 shl 3)+sizeof(Tlogpalette),0);
with Mypalette^ do
begin
palVersion:=$300;
palNumEntries:=256;
for i:=0 to 7 do
begin
palPalEntry[i].peBlue:=i shl 3;
palPalEntry[i+8].peBlue:=64-(i shl 3);
palPalEntry[i+8].peRed:=i*255 div 23;
palPalEntry[i+16].peRed:=(i+8)*255 div 23;
palPalEntry[i+24].peRed:=(i+16)*255 div 23;
palPalEntry[i+32]:=MyRGB(255,i*255 div 23,0);
palPalEntry[i+40]:=MyRGB(255,(i+8)*255 div 23,0);
palPalEntry[i+48]:=MyRGB(255,(i+16)*255 div 23,0);
palPalEntry[i+56]:=MyRGB(255,255,i*255 div 23);
palPalEntry[i+64]:=MyRGB(255,255,(i+8)*255 div 23);
palPalEntry[i+72]:=MyRGB(255,255,(i+16)*255 div 23);
palPalEntry[i+80]:=MyRGB(255,255,255);
palPalEntry[i+88]:=MyRGB(255,255,255);
palPalEntry[i+96]:=MyRGB(255,255,255);
palPalEntry[i+104]:=MyRGB(0,0,255);
palPalEntry[i+112]:=MyRGB(0,0,240);
palPalEntry[i+120]:=MyRGB(0,0,225);
palPalEntry[i+128]:=MyRGB(0,0,210);
palPalEntry[i+136]:=MyRGB(0,0,195);
palPalEntry[i+144]:=MyRGB(0,0,180);
palPalEntry[i+152]:=MyRGB(0,0,165);
palPalEntry[i+160]:=MyRGB(0,0,150);
palPalEntry[i+168]:=MyRGB(0,0,135);
palPalEntry[i+176]:=MyRGB(0,0,120);
palPalEntry[i+184]:=MyRGB(0,0,105);
palPalEntry[i+196]:=MyRGB(0,0,90);
palPalEntry[i+204]:=MyRGB(0,0,75);
palPalEntry[i+212]:=MyRGB(0,0,60);
palPalEntry[i+220]:=MyRGB(0,0,45);
palPalEntry[i+228]:=MyRGB(0,0,20);
palPalEntry[i+236]:=MyRGB(0,0,5);
palPalEntry[i+244]:=MyRGB(0,0,0);
end;
end;
end;
Bon Coding....
ManChesTer.
fbalien
Messages postés251Date d'inscriptiondimanche 7 décembre 2003StatutMembreDernière intervention11 novembre 2016 1 oct. 2005 à 00:28
Jolie adaptation de mon prog
Nicolas___
Messages postés992Date d'inscriptionjeudi 2 novembre 2000StatutMembreDernière intervention24 avril 20131 28 sept. 2005 à 22:23
Excellent vraiment Excellent j ai pas vu l ancienne source mais Excellent(bon j arrete ca devient lourd!),
Mis a part que tu as laissé Button1 et que tu as fait une faute de frappe a arreter
Button1.Caption := 'Arrter'; --> Mais enfin c est pas ca le prob , faire des fautes ca arrive a tt le monde d ailleurs sur que j en ai fait mais c est juste pour t informer que ...
Ciao
Nico
Sinon trop bien 10/10 et en plus encore assez facile a comprendre
DRJEROME
Messages postés436Date d'inscriptionjeudi 9 janvier 2003StatutMembreDernière intervention 5 février 2015 28 sept. 2005 à 16:38
bien,bien...ça m'plait aussi ;)
j'adore les effets graphiques
cs_Forman
Messages postés600Date d'inscriptionsamedi 8 juin 2002StatutMembreDernière intervention 6 avril 20101 28 sept. 2005 à 14:26
1 oct. 2007 à 13:21
@ Barbichette suite à mon message pour le changement de couleurs de flammes, c'est ok pour moi, j'ai vu après coup qu'il fallait mettre en place le fichier dans Windows pour avoir accès aux paramètres.
A ce sujet, si après un aperçu je décide d'annuler j'obtiens une exception et suis obligé de fermer le processus.
@+,
Cincap
18 juin 2007 à 18:29
très très beau résultat ... Bravo
Par contre même problème que sur l'autre source ...
à savoir Fuite de mémoire :(
Le problème vient de cette ligne :
image1.Picture.Bitmap:=tbitmap.create;
tu as créer un Bitmap que tu ne libères jamais
Pour résoudre ce petit problème il suffit simplement de supprimer la ligne en question
et tout fonctionne parfaitement et sans fuites de mémoires. (Tester sous D9 D10)
Ensuite la Variable HPrevInst est désaprouvée
[Pascal Avertissement] flammes.dpr(16): W1000 Symbole 'HPrevInst' désapprouvé
Tiré de l'unité System :
HPrevInst: LongWord deprecated; { Handle of previous instance - HPrevInst cannot be tested for multiple instances in Win32}
Ce qui veut dire en français :
HPrevInst ne peut pas être utilisé pour tester de multiples instances sous Win32
Autre chose qui me semble "bizarre" dans les deux fonctions suivantes :
function getRGBQuad(p,n:byte):TRGBQuad;
function GetRGBPaletteEntry(p,n:byte):TPaletteEntry;
Elles demandent deux paramètres en entré alors que les fonctions n'en prennent qu'un en compte ?
On pourrait donc les déclarer comme ceci :
function getRGBQuad(n:byte):TRGBQuad;
function GetRGBPaletteEntry(n:byte):TPaletteEntry;
et dans la fonction GenPalette modifier :
for i:=0 to 255 do mypalette^.palPalEntry[i]:=GetRGBPaletteEntry(2, i);
en
for i:=0 to 255 do mypalette^.palPalEntry[i]:=GetRGBPaletteEntry(i);
Avec les mêmes résultats !!!!
Dernière petite chose :
ton code est très difficile à lire à cause du manque d'identations et du manque d'espace entre les différentes commandes.
Ex:
for i:=1 to NbCercles do
begin
cerclepos[i].x:=random(im.x-im.y shr 2)+im.y shr 3;
cerclepos[i].y:=random(im.y-im.y shr 2)+im.y shr 3;
cerclepos[i].vx:=random(5)-2;
cerclepos[i].vy:=random(5)-2;
end;
est quand même plus facile à lire comme ça ...
For I := 1 To NbCercles Do
Begin
Cerclepos[I].x := Random(im.x - im.y Shr 2) + im.y Shr 3;
Cerclepos[I].y := Random(im.y - im.y Shr 2) + im.y Shr 3;
Cerclepos[I].vx := Random(5) - 2;
Cerclepos[I].vy := Random(5) - 2;
End;
non ?
et tout ceci se fait rapidement et sans effort, il suffit d'utiliser un outil gratuit que tu peux
trouver ici :
http://www.dow.wau.nl/aew/delforexp.html
Tout ça pour dire un grand Bravo pour ce superbe résultat
et que ça mérite bien un 10/10 mais la note ne sera attribuée qu'après modification
du code (Fuite de mémoire) ... ce qui est normal ;-)
ps : à quand la version qui prend en charge les systèmes à deux monitors ?
@+
Cirec
16 févr. 2007 à 15:19
3 oct. 2005 à 01:56
dans le feux il y a aussi du bleu, puis pour rester dans l'esprit du livre il faut obtimiser donc voici la palette "Made in Manchi", lol
procedure GenPalette;
var
i:integer;
begin
getmem(Mypalette,(256 shl 3)+sizeof(Tlogpalette));
fillchar(Mypalette^,(256 shl 3)+sizeof(Tlogpalette),0);
with Mypalette^ do
begin
palVersion:=$300;
palNumEntries:=256;
for i:=0 to 7 do
begin
palPalEntry[i].peBlue:=i shl 3;
palPalEntry[i+8].peBlue:=64-(i shl 3);
palPalEntry[i+8].peRed:=i*255 div 23;
palPalEntry[i+16].peRed:=(i+8)*255 div 23;
palPalEntry[i+24].peRed:=(i+16)*255 div 23;
palPalEntry[i+32]:=MyRGB(255,i*255 div 23,0);
palPalEntry[i+40]:=MyRGB(255,(i+8)*255 div 23,0);
palPalEntry[i+48]:=MyRGB(255,(i+16)*255 div 23,0);
palPalEntry[i+56]:=MyRGB(255,255,i*255 div 23);
palPalEntry[i+64]:=MyRGB(255,255,(i+8)*255 div 23);
palPalEntry[i+72]:=MyRGB(255,255,(i+16)*255 div 23);
palPalEntry[i+80]:=MyRGB(255,255,255);
palPalEntry[i+88]:=MyRGB(255,255,255);
palPalEntry[i+96]:=MyRGB(255,255,255);
palPalEntry[i+104]:=MyRGB(0,0,255);
palPalEntry[i+112]:=MyRGB(0,0,240);
palPalEntry[i+120]:=MyRGB(0,0,225);
palPalEntry[i+128]:=MyRGB(0,0,210);
palPalEntry[i+136]:=MyRGB(0,0,195);
palPalEntry[i+144]:=MyRGB(0,0,180);
palPalEntry[i+152]:=MyRGB(0,0,165);
palPalEntry[i+160]:=MyRGB(0,0,150);
palPalEntry[i+168]:=MyRGB(0,0,135);
palPalEntry[i+176]:=MyRGB(0,0,120);
palPalEntry[i+184]:=MyRGB(0,0,105);
palPalEntry[i+196]:=MyRGB(0,0,90);
palPalEntry[i+204]:=MyRGB(0,0,75);
palPalEntry[i+212]:=MyRGB(0,0,60);
palPalEntry[i+220]:=MyRGB(0,0,45);
palPalEntry[i+228]:=MyRGB(0,0,20);
palPalEntry[i+236]:=MyRGB(0,0,5);
palPalEntry[i+244]:=MyRGB(0,0,0);
end;
end;
end;
Bon Coding....
ManChesTer.
1 oct. 2005 à 00:28
28 sept. 2005 à 22:23
Mis a part que tu as laissé Button1 et que tu as fait une faute de frappe a arreter
Button1.Caption := 'Arrter'; --> Mais enfin c est pas ca le prob , faire des fautes ca arrive a tt le monde d ailleurs sur que j en ai fait mais c est juste pour t informer que ...
Ciao
Nico
Sinon trop bien 10/10 et en plus encore assez facile a comprendre
28 sept. 2005 à 16:38
j'adore les effets graphiques
28 sept. 2005 à 14:26