Pb de scintillement

jace1975 Messages postés 81 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 12 octobre 2007 - 26 mars 2006 à 20:00
Matt 261 Messages postés 1173 Date d'inscription mercredi 2 novembre 2005 Statut Membre Dernière intervention 10 septembre 2011 - 27 mars 2006 à 18:39
bonjour à tous

pour une appli que j'écris en ce moment, j'utilise le code suivant pour changer l'apparence de l'horloge windows :

dans un timer je mets :

ss:=FormatDateTime('hh:mm',Time);
tt.FillRect(tt.ClipRect);
tt.TextOut(((tt.ClipRect.Right-tt.ClipRect.left) div 2) -( tt.textwidth(ss) div 2), ((tt.ClipRect.bottom-tt.ClipRect.top) div 2) -( tt.textheight(ss) div 2), FormatDateTime('hh:mm',Time));

en initialisant dans le formcreate de la maniere suivante :

DC := getWindowDC ( FindWindowEx(FindWindowEx(FindWindow('shell_traywnd',nil),0,'TrayNotifyWnd',nil),0,'TrayClockWClass',nil));
tt := TCanvas.Create;
tt.Handle := DC;
tt.Brush.Color:=clbtnface;
tt.Font.Name := 'Arial'; tt.Font.Size := 12;tt.Font.Style:=[fsbold];
tt.Font.color:=clblack;

avec dans la clause var :
DC: HDc;
tt:tcanvas;
ss:string;

ca marche bien pour ce qui est de remplacer l'heure windows , mais problème , ca scintille de temps en temps et je ne vois pas comment corriger le tir.

J'ai donc besoin de votre aide et de vos conseils

Merci par avance de votre aide

6 réponses

f0xi Messages postés 4205 Date d'inscription samedi 16 octobre 2004 Statut Modérateur Dernière intervention 12 mars 2022 35
27 mars 2006 à 04:06
Hem ... je vais resoudre ton probleme :
Time Heure systeme Heure affichée dans la barre des taches.

"regarde cherie! je vais transformer cette patate en ... patate"

autant d'interet que d'ecrire :

X := round(sqrt(sqr(3*3)) - (1098/122));

au lieu de

X := 0;

ou est localisé ce scintillement exactement ?

<hr size="2" width="100%">
0
Cirec Messages postés 3833 Date d'inscription vendredi 23 juillet 2004 Statut Modérateur Dernière intervention 18 septembre 2022 50
27 mars 2006 à 15:19
Salut,
ton scintillement est normal, tu surcharge le canvas de l'horloge et tu affiche donc l'heure avec une nouvelle police etc. Mais
l'horloge continue à mettre à jour son affichage en arrière plan (avec l'ancienne police) et c'est cela qui provoque ton scintillement et donc pour éviter cela il faut changer de technique, il faut remplacer l'affichage de l'horloge par une nouvelle et non la surcharger c'est un peut plus complexe mais le résultat sera à la hauteur de tes attentes. Des problèmes risquent toute fois de se poser puisque la barre des tâches (selon la configuration) peut être cachée, à voir.

@+
Cirec
0
jace1975 Messages postés 81 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 12 octobre 2007 1
27 mars 2006 à 17:55
Vos précieuses remarques ne m'aide pas des masses ... Y'a t-il quelqu'un de compétent dans le coin
0
Matt 261 Messages postés 1173 Date d'inscription mercredi 2 novembre 2005 Statut Membre Dernière intervention 10 septembre 2011 3
27 mars 2006 à 18:02
F0xi et Cirec t'ont mis sur la voie après à toi d'adapter se qu'ils te réponde à tes besoins. Enfin si F0xi et Cirec ne sont pas compétants alors je pense que tu as une notion de la compétence un peu bizarre.

@+ Matt


<HR width="100%" SIZE=2>
La paresse est la mère du génie...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jace1975 Messages postés 81 Date d'inscription mardi 31 mai 2005 Statut Membre Dernière intervention 12 octobre 2007 1
27 mars 2006 à 18:28
T'as lu la réponse de Foxy ???? je crois que l'on ai sur un forum delphi pas sur un forum des vannes sans interet.
0
Matt 261 Messages postés 1173 Date d'inscription mercredi 2 novembre 2005 Statut Membre Dernière intervention 10 septembre 2011 3
27 mars 2006 à 18:39
Oui, la réponse de F0xi commence par une vanne ...certe mais fini par une question :

"ou est localisé ce scintillement exactement ?"

Donc je pense que s'il te demande ça c'est pour après te donner une répose qui te conviendra...

@+ Matt


<HR width="100%" SIZE=2>
La paresse est la mère du génie...
0
Rejoignez-nous