Page 1 sur 1

[UDF] Log Viewer Gui

Posté : mer. 03 févr. 2010 18:49
par timmalos
Bonjour a tous.
Je vous présente mon dernier petit projet. Il peut surement aider quelques personnes ici dans leur projet professionel.

Log Viewer Gui's Presentation



Description

Prochainement composé d'une dizaine de fonctions environ, cet UDF crée une GUI independante de votre programme, marchant simultanément, afin de montrer vos lignes de logs aux utilisateurs (ou tout autre information, par exemple l'avancement d'un telechargement ou d'une installation.)
Comme une image parle toujours plus :
Image


Exemple d'utilisation

Ci-dessous un script d'exemple d'utilisation de l'UDF. Cet exemple est sommaire car le programme en lui meme ne comporte pas de fenetre, mais vous pouvez tout a fait l'ajouter a vos scripts existants et tres facilement.

Code : Tout sélectionner

#include <udf_log.au3>


_Log_Gui_Create()
_Log_gui_show_hide(@SW_SHOW)
_Log_Gui_Add("Lancement de l'application",0);Icon: 0 = OK, 1 = Attention, 2 = ERREUR, 3 = Interrogation
_Log_Gui_Add("Ce programme va analyser vos données. Etes vous certain de continuer? Si non, fermez ce programme",3);Icon: 0 = OK, 1 = Attention, 2 = ERREUR, 3 = Interrogation, 4 = Recherche 5 = Information
Sleep(3000)
_Log_Gui_Add("Ce programme va analyser vos données. Lancement dans quelques secondes",6);Icon: 0 = Lancement, 1 = Attention, 2 = ERREUR, 3 = Interrogation,4=OK, 5 = Recherche 6 = Information
Sleep(2000)

Global $i
For $i = 1 to 10
    _Log_gui_set_status_bar("Opération "&$i+1&" en cours...")
    _Log_Gui_Add("Recherche en cours...",5);Icon: 0 = OK, 1 = Attention, 2 = ERREUR, 3 = Interrogation, 4 = Recherche 5 = Information

    Sleep(2300)
    If Random(0,1,1) = 1 Then
        _Log_Gui_Add("Lancement de l'opération n°"& $i & " Réussi",4);Icon: 0 = Lancement, 1 = Attention, 2 = ERREUR, 3 = Interrogation, 4 = OK
    Else
        _Log_Gui_Add("Lancement de l'opération n°"& $i & " Echoué",2);Icon: 0 = Lancement, 1 = Attention, 2 = ERREUR, 3 = Interrogation, 4 = OK
    EndIf
    _Log_Gui_Set_Percent($i*10 - Int($i/5) + Int($i/4)-Int($i/3)+3)
Next
_Log_Gui_Close()
Exit
 
Vous pouvez tester ce code sur votre machine sans danger, il n'opère aucune action.


Projet Evolutif

Dernière chose, ce projet est OPEN, c'est à dire que je ne le fait pas que pour moi. En consequence, si quelqu'un souhaite le modifier, il en a tous les droits et c'est encore mieux si il nous fait part de ses modifications. De plus, si quelqlu'un a besoin d'une modification/amélioration , qu'il n'hesite pas à la demander.

Le fichier zip ci-dessous contient tous les fichiers necessaires, dont l'UDF proprement dit.
UDF_LOG_GUI.zip
Version 1.0
(95.35 Kio) Téléchargé 1008 fois
Si vous avez d'autres questions, n'hesitez pas,
Cordialement,
Tim

Re: [UDF] Log Viewer Gui

Posté : jeu. 04 févr. 2010 15:43
par Habibsbib
Très bon projet.

Mais je vais quand même reprendre ton code et corriger les fautes d'orthographe (y' en a bas beaucoup, t'inquiète pas).

Re: [UDF] Log Viewer Gui

Posté : ven. 08 avr. 2011 08:10
par ricky
Hello,

l'image n'est plus visible, est-ce normal?

Re: [UDF] Log Viewer Gui

Posté : ven. 08 avr. 2011 13:28
par timmalos
Je viens de la reuploader. Merci pour avoir prevenu ;)

Re: [UDF] Log Viewer Gui

Posté : ven. 08 avr. 2011 14:37
par sksbir
Bonjour
J'ai pris le .zip, je l'ai décompressé dans un répertoire à part.

lancement du sample impossible, le syntaxcheckprod me renvoie ceci:

>Running AU3Check (1.54.19.0) from:C:\Program Files\AutoIt3
D:\tmp\UDF_LOG_GUI\udf_log.au3(35,31) : WARNING: $LL_GUI: possibly used before declaration.
GUISetState($LL_flag, $LL_GUI)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^


c'est à la ligne 35 de l'UDF.

c'est le petit cadeau au 100ieme téléchargement ?? :lol:

Re: [UDF] Log Viewer Gui

Posté : ven. 08 avr. 2011 18:12
par timmalos
C'est juste un warning, ici tout va bien c'est juste que $LL_GUI est declaré par la fonction _create, donc si tu n'appelle pas cette fonction avant les autres il va y avoir une erreur, mais en fait non car à chaqeu debut de fonction je vérifie que c'est bien le cas, aucun soucis à te faire donc ;)

Re: [UDF] Log Viewer Gui

