ATOUTFOX
COMMUNAUTÉ FRANCOPHONE DES PROFESSIONNELS FOXPRO
Visual FoxPro : le développement durable

montre   



L'auteur

lotfi072003
Algérie Algérie
Membre Simple
# 0000000489
enregistré le 20/07/2005

http://www.oasis-gestion.com
abdelatif belguidoum
Fiche personnelle


Note des membres
pas de note

Contributions > 01 - PRG : Programmation > Temps - heures - Dates - Calendriers

montre
# 0000000466
ajouté le 18/08/2007 22:49:12 et modifié le 18/08/2007
consulté 9570 fois
Niveau débutant

Version(s) Foxpro :
VFP 9.0
VFP 8.0
VFP 7.0
VFP 6.0
VFP 5.0
VFP 3.0

Description

un  simple code pour afficher une montre

n'oublier pas d'attacher une photo de montre  à l'objet image

Code source :
**************************************************
*-- Class:        lotfimontre (c:\gestion\lotfimontre.vcx)
*-- ParentClass:  form
*-- BaseClass:    form
*
*********************************************************
public lmontre
SET CLASSLIB TO lotfimontre
lmontre   = CREATEOBJ('lotfimontre')
lmontre.SHOW

*********************************************************

DEFINE CLASS lotfimontre AS form


  ScaleMode = 3
  Top = 21
  Left = 99
  Height = 156
  Width = 156
  ShowWindow = 2
  DoCreate = .T.
  Picture = ""
  BorderStyle = 0
  Caption = ""
  ControlBox = .F.
  Closable = .T.
  HalfHeightCaption = .T.
  MaxButton = .F.
  MinButton = .F.
  WindowState = 0
  AlwaysOnTop = .T.
  BackColor = RGB(0,0,0)
  Name = "Form"


  ADD OBJECT image1 AS image WITH ;
    Picture = "hour2.bmp", ;            && n'oublier pas pict de la montre
    Height = 156, ;
    Left = 0, ;
    Top = 0, ;
    Width = 156, ;
    Name = "Image1"


  ADD OBJECT timer1 AS timer WITH ;
    Top = 24, ;
    Left = 48, ;
    Height = 23, ;
    Width = 23, ;
    Enabled = .T., ;
    Interval = 1000, ;
    Name = "Timer1"


  ADD OBJECT label4 AS label WITH ;
    FontName = "MS Sans Serif", ;
    FontSize = 8, ;
    Alignment = 2, ;
    BackStyle = 1, ;
    Caption = "0", ;
    Height = 13, ;
    Left = 91, ;
    Top = 75, ;
    Width = 17, ;
    BackColor = RGB(255,255,255), ;
    Name = "Label4"


  ADD OBJECT label5 AS label WITH ;
    FontBold = .T., ;
    FontName = "MS Sans Serif", ;
    FontSize = 8, ;
    BackStyle = 0, ;
    Caption = "today", ;
    Height = 14, ;
    Left = 42, ;
    Top = 134, ;
    Width = 71, ;
    ForeColor = RGB(255,255,255), ;
    Name = "Label5"


  ADD OBJECT label1 AS label WITH ;
    Alignment = 2, ;
    BackStyle = 0, ;
    Caption = "lotfi072003@yahoo.fr", ;
    Height = 16, ;
    Left = 0, ;
    Top = 0, ;
    Width = 157, ;
    ForeColor = RGB(255,255,255), ;
    Name = "Label1"


  PROCEDURE Init
    this.halfheightcaption=.F.
  ENDPROC


  PROCEDURE KeyPress
    LPARAMETERS nKeyCode, nShiftAltCtrl
    IF nKeyCode=27
    thisform.release
    endif
  ENDPROC


  PROCEDURE timer1.Timer

    local x,y,r,m.sec,m.min,m.hour
    x=thisform.image1.height/2
    y=thisform.image1.width/2

    r= 45                          && rayon du cercle

    m.sec=6*sec(datetime())                             && 1 periode = 6* nbr de seconde (60 seconde)
    m.min=6*minute(datetime())                          && 1 periode = 6* nbr de minute (60 minute)
    m.hour=5*(6*hour(datetime()))+int(m.min/12)         && 1 periode = 6 nbr de heur (12 minute)*5+plus nbre de munite /12 ecoulé

    thisform.label4.caption=alltrim(str(day(date())))
    thisform.label5.caption=alltrim(dtoc(date()))


    thisform.cls
    thisform.drawWidth=1
    thisform.forecolor=rgb(255,0,0)             && couleur pour les secondes
    thisform.line(x,y,x+(R*cos(dtor(m.sec-90))),y+(R*sin(dtor(m.sec-90)))))  && - 90 pour intialiser l'angle de dessin

    thisform.drawWidth=2.2
    thisform.forecolor=rgb(255,255,0)             && couleur pour minute
    thisform.line(x,y,x+((R-5)*cos(dtor(m.min-90))),y+((R-5)*sin(dtor(m.min-90))))

    thisform.drawWidth=3.5
    thisform.forecolor=rgb(255,255,0)              && couleur pour les heurs
    thisform.line(x,y,x+((R-15)*cos(dtor(m.hour-90))),y+((R-15)*sin(dtor(m.hour-90))))


    IF thisform.left=>800
    thisform.left=-100
    else
    thisform.left=thisform.left+2
    endif
  ENDPROC


