Batch Index du Forum
S’enregistrerRechercherFAQMembresGroupesConnexion
Répondre au sujet Page 1 sur 1
[Prog] Petite Horloge
Auteur Message
Répondre en citant
Message [Prog] Petite Horloge 
Hello,

Après quelques heures de travail (notamment pour essayer qu'elle ne clignote pas trop), j'ai créé une petite horloge.
Développé sous windows seven, mais elle devrait marcher sur toutes les versions de windows. Pour la tester, vous devez copier le code dans Autoit (SciTE4autoit), l'enregistrer en .au3 et l'ouvrir. Je peux fournir l'exécutable sur demande. J'ai mis des remarques sur chaque-unes de mes lignes, ça fait beaucoup, mais c'est en lisant et comprenant ce que le programme fait, puis en faisant des test, que vous apprendrez le mieux.

Code:
#include <GUIConstants.au3>  ;On inclut le fichier pour faire les intefaces
#Include <GuiEdit.au3> ;On inclut le fichier pour pouvoir utiliser la fonction _GUICtrlEdit_SetText
#include <ComboConstants.au3>


HotKeySet("{esc}", "_quit") ;Si on appuye sur la touche escape alors on utilise la fonction _quit
HotKeySet("{m}", "_menu") ;Si on appuye sur la touche m alors on utilise la fonction _menu

Func _quit() ;début de la fonction _quit
Exit ;On quitte la programme
EndFunc ;fin de la fonction

Func _menu()
GUIDelete() ;On efface les autres fenêtres
#Region ### START Koda GUI section ### ; début de la création de l'interface
$color2 = IniRead("horloge_settings.ini","preferences","color","Noir") ;On lit dans le fichier .ini quelle est la couleur de fond (noir est par défaut)
If $color2 = "Noir" Then $color = 0x000000 ;On définit la couleur en fonction de la variable trouvée dans le fichier .ini
If $color2 = "Vert" Then $color = 0x008000 ;On définit la couleur en fonction de la variable trouvée dans le fichier .ini
If $color2 = "Bleu" Then $color = 0x008080 ;On définit la couleur en fonction de la variable trouvée dans le fichier .ini
If $color2 = "Rouge" Then $color = 0x800000 ;On définit la couleur en fonction de la variable trouvée dans le fichier .ini
If $color2 = "jaune" Then $color = 0x808000 ;On définit la couleur en fonction de la variable trouvée dans le fichier .ini
$menu = GUICreate("Menu Horloge by sablier94", 388, 168, 305, 236, BitOR($WS_SYSMENU,$WS_POPUP), $WS_EX_TOOLWINDOW) ;Quelques propriétés de la fenêtre
GUISetBkColor($color) ;On applique la couleur de fond grâce à la variable
$couleurtxt = GUICtrlCreateLabel("Couleur de fond :", 16, 24, 104, 20) ;On affiche du texte
GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif") ;Quelques propriétés du texte
GUICtrlSetColor(-1, 0xFFFFFF) ;Quelques propriétés du texte
$couleur = GUICtrlCreateCombo("Couleur", 152, 24, 105, 25, BitOR($CBS_DROPDOWNLIST,$CBS_AUTOHSCROLL)) ;On affiche une liste pour choisir les couleurs
GUICtrlSetData(-1, "|Noir|Bleu|Vert|Jaune|Rouge","noir") ;liste des couleurs
$Enregistrer = GUICtrlCreateButton("Enregistrer", 112, 104, 129, 33, 0) ;Boutton pour enregistrer
$titretxt = GUICtrlCreateLabel("Titre :", 16, 64, 37, 20) ;On affiche du texte
GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0xFFFFFF)
$titreinput = iniRead("horloge_settings.ini","preferences","titre","Horloge by Sablier94 / Press [M] for Settings & [Esc] for exit") ;lecture du titre dans le fichier .ini
$titre = GUICtrlCreateInput($titreinput, 64, 64, 225, 21) ;input pour choisir un titre
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ### ;Fin de l'interface

While 1 ;Début de la boucle
   $nMsg = GUIGetMsg()
   Switch $nMsg
      Case $GUI_EVENT_CLOSE ;Si on appuye sur la croix
         Exit ;Alors on ferme
      Case $enregistrer ;Si on appuye sur enregistrer :
         $couleur = GUICtrlRead($couleur) ;On lit la couleur choisie dans la liste des couleurs
         $titre = GUICtrlRead($titre) ;On lit le titre
         IniWrite("horloge_settings.ini","preferences","color",$couleur) ;On écrit la couleur dans le fichier .ini
         IniWrite("horloge_settings.ini","preferences","titre",$titre) ;On écrit la couleur dans le fichier .ini
         GUIDelete() ;On efface toutes les fenêtres
        ShellExecute(@ScriptFullPath) ;On rouvre le programme
         Exit ;on ferme le programme
   EndSwitch ;fin du switch
WEnd ;fin de la boucle
EndFunc ;Fin de la fonction _menu

Local $heuredepart = @HOUR, $minutesdepart = @MIN, $secondesdepart = @SEC, $WS_SYSMENU,$WS_POPUP, $WS_EX_TOOLWINDOW ;On définit quelques variables pour pouvoir les utiliser partout dans le programme

