philippe laschweng 1
Messages postés278Date d'inscriptionjeudi 14 avril 2005StatutMembreDernière intervention13 avril 2013
-
11 juil. 2005 à 15:08
philippe laschweng 1
Messages postés278Date d'inscriptionjeudi 14 avril 2005StatutMembreDernière intervention13 avril 2013
-
12 juil. 2005 à 09:07
Langage: VB6
Bonjour à tous,
J'ai besoin de votre aide ..... J'utilise un listview pour afficher des informations issues d'une Base de données Access en continu. J'ai une requête SQL placée dans un Timer pour actualiser en continu les données de la base (la base varie continuellement). Le problème est que le listview clignote comme un sapin de Noël ...
J'ai fais des recherches sur le forum et j'ai bien vu l'exemple avec:
ValidateRect View1.hwnd, 0&
InvalidateRect View1.hwnd, 0&, 0&
Ca fonctionne relativement bien (clignote quand même un peu) à condition que la listview ne contient pas trop d'infos.Vu que j'ai une trentaine de paramètres les uns en dessous des autres, la listview affiche le scrollbar vertical et c'est le début de la fin.
Pour info, j'utilise l'instruction View1.ListItems.Clear pour effacer la liste avant de la remplir aves les nouveaux paramètres.
Si quelqu'un peut m'aider, je lui seraistrès reconaissant.
Merci d'avance !
cs_drahcir
Messages postés745Date d'inscriptionmardi 30 novembre 2004StatutMembreDernière intervention15 septembre 20094 11 juil. 2005 à 15:47
Salut,
je suis plutôt orienté vb.net mais as-tu essayé un refresh de ta listview. J'ai eu des problèmes d'affichage avec un formulaire où les labels étaient transparents et le refresh les a résolus, on ne sait jamais...
philippe laschweng 1
Messages postés278Date d'inscriptionjeudi 14 avril 2005StatutMembreDernière intervention13 avril 20132 11 juil. 2005 à 16:17
Oui c'est la première chose que j'ai essayé! Mais en utilisant le refresch, la listview ne cesse de grandir. Il faut qu'avant chaque mise à jour (cadencé par le timer) je fasse un Listview.Clear pour complétement effacer la liste... mais ca clignote !
Vu qu'il y'a une boucle For c'est peut être une instruction placée au mauvais endroit!
Merci pour ta réponse
Philippe
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_drahcir
Messages postés745Date d'inscriptionmardi 30 novembre 2004StatutMembreDernière intervention15 septembre 20094 11 juil. 2005 à 16:29
Si j'ai bien compris, tu fais ton clear à l'intérieur de ta boucle for, et c'est la répétition qui fait clignoter ta listview... Si tu augmente le temps de ton timer, ta lise à jour se fait moins souvent, mais ta listview ne doit plus clignoter, as-tu vraiment besoin de rafraîchir tes datas si souvent?
philippe laschweng 1
Messages postés278Date d'inscriptionjeudi 14 avril 2005StatutMembreDernière intervention13 avril 20132 11 juil. 2005 à 16:44
Bah malheureusement oui car j'ai une autre appli qui vient écrire dans la base de données des paramètres importants issus d'une machine. Et je dois afficher sur l'autre appli les valeurs de la base de données avec les valeurs de paramètres courantes ...
C'est un vrai casse tête c'te truc! Oui t'as bien compris le problème ..
philippe laschweng 1
Messages postés278Date d'inscriptionjeudi 14 avril 2005StatutMembreDernière intervention13 avril 20132 11 juil. 2005 à 19:41
Mdr ! Non mais je pense pas, ca doit être un vieux truc à la batman... C'est tellement vaste VB, j'en apprends tous les jours et surtout, je m'en étonne tous les jours !
Je pri pour qu'un programmeur super balaise passe par là et me donne la solution en 2 lignes ....
En tout cas merci de m'avoir répondu !!
Je cherche toujours .....
philippe laschweng 1
Messages postés278Date d'inscriptionjeudi 14 avril 2005StatutMembreDernière intervention13 avril 20132 12 juil. 2005 à 08:21
Bah j'ai cherché sur ce site et sur le moteur Google et je n'ai rien trouvé de probant sous le nom d'API invalidaterectangle. Es-tu sûr que ca fonctionne pour VB6?
Si tu retrouve le code ou l'adresse web tiens moi au courant, je continu à chercher !
yohan49
Messages postés380Date d'inscriptionsamedi 22 janvier 2005StatutMembreDernière intervention13 août 20117 12 juil. 2005 à 08:41
Le seul veritable moyen d'avoir une list qui ne clignote plus c de faire une requete pour chaque ligne , et actualiser la ligne de ta liste c pas top , c long c lourd
vraiment si la sources que je t'ai passe ne fonctionne pas comme tu veux ben tu n'aura pas d'autre choix que de faire deux listview, une masque (celle qui clignotte) et une autre avec actualisation plus espace via un timer , toutes les secondes par exemple
c une solution comme une autre
une autre chose , le fait que ton autre application change des donnees dans ta base n'est pas important , ta listview n'est la qu' a titre indicatif donc que tu es un rafraichissement toutes les seconde ne te gene en rien
philippe laschweng 1
Messages postés278Date d'inscriptionjeudi 14 avril 2005StatutMembreDernière intervention13 avril 20132 12 juil. 2005 à 09:07
Oui j'étais tombé sur cete source ! Ca fonctionne mais j'ai quand même des probs. D'une part ca clignote beaucoup moins mais c'est toujours pas nickel, et si la listview contient beaucoup d'éléments (mon cas) il y'a les scroll bars verticales qui apparaissent et là ca reclignote à max. Si je dévalide les scroll bars sur la list view ca fonctionne un peu prés bien mais je peux pas visualiser tous mes paramètres (y'en a environ 40). En plus ce qui est gênant c'est que j'ai cette fonction dans un timer......