FLAMMES VERSION 2

cs_Forman Messages postés 600 Date d'inscription samedi 8 juin 2002 Statut Membre Dernière intervention 6 avril 2010 - 28 sept. 2005 à 14:26
cincap Messages postés 460 Date d'inscription dimanche 5 décembre 2004 Statut Membre Dernière intervention 6 avril 2009 - 1 oct. 2007 à 13:21
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/33993-flammes-version-2

cincap Messages postés 460 Date d'inscription dimanche 5 décembre 2004 Statut Membre Dernière intervention 6 avril 2009 2
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.

@+,

Cincap
Utilisateur anonyme
18 juin 2007 à 18:29
Salut,

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
nicoodelphi Messages postés 2 Date d'inscription vendredi 16 février 2007 Statut Membre Dernière intervention 18 juin 2007
16 févr. 2007 à 15:19
à l'ancienne
cs_ManChesTer Messages postés 374 Date d'inscription vendredi 20 octobre 2000 Statut Modérateur Dernière intervention 15 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és 251 Date d'inscription dimanche 7 décembre 2003 Statut Membre Dernière intervention 11 novembre 2016
1 oct. 2005 à 00:28
Jolie adaptation de mon prog
Nicolas___ Messages postés 992 Date d'inscription jeudi 2 novembre 2000 Statut Membre Dernière intervention 24 avril 2013 1
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és 436 Date d'inscription jeudi 9 janvier 2003 Statut Membre Derniè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és 600 Date d'inscription samedi 8 juin 2002 Statut Membre Dernière intervention 6 avril 2010 1
28 sept. 2005 à 14:26
Joli comme tout!