$color2= IniRead("horloge_settings.ini","preferences","color","Noir") ;On lit la couleur dans le fichier .ini (Noir par défaut)
If $color2 = "Noir" Then $color = 0x000000 ;On définit la couleur en fonction de la variable trouvée dans le fichier .ini
If $color2 = "Vert" Then $color = 0x008000 ;On définit la couleur en fonction de la variable trouvée dans le fichier .ini
If $color2 = "Bleu" Then $color = 0x008080 ;On définit la couleur en fonction de la variable trouvée dans le fichier .ini
If $color2 = "Rouge" Then $color = 0x800000 ;On définit la couleur en fonction de la variable trouvée dans le fichier .ini
If $color2 = "jaune" Then $color = 0x808000 ;On définit la couleur en fonction de la variable trouvée dans le fichier .ini
#Region ### START Koda GUI section ### ;Début de la création de l'interface
$titre = iniRead("horloge_settings.ini","preferences","titre","Horloge by Sablier94 / Press [M] for Settings & [Esc] for exit") ;création de la feneêtre
$Horloge = GUICreate($titre, 462, 70, 288, 165, BitOR($WS_SYSMENU,$WS_POPUP), $WS_EX_TOOLWINDOW) ;Quelques propriétés de la fenêtre
GUISetBkColor($color) ;On applique la couleur de fond grâce à la variable
$ilesttxt = GUICtrlCreateLabel("Il est", 16, 10, 41, 28) ;On affiche du texte
GUICtrlSetFont(-1, 16, 400, 0, "MS Sans Serif")  ;Quelques propriétés du texte
GUICtrlSetColor(-1, 0xFFFFFF) ;Quelques propriétés du texte
$heure = GUICtrlCreateLabel($heuredepart, 64, 10, 24, 28) ;On affiche du texte qui contient une variable
GUICtrlSetFont(-1, 16, 400, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0xFFFFFF)
$heuretxt = GUICtrlCreateLabel("heure", 99, 10, 54, 28) ;On affiche du texte
GUICtrlSetFont(-1, 16, 400, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0xFFFFFF)
$minutes = GUICtrlCreateLabel($minutesdepart, 160, 10, 24, 28) ;On affiche du texte qui contient une variable
GUICtrlSetFont(-1, 16, 400, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0xFFFFFF)
$minutestxt = GUICtrlCreateLabel("minutes", 194, 10, 70, 28) ;On affiche du texte
GUICtrlSetFont(-1, 16, 400, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0xFFFFFF)
$secondes = GUICtrlCreateLabel($secondesdepart, 291, 10, 24, 28) ;On affiche du texte qui contient une variable
GUICtrlSetFont(-1, 16, 400, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0xFFFFFF)
$secondestxt = GUICtrlCreateLabel("secondes", 324, 10, 87, 28) ;On affiche du texte
GUICtrlSetFont(-1, 16, 400, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0xFFFFFF)
$ettxt = GUICtrlCreateLabel("et", 269, 10, 19, 28) ;On affiche du texte
GUICtrlSetFont(-1, 16, 400, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0xFFFFFF)
GUISetState(@SW_SHOW) ;Quelques propriétés
#EndRegion ### END Koda GUI section ### ;Fin de l'interface

While 1 ;Début de la boucle
   $nMsg = GUIGetMsg()
   Switch $nMsg
      Case $GUI_EVENT_CLOSE ;Si on appuye sur la croix
         Exit ;Alors on ferme
    EndSwitch

 If _GUICtrlEdit_GetText($heure) <> @HOUR Then _
 _GUICtrlEdit_SetText($heure, @HOUR) ;On édite le texte de la GUI $heure avec l'heure réelle
sleep(50) ;On fait une pause de 50 milisecondes
If _GUICtrlEdit_GetText($minutes) <> @MIN then _
_GUICtrlEdit_SetText($minutes,@MIN);On édite le texte de la GUI $minutes avec les minutes réelles
sleep(50) ;On fait une pause de 50 milisecondes
If _GUICtrlEdit_GetText($secondes) <> @SEC Then _
_GUICtrlEdit_SetText($secondes,@SEC);On édite le texte de la GUI $secondes avec les secondes réelles
sleep(250) ;On fait une pause de 250 milisecondes pour ne pas surcharger le processeur à cause de la boucle
WEnd ;Fin de la boucle




Dernière édition par sablier94 le Dim 26 Déc 2010 - 16:34; édité 2 fois

______________________________________________________
Message Publicité 
PublicitéSupprimer les publicités ?


Répondre en citant
Message [Prog] Petite Horloge 
Un code surprenant que je vais devoir décortiquer pour pouvoir le comprendre surtout au niveau des GUI.
Evidement toutes explications en plus est acceptée.



Répondre en citant
Message [Prog] Petite Horloge 
Simple et efficace, pas trop dur a faire, j'aime !




______________________________________________________
Batcher c'est toujours travailler
Message [Prog] Petite Horloge 


Montrer les messages depuis:
Répondre au sujet Page 1 sur 1
  



Index | créer un forum | Forum gratuit d’entraide | Annuaire des forums gratuits | Signaler une violation | Conditions générales d'utilisation
Copyright 2008 - 2016 // Batch