ENDDEFINE
*
*-- EndDefine: lotfimontre
**************************************************

Commentaires
le 19/08/2007, Mike Gagnon a écrit :
Au moins un erreur de syntaxe sur mon systeme

thisform.line(x,y,x+(R*cos(dtor(m.sec-90))),y+(R*sin(dtor(m.sec-90)))))

le 19/08/2007, lotfi072003 a écrit :
merci,c'es pas une erreur j'utlise la verion 5 et ca marche tres bien
le 21/08/2007, Mike Gagnon a écrit :
Donc edite la suggestion, et indique que ceci ne fonctionne pas sur tout les versions de VFP incluant la plus recente.
le 21/08/2007, lotfi072003 a écrit :
bonsoir,je fait pas de suggestion, car je suis sur.
le 23/08/2007, ABx a écrit :
Sur mon VFP9, guyanais et avec le décalage horaire, la ligne décrite par Mike donne toujours une erreur de syntaxe...
de cela je suis sur

le 23/08/2007, eric leissler a écrit :
Su mon vfp9 sp1 et l'autre sp2 , la ligne décrite par mike donne également l'erreur de syntaxe.
En vfp 6 également
cdlt

le 23/08/2007, FredA a écrit :
Je pense que Lofti072003 n'a pas compris ce que demandait Mike, à savoir modifier cet article pour que les cases à cocher ci dessus indiquent les versions correctes de VFP pour lesquelles ce code ne génère pas d'erreur.
Une autre solution serait de tester la version et de mettre le code correct en fonction...

le 27/08/2007, lotfi072003 a écrit :
merci a tt le monde pour leurs critiques et commentaires,neanmoins j'ai executer ce programme avec vfp8 et ç'a bien marché , et je vous informe egalement que tt ce que j'ai utlisé comme commandes ou proprités se trouvent dans toutes les version de vfp
le 28/08/2007, Francis Faure a écrit :
Bonjour,

J'ai testé ce source, en le copiant dans un PRG, et :

- en détail initialement : il faut mettre en remarque le SET CLASSLIB TO...
puisque la classe est dans le PRG

- il y a bien un bug sur la ligne signalée, à savoir

thisform.line(x,y,x+(R*cos(dtor(m.sec-90))),y+(R*sin(dtor(m.sec-90)))) && - 90 pour intialiser l'angle de dessin

en debuggant :
- il faut simplement enlever une parenthèse fermante à la fin qui est en trop...

ensuite, cela fonctionne...
Donc une petite correction

Cordialement
Francis

le 28/08/2007, lotfi072003 a écrit :
je vous suis tres reconaissant pour la correction emise par vos soins

www.atoutfox.org - Site de la Communauté Francophone des Professionnels FoxPro - v3.4.0 - © 2004-2024.
Cette page est générée par un composant COM+ développé en Visual FoxPro 9.0-SP2-HF3