Posté : lun. 12 déc. 2016 00:13
par FF2Damien
super script. merci beaucoup !

En revanche ça ne fais pas un scroll down pour visualiser en continu le log. c'est dommage.
Une idée pour corriger ca ?

++

Re: [UDF] Log Viewer Gui

Posté : lun. 12 déc. 2016 11:55
par mikell
pas testé mais ça devrait le faire

Code : Tout sélectionner

Func _Log_Gui_Add($LL_Texte, $LL_icon)
	If Not IsDeclared("LL_GUI") Then SetError(1, 0, 0)
	;Icon: 0 = OK, 1 = Attention, 2 = ERREUR, 3 = Interrogation
	;_GUICtrlListView_BeginUpdate($LL_hListView)
	$newitem = _GUICtrlListView_AddItem($LL_hListView, $LL_Texte, Number($LL_icon))  ;<<<<<<<<<<<<<<<<<
	If $LL_title_group1 Then _GUICtrlListView_SetItemGroupID($LL_hListView, Number(_GUICtrlListView_GetItemCount($LL_hListView)) - 1, 1)
	;_GUICtrlListView_EndUpdate($LL_hListView)
	_GUICtrlListView_EnsureVisible($LL_hListView, $newitem)  ;<<<<<<<<<<<<<<<<<<<
EndFunc   ;==>_Log_Gui_Add

Re: [UDF] Log Viewer Gui

Posté : lun. 12 déc. 2016 12:33
par FF2Damien
Ca fonctionne !

Merci !

Re: [UDF] Log Viewer Gui

Posté : sam. 17 déc. 2016 00:56
par FF2Damien
Retour d'info

Ca fait plusieurs jours que je bloque sur une simple GUI:
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>

; ########## Début de la création de la GUI 1 ##########
$GUI1 = GUICreate("GUI1", 250, 150, -1, -1) ; Création de la GUI1
$Lb1 = GUICtrlCreateLabel("Fenêtre 1", 85, 10, 120, 24) ; Création du label1
GUICtrlSetFont(-1, 12, 800, 0, "MS Sans Serif") ; Mise en gras du texte du contrôle précédent (Label1)
$Chb1 = GUICtrlCreateCheckbox("Checkbox1", 90, 60, 100, 20) ; Création d'une CheckBox
$Btn1 = GUICtrlCreateButton("Masque la GUI1 et Affiche la GUI2", 35, 110, 180, 25) ; Création d'un bouton simple
; ########## Fin de la création de la GUI 1 ##########

; ########## Début de la création de la GUI 2 ##########
$GUI2 = GUICreate("GUI2", 250, 150, -1, -1) ; Création de la GUI2
$Lbl2 = GUICtrlCreateLabel("Fenêtre 2", 85, 10, 120, 24) ; Création du label2
GUICtrlSetFont(-1, 12, 800, 0, "MS Sans Serif") ; Mise en gras du texte du contrôle précédent (Label2)
$Rd1 = GUICtrlCreateRadio("Radio1", 100, 60, 100, 20) ; Création d'un bouton radio
$Btn2 = GUICtrlCreateButton("Masque GUI 1 et Affiche GUI 2", 35, 110, 180, 25) ; Création d'un bouton simple
; ########## Fin de la création de la GUI 2 ##########

GUISetState(@SW_SHOW, $GUI1) ; On affiche la GUI1 (la GUI2 reste masquée)

While 1 ; Début de la boucle infinie

    $nMsg = GUIGetMsg() ; Récupération des messages GUI
    Switch $nMsg ; Début du sélecteur de cas

        Case $GUI_EVENT_CLOSE ; Si clic fermeture fenêtre GUI1 ou GUI2 on sort
            MsgBox(64, 'Info', 'Vous avez choisi de fermer la fenêtre en cours') ; Message
            Exit ; Fin du script

        Case $Btn1 ; Si clic sur le bouton $Btn1
            GUISetState(@SW_HIDE, $GUI1) ; On masque la GUI 1
            GUISetState(@SW_SHOW, $GUI2) ; On affiche la GUI 2

        Case $Chb1 ; Si clic sur le contrôle $Chb1 (CheckBox)
            MsgBox(64, 'Info', 'Vous avez cliqué sur la CheckBox') ; Message

        Case $Btn2 ; Si clic sur le bouton $Btn2
            GUISetState(@SW_HIDE, $GUI2) ; On masque la GUI 2
            GUISetState(@SW_SHOW, $GUI1) ; On affiche la GUI 1

        Case $Rd1 ; Si clic sur le contrôle $Rd1 (RadioBox)
            MsgBox(64, 'Info', 'Vous avez cliqué sur la RadioBox') ; Message

    EndSwitch ; Fin du sélecteur de cas
WEnd ; Fin de la boucle infinie

Si on rajoute a ce code l'udf
#include <udf_log.au3>
Le soft ne fonctionne plus du tout... plus aucun des radio ou checkbox et autre ne semble etre vu.
C'est fort dommage. Qqun a t'il une explication ? j'ai beau chercher, je ne vois pas...


source :
https://openclassrooms.com/courses/la-p ... enements-3

Re: [UDF] Log Viewer Gui

Posté : mer. 21 déc. 2016 10:18
par FF2Damien
up !
hello all,
qqun sait pourquoi on ne peu pas faire fonctionner les 2 GUI ensemble ?