enzo68290
Messages postés109Date d'inscriptionsamedi 18 août 2007StatutMembreDernière intervention16 juin 2011 30 juin 2010 à 10:24
Renfield, j'ai trouvé un bug, dans ta version et la mienne, essaye d'ouvrir le projet entre le 1 et le 9 d'un mois, tu constatera ^^.
j'ai corriger le code, aussi j'enverrais une version corriger de ton code.
enzo68290
Messages postés109Date d'inscriptionsamedi 18 août 2007StatutMembreDernière intervention16 juin 2011 20 déc. 2009 à 22:34
si tu n'ouvre pas le .vbp sa ne peu pas marcher, il n'y à rien à rajouté normalement, tout est fonctionnel, je n'ai pas encore pris le temps de regarder le gdi pour mettre des aiguilles en image à la place de ligne vb qui tourne. je vais essayé ces vacances (si je trouve le temps)
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 20 déc. 2009 à 08:18
c'est le fichier .vbp qu'il te faut ouvrir, sous Visual Basic 6
cs_SDan
Messages postés288Date d'inscriptiondimanche 1 septembre 2002StatutMembreDernière intervention13 juin 2008 19 déc. 2009 à 21:00
Salut le projet a l'air très intéressant, malheureusemenbt je n'arrive pas à le faire fonctionner. En fait j'ouvre la form1 et ensuite j'essaie mais c alors que ça ne marche pas. Quels sont les contrôles à rajouter.
enzo68290
Messages postés109Date d'inscriptionsamedi 18 août 2007StatutMembreDernière intervention16 juin 2011 25 nov. 2009 à 15:19
renfield, je veux bien que je suis un petit bricoleur dans le code ^^, mais si déja je bosse et je demande de l'aide, c'est pour quelque chose de propre ^^, donc pas 360 images pour chaque position possible, une seul en PNG transparente que je ferais tourner. je vais aussi faire la modif à l'aucaz pour que la montre puisse accepté des cadrant de type png.
je te demanderais juste de l'aide pour le GDI, histoire de l'allumé correctement, et l'éteindre quand on quitte le calendrier, je pense ne pas savoir faire ça, si je ne trouve pas je te dirais.
pareil concernant le milieu de l'aiguille, disons que mon ancien code était plus facile à comprendre, mais plus farfelu j'en doute pas, malgré tout commenté et je l'avais facilement compris.
mais je t'en veux pas de pas l'avoir commenter, il est génialement plus léger et réduit.
je te tiens au courant sur mes avancements divers.
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 25 nov. 2009 à 04:40
a toi de choisir le point origine du placement.
j'espère que tu a bien juste une image d'aiguille, que tu fais tourner, et pas n images dans toutes les positions ^^
regarde dans mon code exemple avec l'alien.
on utilise bien:
lpOrg.x + vnWidth * -0.5
pour forcer un positionnement de celui-ci en utilisant le centre de l'image.
au pire, utilises un png carré, de la taille de l'horloge complète.
ainsi, en superposant les deux images, ton aiguille sera bien placée.
tu as juste a afficher l'image tournée.
gaffe enfin à ce que dans mon code exemple, j'allume et eteind GDI+ a chaque fois.
tu devrais en fait l'allumer au lancement de ta form et l'eteindre au QueryUnload.
enzo68290
Messages postés109Date d'inscriptionsamedi 18 août 2007StatutMembreDernière intervention16 juin 2011 24 nov. 2009 à 23:02
ouai ok, disont qu'il me faut les position x et y de ce point, sa me complique un peu plus la tâche.
je cherche à obtenir ce point, parce que c'est un point clef pour le positionnement de l'image qui servira d'aiguille,
en gros si je veux posé l'aiguille, c'est par son milieu qui est aussi celui de l'aiguille déjà en place.
ensuite il me suffit de changer l'angle de façon à ce qu'elle soit calé sur le centre, et l'extrémité de cette aiguille.
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 24 nov. 2009 à 22:11
je piges pas trop pourquoi tu cherches a obtenir le milieu du segment...
50, 44 et 28 sont la longueur des aiguilles. logiquement, en divisant par deux, tu obtiens en calcul la position de ce milieu
enzo68290
Messages postés109Date d'inscriptionsamedi 18 août 2007StatutMembreDernière intervention16 juin 2011 24 nov. 2009 à 21:08
dis voir renfield, tu à recoder la partie montre, ça à l'air super optimisé.
étant sur le coup du GDI +, je t'explique comment je fais procéder par rapport au lien que tu m'a donner, n'hésite pas à commenter d'ailleurs
en fait, avec chacune des aiguilles, on à un point centrale, et un point qui tourne au tour, pour placer l'aiguille, il me faudra le point entre les deux, ou je poserais l'aiguille à sa moitié, ainsi qu'un angle pour qu'elle parte du centre vers l'extérieur.
mon soucis n'est pas langue, avec la trigonométrie je devrais m'en sortir
étant donnée que ton code n'est pas commenter coté montre, j'ai du mal à obtenir le point au milieu d'une des aiguilles, pourrait tu m'aider ?
enzo68290
Messages postés109Date d'inscriptionsamedi 18 août 2007StatutMembreDernière intervention16 juin 2011 22 nov. 2009 à 23:55
jsuis sur le coup coté gdi +, jvous tiendrais informé des modifications futures
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 19 nov. 2009 à 23:16
cs_ERICBL
Messages postés12Date d'inscriptionlundi 20 janvier 2003StatutMembreDernière intervention22 janvier 2009 18 nov. 2009 à 02:39
j'ai testé super bien
enzo68290
Messages postés109Date d'inscriptionsamedi 18 août 2007StatutMembreDernière intervention16 juin 2011 18 nov. 2009 à 00:19
j'ai testé avec le .refresh, effectivement sa marche pas spécialement, effet bizarre de clignotement.
renfield, qu'est ce que GDI + ? j'en est déja vaguement entendu parlé.
autre chose renfield, si je met mdselect en publique, je peu la récupéré d'une autre form ?
je m'explique, imaginons que j'ai un logiciel X qui à besoin de chercher une date, j'appel ma form PowerCalendar,
je sélectionne une date dessus, si j'ai mdselect en publique je peu récupéré ça valeur ?
US, je pense que c'est pas super important pour l'heure, pour un calage exacte avec celle du pc, à savoir que celle de windows est normalement décalée de à peu près 700 ms.
Du moins si tu trouve une solution, je suis preneur, sinon sa me dérange pas.
autrement, j'ai mis à jour le code
us_30
Messages postés2065Date d'inscriptionlundi 11 avril 2005StatutMembreDernière intervention14 mars 201610 17 nov. 2009 à 23:31
Bonsoir Renfield et Enzo,
Renfield, le .Refresh ici tel que le code est bâtie efface les aiguilles, contrairement à .Cls... et sans ce "Clear" on a la trotteuse qui se cumule, et les minutes + heure qui clignotent... Donc voilà, je me suis pas posé plus de question ensuite...
JE réfléchi pour faire démarrer le timer1 sans décalage (notable) avec l'horloge du PC... Pas si évident, même si j'ai trouvé une solution (moyenne) provisoire...
Amicalement,
Us.
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 17 nov. 2009 à 23:13
pour le lissage faudait jouer en GDI+
pour l'intervalle à 1000, c'est fait, dans le _Timer
pourquoi faire .cls _Paint ? .refresh fait tout cela...
enzo68290
Messages postés109Date d'inscriptionsamedi 18 août 2007StatutMembreDernière intervention16 juin 2011 17 nov. 2009 à 23:12
en ce qui concerne ce qu'a fait renfield, j'ai fait la modification sur le timer, je mettrais à jour par la suite le code.
j'ai aussi mis un dossier montres, ou on stock les bmp des différents skins de montre, et changer le path de la fonction loadskin, ainsi que rajouté quelques montres pour le fun.
j'ai également rajouté dans le formload une boucle while qui cherche le controle caption ou est la date du jour, et le sélectionne (dans mon code précédent s'étais déja le cas), renfield à oublier de le remettre ou n'y à pas pensé, de ce fait je l'ai remis
pour ce qui est des aiguilles, je ne sais pas, mais j'y travaille, c'est la prochaine étape ! je pense qu'il serait intéressant de créer un ocx skinable ou il serait possible de modifier les aiguilles, et le fond de l'horloge, ainsi que de permettre de changer la taille de l'ocx en adaptant le fond et les aiguilles en fonction.
us_30
Messages postés2065Date d'inscriptionlundi 11 avril 2005StatutMembreDernière intervention14 mars 201610 17 nov. 2009 à 22:52
Bonsoir,
Il manque à la version de Rendfiel ces petites modifs sur le timer1 :
- Le définir à interval : 1000
- Le code suivant :
Private Sub Timer1_Timer()
Picture1.Cls
Call Picture1_Paint
temps.Caption = Time
End Sub
Ensuite, bon, évidemment, le code revu et corrigé par Rendfiel, hummmm (petit veinard !), difficile d'en trouver une faille...
Pour maintenant rajouter une suggestion d'amélioration : Comment faire des belles aiguilles bien lisses ?
Amicalement,
Us.
enzo68290
Messages postés109Date d'inscriptionsamedi 18 août 2007StatutMembreDernière intervention16 juin 2011 17 nov. 2009 à 20:12
j'ai regarder ce que tu as à fais renfield, et j'en reste bouche B, c'est géniale, mon code était tout simplement compliquer à coté.
ya juste plein de chose que je ne comprend pas étant débutant, j'aimerais bien que tu puisse m'expliquer ce que je n'ai pas compris, histoire d'évoluer un petit peu, j'en ferais la liste un autre jour, y'a pas tant que ça.
et puis, j'ai pas compris avec la montre ce que tu as fais, du moins sur le fond t'a voulu optimisé la chose, j'ai vu que les aiguilles inverse la couleur de la montre (idée géniale que je n'aurais jamais su développer), mais chez moi la montre ne fonctionne pas.
chez toi ça marche ?
enzo68290
Messages postés109Date d'inscriptionsamedi 18 août 2007StatutMembreDernière intervention16 juin 2011 17 nov. 2009 à 19:53
je vais prendre toutes vos remarques au sérieux dès que possible, concernant le groupe de contrôles, j'en avait jamais fais avant
merci pour la petite fonction pour savoir combien de jour compte un mois, je ne l'avais pas trouvé à l'instant T.
je vais regarder attentivement ce que tu as fait de mon calendrier renfield, en tout cas merci pour l'effort c'est sympa :)
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 17 nov. 2009 à 16:09
NB. J'ai renommé les controles Lbl en place pour en faire un groupe de controles.
J'aurais très buien pu n'en mettre qu'un et chargé les 30 et quelques autres dynamiquement.
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 17 nov. 2009 à 16:06
Bon, c'est pas dans mes habitudes "d'abuser" de mon status d'admin.
J'ai ajouté dans le zip une version un peu revue du code.
lancez le .frm direct, il n'a pas de .prj, mais ca importe peu.
Pour un rendu quasi similaire, on se retrouve avec bien moins de code.
je commente peu, si vous avez besoin de détails, n'hésitez pas
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 17 nov. 2009 à 15:35
bon, j'ouvre le zip ce coup-ci...
l'horloge est belle, les aiguilles invisibles ou presque (horloge bleue, aiguilles blanches et la trotteuse jaune :S)
datetest = num & "/" & moisaffiche & "/" & annéeaffiche
NON !!!!!!
utilises DateSerial:
datetest = DateSerial(annéeaffiche, moisaffiche, num)
Et pour savoir combien un mois compte de jours :
num = day(dateserial(ANNEE,MOIS +1,0))
us_30 a raison : un groupe de controles aurait simplifié la chose grandement...
exemple de code possible, pour le dessin de l'horloge :
Private Sub Picture1_Paint()
Dim nSecond As Single
Dim nMinute As Single
Dim nHour As Single
Dim nX(1) As Single
Dim nY(1) As Single
nSecond = (Second(Now) * -6 + 90) * PI / 180
nMinute = (Minute(Now) * -6 + 90) * PI / 180
nHour = (Hour(Now) * -30 + 90) * PI / 180
'# Aiguille des Heures
Picture1.DrawWidth = 3
nX(1) = Cos(nHour) * 28
nY(1) = Tan(nHour) * nX(1)
Picture1.Line (nX(0), nY(0))-(nX(0) + nX(1), nY(0) - nY(1)), &HFFFFFF
End Sub
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 17 nov. 2009 à 14:59
idem pour jourdico, moisdico...
utilises les fonctions de VB ! ca permettra en plus de s'adapter un peu plus a la langue ciblée.
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 17 nov. 2009 à 14:50
bon, j'ouvre le zip ce coup-ci...
l'horloge est belle, les aiguilles invisibles ou presque (horloge bleue, aiguilles blanches et la trotteuse jaune :S)
datetest = num & "/" & moisaffiche & "/" & annéeaffiche
NON !!!!!!
utilises DateSerial:
datetest = DateSerial(annéeaffiche, moisaffiche, num)
Et pour savoir combien un mois compte de jours :
num = day(dateserial(ANNEE,MOIS +1,0))
us_30 a raison : un groupe de controles aurait simplifié la chose grandement...
cs_ERICBL
Messages postés12Date d'inscriptionlundi 20 janvier 2003StatutMembreDernière intervention22 janvier 2009 17 nov. 2009 à 14:41
il y a pas que 8
cs_ERICBL
Messages postés12Date d'inscriptionlundi 20 janvier 2003StatutMembreDernière intervention22 janvier 2009 17 nov. 2009 à 14:31
Bien juste un truc je clique sur le 8 jour message erreur
us_30
Messages postés2065Date d'inscriptionlundi 11 avril 2005StatutMembreDernière intervention14 mars 201610 17 nov. 2009 à 11:59
Bonjour,
Le rendu est plutôt réussi.
En terme de programmation, il me semble que tu aurais simplifié ton code en utilisant une collection (Array) pour les Labels... Cela s'apparente alors à une instruction DIM dans le principe... ce qui te permet d'appliquer une propriété commune avec une boucle...
Amicalement,
Us.
enzo68290
Messages postés109Date d'inscriptionsamedi 18 août 2007StatutMembreDernière intervention16 juin 2011 17 nov. 2009 à 11:27
ok ok, non j'utilise simplement une fonction de vb intégré pour le numéro de semaine, tant pis pour la petite irrégularité à ce moment la, je verrais pour corriger ça par la suite quand j'aurais le temps.
en ce qui concerne l'horloge, pour les aiguilles j'ai pas trouvé d'ocx correcte en montre analogique, alors j'ai pris une image sur la quel je trace les aiguilles grâce une source citée plus haut, j'utilise en fait simplement des lignes dont l'angle change, d'ou l'effet pixelisation maximale. Pour l'exactitude de l'heure, c'est normal, puisque sa dépend d'un timer, qui se déclenche pas forcément quand la seconde passe à la seconde suivante, il se peut que à 22h33 et 12 seconde et demi le timer se lance, d'où l'inexactitude qui peut être entre 0 et presque 1 seconde
si quelqu'un veut m'aider à faire un OCX montre analogique je veux bien, n'en ayant jamais fais je suis preneur.
je suis d'accord pour les jours grisé comme sur le calendrier de vista, mais sa m'aurais rajouté pas mal de temps supplémentaire alors qu'il suffit d'aller au mois précédent pour les contempler si vraiment c'est urgent, à rajouté par la suite aussi.
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 16 nov. 2009 à 23:25
Joli... on regrette le coté aliasé (pixels) des aiguilles
Le nom des jours et mois contiennent des majuscules sur ta version
dommage de ne pas avoir le n° correspondant aux jours du mois précedent et suivant (en grisé)
Est-ce normal que l'heure affichée par windows et ton horloge ne soient pas la même (bon, a une seconde pres)
1/1/2010 est la semaine 53 de 2009, si tu te bases sur
18 janv. 2014 à 01:40
18 janv. 2014 à 01:39
30 juin 2010 à 10:24
j'ai corriger le code, aussi j'enverrais une version corriger de ton code.
20 déc. 2009 à 22:34
20 déc. 2009 à 08:18
19 déc. 2009 à 21:00
25 nov. 2009 à 15:19
je te demanderais juste de l'aide pour le GDI, histoire de l'allumé correctement, et l'éteindre quand on quitte le calendrier, je pense ne pas savoir faire ça, si je ne trouve pas je te dirais.
pareil concernant le milieu de l'aiguille, disons que mon ancien code était plus facile à comprendre, mais plus farfelu j'en doute pas, malgré tout commenté et je l'avais facilement compris.
mais je t'en veux pas de pas l'avoir commenter, il est génialement plus léger et réduit.
je te tiens au courant sur mes avancements divers.
25 nov. 2009 à 04:40
j'espère que tu a bien juste une image d'aiguille, que tu fais tourner, et pas n images dans toutes les positions ^^
regarde dans mon code exemple avec l'alien.
on utilise bien:
lpOrg.x + vnWidth * -0.5
pour forcer un positionnement de celui-ci en utilisant le centre de l'image.
au pire, utilises un png carré, de la taille de l'horloge complète.
ainsi, en superposant les deux images, ton aiguille sera bien placée.
tu as juste a afficher l'image tournée.
gaffe enfin à ce que dans mon code exemple, j'allume et eteind GDI+ a chaque fois.
tu devrais en fait l'allumer au lancement de ta form et l'eteindre au QueryUnload.
24 nov. 2009 à 23:02
je cherche à obtenir ce point, parce que c'est un point clef pour le positionnement de l'image qui servira d'aiguille,
en gros si je veux posé l'aiguille, c'est par son milieu qui est aussi celui de l'aiguille déjà en place.
ensuite il me suffit de changer l'angle de façon à ce qu'elle soit calé sur le centre, et l'extrémité de cette aiguille.
24 nov. 2009 à 22:11
50, 44 et 28 sont la longueur des aiguilles. logiquement, en divisant par deux, tu obtiens en calcul la position de ce milieu
24 nov. 2009 à 21:08
étant sur le coup du GDI +, je t'explique comment je fais procéder par rapport au lien que tu m'a donner, n'hésite pas à commenter d'ailleurs
en fait, avec chacune des aiguilles, on à un point centrale, et un point qui tourne au tour, pour placer l'aiguille, il me faudra le point entre les deux, ou je poserais l'aiguille à sa moitié, ainsi qu'un angle pour qu'elle parte du centre vers l'extérieur.
mon soucis n'est pas langue, avec la trigonométrie je devrais m'en sortir
étant donnée que ton code n'est pas commenter coté montre, j'ai du mal à obtenir le point au milieu d'une des aiguilles, pourrait tu m'aider ?
22 nov. 2009 à 23:55
19 nov. 2009 à 23:16
http://www.vbfrance.com/codes/EXEMPLE-UTILISATION-GDI-DANS-VB6_39804.aspx
19 nov. 2009 à 18:02
18 nov. 2009 à 04:50
voir
http://blogs.codes-sources.com/renfield/archive/2008/05/05/vb6-bo-tes-de-dialogue-communication-inter-form.aspx
18 nov. 2009 à 02:39
18 nov. 2009 à 00:19
renfield, qu'est ce que GDI + ? j'en est déja vaguement entendu parlé.
autre chose renfield, si je met mdselect en publique, je peu la récupéré d'une autre form ?
je m'explique, imaginons que j'ai un logiciel X qui à besoin de chercher une date, j'appel ma form PowerCalendar,
je sélectionne une date dessus, si j'ai mdselect en publique je peu récupéré ça valeur ?
US, je pense que c'est pas super important pour l'heure, pour un calage exacte avec celle du pc, à savoir que celle de windows est normalement décalée de à peu près 700 ms.
Du moins si tu trouve une solution, je suis preneur, sinon sa me dérange pas.
autrement, j'ai mis à jour le code
17 nov. 2009 à 23:31
Renfield, le .Refresh ici tel que le code est bâtie efface les aiguilles, contrairement à .Cls... et sans ce "Clear" on a la trotteuse qui se cumule, et les minutes + heure qui clignotent... Donc voilà, je me suis pas posé plus de question ensuite...
JE réfléchi pour faire démarrer le timer1 sans décalage (notable) avec l'horloge du PC... Pas si évident, même si j'ai trouvé une solution (moyenne) provisoire...
Amicalement,
Us.
17 nov. 2009 à 23:13
pour l'intervalle à 1000, c'est fait, dans le _Timer
pourquoi faire .cls _Paint ? .refresh fait tout cela...
17 nov. 2009 à 23:12
j'ai aussi mis un dossier montres, ou on stock les bmp des différents skins de montre, et changer le path de la fonction loadskin, ainsi que rajouté quelques montres pour le fun.
j'ai également rajouté dans le formload une boucle while qui cherche le controle caption ou est la date du jour, et le sélectionne (dans mon code précédent s'étais déja le cas), renfield à oublier de le remettre ou n'y à pas pensé, de ce fait je l'ai remis
pour ce qui est des aiguilles, je ne sais pas, mais j'y travaille, c'est la prochaine étape ! je pense qu'il serait intéressant de créer un ocx skinable ou il serait possible de modifier les aiguilles, et le fond de l'horloge, ainsi que de permettre de changer la taille de l'ocx en adaptant le fond et les aiguilles en fonction.
17 nov. 2009 à 22:52
Il manque à la version de Rendfiel ces petites modifs sur le timer1 :
- Le définir à interval : 1000
- Le code suivant :
Private Sub Timer1_Timer()
Picture1.Cls
Call Picture1_Paint
temps.Caption = Time
End Sub
Ensuite, bon, évidemment, le code revu et corrigé par Rendfiel, hummmm (petit veinard !), difficile d'en trouver une faille...
Pour maintenant rajouter une suggestion d'amélioration : Comment faire des belles aiguilles bien lisses ?
Amicalement,
Us.
17 nov. 2009 à 20:12
ya juste plein de chose que je ne comprend pas étant débutant, j'aimerais bien que tu puisse m'expliquer ce que je n'ai pas compris, histoire d'évoluer un petit peu, j'en ferais la liste un autre jour, y'a pas tant que ça.
et puis, j'ai pas compris avec la montre ce que tu as fais, du moins sur le fond t'a voulu optimisé la chose, j'ai vu que les aiguilles inverse la couleur de la montre (idée géniale que je n'aurais jamais su développer), mais chez moi la montre ne fonctionne pas.
chez toi ça marche ?
17 nov. 2009 à 19:53
merci pour la petite fonction pour savoir combien de jour compte un mois, je ne l'avais pas trouvé à l'instant T.
je vais regarder attentivement ce que tu as fait de mon calendrier renfield, en tout cas merci pour l'effort c'est sympa :)
17 nov. 2009 à 16:09
J'aurais très buien pu n'en mettre qu'un et chargé les 30 et quelques autres dynamiquement.
17 nov. 2009 à 16:06
J'ai ajouté dans le zip une version un peu revue du code.
lancez le .frm direct, il n'a pas de .prj, mais ca importe peu.
Pour un rendu quasi similaire, on se retrouve avec bien moins de code.
je commente peu, si vous avez besoin de détails, n'hésitez pas
17 nov. 2009 à 15:35
l'horloge est belle, les aiguilles invisibles ou presque (horloge bleue, aiguilles blanches et la trotteuse jaune :S)
datetest = num & "/" & moisaffiche & "/" & annéeaffiche
NON !!!!!!
utilises DateSerial:
datetest = DateSerial(annéeaffiche, moisaffiche, num)
Et pour savoir combien un mois compte de jours :
num = day(dateserial(ANNEE,MOIS +1,0))
us_30 a raison : un groupe de controles aurait simplifié la chose grandement...
exemple de code possible, pour le dessin de l'horloge :
Private Sub Picture1_Paint()
Dim nSecond As Single
Dim nMinute As Single
Dim nHour As Single
Dim nX(1) As Single
Dim nY(1) As Single
nSecond = (Second(Now) * -6 + 90) * PI / 180
nMinute = (Minute(Now) * -6 + 90) * PI / 180
nHour = (Hour(Now) * -30 + 90) * PI / 180
nX(0) = Picture1.ScaleWidth * 0.5
nY(0) = Picture1.ScaleHeight * 0.5
'# Aiguille des secondes
Picture1.DrawWidth = 1
nX(1) = Cos(nSecond) * 50
nY(1) = Tan(nSecond) * nX(1)
Picture1.Line (nX(0), nY(0))-(nX(0) + nX(1), nY(0) - nY(1)), &HFFFF&
'# Aiguille des minutes
Picture1.DrawWidth = 3
nX(1) = Cos(nMinute) * 44
nY(1) = Tan(nMinute) * nX(1)
Picture1.Line (nX(0), nY(0))-(nX(0) + nX(1), nY(0) - nY(1)), &HFFFFFF
'# Aiguille des Heures
Picture1.DrawWidth = 3
nX(1) = Cos(nHour) * 28
nY(1) = Tan(nHour) * nX(1)
Picture1.Line (nX(0), nY(0))-(nX(0) + nX(1), nY(0) - nY(1)), &HFFFFFF
End Sub
17 nov. 2009 à 14:59
utilises les fonctions de VB ! ca permettra en plus de s'adapter un peu plus a la langue ciblée.
17 nov. 2009 à 14:50
l'horloge est belle, les aiguilles invisibles ou presque (horloge bleue, aiguilles blanches et la trotteuse jaune :S)
datetest = num & "/" & moisaffiche & "/" & annéeaffiche
NON !!!!!!
utilises DateSerial:
datetest = DateSerial(annéeaffiche, moisaffiche, num)
Et pour savoir combien un mois compte de jours :
num = day(dateserial(ANNEE,MOIS +1,0))
us_30 a raison : un groupe de controles aurait simplifié la chose grandement...
17 nov. 2009 à 14:41
17 nov. 2009 à 14:31
17 nov. 2009 à 11:59
Le rendu est plutôt réussi.
En terme de programmation, il me semble que tu aurais simplifié ton code en utilisant une collection (Array) pour les Labels... Cela s'apparente alors à une instruction DIM dans le principe... ce qui te permet d'appliquer une propriété commune avec une boucle...
Amicalement,
Us.
17 nov. 2009 à 11:27
en ce qui concerne l'horloge, pour les aiguilles j'ai pas trouvé d'ocx correcte en montre analogique, alors j'ai pris une image sur la quel je trace les aiguilles grâce une source citée plus haut, j'utilise en fait simplement des lignes dont l'angle change, d'ou l'effet pixelisation maximale. Pour l'exactitude de l'heure, c'est normal, puisque sa dépend d'un timer, qui se déclenche pas forcément quand la seconde passe à la seconde suivante, il se peut que à 22h33 et 12 seconde et demi le timer se lance, d'où l'inexactitude qui peut être entre 0 et presque 1 seconde
si quelqu'un veut m'aider à faire un OCX montre analogique je veux bien, n'en ayant jamais fais je suis preneur.
je suis d'accord pour les jours grisé comme sur le calendrier de vista, mais sa m'aurais rajouté pas mal de temps supplémentaire alors qu'il suffit d'aller au mois précédent pour les contempler si vraiment c'est urgent, à rajouté par la suite aussi.
16 nov. 2009 à 23:25
Le nom des jours et mois contiennent des majuscules sur ta version
dommage de ne pas avoir le n° correspondant aux jours du mois précedent et suivant (en grisé)
Est-ce normal que l'heure affichée par windows et ton horloge ne soient pas la même (bon, a une seconde pres)
1/1/2010 est la semaine 53 de 2009, si tu te bases sur
http://www.codyx.org/snippet_recuperer-numero-semaine_61.aspx#1666
En france, on considère en effet que la semaine 1 est la semaine contenant le premier jeudi (ainsi que d'autres criteres)