WDForge - Forum

Le forum des développeurs professionnels WinDev ®

Creation d'une horloge en windev

Discussion sur WinDev®

Message non lupar EMIDEV » Jeu 8 Sep 2016 14:03

bonjour a tous

pour ceux qui veulent une horloge a aiguille dans leur appli
voici une procédure qui fait ca pas mal

il vous faut une fenêtre et une image appelée IMG_HORLOGE
en image de fond de cette fenêtre trouvez vous un beau cadran sans les
aiguille et le centre des aiguilles et vous aurez une belle horloge

Creez une procedure :
Code: Tout sélectionner
PROCEDURE horloge()

Xcentre,yCentre sont des entier
heure est un Heure = HeureSys()

hheur est un entier = heure..Heure
SI hheur > 12 ALORS hheur -= 12

angleMax est un entier = 360

FinTimerSys(timerHorloge)

// longueur des aiguilles en pixel
mfHlen est un entier = 30
mfMlen est un entier = 45
mfSlen est un entier = 50

// centre de l'horloge
Xcentre = IMG_HORLOGE..Largeur/2
yCentre = IMG_HORLOGE..Hauteur/2

// couleur des aiguilles
HeureCouleur est un entier = iNoir
MinuteCouleur est un entier = iNoir
SecondeCouleur est un entier = iNoir

// angles des aiguilles
dHang est un réel
dMang est un réel
dSang est un réel

// variable pour le point exterieur de l'aiguille
dHx est un réel
dHy est un réel

dMx est un réel
dMy est un réel

dSx est un réel
dSy est un réel

//Calculer les angles des aiguilles
dHang = (angleMax * (hheur+9))/12
dMang = (angleMax * (heure..Minute+45))/60
dSang = (angleMax * (heure..Seconde+45))/60

// raprochement de l'aiguille des heures si on est pres de l'heure suivante
SI heure..Minute >= 15 ALORS dHang += (((heure..Minute+45)/15)*4)

// Calculer les extrémités de chaque aiguille
// heures
dHx = mfHlen * Cosinus(dHang)
dHy = mfHlen * Sinus(dHang)

// minutes
dMx = mfMlen * Cosinus(dMang)
dMy = mfMlen * Sinus(dMang)

// secondes
dSx = mfSlen * Cosinus(dSang)
dSy = mfSlen * Sinus(dSang)

// dessiner les aiguilles
dDébutDessin(IMG_HORLOGE)
dCercle(Xcentre-3,yCentre-3,Xcentre+3,yCentre+3,iNoir,iNoir)
dLigne(Xcentre-(dHx/3), yCentre-(dHy/3),Xcentre+dHx, yCentre+dHy,
HeureCouleur,2)
dLigne(Xcentre-(dMx/3), yCentre-(dMy/3),Xcentre+dMx, yCentre+dMy,
MinuteCouleur,2)
dLigne(Xcentre-(dSx/3), yCentre-(dSy/3),Xcentre+dSx, yCentre+dSy,
SecondeCouleur,1)

// on relance le timer
timerHorloge = TimerSys("horloge",100)


mettez ce code dans une fenêtre avec cette ligne dans le code
d'intialisation
Code: Tout sélectionner
GLOBAL
timerHorloge est un entier
timerHorloge = TimerSys("horloge",100)


en fond de l'image IMg_horloge vous mettez le cadran pas dans la fenetre
EMIDEV
Animateur WDForge
 
Messages: 16
Enregistré le: Mer 6 Jan 2016 14:23

Retourner vers WinDev

cron