BONNE ANNEE !

Utilisateur anonyme - 31 déc. 2008 à 15:24
Nicolas___ Messages postés 992 Date d'inscription jeudi 2 novembre 2000 Statut Membre Dernière intervention 24 avril 2013 - 4 janv. 2009 à 15:02
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/48846-bonne-annee

Nicolas___ Messages postés 992 Date d'inscription jeudi 2 novembre 2000 Statut Membre Dernière intervention 24 avril 2013 1
4 janv. 2009 à 15:02
bah je m'en doutais un peu (bcp) que c'était un problème de MAJ :)

Trop de souris , ça fait des trous dans les serveurs , c'est à cause de ça !
[vraiment mauvaise celle-là , je sors -->[])

Nico

Et bonne année (mal poli que je suis ^^ )
cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 13
4 janv. 2009 à 14:58
@Nicolas___:

Rien à faire, la maj ne passe pas..
le site a vraisemeblablement
des soucis en ce moment...
cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 13
4 janv. 2009 à 14:51
si si j'avais bien mis la correction mais la maj ne s'est pas faite..
du moins elle s'est mis en place et puis elle s'est annulée !

je recommence.
Nicolas___ Messages postés 992 Date d'inscription jeudi 2 novembre 2000 Statut Membre Dernière intervention 24 avril 2013 1
4 janv. 2009 à 13:25
tu n'as pas retirer ts les uses inutiles : JvExStdCtrls,
JvBehaviorLabel, JvExControls, JvLabel;

Pour tes
IF compteur = 0 THEN
IF (COMPTEUR > 0) AND (compteur < 50) THEN
IF (COMPTEUR = 50) THEN

tu peux faire comme ca aussi

case Compteur of

0 :

1..49 :

50 :

end;

Ca serait bien de pouvoir stopper vite l'application :

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key=VK_ESCAPE then Close;
end;

"Nettoyage des uses en trop et passage en 32 bits"

En gros je pense que tu t'es trompé de version parceque moi j'ai ca :

Bitmap.PixelFormat := pf24bit;
cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 13
4 janv. 2009 à 13:23
@Francky:
trop près ?
de ton avatar ou de l'utilisateur ?
Francky23012301 Messages postés 400 Date d'inscription samedi 6 août 2005 Statut Membre Dernière intervention 11 février 2016 1
4 janv. 2009 à 00:09
Cantador : c'est super fun ton truc par contre je trouve que ca fait un peu trop près (Et la distance de sécurité m'enfin ^^).

Coté code : rien à redire, c'est nickel.
Francky23012301 Messages postés 400 Date d'inscription samedi 6 août 2005 Statut Membre Dernière intervention 11 février 2016 1
3 janv. 2009 à 05:23
Ah c'est ici qu'on fait la fête ? Bonne année à tous ("Grosse bise ?" Mais t'as pas un peu fous de vouloir nous lecher le citron lol).

@Cantador : Je regarde ton source demain et je te dis ce que j'en pense
Mowglinaute Messages postés 41 Date d'inscription dimanche 4 mars 2007 Statut Membre Dernière intervention 27 février 2013
2 janv. 2009 à 12:19
Bonne et heureuse année à tous les êtres humains positifs.

Dr. Joseph LOMBET
cs_MAURICIO Messages postés 2106 Date d'inscription mardi 10 décembre 2002 Statut Modérateur Dernière intervention 15 décembre 2014 5
2 janv. 2009 à 10:16
Salut à tous!
Remarque interessante: faut que je m' attarde sur le pf32bit,
merci et bonne année à tous!!!
Bacterius Messages postés 3792 Date d'inscription samedi 22 décembre 2007 Statut Membre Dernière intervention 3 juin 2016 10
1 janv. 2009 à 14:30
Oui j'imagine qu'elle est justifiée.
C'est juste que je n'arrive pas à comprendre pourquoi en 1 appel à scanline on peut scanner le bitmap entier ? Je n'arrive pas à le concevoir en fait :'/
Mais je finirai bien par comprendre un jour ... j'espère :/

Cordialement, Bacterius !
cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 13
1 janv. 2009 à 12:39
@Bacterius :
la remarque de cirec est justifiée..
J'ai conservé les anciennes lignes de code dans le source.
il n'y a plus qu'un seul appel à scanline et la nouveauté c'est le passage en :
Bitmap.PixelFormat := pf32bit;
et
NPix := Bitmap.Height * Bitmap.Width;

J'ai noté une légère amélioration de la fluidité et si le programme avait été plus copieux, la différence aurait été plus flagrante !
Bacterius Messages postés 3792 Date d'inscription samedi 22 décembre 2007 Statut Membre Dernière intervention 3 juin 2016 10
1 janv. 2009 à 02:26
Sympathique !
Je n'ai toujours pas compris l'histoire du "1 seul appel à ScanLine" ?

Cordialement, Bacterius !

PS : merci d'avoir cité mon tutorial Cantador :)
cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 13
1 janv. 2009 à 01:59
Merci offlake et
bonne année !
offlake Messages postés 190 Date d'inscription mercredi 3 septembre 2008 Statut Membre Dernière intervention 17 janvier 2009
31 déc. 2008 à 23:41
Bon Code !!
BY OFFLAKE
cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 13
31 déc. 2008 à 15:52
Merci cirec d'autant plus que les uses Jvcl ne sont pas utilisés !
Pour le 32 bit je vais regarder..

Bonne année !
Utilisateur anonyme
31 déc. 2008 à 15:24
Salut,

1°) tu as oublié de retirer les unités de la JVCL ;)

2°) en passant en 32bit l'accès aux données est plus rapide et plus simple (plus qu'un seul appel à ScanLine) !!!

ce qui donne :

PROCEDURE TForm1.DessineImage(Bitmap: TBitmap);
VAR
I: integer;
NPix: Integer;
Row: pRGBQuad;
BEGIN
Row := Bitmap.Scanline[Bitmap.Height - 1];
NPix := Bitmap.Height * Bitmap.Width;
for I := 0 to NPix do
begin
IF compteur = 0 THEN
BEGIN IF (Row^.rgbRed 255) AND (Row^.rgbGreen 0) AND (Row^.rgbBlue = 0) THEN
BEGIN
Row^.rgbRed := stored;
Row^.rgbGreen := stogreen;
Row^.rgbBlue := stoblue;
END;
END
ELSE
IF (COMPTEUR > 0) AND (compteur < 50) THEN
BEGIN IF (Row^.rgbRed stored) AND (Row^.rgbGreen stogreen) AND (Row^.rgbBlue = stoblue) THEN
BEGIN
Row^.rgbRed := newstored;
Row^.rgbGreen := newstogreen;
Row^.rgbBlue := newstoblue;
END;
END
ELSE
IF (COMPTEUR = 50) THEN
BEGIN IF (Row^.rgbRed stored) AND (Row^.rgbGreen stogreen) AND (Row^.rgbBlue = stoblue) THEN
BEGIN
Row^.rgbRed := 255;
Row^.rgbGreen := random(256);
Row^.rgbBlue := 0;
END;
END;
Inc(Row);
end;
IF compteur > 0 THEN
BEGIN
stored := newstored;
stogreen := newstogreen;
stoblue := newstoblue;
END;
END;

Bonnes Fêtes à tous
Rejoignez-nous