SCROLLING DANS UN TIMAGE

JulioDelphi Messages postés 2226 Date d'inscription dimanche 5 octobre 2003 Statut Membre Dernière intervention 18 novembre 2010 - 4 avril 2006 à 19:36
cs_MAURICIO Messages postés 2106 Date d'inscription mardi 10 décembre 2002 Statut Modérateur Dernière intervention 15 décembre 2014 - 7 avril 2006 à 15:28
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/36892-scrolling-dans-un-timage

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
7 avril 2006 à 15:28
Bonjour Caribensila,
c' est carrement à cette astuce que j' ai pensé lorsque j' ai vu le titre :)
Simple et efficace, du tout bon ... A+
f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 35
7 avril 2006 à 13:34
moui ... bien ... un peu simpliste mais bien ...


pour le panel :

Panel1.DoubleBuffered := true;

tout simplement ^^
Nicolas___ Messages postés 992 Date d'inscription jeudi 2 novembre 2000 Statut Membre Dernière intervention 24 avril 2013 1
6 avril 2006 à 17:05
" ... et normalement ça devrait fonctionner ..." c'est bien ca le probleme avec l'informatique !
Enfin je vous tenais juste au courant de ce que j'avais lu ...
Ciao
Utilisateur anonyme
6 avril 2006 à 13:48
Salut Nicolas__,
le panel possède également la propriété DoubleBuffered et normalement ça devrait fonctionner il n'y pas de raison.
Le DoubleBuffered c'est juste un BMP intermédiaire qui sert à dessiner en dehors de la vue et une fois terminé il est affiché à l'écran ce qui a pour effet de retirer les scintillements s'il y en avait bien sur.

@+
Cirec
Utilisateur anonyme
6 avril 2006 à 13:40
Oui, alors justement, hier le DoubleBuffered ne donnait rien, seul l'IncrementalDisplay permettait de supprimer le scintillement (chez moi) et aujourd'hui sans rien (reconstruit pas recompilé au cas ou ...) ça fonctionne très bien avec la quasi même occupation mémoire (il etait en veille prolongé)

@+
Cirec
Nicolas___ Messages postés 992 Date d'inscription jeudi 2 novembre 2000 Statut Membre Dernière intervention 24 avril 2013 1
6 avril 2006 à 13:38
Mais perso je n'avais pas de prob chez moi concernant un quelconque scintillement
(Bon par rapport a mon explication du dblbuffered je l'ai lu sur un commentaire de la source DODGE(section jeu), le commentaire etait de foxi...)
Et vu que tu utilise un Panel a l'arriere ...
Ciao
Nicolas___ Messages postés 992 Date d'inscription jeudi 2 novembre 2000 Statut Membre Dernière intervention 24 avril 2013 1
6 avril 2006 à 13:34
si le DoubleBuffered ne marche pas c'est parce que c'est utilisé sur un panel et que ca ne marche pas dans ce cas la
Caribensila Messages postés 2527 Date d'inscription jeudi 15 janvier 2004 Statut Membre Dernière intervention 16 octobre 2019 18
6 avril 2006 à 11:01
Merci à tous.
Oui, j'ai oublié le DoubleBuffered. Mais il faut dire que je n'ai pas de scintillement sur mon PC. Est-ce dû à ma config, à ma carte graphique??
Et, effectivement, Quid du DoubleBuffered et du IncrementalDisplay? Comment savoir s'il faut les utiliser (car ça consomme)?
Chez moi, tout est kif-kif pareil :)
Utilisateur anonyme
6 avril 2006 à 10:48
Tiens un revenant :-)
Bonjour Monsieur Japee,
Effectivement en règle générale je dirais oui pour le Doublebuffered et c'est la première chose que j'ai faite, mais chez moi, cette fois, ça n'a aucun effet (l'image continue de scintiller).

Par contre avec IncrementalDisplay à True la ça fonctionne ????

Alors est ce que tu l'as testé sur ce code où tu l'as mis par habitude ?

@+
Cirec
japee Messages postés 1727 Date d'inscription vendredi 27 décembre 2002 Statut Modérateur Dernière intervention 6 novembre 2021 8
6 avril 2006 à 03:24
procedure TForm1.FormCreate(Sender: TObject);
begin
Panel1.DoubleBuffered := True; // sans commentaires... ;-)
end;
Nicolas___ Messages postés 992 Date d'inscription jeudi 2 novembre 2000 Statut Membre Dernière intervention 24 avril 2013 1
5 avril 2006 à 13:32
C'est vrai que c'est excellent mais en voyant ton titre et ta description j'imaginais autre chose (genre copier l'image ds une variable bitmap et la recopier ,point par point avec scanline par exemple, sur les pixels de ton TImage, mais enfin je ne pense pas que ce serait aussi simple que ca et ... je ne sais pas non plus si je me suis fais comprendre ! Mais ca permettrait de ne pas etre dependant d'un panel au d'autre chose)

Sinon excellent

Ciao
Utilisateur anonyme
5 avril 2006 à 00:18
Bien, simple mais bien ...
Si tu mets la propriété IncrementalDisplay à True (du TImage) il n'y a plus scintillement lors du Scroll :)

@+
Cirec
cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 32
4 avril 2006 à 22:04
On passe souvent à côté des choses simples et évidentes mais Ô combien puissantes.
Là, moi je dis bravo à Caribensila dont je salue le come back.
JulioDelphi Messages postés 2226 Date d'inscription dimanche 5 octobre 2003 Statut Membre Dernière intervention 18 novembre 2010 14
4 avril 2006 à 19:36
bravo, c'est vrai que c'est plus propre sans les scrolls.
et en si peu de code, et propre... du caribensila quoi =)
Rejoignez-nous