alarme et video

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
venom
Messages : 3138
Inscription : jeu. 29/juil./2004 16:33
Localisation : Klyntar
Contact :

alarme et video

Message par venom »

bonjour

voila je vous explique mon problème:

je souhaiterais crée une alarme pour ordinateur qui conciste a calculer l'heure actuel et l'heure que je lui est entree

ex: il est 12h32et14s
moi je met : 12h55et 23s

je souhaiterais savoir comment peut t on calculer la differance qu'il y a entre les deux c'est sur sa que je bloque :? :oops: .

voila sur ceux voici un code d'exemple qui pourra surement beaucoup plus vous aidez .

Code : Tout sélectionner

;- Window Constants
Enumeration
  #Window_0
EndEnumeration

;- Gadget Constants
Enumeration
  #Text_0
  #Text_1
  #Text_2
  #Text_3
  #Image_0
  #String_0
  #String_1
  #String_2
  #Button_0
  #Button_1
EndEnumeration
InitSound()
;- Fonts
Global FontID1
FontID1 = LoadFont(1, "Comic Sans MS", 12)

  If OpenWindow(#Window_0, 216, 0, 350, 190, "Alarme",  #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_TitleBar | #PB_Window_ScreenCentered )
   SetWindowColor(#Window_0, $110022)
    If CreateGadgetList(WindowID(#Window_0))
      TextGadget(#Text_0, 10, 50, 50, 30, "Heure :")
      SetGadgetFont(#Text_0, FontID1)
      SetGadgetColor(#Text_0, #PB_Gadget_FrontColor, RGB(255,255,255))
      SetGadgetColor(#Text_0, #PB_Gadget_BackColor, $110022) 
      TextGadget(#Text_1, 10, 90, 70, 30, "Minute :")
      SetGadgetFont(#Text_1, FontID1)
      SetGadgetColor(#Text_1, #PB_Gadget_FrontColor, RGB(255,255,255))
      SetGadgetColor(#Text_1, #PB_Gadget_BackColor, $110022) 
      TextGadget(#Text_2, 10, 130, 80, 30, "Seconde :")
      SetGadgetFont(#Text_2, FontID1)
      SetGadgetColor(#Text_2, #PB_Gadget_FrontColor, RGB(255,255,255))
      SetGadgetColor(#Text_2, #PB_Gadget_BackColor, $110022) 
      TextGadget(#Text_3, 10, 10, 190, 30, "ouvrir le son de l'alarme :")
      SetGadgetFont(#Text_3, FontID1)
      SetGadgetColor(#Text_3, #PB_Gadget_FrontColor, RGB(255,255,255))
      SetGadgetColor(#Text_3, #PB_Gadget_BackColor, $110022) 

      StringGadget(#String_0, 100, 50, 40, 20, heur$)
      SetGadgetColor(#String_0, #PB_Gadget_FrontColor, RGB(0,0,255))
      StringGadget(#String_1, 100, 130, 40, 20, minute$)
      SetGadgetColor(#String_1, #PB_Gadget_FrontColor, RGB(0,0,255))
      StringGadget(#String_2, 100, 90, 40, 20, seconde$)
      SetGadgetColor(#String_2, #PB_Gadget_FrontColor, RGB(0,0,255))
      
      ButtonGadget(#Button_0, 210, 10, 130, 20, "Ouvrir")
      ButtonGadget(#Button_1, 10, 160, 130, 20, "Lancer")
      DisableGadget(#Button_1, 1)
      
    EndIf
  EndIf

  Repeat
   EventID = WaitWindowEvent()
    If EventID = #PB_Event_Gadget 
      Select EventGadget()
      
       Case #Button_0
        NomFichier$ = OpenFileRequester("ouvrir le son de l'alarme", "", "alarme|*.mp3;*.wav;*.wave", 0)
         DisableGadget(#Button_0, 1)
          DisableGadget(#Button_1, 0)
       
       Case #Button_1
        heureactuel$ = FormatDate("%hh:%ii:%ss", Date())
        
        SetWindowState(#Window_0, #PB_Window_Minimize) 
         DisableGadget(#String_0, 1)
          DisableGadget(#String_1, 1)
           DisableGadget(#String_2, 1)
            DisableGadget(#Button_1, 1)
      
      EndSelect
    EndIf
  Until EventID = #PB_Event_CloseWindow
.


voila @++
Dernière modification par venom le sam. 14/avr./2007 1:51, modifié 1 fois.
Windows 10 x64, PureBasic 5.73 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
Guimauve
Messages : 1015
Inscription : mer. 11/févr./2004 0:32
Localisation : Québec, Canada

Message par Guimauve »

J'ai pas le temps de regarder ton code mais une piste de solution à étudier est travailler avec le nombre de millisecondes.

Ensuite pour trouver la différence de temps une simple soustraction est nécessaire.

L'autre alternative est de diviser les heures, les minutes et les secondes en variables séparé, regarde la Structure SYSTEMTIME et la commande GetLocalTime_(). Ensuite soustraction champs par champs et tu pourra obtenir la différence de temps exacte même avec les jours, les mois et les années.

Tiens un bout de code juste au cas :

Code : Tout sélectionner

; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; <<<<< Déclaration de la Structure <<<<<

; Structure SYSTEMTIME
   ; 
   ; wYear.w
   ; wMonth.w
   ; wDayOfWeek.w
   ; wDay.w
   ; wHour.w
   ; wMinute.w
   ; wSecond.w
   ; wMilliseconds.w
   ; 
; EndStructure

; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; <<<<< Les Macros d'accès <<<<<

Macro SYSTEMTIMEwYear(TimeA)
   
   TimeA\wYear
   
EndMacro

Macro SYSTEMTIMEwMonth(TimeA)
   
   TimeA\wMonth
   
EndMacro

Macro SYSTEMTIMEwDayOfWeek(TimeA)
   
   TimeA\wDayOfWeek
   
EndMacro

Macro SYSTEMTIMEwDay(TimeA)
   
   TimeA\wDay
   
EndMacro

Macro SYSTEMTIMEwHour(TimeA)
   
   TimeA\wHour
   
EndMacro

Macro SYSTEMTIMEwMinute(TimeA)
   
   TimeA\wMinute
   
EndMacro

Macro SYSTEMTIMEwSecond(TimeA)
   
   TimeA\wSecond
   
EndMacro

Macro SYSTEMTIMEwMilliseconds(TimeA)
   
   TimeA\wMilliseconds
   
EndMacro

; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; <<<<< L'opérateur Equal : A = B <<<<<

Macro EqualSYSTEMTIME(TimeA, TimeB)
   
   SYSTEMTIMEwYear(TimeA) = SYSTEMTIMEwYear(TimeB)
   SYSTEMTIMEwMonth(TimeA) = SYSTEMTIMEwMonth(TimeB)
   SYSTEMTIMEwDayOfWeek(TimeA) = SYSTEMTIMEwDayOfWeek(TimeB)
   SYSTEMTIMEwDay(TimeA) = SYSTEMTIMEwDay(TimeB)
   SYSTEMTIMEwHour(TimeA) = SYSTEMTIMEwHour(TimeB)
   SYSTEMTIMEwMinute(TimeA) = SYSTEMTIMEwMinute(TimeB)
   SYSTEMTIMEwSecond(TimeA) = SYSTEMTIMEwSecond(TimeB)
   SYSTEMTIMEwMilliseconds(TimeA) = SYSTEMTIMEwMilliseconds(TimeB)
   
   ; CopyMemory(TimeB, TimeA, SizeOf(SYSTEMTIME))
   
EndMacro

; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; <<<<< L'opérateur Plus : R = A + B <<<<<

Macro PlusSYSTEMTIME(TimeR, TimeA, TimeB)
   
   SYSTEMTIMEwYear(TimeR) = SYSTEMTIMEwYear(TimeA) + SYSTEMTIMEwYear(TimeB)
   SYSTEMTIMEwMonth(TimeR) = SYSTEMTIMEwMonth(TimeA) + SYSTEMTIMEwMonth(TimeB)
   SYSTEMTIMEwDayOfWeek(TimeR) = SYSTEMTIMEwDayOfWeek(TimeA) + SYSTEMTIMEwDayOfWeek(TimeB)
   SYSTEMTIMEwDay(TimeR) = SYSTEMTIMEwDay(TimeA) + SYSTEMTIMEwDay(TimeB)
   SYSTEMTIMEwHour(TimeR) = SYSTEMTIMEwHour(TimeA) + SYSTEMTIMEwHour(TimeB)
   SYSTEMTIMEwMinute(TimeR) = SYSTEMTIMEwMinute(TimeA) + SYSTEMTIMEwMinute(TimeB)
   SYSTEMTIMEwSecond(TimeR) = SYSTEMTIMEwSecond(TimeA) + SYSTEMTIMEwSecond(TimeB)
   SYSTEMTIMEwMilliseconds(TimeR) = SYSTEMTIMEwMilliseconds(TimeA) + SYSTEMTIMEwMilliseconds(TimeB)
   
EndMacro

; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; <<<<< L'opérateur Minus : R = A - B <<<<<

Macro MinusSYSTEMTIME(TimeR, TimeA, TimeB)
   
   SYSTEMTIMEwYear(TimeR) = SYSTEMTIMEwYear(TimeA) - SYSTEMTIMEwYear(TimeB)
   SYSTEMTIMEwMonth(TimeR) = SYSTEMTIMEwMonth(TimeA) - SYSTEMTIMEwMonth(TimeB)
   SYSTEMTIMEwDayOfWeek(TimeR) = SYSTEMTIMEwDayOfWeek(TimeA) - SYSTEMTIMEwDayOfWeek(TimeB)
   SYSTEMTIMEwDay(TimeR) = SYSTEMTIMEwDay(TimeA) - SYSTEMTIMEwDay(TimeB)
   SYSTEMTIMEwHour(TimeR) = SYSTEMTIMEwHour(TimeA) - SYSTEMTIMEwHour(TimeB)
   SYSTEMTIMEwMinute(TimeR) = SYSTEMTIMEwMinute(TimeA) - SYSTEMTIMEwMinute(TimeB)
   SYSTEMTIMEwSecond(TimeR) = SYSTEMTIMEwSecond(TimeA) - SYSTEMTIMEwSecond(TimeB)
   SYSTEMTIMEwMilliseconds(TimeR) = SYSTEMTIMEwMilliseconds(TimeA) - SYSTEMTIMEwMilliseconds(TimeB)
   
EndMacro

; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; <<<<< Macro de déboguage <<<<<

Macro DebugSYSTEMTIME(TimeA)
   
   Debug SYSTEMTIMEwYear(TimeA)
   Debug SYSTEMTIMEwMonth(TimeA)
   Debug SYSTEMTIMEwDayOfWeek(TimeA)
   Debug SYSTEMTIMEwDay(TimeA)
   Debug SYSTEMTIMEwHour(TimeA)
   Debug SYSTEMTIMEwMinute(TimeA)
   Debug SYSTEMTIMEwSecond(TimeA)
   Debug SYSTEMTIMEwMilliseconds(TimeA)
   
EndMacro

; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; <<<<< Code généré en : 00.031 secondes <<<<<
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

Debug "On demande le temps de départ"
GetLocalTime_(Temps1.SYSTEMTIME)

Debug "On attend 5 secondes et on demande le temps 2"
Delay(5000)

GetLocalTime_(Temps2.SYSTEMTIME)

Debug "On regarde le temps 1"
DebugSYSTEMTIME(Temps1)
Debug ""
Debug "On regarde le temps 2"
DebugSYSTEMTIME(Temps2)

Debug ""
Debug "Et on regarde la différence"

MinusSYSTEMTIME(Temps3.SYSTEMTIME, Temps2, Temps1)

DebugSYSTEMTIME(Temps3)

; <<<<<<<<<<<<<<<<<<<<<<<<<<
; <<<<< FIN DU FICHIER <<<<<
; <<<<<<<<<<<<<<<<<<<<<<<<<<
Si non tu peux toujours faire ta propre structure entre faire un truc similaire à cet l'exemple.

A+
Guimauve
Avatar de l’utilisateur
flaith
Messages : 1487
Inscription : jeu. 07/avr./2005 1:06
Localisation : Rennes
Contact :

Message par flaith »

sinon :

Code : Tout sélectionner

a.l = ParseDate("%hh:%ii:%ss","12:32:14")
b.l = ParseDate("%hh:%ii:%ss","12:55:23")

c.l = b - a
Diff$ = FormatDate("%hh:%ii:%ss",c)
Debug Diff$
Avatar de l’utilisateur
venom
Messages : 3138
Inscription : jeu. 29/juil./2004 16:33
Localisation : Klyntar
Contact :

Message par venom »

re:

je vous remercie, j'ai réussi a me debrouiller car je ne savais pas par ou commencer alors que c'est qu'une simple soustraction :oops: encore merci.


@++

par contre j'ai remarqué un autre souci si par exemple je met

21:15:00 et 21:20:00 bin sa me relance 00:00:00 comment cela se fait ? c'est du a un bug ?

verifiez vous verrez.

Code : Tout sélectionner

;- Window Constants
Enumeration
  #Window_0
EndEnumeration

;- Gadget Constants
Enumeration
  #Text_0
  #Text_1
  #Text_2
  #Text_3
  #Image_0
  #String_0
  #String_1
  #String_2
  #Button_0
  #Button_1
EndEnumeration
InitSound()
;- Fonts
Global FontID1
FontID1 = LoadFont(1, "Comic Sans MS", 12)

  If OpenWindow(#Window_0, 216, 0, 350, 190, "Alarme",  #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_TitleBar | #PB_Window_ScreenCentered )
   SetWindowColor(#Window_0, $110022)
    If CreateGadgetList(WindowID(#Window_0))
      TextGadget(#Text_0, 10, 50, 50, 30, "Heure :")
      SetGadgetFont(#Text_0, FontID1)
      SetGadgetColor(#Text_0, #PB_Gadget_FrontColor, RGB(255,255,255))
      SetGadgetColor(#Text_0, #PB_Gadget_BackColor, $110022) 
      TextGadget(#Text_1, 10, 90, 70, 30, "Minute :")
      SetGadgetFont(#Text_1, FontID1)
      SetGadgetColor(#Text_1, #PB_Gadget_FrontColor, RGB(255,255,255))
      SetGadgetColor(#Text_1, #PB_Gadget_BackColor, $110022) 
      TextGadget(#Text_2, 10, 130, 80, 30, "Seconde :")
      SetGadgetFont(#Text_2, FontID1)
      SetGadgetColor(#Text_2, #PB_Gadget_FrontColor, RGB(255,255,255))
      SetGadgetColor(#Text_2, #PB_Gadget_BackColor, $110022) 
      TextGadget(#Text_3, 10, 10, 190, 30, "ouvrir le son de l'alarme :")
      SetGadgetFont(#Text_3, FontID1)
      SetGadgetColor(#Text_3, #PB_Gadget_FrontColor, RGB(255,255,255))
      SetGadgetColor(#Text_3, #PB_Gadget_BackColor, $110022) 

      StringGadget(#String_0, 100, 50, 40, 20, heur$)
      SetGadgetColor(#String_0, #PB_Gadget_FrontColor, RGB(0,0,255))
      StringGadget(#String_1, 100, 130, 40, 20, minute$)
      SetGadgetColor(#String_1, #PB_Gadget_FrontColor, RGB(0,0,255))
      StringGadget(#String_2, 100, 90, 40, 20, seconde$)
      SetGadgetColor(#String_2, #PB_Gadget_FrontColor, RGB(0,0,255))
      
      ButtonGadget(#Button_0, 210, 10, 130, 20, "Ouvrir")
      ButtonGadget(#Button_1, 10, 160, 130, 20, "Lancer")
      DisableGadget(#Button_1, 1)
      
    EndIf
  EndIf

  Repeat
   EventID = WaitWindowEvent()
    If EventID = #PB_Event_Gadget 
      Select EventGadget()
      
       Case #Button_0
        NomFichier$ = OpenFileRequester("ouvrir le son de l'alarme", "", "alarme|*.mp3;*.wav;*.wave", 0)
         DisableGadget(#Button_0, 1)
          DisableGadget(#Button_1, 0)
          
      
       Case #Button_1
       heur$ = GetGadgetText(#String_0)
       minute$ = GetGadgetText(#String_1)
       seconde$ = GetGadgetText(#String_2)
        a.l = ParseDate("%hh:%ii:%ss",FormatDate("%hh:%ii:%ss", Date()))
        b.l = ParseDate("%hh:%ii:%ss", FormatDate(heur$+":"+minute$+":"+seconde$, Date()))
        c.l = b - a
        Diff$ = FormatDate("%hh:%ii:%ss",c)
        MessageRequester("info", Diff$, 0)
    
        SetWindowState(#Window_0, #PB_Window_Minimize) 
         DisableGadget(#String_0, 1)
          DisableGadget(#String_1, 1)
           DisableGadget(#String_2, 1)
            DisableGadget(#Button_1, 1)
      
      EndSelect
    EndIf
  Until EventID = #PB_Event_CloseWindow
Windows 10 x64, PureBasic 5.73 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
brossden
Messages : 833
Inscription : lun. 26/janv./2004 14:37

Message par brossden »

Regarde bien ton code tu as inversé les minutes et les secondes !!

:roll:

et ce petit bug corrigé ici !

Code : Tout sélectionner

        a.l = Hour(Date())*3600+Minute(Date())*60+Second(Date())
        b.l = ParseDate("%hh:%ii:%ss", heur$+":"+minute$+":"+seconde$)
Denis

Bonne Jounée à tous
Avatar de l’utilisateur
venom
Messages : 3138
Inscription : jeu. 29/juil./2004 16:33
Localisation : Klyntar
Contact :

Message par venom »

bonjour,

:oops: autant pour moi quel navet quand même. encore merci :wink: je vous remercie tous.


@++
Windows 10 x64, PureBasic 5.73 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
Avatar de l’utilisateur
venom
Messages : 3138
Inscription : jeu. 29/juil./2004 16:33
Localisation : Klyntar
Contact :

Message par venom »

bonsoir,

voila c'est pour éviter de réouvrir un poste je ne sais pas si c'est bien de faire sa mais bon j'ai qu'une seule et simple question.

voila j'ai un programme qui lie une vidéo avec la fonction:

Code : Tout sélectionner

LoadMovie(0, fichier$)
PlayMovie(0, WindowID(0))
est t-il possible de lire cette vidéo en boucle tant que la fenêtre n'est pas fermer . car avec une musique on peut

Code : Tout sélectionner

PlaySound(#Son [, Mode])
mais je n'est pas trouver pour une vidéo.
voila encore désolé pour le dérangement.

@++
Windows 10 x64, PureBasic 5.73 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

avec
Longueur = MovieLength(#Film)
tu connais la longueur de ton film en trame !

avec
Resultat = MovieStatus(#Film)
ça te donne la position de la trame en cours de lecture

tu n'as qu'a faire

Code : Tout sélectionner


if MovieStatus(#Film)=MovieLength(#Film)
 MovieSeek(#Film, 1)
endif
voila , j'ai pas testé , mais ça doit marcher :D
Avatar de l’utilisateur
venom
Messages : 3138
Inscription : jeu. 29/juil./2004 16:33
Localisation : Klyntar
Contact :

Message par venom »

ok merci dobro je test et je te dit koi :wink: .


@++
Windows 10 x64, PureBasic 5.73 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
Avatar de l’utilisateur
venom
Messages : 3138
Inscription : jeu. 29/juil./2004 16:33
Localisation : Klyntar
Contact :

Message par venom »

bon et bien je ne sais pas si c'est le bon format ou pas mais sa ne fonctionne pas :lol: .

en faite je veut jouer une vidéo en plein ecrant ( en fenetre pas en sprite ).

donc si sa peut aider voici le code que j'ai

Code : Tout sélectionner

;- Init
InitMovie()
If ExamineDesktops()
 L = DesktopWidth(0)
 H = DesktopHeight(0)
EndIf 

;- preferences
Resultat = OpenPreferences("c:/videoveille.ini")
If Resultat = 0
 MessageRequester("information", "Attention, vous devez d'abord choisir une video avec 'option video veille'. merci", 0)
  End 
Else 
 Resultat = 1
  fichier$ = ReadPreferenceString("video", "")
   volume = ReadPreferenceLong("volume", 0)
    LoadMovie(0, fichier$)

;- Window and gadget
OpenWindow(0, 0, 0, L, H+7, "Video Veille", #PB_Window_BorderLess)
 SetWindowColor(0, RGB(0,0,0))
  If CreateGadgetList(WindowID(0))
   LoadImage(1, "C:\Documents and Settings\dink\Bureau\fermer.bmp")
    ButtonImageGadget(1, 0, 0, 20, 20, ImageID(1))
   PlayMovie(0, WindowID(0)) 
    MovieAudio(0, volume, Balance)
   ResizeMovie(0, 0, 20, L, H-20)
   If MovieStatus(0)=MovieLength(0)
    MovieSeek(0, 1)
   EndIf
  EndIf 
EndIf 

Repeat
 EventID = WaitWindowEvent()
  If EventID = #PB_Event_Gadget 
   Select EventGadget()
    Case 1
     End 
   EndSelect
  EndIf
Until EventID = #PB_Event_CloseWindow
.

voila a moin que je n'est pas mis ton code a la bonne place mais je le voie la moi :wink: .


@++
Windows 10 x64, PureBasic 5.73 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

....
Dernière modification par Backup le mar. 19/août/2014 14:46, modifié 1 fois.
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

......
Dernière modification par Backup le mar. 19/août/2014 14:46, modifié 1 fois.
Avatar de l’utilisateur
venom
Messages : 3138
Inscription : jeu. 29/juil./2004 16:33
Localisation : Klyntar
Contact :

Message par venom »

merci dobro :wink:

j' ai repris

Code : Tout sélectionner

  Procedure   ReLance()
     If MovieStatus (0) = 0
         PlayMovie (0, WindowID (0))
     EndIf
EndProcedure 
puis

Code : Tout sélectionner

Timer =   SetTimer_   (   WindowID   (0), 0, 500, @ReLance()) 
maintenant sa fonctionne :wink:

merci


@++
Windows 10 x64, PureBasic 5.73 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
Répondre