Dispositif Prévisionnel de Secours

Vous avez développé un logiciel en PureBasic et vous souhaitez le faire connaitre ?
Avatar de l’utilisateur
Jacobus
Messages : 1520
Inscription : mar. 06/avr./2004 10:35
Contact :

Dispositif Prévisionnel de Secours

Message par Jacobus »

Voici une nouvelle petite application Eval-DPS qui pourra aider ceux concernés par l'organisation et la sécurisation d'évènements.
Elle permet de calculer le RIS (Ratio d'Intervenants Secouristes) et de déterminer le dispositif à mettre en place.
Logiciel très ciblé mais on ne sait jamais il y en a peut-être parmi vous qui sont concernés.
La page pour découvrir et télécharger le programme : Présentation de Eval-DPS
Have fun! les geek :wink:
Quand tous les glands seront tombés, les feuilles dispersées, la vigueur retombée... Dans la morne solitude, ancré au coeur de ses racines, c'est de sa force maturité qu'il renaîtra en pleine magnificence...Jacobus.
Avatar de l’utilisateur
Kwai chang caine
Messages : 6962
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Re: Dispositif Prévisionnel de Secours

Message par Kwai chang caine »

C'est dingue de voir ou les applications vont se nicher 8O ça donne de l'espoir pour une éventuelle nouvelle idée de programme 8) il suffit d'être AWARE dixit JCV 8O
Ca étaie bien la théorie que dans la vie tout est basé sur "la" mathématique comme aurait dit notre cher ancien ministre 8)
Merci du lien, on sait jamais :wink:
ImageLe bonheur est une route...
Pas une destination

PureBasic Forum Officiel - Site PureBasic
Avatar de l’utilisateur
Philippe_GEORGES
Messages : 119
Inscription : mer. 28/janv./2009 13:28

Re: Dispositif Prévisionnel de Secours

Message par Philippe_GEORGES »

Bonjour Jacobus,

Le code source est il disponible ? Très bien ce calcul RIS, mais sans le code source, je ne peux le porter sur Mac. Maintenant, si vous ne voulez pas le rendre public, je le comprends. Toutefois, ce serait aussi un bon exemple de code.

Encore merci de mettre ce logiciel à disposition.

Phil
Philippe GEORGES
"La simplicité est la sophistication suprême" (De Vinci)
assistance informatique, création de logiciels
georges.informatique@gmail.com
Ollivier
Messages : 4190
Inscription : ven. 29/juin/2007 17:50
Localisation : Encore ?
Contact :

Re: Dispositif Prévisionnel de Secours

Message par Ollivier »

Salut Jacobus, le site est fonctionnel sur OperaMini, et chaque volet horizontal (pages propres à chaque logiciel) est accessible. Chose lourdement rare sur de nombreux sites. Testé à 14H30. (Il y a 15 minutes). Pas téléchargé (pas d'ordi "propre" sous la main). Mais sûrement fonctionnel aussi...

Bise (pleine de CoVid-19 !!)
Avatar de l’utilisateur
Jacobus
Messages : 1520
Inscription : mar. 06/avr./2004 10:35
Contact :

Re: Dispositif Prévisionnel de Secours

Message par Jacobus »

Hello à vous tous, merci de vos retours.
mise à jour v1.10 incluant la création de captures d'écran des évaluations
Il s'agit d'une application des plus simples, il n'y a rien de transcendant dans le code, même si je me remet à coder des applis après un long moment, c'est juste pour le plaisir et apporter des solutions à ceux qui en ont besoin, d'où ce petit programme qui s'avère fort utile dans les milieux concernés. De plus, vu mon grand âge, je code à l'ancienne et d'ici 3 ou 4 ans je devrais avoir plus de temps pour moi et coder quelques bricoles, malgré la réforme des retraites qui ne devrait pas m'impacter (mais dur dur pour les jeunes...)
Cher Ollivier, merci pour ta visite et la bise, El corona (je ne l'ai pas encore) va bien trouver son maître... il n'y a pas de raison. Il faut garder espoir.

@Philippe_GEORGES, Voici le code source, mais attention de modifier les accès aux images et aux fichiers, non fournis.
1ère partie:

Code : Tout sélectionner

UseJPEGImageDecoder()
UseJPEGImageEncoder()
UsePNGImageDecoder()
;---------------------------------
;-CONSTANTES
;---------------------------------
;-Enumeration ID programme
#PROGRAMNAME = "Eval-D.P.S."
#NUMVERSION  = "V1.10"
#COPYRIGHT   = " WolfoRan LogEditor"+ Chr(169) + "2006-2020 Tous droits réservés."
;-Enumeration Fenêtres
Enumeration  ;{
  #WinMain
  ;}
EndEnumeration
;-Enumeration gadgets
Enumeration ;{
  
  #PANEL
  
  #Txt_GrilleEval
  #Txt_GrilleEvalOpen
  #Strg_GrilleEvalOpen
  #BTN_SaveGrilleEval
  #BTN_screenshot
  
  #Frame_P2
  #Txt_P2
  #Txt_OptP2_1
  #Txt_OptP2_2
  #Txt_OptP2_3
  #Txt_OptP2_4
  #OptP2_1
  #OptP2_2
  #OptP2_3
  #OptP2_4
  
  #Frame_E1
  #Txt_E1
  #Txt_OptE1_1
  #Txt_OptE1_2
  #Txt_OptE1_3
  #Txt_OptE1_4
  #OptE1_1
  #OptE1_2
  #OptE1_3
  #OptE1_4
  
  #Frame_E2
  #Txt_E2
  #OptE2_1
  #OptE2_2   
  #OptE2_3  
  #OptE2_4
  
  #Frame_RIS
  #Txt_RIS_P2
  #Strg_RIS_P2
  #Txt_RIS_E1
  #Strg_RIS_E1
  #Txt_RIS_E2
  #Strg_RIS_E2
  #Txt_RIS_P1
  #Strg_RIS_P1
  #Txt_RIS_P
  #Strg_RIS_P
  #Txt_RIS_Vali
  #Strg_RIS_Vali
  #Txt_RIS_Auto
  #Strg_RIS_Auto
  #Txt_TypeDPS
  #Strg_TypeDPS
  
  #Txt_ResultRIS
  #DPS_Result
  #Frame_Ref
  
  #BTN_Img10
  #BTN_Img11
  #BTN_Img12
  #BTN_Img13
  #BTN_ImgActiv
  #BTN_ImgEnvir
  #BTN_ImgDelai
  #Img_info
  
  #BTN_Referentiel
  #BTN_Declar_Moins5000
  #BTN_Declar_Plus5000
  #BTN_Fiche_Eval
  #BTN_Logigramme
  
  ;-Explorateur Evaluations
  #explorerlist
  #BtnDisplay
  #Text_Currentfolder
  #Text_namefolder
  #String_pathfolder
  #Text_countitems
  
  #PopUp_Explorateur
  #Menu_Explorateur_WolfExplorer
  #Menu_Explorateur_Open
  #Menu_Explorateur_Explorer
  #Menu_Explorateur_Property
  #Menu_Explorateur_Delete
  #Menu_Explorateur_RecycleBin
  
  #PopUp_DisplayMode
  #Menu_DisplayMode_Large
  #Menu_DisplayMode_Small
  #Menu_DisplayMode_Liste
  #Menu_DisplayMode_Detail
  
  ;-Explorateur images
  #BtnDisplayImg
  #Text_CurrentfolderImg
  #Text_namefolderImg
  #explorerlistImg
  #String_pathfolderImg
  #Text_countitemsImg
  
  #PopUp_ExplorateurImg
  #Menu_Explorateur_OpenImg
  #Menu_Explorateur_PropertyImg
  #Menu_Explorateur_DeleteImg
  #Menu_Explorateur_RecycleBinImg
  
  #PopUp_DisplayModeImg
  #Menu_DisplayMode_LargeImg
  #Menu_DisplayMode_SmallImg
  #Menu_DisplayMode_ListeImg
  #Menu_DisplayMode_DetailImg
  
  #StatusDPS
  
  ;-Constantes info auteur
  #Win_InfoAuteur
  #CONTAINER_LOGO
  #TextInfoInternet
  #ConnectSite
  #LinkID1
  #ConnectMail
  #LinkID2
  #ReadLicense
  #LinkID3
  #CloseLicense
  #EditeurLicence
  #TextInfoAuteur
  #CloseInfoAuteur
  #StatusInfo
  #LogoWolfoRan
  
  ;}
EndEnumeration

;---------------------------------
;-VARIABLES
;---------------------------------
Global DirUp.s = ""
Global filename$ = ""
;-Creation des répertoires 
If FileSize(GetUserDirectory(#PB_Directory_Documents)+"Mes Evaluations") = -1
  CreateDirectory(GetUserDirectory(#PB_Directory_Documents)+"Mes Evaluations") 
EndIf 
Global RepDPS$ = GetUserDirectory(#PB_Directory_Documents)+"Mes Evaluations\"

If FileSize(GetUserDirectory(#PB_Directory_Documents)+"Mes Evaluations Images") = -1
  CreateDirectory(GetUserDirectory(#PB_Directory_Documents)+"Mes Evaluations Images") 
EndIf 
Global RepDPSimg$ = GetUserDirectory(#PB_Directory_Documents)+"Mes Evaluations Images\"
;-Les PDF     
Global Referentiel$ = GetCurrentDirectory()+"RNMSC-DPS_octobre_2006.pdf"
Global Declar_moins5000$ = GetCurrentDirectory()+"Formulaire moins de 5000.pdf"
Global Declar_plus5000$ = GetCurrentDirectory()+"Formulaire simplifié + de 5000 personnes.pdf"
Global Grille_Eval$ = GetCurrentDirectory()+"Grille_évaluation.pdf"
Global Logigramme$ = GetCurrentDirectory()+"logigramme_GR.pdf"
;- Les images
Global Image0, Image1, Image2, Image3, Image4, Image5, Image6, Image7, Image8
Image0 = CatchImage(0, ?Image0)
Image1 = CatchImage(1, ?Image1)
Image2 = CatchImage(2, ?Image2)
Image3 = CatchImage(3, ?Image3)
Image4 = CatchImage(4, ?Image4)
Image5 = CatchImage(5, ?Image5)
Image6 = CatchImage(6, ?Image6)
Image7 = CatchImage(7, ?Image7)
Image8 = CatchImage(8, ?Image8)

Global Image10, Image11, Image12, Image13, Image14, Image15, Image16, Image17, Image18, Image19  
Global Image20, Image21, Image22, Image23, Image24, Image25, Image26, Image27, Image28, Image29 
Global Image30, Image31, Image32, Image33, Image34, Image35

Image10  = CatchImage(10, ?Image10)
Image11  = CatchImage(11, ?Image11)
Image12  = CatchImage(12, ?Image12)
Image13  = CatchImage(13, ?Image13)
Image14  = CatchImage(14, ?Image14)
Image15  = CatchImage(15, ?Image15)
Image16  = CatchImage(16, ?Image16)
Image17  = CatchImage(17, ?Image17)

Image18  = CatchImage(18, ? Image18)
Image19  = CatchImage(19, ? Image19)
Image20  = CatchImage(20, ? Image20)
Image21  = CatchImage(21, ? Image21)
Image22  = CatchImage(22, ? Image22)
Image23  = CatchImage(23, ? Image23)
Image24  = CatchImage(24, ? Image24)
Image25  = CatchImage(25, ? Image25)
Image26  = CatchImage(26, ? Image26)
Image27  = CatchImage(27, ? Image27)
Image28  = CatchImage(28, ? Image28)
Image29  = CatchImage(29, ? Image29)
Image30  = CatchImage(30, ? Image30)
Image31  = CatchImage(31, ? Image31)
Image32  = CatchImage(32, ? Image32)
Image33  = CatchImage(33, ? Image33)
Image34  = CatchImage(34, ? Image34)
Image35  = CatchImage(35, ? Image35)

Global Image100,Image101,Image102
Image100  = CatchImage(100, ?Image100)
Image101  = CatchImage(101, ?Image101)
Image102  = CatchImage(102, ?Image102)

DataSection ;{ 
  Image0: 
  IncludeBinary "Images\WolfoRanSoftware.ico"
  Image1: 
  IncludeBinary "Images\shutdown.ico" 
  Image2: 
  IncludeBinary "Images\pdf_file.ico"
  Image3: 
  IncludeBinary "Images\Select_List.ico"
  Image4: 
  IncludeBinary "Images\HelpBook.ico"
  Image5: 
  IncludeBinary "Images\Nouveau_01.ico" 
  Image6: 
  IncludeBinary "Images\Internet_update.ico"
  Image7: 
  IncludeBinary "Images\Save_file.ico"
  Image8: 
  IncludeBinary "Images\View_folder.ico"
  
  Image10:
  IncludeBinary "Images\Indice_TR.JPG"
  Image11:
  IncludeBinary "Images\Calcul_RIS.JPG"
  Image12:
  IncludeBinary "Images\Règles.JPG"
  Image13:
  IncludeBinary "Images\Tab_RIS.JPG"
  Image14:
  IncludeBinary "Images\PAPS.JPG"
  Image15:
  IncludeBinary "Images\PE.JPG"
  Image16:
  IncludeBinary "Images\ME.JPG"
  Image17:
  IncludeBinary "Images\GE.JPG"
  Image18:
  IncludeBinary "Images\Activité_rassemblement.JPG"
  Image19:
  IncludeBinary "Images\Caractéristiques_environnement.JPG"
  
  Image20:
  IncludeBinary "Images\Délais_intervention.JPG"
  Image21:
  IncludeBinary "Images\PAPS sur demande.JPG"
  Image22: 
  IncludeBinary "Images\OpenDir.ico"
  Image23: 
  IncludeBinary "Images\Corbeille.ico"
  Image24: 
  IncludeBinary "Images\Delete02.ico"
  Image25: 
  IncludeBinary "Images\Affichage.ico"
  Image26: 
  IncludeBinary "Images\FileOK.ico" 
  Image27: 
  IncludeBinary "Images\Left.ico"
  Image28: 
  IncludeBinary "Images\Home.ico"
  Image29: 
  IncludeBinary "Images\NewFolder.ico" 
  
  Image30: 
  IncludeBinary "Images\Lister.ico"
  Image31: 
  IncludeBinary "Images\Help_2.ico"
  Image32: 
  IncludeBinary "Images\ImagesGallery.ico"
  Image33: 
  IncludeBinary "Images\IMG_marque.ico"
  Image34:
  IncludeBinary "Images\ImageProperty.ico"
  Image35:
  IncludeBinary "Images\OpenImage.ico"
  
  ;---Images auteur
  Image100: 
  IncludeBinary "Images\IE7.ico"
  Image101: 
  IncludeBinary "Images\Logo_card_3d.jpg"
  Image102: 
  IncludeBinary "Images\MailSend.ico"
  
  ;}
EndDataSection

;---Fonts
Global Font0,Font1,Font2
Font0 = LoadFont(0, "Arial", 8,#PB_Font_Bold|#PB_Font_HighQuality)
Font1 = LoadFont(1, "Arial", 8, #PB_Font_Italic)
Font2 = LoadFont(2, "Arial", 9, #PB_Font_Bold|#PB_Font_Italic)
;---------------------------------
;-PROCEDURES
;---------------------------------
Procedure.i CaptureScreenToImage(x.i, y.i, width.i, height.i)
  Protected TmpImage.i, srcDC.i, trgDC.i
  Protected BMPHandle.i, dm.Devmode
  srcDC = CreateDC_("DISPLAY", "", "", dm)
  trgDC = CreateCompatibleDC_(srcDC)
  BMPHandle = CreateCompatibleBitmap_(srcDC, width, height)
  RedrawWindow_(#Null,#Null,#Null,#RDW_INVALIDATE)
  SelectObject_( trgDC, BMPHandle)
  BitBlt_( trgDC, 0, 0, width, height, srcDC, x, y, #SRCCOPY)
  DeleteDC_( trgDC)
  ReleaseDC_( BMPHandle, srcDC)
  TmpImage.i = CreateImage(#PB_Any, width, height)
  StartDrawing(ImageOutput(TmpImage))
  DrawImage(BMPHandle, 0, 0)  ; ------>  (BMPHandle, 0, -22)  retire l'entête mais laisse une bande noire, sinon laisser à 0
  StopDrawing()
  DeleteDC_(trgDC)
  ReleaseDC_(BMPHandle, srcDC)
  ProcedureReturn TmpImage 
EndProcedure
Procedure CaptureJPEG(PhotoFile$) 
  Protected MyPhoto.i = CaptureScreenToImage(WindowX(#WinMain,#PB_Window_InnerCoordinate), WindowY(#WinMain,#PB_Window_InnerCoordinate), WindowWidth(#WinMain), WindowHeight(#WinMain)-200)
  If SaveImage(MyPhoto,PhotoFile$,#PB_ImagePlugin_JPEG,10,24) ; photo jpeg de qualité
    ProcedureReturn 1
  Else 
    ProcedureReturn 0
  EndIf 
EndProcedure
Procedure FileProperty(File$)
  verb$ = "properties" 
  SEI.SHELLEXECUTEINFO 
  SEI\cbSize = SizeOf(SHELLEXECUTEINFO) 
  SEI\fMask = #SEE_MASK_NOCLOSEPROCESS | #SEE_MASK_INVOKEIDLIST | #SEE_MASK_FLAG_NO_UI 
  SEI\lpVerb = @verb$ 
  ;File$ = SelFile$
  SEI\lpFile = @File$ 
  ShellExecuteEx_(@SEI)
EndProcedure
ProcedureDLL.s GetSpecialFolderLocation(fid.l) ; obtenir le nom des dossiers spéciaux de Windows
  If SHGetSpecialFolderLocation_(0, fid, @Dossier_ID) = 0 
    SpecialFolderLocation.s = Space(#MAX_PATH) 
    SHGetPathFromIDList_(Dossier_ID, @SpecialFolderLocation) 
    If SpecialFolderLocation 
      If Right(SpecialFolderLocation, 1) <> "\" 
        SpecialFolderLocation + "\" 
      EndIf 
    EndIf 
  EndIf 
  ProcedureReturn SpecialFolderLocation.s 
EndProcedure
Procedure.s Time_Date(Ndate.s) ; afficher une date au format texte
  Jour$ = "Lundi,Mardi,Mercredi,Jeudi,Vendredi,Samedi"
  Mois$ = "Janvier,Février,Mars,Avril,Mai,Juin,Juillet,Août,Septembre,Octobre,Novembre,Décembre"
  If DayOfWeek( ParseDate("%dd/%mm/%yyyy", Ndate)) = 0
    Jour$ = "Dimanche"
  Else 
    Jour$ = StringField(Jour$, DayOfWeek( ParseDate("%dd/%mm/%yyyy", Ndate)),",")
  EndIf             
  Mois$ = StringField(Mois$,Month(ParseDate("%dd/%mm/%yyyy", Ndate)),",")          
  Date.s = Jour$ +" " + FormatDate("%dd ", ParseDate("%dd/%mm/%yyyy", Ndate)) + Mois$ + FormatDate(" %yyyy", ParseDate("%dd/%mm/%yyyy", Ndate)) 
  ProcedureReturn Date
EndProcedure
Structure Characters 
  c.c[0] 
EndStructure 
Procedure.s GetDirectoryPart(FileName.s) ; extraire le nom d'un répertoire du chemin complet
  Protected Directory.s, i.l 
  Protected *Directory.Characters 
  Directory = GetPathPart(FileName) 
  If Directory 
    i = Len(Directory) - 2 
    *Directory = @Directory  
    While i >= 0 And *Directory\c[i] <> '/' And *Directory\c[i] <> '\' 
      i - 1 
    Wend  
    i + 2 
    Directory = Mid(Directory, i, Len(Directory) - i) 
  EndIf 
  ProcedureReturn Directory 
EndProcedure 
ProcedureDLL.l DeleteFileToRecycleBin(File.s) ; envoyer un fichier à la corbeille
  SHFileOp.SHFILEOPSTRUCT 
  SHFileOp\pFrom=@File 
  SHFileOp\wFunc=#FO_DELETE 
  SHFileOp\fFlags=#FOF_ALLOWUNDO |#FOF_NOCONFIRMATION | #FOF_SILENT	
  retour=SHFileOperation_(SHFileOp) 
  If retour=0 : retour=1 : Else : retour =0 : EndIf
  ProcedureReturn retour
EndProcedure
Procedure.s x_chop(string.s,left.i,right.i)  ; chop a bit of the left and right side of a string
  Protected l.i
  l = Len(string)
  If left+right >= l
    string = ""
  Else
    If right > 0
      string = Left(string,l-right)
    EndIf
    If left > 0
      string = Mid(string,left+1,l)
    EndIf
  EndIf
  ProcedureReturn string
EndProcedure
Procedure.s x_getparentpathpart(s.s) ; returns parent folder part of a given path
  Protected q.s, p.i
  ;
  ; *** get the 'parent' folder from the given string, ie. c:\windows\system32\ would return c:\windows\
  ;
  ; notes:
  ;
  ; - assume that given string is a path, regardless if it ended on a backslash or not
  ; - if it cannot find a parent path it returns an empty string
  ; - might :-) hancle unc paths
  ;
  If Mid(s,2,1) = ":"                 ; local root
    q = Left(s,2)
    s = Mid(s,3,#MAX_PATH)
  ElseIf Left(s,2) = "\\"             ; unc path
    p = FindString(s,"\",3)
    If p > 0                          ; valid unc path
      q = Left(s,p)
      s = Mid(s,p+1,#MAX_PATH)
    Else                              ; invalid unc path
      q = ""
      s = ""
    EndIf
  EndIf
  ;
  If s > ""                           ; if there is something to find the parent of...
    If Right(s,1) = "\"               ; strip the trailing backslash to getpathpart() returns one level higher
      s = x_chop(s,0,1)
    EndIf
    If s > ""                         ; there must be something left, in which case we'll put the leading drive / unc path in front of it
      s = q+GetPathPart(s)
    EndIf
  EndIf
  ProcedureReturn s
  ;
EndProcedure
Procedure NombreElements(Explorateur,TextGadget) ; calcul du nombrede fichiers dans un explorerlist et ajuster singulier ou pluriel
  nb = CountGadgetItems(Explorateur)
  If nb <= 1
    SetGadgetText(TextGadget,Str(CountGadgetItems(Explorateur))+" Fichier")
  ElseIf nb > 1
    SetGadgetText(TextGadget,Str(CountGadgetItems(Explorateur))+" Fichiers")
  EndIf   
EndProcedure
Procedure InfoAuteur() ;à propos 
  If OpenWindow(#Win_InfoAuteur,0,0, 500, 225,"A propos de "+#PROGRAMNAME+" "+#NUMVERSION, #PB_Window_ScreenCentered |#PB_Window_TitleBar)  
    DisableWindow(#WinMain,#True)
    ContainerGadget(#CONTAINER_LOGO, 0,0,500,205,#PB_Container_Flat) ;{
    SetGadgetColor(#CONTAINER_LOGO, #PB_Gadget_BackColor, RGB(255, 255, 255))  
    ImageGadget(#LogoWolfoRan,0,0,247,197,Image101)
    
    ImageGadget(#ConnectSite,300,20,20,20,Image0)
    HyperLinkGadget(#LinkID1,325,20,80,20,"WolfoRan.com",RGB(238, 25, 30),#PB_HyperLink_Underline)
    GadgetToolTip(#LinkID1,"Se connecter au site web https://wolforan.com")
    SetGadgetColor(#LinkID1, #PB_Gadget_BackColor, RGB(255, 255, 255))
    
    ImageGadget(#ConnectMail,300,45,20,20,Image102)
    HyperLinkGadget(#LinkID2,325,45,100,20,"Contacter le support",RGB(238, 25, 30),#PB_HyperLink_Underline)
    GadgetToolTip(#LinkID2,"Envoyer un e-mail au support")
    SetGadgetColor(#LinkID2, #PB_Gadget_BackColor, RGB(255, 255, 255))
    
    TextGadget(#TextInfoAuteur, 260,75,230,90,#PROGRAMNAME+" "+#NUMVERSION+#CR$+"Ce programme est fourni gratuitement et sans garantie, pour un usage personnel ou professionnel."+#CR$+"Pour toute question vous pouvez contacter l'auteur en utilisant l'adresse e-mail ci-dessus."+#CR$+Chr(169)+"WolfoRan LogEditor",#PB_Text_Center)
    SetGadgetColor(#TextInfoAuteur, #PB_Gadget_BackColor, RGB(255, 255, 255))
    SetGadgetColor(#TextInfoAuteur, #PB_Gadget_FrontColor, RGB(40, 56, 86))
    
    ButtonGadget(#CloseInfoAuteur,260,170,230,25,"Fermer cette fenêtre")
    ;}
    CloseGadgetList()
    If CreateStatusBar(#StatusInfo, WindowID(#Win_InfoAuteur))
      AddStatusBarField(20)
      AddStatusBarField(#PB_Ignore)
      StatusBarImage(#StatusInfo,0,Image0,#PB_StatusBar_Raised)
      StatusBarText(#StatusInfo,1,#COPYRIGHT,#PB_StatusBar_Raised)
    EndIf 
  EndIf 
EndProcedure
Procedure.s Calcul_i() ; calcul de l'indice total
  P2$ = GetGadgetText(#Strg_RIS_P2) : P2.f = ValF(P2$) ; récupère une chaîne de nombre flottant et le transforme en nombre flottant
  E1$ = GetGadgetText(#Strg_RIS_E1) : E1.f = ValF(E1$)
  E2$ = GetGadgetText(#Strg_RIS_E2) : E2.f = ValF(E2$)
  i$ = StrF(P2.f + E1.f + E2.f) 
  If ValF(i$) > 0
    Result$ = StrF(ValF(i$),2)
  Else 
    Result$ = ""
  EndIf  
  ProcedureReturn Result$
EndProcedure
Procedure.s Calcul_P() ; calcul de l'indicateur P en fonction de l'indicateur P1 (+ ou - 100000 personnes)
  P1$ = GetGadgetText(#Strg_RIS_P1) : P1.q = Val(P1$)
  If P1$ <> ""
    If P1 <= 100000
      P.q = P1.q
    ElseIf P1 > 100000
      P.q = 100000 + (P1 - 100000)/2
    EndIf 
  Else 
    P.q = P1.q  
  EndIf 
  ProcedureReturn Str(P)
EndProcedure
Procedure Calcul_RIS() ; calcul du ration d'intervenants secouristes ou RIS, déterminant le nombre réel nécessaire. 
  P$ = Calcul_P() : P.f = ValF(P$)
  i$ = GetGadgetText(#Strg_RIS_Vali) : i.f = ValF(i$)
  RIS.f = i * (P/1000)
  SetGadgetText(#Strg_RIS_Auto,StrF(RIS,3)) ; 3 chiffres après la virgule
  If RIS.f = 0
    SetGadgetText(#Strg_TypeDPS,"")
    SetGadgetState(#DPS_Result, 0)
  ElseIf RIS.f <= 0.25 And RIS.f <> 0
    SetGadgetText(#Strg_TypeDPS,"Diligence de l'autorité de police compétente")
    SetGadgetState(#DPS_Result, Image21) ; image changée/affichée en fonction du résultat mais cela peut être un texte gadget qui change
  ElseIf RIS.f > 0.25 And RIS.f <= 1.125
    SetGadgetText(#Strg_TypeDPS,"Point d'alerte et de premier secours")
    SetGadgetState(#DPS_Result, Image14)
  ElseIf RIS.f > 1.125 And RIS.f <= 12
    SetGadgetText(#Strg_TypeDPS,"DPS de petite envergure (DPS-PE)")
    SetGadgetState(#DPS_Result, Image15)
  ElseIf RIS.f > 12 And RIS.f <= 36
    SetGadgetText(#Strg_TypeDPS,"DPS de moyenne envergure (DPS-ME)")
    SetGadgetState(#DPS_Result, Image16)
  ElseIf RIS.f > 36
    SetGadgetText(#Strg_TypeDPS,"DPS de grande envergure (DPS-GE)")
    SetGadgetState(#DPS_Result, Image17)
  EndIf 
EndProcedure
Procedure Save_Evaluation(Evalname$) ; enregistrement des résultats de l'évaluation dans un fichier ini (un fichier texte peut faire l'affaire)
  
  If GetGadgetState(#OptP2_1) = 1 ;{
    p2$ = "OptP2_1"
  ElseIf GetGadgetState(#OptP2_2) = 1
    p2$ = "OptP2_2"
  ElseIf GetGadgetState(#OptP2_3) = 1
    p2$ = "OptP2_3"
  ElseIf GetGadgetState(#OptP2_4) = 1
    p2$ = "OptP2_4"
  EndIf ;}  
  If GetGadgetState(#OptE1_1) = 1 ;{
    e1$ = "OptE1_1"
  ElseIf GetGadgetState(#OptE1_2) = 1
    e1$ = "OptE1_2"
  ElseIf GetGadgetState(#OptE1_3) = 1
    e1$ = "OptE1_3"
  ElseIf GetGadgetState(#OptE1_4) = 1
    e1$ = "OptE1_4"
  EndIf ;}  
  If GetGadgetState(#OptE2_1) = 1 ;{
    e2$ = "OptE2_1"
  ElseIf GetGadgetState(#OptE2_2) = 1
    e2$ = "OptE2_2"
  ElseIf GetGadgetState(#OptE2_3) = 1
    e2$ = "OptE2_3"
  ElseIf GetGadgetState(#OptE2_4) = 1
    e2$ = "OptE2_4"
  EndIf ;}    
  p1$ =   GetGadgetText(#Strg_RIS_P1)
  p$ =    GetGadgetText(#Strg_RIS_P)
  i$ =    GetGadgetText(#Strg_RIS_Vali)
  ris$ =  GetGadgetText(#Strg_RIS_Auto)
  type$ = GetGadgetText(#Strg_TypeDPS)
  date$ = Time_Date(FormatDate("%dd/%mm/%yyyy", Date())) +" à "+FormatDate("%hh:%ii:%ss", Date())
  
  If CreatePreferences(RepDPS$ + Evalname$ +".ini") ; création du fichier dans le répertoire créé précédemment   
    PreferenceGroup("Global")   
    WritePreferenceString("P2",   p2$)
    WritePreferenceString("E1",   e1$)
    WritePreferenceString("E2",   e2$)    
    WritePreferenceString("P1",   p1$)
    WritePreferenceString("P",    p$)
    WritePreferenceString("I",    i$)
    WritePreferenceString("RIS",  ris$)
    WritePreferenceString("Type", type$)
    WritePreferenceString("Date", date$)
    ClosePreferences()
    ProcedureReturn 1
  Else 
    Erreur = MessageRequester("Erreur!"," Une erreur est survenue, impossible de créer le fichier."+#CRLF$+"Essayez à nouveau.", #MB_ICONERROR|#PB_MessageRequester_YesNo)
    If Erreur = 6 ; le bouton Oui
      ProcedureReturn 2
    Else ; le bouton Non 
      ProcedureReturn 0
    EndIf
  EndIf
EndProcedure
Procedure Open_Evaluation(Evalname$) ; ouverture d'un fichier créé précédemment pour affichage dans la grille d'évaluation
  If OpenPreferences(Evalname$)<>0 
    PreferenceGroup("Global")  
    p2$   = ReadPreferenceString("P2",   "")
    e1$   = ReadPreferenceString("E1",   "")
    e2$   = ReadPreferenceString("E2",   "")    
    p1$   = ReadPreferenceString("P1",   "")
    p$    = ReadPreferenceString("P",    "")
    i$    = ReadPreferenceString("I",    "")
    ris$  = ReadPreferenceString("RIS",  "")
    type$ = ReadPreferenceString("Type", "")
    date$ = ReadPreferenceString("Date", "")    
    If p2$ = "OptP2_1" ;{
      SetGadgetState(#OptP2_1, 1)
      SetGadgetText(#Strg_RIS_P2, "0.25") 
    ElseIf p2$ = "OptP2_2"
      SetGadgetState(#OptP2_2, 1)
      SetGadgetText(#Strg_RIS_P2, "0.30")
    ElseIf p2$ = "OptP2_3"
      SetGadgetState(#OptP2_3, 1)
      SetGadgetText(#Strg_RIS_P2, "0.35")
    ElseIf p2$ = "OptP2_4"
      SetGadgetState(#OptP2_4, 1)
      SetGadgetText(#Strg_RIS_P2, "0.40")
    EndIf ;}
    If e1$ = "OptE1_1" ;{
      SetGadgetState(#OptE1_1, 1)
      SetGadgetText(#Strg_RIS_E1, "0.25")
    ElseIf e1$ = "OptE1_2"
      SetGadgetState(#OptE1_2, 1)
      SetGadgetText(#Strg_RIS_E1, "0.30")
    ElseIf e1$ = "OptE1_3"
      SetGadgetState(#OptE1_3, 1)
      SetGadgetText(#Strg_RIS_E1, "0.35")
    ElseIf e1$ = "OptE1_4"
      SetGadgetState(#OptE1_4, 1)
      SetGadgetText(#Strg_RIS_E1, "0.40")
    EndIf ;}     
    If e2$ = "OptE2_1" ;{
      SetGadgetState(#OptE2_1, 1)
      SetGadgetText(#Strg_RIS_E2, "0.25")
    ElseIf e2$ = "OptE2_2"
      SetGadgetState(#OptE2_2, 1)
      SetGadgetText(#Strg_RIS_E2, "0.30")
    ElseIf e2$ = "OptE2_3"
      SetGadgetState(#OptE2_3, 1)
      SetGadgetText(#Strg_RIS_E2, "0.35")
    ElseIf e2$ = "OptE2_4"
      SetGadgetState(#OptE2_4, 1)
      SetGadgetText(#Strg_RIS_E2, "0.40")
    EndIf ;}     
    SetGadgetText(#Strg_RIS_P1,p1$)
    SetGadgetText(#Strg_RIS_P,p$)
    SetGadgetText(#Strg_RIS_Vali,i$)
    SetGadgetText(#Strg_RIS_Auto,ris$)
    SetGadgetText(#Strg_TypeDPS,type$)     
    If type$ = "Diligence de l'autorité de police compétente" ; en fonction du type de DPS
      SetGadgetState(#DPS_Result, Image21)                    ; on affiche l'image correspondante
    ElseIf type$ = "Point d'alerte et de premier secours"
      SetGadgetState(#DPS_Result, Image14)
    ElseIf type$ = "DPS de petite envergure (DPS-PE)"
      SetGadgetState(#DPS_Result, Image15)
    ElseIf type$ = "DPS de moyenne envergure (DPS-ME)"
      SetGadgetState(#DPS_Result, Image16)
    ElseIf type$ = "DPS de grande envergure (DPS-GE)"
      SetGadgetState(#DPS_Result, Image17)
    EndIf      
    SetGadgetText(#Txt_GrilleEval, "Cette évaluation a été enregistrée le "+ date$)        
    ClosePreferences()
    ProcedureReturn 1
  Else 
    Erreur = MessageRequester("Erreur!","Impossible d'ouvrir le fichier."+#CRLF$+"Voulez-vous essayer à nouveau ?", #MB_ICONERROR|#PB_MessageRequester_YesNo)
    If Erreur = 6 ; le bouton Oui
      ProcedureReturn 2
    Else  ; le bouton Non
      ProcedureReturn 0
    EndIf
  EndIf 
EndProcedure
Procedure New_Eval() ; réinitialisation des champs et options 
  SetGadgetState(#OptP2_1, 1) : SetGadgetText(#Strg_RIS_P2, "0.25")
  SetGadgetState(#OptE1_1, 1) : SetGadgetText(#Strg_RIS_E1, "0.25")
  SetGadgetState(#OptE2_1, 1) : SetGadgetText(#Strg_RIS_E2, "0.25")
  SetGadgetText(#Strg_RIS_P1,"")
  SetGadgetText(#Strg_RIS_P,"")
  SetGadgetText(#Strg_RIS_Vali,"")
  SetGadgetText(#Strg_RIS_Auto,"")
  SetGadgetText(#Strg_TypeDPS,"")
  SetGadgetState(#DPS_Result, 0) 
  SetGadgetText(#Txt_GrilleEval,"")
  SetGadgetText(#Strg_GrilleEvalOpen,"")  
  Calcul_i()  
EndProcedure
Quand tous les glands seront tombés, les feuilles dispersées, la vigueur retombée... Dans la morne solitude, ancré au coeur de ses racines, c'est de sa force maturité qu'il renaîtra en pleine magnificence...Jacobus.
Avatar de l’utilisateur
Jacobus
Messages : 1520
Inscription : mar. 06/avr./2004 10:35
Contact :

Re: Dispositif Prévisionnel de Secours

Message par Jacobus »

2ème partie:

Code : Tout sélectionner

;---------------------------------
;-FENETRE PRINCIPALE
;---------------------------------

If OpenWindow(#WinMain,0,0,1014, 718, #PROGRAMNAME, #PB_Window_SystemMenu|#PB_Window_TitleBar|#PB_Window_ScreenCentered|#PB_Window_MinimizeGadget)
  
  AddKeyboardShortcut(#WinMain, #PB_Shortcut_Control | #PB_Shortcut_O, 1)
  AddKeyboardShortcut(#WinMain, #PB_Shortcut_Control | #PB_Shortcut_N, 2)
  AddKeyboardShortcut(#WinMain, #PB_Shortcut_Control | #PB_Shortcut_S, 3)
  ;AddKeyboardShortcut(#WinMain, #PB_Shortcut_Control | #PB_Shortcut_I, 4)
  AddKeyboardShortcut(#WinMain, #PB_Shortcut_Control | #PB_Shortcut_P, 5)
  AddKeyboardShortcut(#WinMain, #PB_Shortcut_Control | #PB_Shortcut_Q, 7)
  AddKeyboardShortcut(#WinMain, #PB_Shortcut_Control | #PB_Shortcut_G, 8)
  AddKeyboardShortcut(#WinMain, #PB_Shortcut_Control | #PB_Shortcut_L, 11)
  AddKeyboardShortcut(#WinMain, #PB_Shortcut_Control | #PB_Shortcut_R, 12)
  AddKeyboardShortcut(#WinMain, #PB_Shortcut_Control | #PB_Shortcut_H, 15)
  
  If CreateImageMenu(0, WindowID(#WinMain)) ;{
    MenuTitle("Fichier")
    MenuItem( 1, "Ouvrir une évaluation"+Chr(9)+"Ctrl+O", Image8)
    MenuItem( 2, "Nouvelle évaluation"+Chr(9)+"Ctrl+N", Image5)
    MenuBar()
    MenuItem( 3, "Enregistrer l'évaluation courante"+Chr(9)+"Ctrl+S", Image7)
    MenuBar()
    MenuItem( 5, "Ouvrir une image"+Chr(9)+"Ctrl+P",Image32)
    MenuBar()
    MenuItem( 7, "Quitter"+Chr(9)+"Ctrl+Q", Image1)
    
    MenuTitle("Edition")
    MenuItem(8, "Grille d'évaluation"+Chr(9)+"Ctrl+G",Image2)
    MenuItem(9, "Déclaration moins de 5000 personnes",Image2)
    MenuItem(10, "Déclaration plus de 5000 personnes",Image2)
    
    MenuTitle("?")
    MenuItem(11, "Logigramme procédure de déclaration"+Chr(9)+"Ctrl+L",Image2)
    MenuItem(12, "Référentiel National des M.S.C."+Chr(9)+"Ctrl+R",Image2)
    MenuBar()
    MenuItem(13, "A propos",Image0)
    MenuBar()
    MenuItem(14, "Vérifier mise à jour",Image6)
    MenuBar()
    MenuItem(15, "Ouvrir l'aide"+Chr(9)+"Ctrl+H",Image31)        
    ;}
  EndIf
  ;-PANEL
  PanelGadget(#PANEL, 2, 2, WindowWidth(#WinMain)-4, WindowHeight(#WinMain)-45) ;{
  
  AddGadgetItem(#PANEL, -1, "Grille d'évaluation du RIS",Image3) ;{
  
  TextGadget(#Txt_GrilleEvalOpen, 10, 7, 60, 15, "Evaluation :")
  StringGadget(#Strg_GrilleEvalOpen, 70, 5, 400, 20,"",#PB_String_UpperCase)
  GadgetToolTip(#Strg_GrilleEvalOpen,"Nommez cette évaluation si vous souhaitez l'enregistrer")   
  ButtonGadget(#BTN_SaveGrilleEval,475, 5, 65, 20,"Enregistrer")
  GadgetToolTip(#BTN_SaveGrilleEval,"Enregistrer cette évaluation")    
  ButtonGadget(#BTN_screenshot,545, 5, 50, 20,"Image")
  GadgetToolTip(#BTN_screenshot,"Enregistrer une image jpeg de cette évaluation")    
  TextGadget(#Txt_GrilleEval, 600, 7, 365, 15, "")
  
  FrameGadget(#Frame_P2, 10, 30, 980, 145, "Indicateur P2") ;{
  TextGadget(#Txt_P2, 30, 45, 300, 15, "Activité du rassemblement, choisir le niveau")
  SetGadgetFont(#Txt_P2,Font0)
  TextGadget(#Txt_OptP2_1, 30, 65, 700, 15, "Option 1 = Public assis: spectacle, cérémonie culturelle, réunion publique, restauration, rendez-vous sportif ,,,")
  SetGadgetColor(#Txt_OptP2_1, #PB_Gadget_FrontColor, RGB(62, 193, 69))
  TextGadget(#Txt_OptP2_2, 30, 85, 700, 15, "Option 2 = Public debout: cérémonie culturelle, réunion publique, restauration, exposition, foire, salon, comice agricole ,,,")
  SetGadgetColor(#Txt_OptP2_2, #PB_Gadget_FrontColor, RGB(85, 155, 213))
  TextGadget(#Txt_OptP2_3, 30, 105, 700, 15, "Option 3 = Public debout: spectacle avec public statique, fête foraine, rendez-vous sportif avec protection du public par rapport à l'évenement ,,,")
  SetGadgetColor(#Txt_OptP2_3, #PB_Gadget_FrontColor, RGB(228, 151, 69))
  TextGadget(#Txt_OptP2_4, 30, 125, 700, 45, "Option 4 = Public debout: spectacle avec public dynamique,danse, feria, fête votive, carnaval, spectacle de rue, grande parade, rendez-vous sportif sans protection du public par rapport à l'évenement ,,, Evenement se deroulant sur plusieurs jours avec présence permanente du public: hébergement sur site ou à proximité")
  SetGadgetColor(#Txt_OptP2_4, #PB_Gadget_FrontColor, RGB(233, 63, 69))
  
  OptionGadget(#OptP2_1, 780, 65, 150, 20, "Option 1 - Risque Faible")
  OptionGadget(#OptP2_2, 780, 85, 150, 20, "Option 2 - Risque Modéré")   
  OptionGadget(#OptP2_3, 780, 105, 150, 20, "Option 3 - Risque Moyen")  
  OptionGadget(#OptP2_4, 780, 125, 150, 20, "Option 4 - Risque Elevé")   
  SetGadgetState(#OptP2_1, 1)   ;}
  
  FrameGadget(#Frame_E1, 10, 175, 980, 160, "Indicateur E1") ;{
  TextGadget(#Txt_E1, 30, 190, 500, 15, "Caractéristiques de l'environnement ou de l'accessibilité du site, choisir le niveau")
  SetGadgetFont(#Txt_E1,Font0)  
  TextGadget(#Txt_OptE1_1, 30, 210, 700, 15, "Option 1 = Structures permanentes: bâtiment, salle en dur,.. Voies publiques, rues, avec accès dégagés. Conditions d'accès aisés")
  SetGadgetColor(#Txt_OptE1_1, #PB_Gadget_FrontColor, RGB(62, 193, 69))
  TextGadget(#Txt_OptE1_2, 30, 230, 700, 30, "Option 2 = Structures non permanentes: gradins, tribunes, chapiteaux, ,,,Espaces naturels: surface <= 2 hectares."+ #CRLF$+"Brancardage: 150m < longueur <= 300m. Terrain en pente sur plus de 100m")
  SetGadgetColor(#Txt_OptE1_2, #PB_Gadget_FrontColor, RGB(85, 155, 213))
  TextGadget(#Txt_OptE1_3, 30, 265, 700, 30, "Option 3 = Espaces naturels: 2 ha < surface <= 5 ha. Brancardage: 300m < longueur <= 600m. Terrain en pente sur plus de 150m."+ #CRLF$+"Autres conditions d'accès difficiles")
  SetGadgetColor(#Txt_OptE1_3, #PB_Gadget_FrontColor, RGB(228, 151, 69))
  TextGadget(#Txt_OptE1_4, 30, 300, 700, 30, "Option 4 = Espaces naturels: surface > 5 ha. Brancardage: longueur > 600m. Terrain en pente sur plus de 300m. Autres conditions d'accès difficiles: Talus, escaliers, voies d'accès non carrossables, ,,,Progression des secours rendue difficile par la présence du public.")
  SetGadgetColor(#Txt_OptE1_4, #PB_Gadget_FrontColor, RGB(233, 63, 69))
  
  OptionGadget(#OptE1_1, 780, 210, 150, 20, "Option 1 - Risque Faible")
  OptionGadget(#OptE1_2, 780, 235, 150, 20, "Option 2 - Risque Modéré")   
  OptionGadget(#OptE1_3, 780, 265, 150, 20, "Option 3 - Risque Moyen")  
  OptionGadget(#OptE1_4, 780, 295, 150, 20, "Option 4 - Risque Elevé")   
  SetGadgetState(#OptE1_1, 1)   ;}
  
  FrameGadget(#Frame_E2, 10, 335, 490, 150, "Indicateur E2") ;{
  TextGadget(#Txt_E2, 30, 355, 400, 15, "Délais d'intervention des secours publics, choisir le délai")
  SetGadgetFont(#Txt_E2,Font0)
  
  OptionGadget(#OptE2_1, 30, 380, 300, 20, "Temps inférieur ou égal à 10 minutes")
  OptionGadget(#OptE2_2, 30, 405, 300, 20, "Temps supérieur à 10 mn et inférieur ou égal à 20 mn")   
  OptionGadget(#OptE2_3, 30, 430, 300, 20, "Temps supérieur à 20 mn et inférieur ou égal à 30 mn")  
  OptionGadget(#OptE2_4, 30, 455, 300, 20, "Temps supérieur à 30 mn")   
  SetGadgetState(#OptE2_1, 1)   ;}
  
  FrameGadget(#Frame_RIS, 505, 335, 485, 150, "Calcul du RIS");{
  
  TextGadget(#Txt_RIS_P2, 530, 357, 85, 15, "Indicateur P2:")
  StringGadget(#Strg_RIS_P2, 620, 355, 70, 20, "0.25",#PB_String_ReadOnly)
  SetGadgetFont(#Strg_RIS_P2,Font0)
  
  TextGadget(#Txt_RIS_E1, 530, 382, 85, 15, "Indicateur E1:")
  StringGadget(#Strg_RIS_E1, 620, 380, 70, 20, "0.25",#PB_String_ReadOnly)
  SetGadgetFont(#Strg_RIS_E1,Font0)
  
  TextGadget(#Txt_RIS_E2, 530, 407, 85, 15, "Indicateur E2:")
  StringGadget(#Strg_RIS_E2, 620, 405, 70, 20, "0.25",#PB_String_ReadOnly)
  SetGadgetFont(#Strg_RIS_E2,Font0)
  
  TextGadget(#Txt_RIS_P1, 530, 432, 85, 15, "Effectif prévu P1:")
  StringGadget(#Strg_RIS_P1, 620, 430, 70, 20, "",#PB_String_Numeric)
  SetGadgetFont(#Strg_RIS_P1,Font0)
  GadgetToolTip(#Strg_RIS_P1,"Saisir l'effectif prévisible déclaré du public, P1 ")
  
  TextGadget(#Txt_RIS_P, 530, 457, 85, 15, "Valeur de P:")
  StringGadget(#Strg_RIS_P, 620, 455, 70, 20, "",#PB_String_ReadOnly)
  SetGadgetFont(#Strg_RIS_P,Font0)
  
  TextGadget(#Txt_RIS_Vali, 730, 357, 200, 15, "Indice total de risque:")
  SetGadgetFont(#Txt_RIS_Vali,Font0)
  StringGadget(#Strg_RIS_Vali, 920, 355, 60, 20, "",#PB_String_ReadOnly)   
  SetGadgetFont(#Strg_RIS_Vali,Font0)
  SetGadgetColor(#Strg_RIS_Vali, #PB_Gadget_FrontColor, RGB(221, 49, 69))
  
  TextGadget(#Txt_RIS_Auto, 730, 382, 200, 15, "Ratio d'Intervenants Secouristes:")
  SetGadgetFont(#Txt_RIS_Auto,Font0)
  StringGadget(#Strg_RIS_Auto, 920, 380, 60, 20, "",#PB_String_ReadOnly)
  SetGadgetFont(#Strg_RIS_Auto,Font0)
  SetGadgetColor(#Strg_RIS_Auto, #PB_Gadget_FrontColor, RGB(221, 49, 69))
  
  TextGadget(#Txt_TypeDPS, 730, 435, 200, 15, "Type de DPS correspondant:")
  SetGadgetFont(#Txt_TypeDPS,Font0)
  StringGadget(#Strg_TypeDPS, 730, 455, 250, 20, "",#PB_String_ReadOnly)
  SetGadgetColor(#Strg_TypeDPS, #PB_Gadget_FrontColor, RGB(177, 55, 69))
  SetGadgetFont(#Strg_TypeDPS,Font0)
  ;}
  
  TextGadget(#Txt_ResultRIS, 10, 495, 800, 15, "Dispositif prévisionnel de secours à mettre en place en fonction du RIS (déterminé par les données que vous avez saisies)")
  SetGadgetFont(#Txt_ResultRIS,Font0)
  SetGadgetColor(#Txt_ResultRIS, #PB_Gadget_FrontColor, RGB(90, 120, 213))  
  ImageGadget(#DPS_Result, 10, 525, 800, 120, 0)
  
  FrameGadget(#Frame_Ref, 820, 490, 170, 150, "Documents PDF") ;{
  
  ButtonGadget(#BTN_Referentiel,825, 505, 160, 25,"Consulter le référentiel national");,#PB_Button_MultiLine)
  ButtonGadget(#BTN_Declar_Moins5000,825, 530, 160, 25,"Remplir déclaration - de 5000")
  ButtonGadget(#BTN_Declar_Plus5000,825, 555, 160, 25,"Remplir déclaration + de 5000")
  ButtonGadget(#BTN_Fiche_Eval,825, 580, 160, 25,"Remplir grille d'évaluation")
  ButtonGadget(#BTN_Logigramme,825, 605, 160, 25,"Consulter le logigramme")
  
  ;} 
  ;}
  
  AddGadgetItem(#PANEL, -1,"Comment est calculé le RIS", Image4) ;{
  
  ButtonGadget(#BTN_Img10, 10, 10, 140, 20,"Indice total de risque",#PB_Button_Toggle)
  ButtonGadget(#BTN_Img11, 150, 10, 140, 20,"Ratio des intervenants",#PB_Button_Toggle)
  ButtonGadget(#BTN_Img12, 290, 10, 120, 20,"Règles applicables",#PB_Button_Toggle)
  ButtonGadget(#BTN_Img13, 410, 10, 140, 20,"R I S -> Type de DPS",#PB_Button_Toggle)
  ButtonGadget(#BTN_ImgActiv, 550, 10, 140, 20,"Activités du rassemblement",#PB_Button_Toggle)
  ButtonGadget(#BTN_ImgEnvir, 690, 10, 100, 20,"Environnement",#PB_Button_Toggle)
  ButtonGadget(#BTN_ImgDelai, 790, 10, 120, 20,"Délais d'intervention",#PB_Button_Toggle)    
  ImageGadget(#Img_info,  10, 40, 100, 80, Image10)
  ;}
  
  AddGadgetItem(#PANEL, -1,"Mes Evaluations", Image8) ;{
  
  ButtonImageGadget(#BtnDisplay, 5, 2, 25, 25, Image25)
  GadgetToolTip(#BtnDisplay,"Mode d'affichage")   
  TextGadget(#Text_Currentfolder,40,5,100,20,"Répertoire courant:")
  TextGadget(#Text_namefolder,140,5,600,22,"Mes Evaluations")
  SetGadgetFont(#Text_namefolder,Font0)
  ;-Explorateur
  PanelWidth = GetGadgetAttribute(#PANEL, #PB_Panel_ItemWidth)
  PanelHeight = GetGadgetAttribute(#PANEL, #PB_Panel_ItemHeight)   
  ExplorerListGadget(#explorerlist,5, 30, PanelWidth - 10, PanelHeight - 55, RepDPS$ +"*ini",#PB_Explorer_NoDriveRequester | #PB_Explorer_AutoSort|#PB_Explorer_MultiSelect|#PB_Explorer_NoDirectoryChange|#PB_Explorer_NoParentFolder|#PB_Explorer_AlwaysShowSelection|#PB_Explorer_GridLines|#PB_Explorer_FullRowSelect )
  SetGadgetItemAttribute(#explorerlist, 0, #PB_Explorer_ColumnWidth, 600, 0) ; nom
  SetGadgetItemAttribute(#explorerlist, 0, #PB_Explorer_ColumnWidth, 100, 1) ; taille
  SetGadgetItemAttribute(#explorerlist, 0, #PB_Explorer_ColumnWidth, 150, 2) ; type
  SetGadgetItemAttribute(#explorerlist, 0, #PB_Explorer_ColumnWidth, 120, 3) ; date
  
  StringGadget(#String_pathfolder,5,PanelHeight - 20,900,20,GetGadgetText(#explorerlist),#PB_String_ReadOnly)
  TextGadget(#Text_countitems,905,PanelHeight - 20,95,20,"",#PB_Text_Border|#PB_Text_Center)  
  ;}
  
  AddGadgetItem(#PANEL, -1,"Mes Evaluations Images", Image32) ;{
  PanelWidth = GetGadgetAttribute(#PANEL, #PB_Panel_ItemWidth)
  PanelHeight = GetGadgetAttribute(#PANEL, #PB_Panel_ItemHeight)
  ButtonImageGadget(#BtnDisplayImg, 5, 2, 25, 25, Image25)
  GadgetToolTip(#BtnDisplayImg,"Mode d'affichage")   
  TextGadget(#Text_CurrentfolderImg,40,5,100,20,"Répertoire courant:")
  TextGadget(#Text_namefolderImg,140,5,600,22,"Mes Evaluations Images")
  SetGadgetFont(#Text_namefolderImg,Font0)    
  ;-Explorateur images
  ExplorerListGadget(#explorerlistImg,5, 30, PanelWidth - 10, PanelHeight - 55, RepDPSimg$ +"*jpeg",#PB_Explorer_NoDriveRequester | #PB_Explorer_AutoSort|#PB_Explorer_MultiSelect|#PB_Explorer_NoDirectoryChange|#PB_Explorer_NoParentFolder|#PB_Explorer_AlwaysShowSelection|#PB_Explorer_GridLines|#PB_Explorer_FullRowSelect  )
  SetGadgetItemAttribute(#explorerlistImg, 0, #PB_Explorer_ColumnWidth, 600, 0) ; nom
  SetGadgetItemAttribute(#explorerlistImg, 0, #PB_Explorer_ColumnWidth, 100, 1) ; taille
  SetGadgetItemAttribute(#explorerlistImg, 0, #PB_Explorer_ColumnWidth, 100, 2) ; type
  SetGadgetItemAttribute(#explorerlistImg, 0, #PB_Explorer_ColumnWidth, 120, 3) ; date   
  StringGadget(#String_pathfolderImg,5,PanelHeight - 20,900,20,GetGadgetText(#explorerlistImg),#PB_String_ReadOnly)
  TextGadget(#Text_countitemsImg,905,PanelHeight - 20,95,20,"",#PB_Text_Border|#PB_Text_Center)    
  ;}
  
  ;}    
  CloseGadgetList()
  
  
  ;-Menus Popup explorer
  HPopUpExplorateur = CreatePopupImageMenu(#PopUp_Explorateur) ;{ 
  If HPopUpExplorateur
    MenuItem(#Menu_Explorateur_Open,"Ouvrir le fichier",Image26)
    MenuBar()
    MenuItem(#Menu_Explorateur_Property, "Propriétés",Image30)
    MenuBar()
    MenuItem(#Menu_Explorateur_Delete,"Supprimer définitivement",Image24)
    MenuItem(#Menu_Explorateur_RecycleBin,"Envoyer à la corbeille",Image23)
  EndIf
  ;}
  ;-Menu affichage
  HPopUpDisplayMode = CreatePopupMenu(#PopUp_DisplayMode) ;{ 
  If HPopUpDisplayMode
    MenuItem(#Menu_DisplayMode_Large,"Grandes icônes")
    MenuItem(#Menu_DisplayMode_Small,"Petites icônes")
    MenuItem(#Menu_DisplayMode_Liste,"Mode liste")
    MenuItem(#Menu_DisplayMode_Detail,"Détails")
    SetMenuItemState(#PopUp_DisplayMode,#Menu_DisplayMode_Detail,1) ; mode détails par défaut
  EndIf
  ;}    
  ;-Menus Popup explorer Img
  HPopUpExplorateurImg = CreatePopupImageMenu(#PopUp_ExplorateurImg) ;{ 
  If HPopUpExplorateurImg
    MenuItem(#Menu_Explorateur_OpenImg,"Ouvrir l'image",Image35)
    MenuBar()
    MenuItem(#Menu_Explorateur_PropertyImg, "Propriétés de l'image",Image34)
    MenuBar()
    MenuItem(#Menu_Explorateur_DeleteImg,"Supprimer définitivement",Image24)
    MenuItem(#Menu_Explorateur_RecycleBinImg,"Envoyer à la corbeille",Image23)
  EndIf
  ;} 
  ;-Menu affichage Images
  HPopUpDisplayModeImg = CreatePopupMenu(#PopUp_DisplayModeImg) ;{ 
  If HPopUpDisplayModeImg
    MenuItem(#Menu_DisplayMode_LargeImg,"Grandes icônes")
    MenuItem(#Menu_DisplayMode_SmallImg,"Petites icônes")
    MenuItem(#Menu_DisplayMode_ListeImg,"Mode liste")
    MenuItem(#Menu_DisplayMode_DetailImg,"Détails")
    SetMenuItemState(#PopUp_DisplayModeImg,#Menu_DisplayMode_DetailImg,1) ; mode détails par défaut
  EndIf
  ;}
  
  ;-Statusbar
  If CreateStatusBar(#StatusDPS, WindowID(#WinMain)) ;{
    AddStatusBarField(#PB_Ignore)
    AddStatusBarField(#PB_Ignore)
    AddStatusBarField(25)
  EndIf
  StatusBarText(#StatusDPS, 0, "Date : "+Time_Date(FormatDate("%dd/%mm/%yyyy", Date())), #PB_StatusBar_Raised)
  StatusBarText(#StatusDPS, 1, #PROGRAMNAME +" "+ #COPYRIGHT, #PB_StatusBar_Right | #PB_StatusBar_Raised)
  StatusBarImage(#StatusDPS, 2, Image0)
  ;}
  ;- mise à jour des infos de base  
  SetGadgetText(#Strg_RIS_Vali,Calcul_i())
  SetActiveGadget(#Strg_GrilleEvalOpen)
  SetGadgetState(#BTN_Img10,1) 
  NombreElements(#explorerlist,#Text_countitems)
  NombreElements(#explorerlistImg,#Text_countitemsImg)
  
  ;---------------------------------
  ;-Boucle d'évènements 
  ;---------------------------------
  Repeat 
    MainEvent = WaitWindowEvent()     
    Select MainEvent
        ;---Event Menus       
      Case #PB_Event_Menu
        
        Select EventMenu()
            
          Case 1  ;{
            Evalname$ = OpenFileRequester("Ouvrir une évaluation", RepDPS$, "Fichiers de paramètres|*.ini", 0)
            If Evalname$
              Open_Evaluation(Evalname$)  
              SetGadgetText(#Strg_GrilleEvalOpen, GetFilePart(Evalname$,#PB_FileSystem_NoExtension))
              SetGadgetState(#PANEL,0) 
            EndIf ;}
            
          Case 2  ;{
            If GetGadgetText(#Strg_GrilleEvalOpen) <> ""
              SaveAs = MessageRequester("Enregistrer","Voulez-vous d'abord sauvegarder les données actuelles ? Si oui utilisez la commande { Enregistrer l'évaluation courante }", #MB_ICONQUESTION|#PB_MessageRequester_YesNo)
              If SaveAs = 6
              ElseIf SaveAs = 7
                New_Eval()
              EndIf 
            EndIf ;}
            
          Case 3 ;{
            Evalname$ = GetGadgetText(#Strg_GrilleEvalOpen)          
            If Evalname$             
              If FileSize(RepDPS$ + Evalname$ +".ini") <> -1                
                Save = MessageRequester("Enregistrer","Le fichier existe déjà."+#CRLF$+"Voulez-vous le remplacer ?", #MB_ICONQUESTION|#PB_MessageRequester_YesNoCancel)            
                If Save = 6                  
                  If Save_Evaluation(Evalname$) = 1                  
                    MessageRequester("Enregistrement","L'évaluation "+Evalname$+" a bien été enregistrée",#MB_ICONINFORMATION|#PB_MessageRequester_Ok)                  
                    New_Eval()                  
                  EndIf                 
                ElseIf Save = 7                    
                Else                    
                EndIf                   
              ElseIf FileSize(RepDPS$ + Evalname$ +".ini") = -1                 
                If Save_Evaluation(Evalname$) = 1                   
                  MessageRequester("Enregistrement","L'évaluation "+Evalname$+" a bien été enregistrée",#MB_ICONINFORMATION|#PB_MessageRequester_Ok)                 
                  New_Eval()                   
                EndIf                  
              EndIf               
            Else 
              MessageRequester("Enregistrement","Vous devez donner un nom à l'évaluation",#MB_ICONINFORMATION|#PB_MessageRequester_Ok)                
              SetActiveGadget(#Strg_GrilleEvalOpen)               
            EndIf ;}
            
            ;           Case 4                     
            
          Case 5 ;{
            ImgOpen$ = OpenFileRequester("Ouvrir une image d'évaluation",RepDPSimg$,"Fichiers images|*.jpeg", 0)
            If ImgOpen$
              If ShellExecute_(0,"open",ImgOpen$,0,0,1) = 0
                MessageRequester("Image évaluation", "Impossible d'ouvrir l'image sélectionnée!", #MB_ICONEXCLAMATION)
              EndIf
            EndIf 
            ;}
            
            ;           Case 6
            
          Case 7 : CloseWindow(#WinMain) : End 
            
          Case 8 ;{
            If FileSize(Grille_Eval$) <> -1 
              RunProgram(Grille_Eval$)
            Else 
              MessageRequester("Erreur", "Le fichier est introuvable.", #MB_ICONEXCLAMATION)
            EndIf ;}
            
          Case 9 ;{
            If FileSize(Declar_moins5000$) <> -1 
              RunProgram(Declar_moins5000$)
            Else 
              MessageRequester("Erreur", "Le fichier est introuvable.", #MB_ICONEXCLAMATION)
            EndIf ;}
            
          Case 10 ;{
            If FileSize(Declar_plus5000$) <> -1 
              RunProgram(Declar_plus5000$)
            Else 
              MessageRequester("Erreur", "Le fichier est introuvable.", #MB_ICONEXCLAMATION)
            EndIf ;}
            
          Case 11 ;{
            If FileSize(Logigramme$) <> -1 
              RunProgram(Logigramme$)
            Else 
              MessageRequester("Erreur", "Le fichier est introuvable.", #MB_ICONEXCLAMATION)
            EndIf ;}
            
          Case 12 ;{
            If FileSize(Referentiel$) <> -1 
              RunProgram(Referentiel$)
            Else 
              MessageRequester("Erreur", "Le fichier est introuvable.", #MB_ICONEXCLAMATION)
            EndIf ;}
            
          Case 13 : InfoAuteur()         
            
          Case 14 ;{
            If RunProgram("https://wolforan.com/logiciels-wolforan-logeditor.html") = 0
              MessageRequester("Connexion...", "Impossible de se connecter au site. Vérifiez l'état de votre econnexion.", #MB_ICONEXCLAMATION)
            EndIf ;}
            
          Case 15 : ShellExecute_(0,"open",GetCurrentDirectory()+"Eval-DPS Help.chm",0,0,1)
            
            
          Case #Menu_DisplayMode_Large ;{
            SetGadgetAttribute(#explorerlist, #PB_Explorer_DisplayMode,#PB_Explorer_LargeIcon)
            SetMenuItemState(#PopUp_DisplayMode,#Menu_DisplayMode_Large,1)
            SetMenuItemState(#PopUp_DisplayMode,#Menu_DisplayMode_Small,0)
            SetMenuItemState(#PopUp_DisplayMode,#Menu_DisplayMode_Liste,0)
            SetMenuItemState(#PopUp_DisplayMode,#Menu_DisplayMode_Detail,0)
            ;}
          Case #Menu_DisplayMode_Small ;{
            SetGadgetAttribute(#explorerlist, #PB_Explorer_DisplayMode,#PB_Explorer_SmallIcon)
            SetMenuItemState(#PopUp_DisplayMode,#Menu_DisplayMode_Large,0)
            SetMenuItemState(#PopUp_DisplayMode,#Menu_DisplayMode_Small,1)
            SetMenuItemState(#PopUp_DisplayMode,#Menu_DisplayMode_Liste,0)
            SetMenuItemState(#PopUp_DisplayMode,#Menu_DisplayMode_Detail,0)
            ;}
          Case #Menu_DisplayMode_Liste ;{
            SetGadgetAttribute(#explorerlist, #PB_Explorer_DisplayMode,#PB_Explorer_List)
            SetMenuItemState(#PopUp_DisplayMode,#Menu_DisplayMode_Large,0)
            SetMenuItemState(#PopUp_DisplayMode,#Menu_DisplayMode_Small,0)
            SetMenuItemState(#PopUp_DisplayMode,#Menu_DisplayMode_Liste,1)
            SetMenuItemState(#PopUp_DisplayMode,#Menu_DisplayMode_Detail,0)
            ;}
          Case #Menu_DisplayMode_Detail ;{
            SetGadgetAttribute(#explorerlist, #PB_Explorer_DisplayMode,#PB_Explorer_Report)
            SetMenuItemState(#PopUp_DisplayMode,#Menu_DisplayMode_Large,0)
            SetMenuItemState(#PopUp_DisplayMode,#Menu_DisplayMode_Small,0)
            SetMenuItemState(#PopUp_DisplayMode,#Menu_DisplayMode_Liste,0)
            SetMenuItemState(#PopUp_DisplayMode,#Menu_DisplayMode_Detail,1)
            ;}
            
          Case #Menu_DisplayMode_LargeImg ;{
            SetGadgetAttribute(#explorerlistImg, #PB_Explorer_DisplayMode,#PB_Explorer_LargeIcon)
            SetMenuItemState(#PopUp_DisplayModeImg,#Menu_DisplayMode_LargeImg,1)
            SetMenuItemState(#PopUp_DisplayModeImg,#Menu_DisplayMode_SmallImg,0)
            SetMenuItemState(#PopUp_DisplayModeImg,#Menu_DisplayMode_ListeImg,0)
            SetMenuItemState(#PopUp_DisplayModeImg,#Menu_DisplayMode_DetailImg,0)
            ;}
          Case #Menu_DisplayMode_SmallImg ;{
            SetGadgetAttribute(#explorerlistImg, #PB_Explorer_DisplayMode,#PB_Explorer_SmallIcon)
            SetMenuItemState(#PopUp_DisplayModeImg,#Menu_DisplayMode_LargeImg,0)
            SetMenuItemState(#PopUp_DisplayModeImg,#Menu_DisplayMode_SmallImg,1)
            SetMenuItemState(#PopUp_DisplayModeImg,#Menu_DisplayMode_ListeImg,0)
            SetMenuItemState(#PopUp_DisplayModeImg,#Menu_DisplayMode_DetailImg,0)
            ;}
          Case #Menu_DisplayMode_ListeImg ;{
            SetGadgetAttribute(#explorerlistImg, #PB_Explorer_DisplayMode,#PB_Explorer_List)
            SetMenuItemState(#PopUp_DisplayModeImg,#Menu_DisplayMode_LargeImg,0)
            SetMenuItemState(#PopUp_DisplayModeImg,#Menu_DisplayMode_SmallImg,0)
            SetMenuItemState(#PopUp_DisplayModeImg,#Menu_DisplayMode_ListeImg,1)
            SetMenuItemState(#PopUp_DisplayModeImg,#Menu_DisplayMode_DetailImg,0)
            ;}
          Case #Menu_DisplayMode_DetailImg ;{
            SetGadgetAttribute(#explorerlistImg, #PB_Explorer_DisplayMode,#PB_Explorer_Report)
            SetMenuItemState(#PopUp_DisplayModeImg,#Menu_DisplayMode_LargeImg,0)
            SetMenuItemState(#PopUp_DisplayModeImg,#Menu_DisplayMode_SmallImg,0)
            SetMenuItemState(#PopUp_DisplayModeImg,#Menu_DisplayMode_ListeImg,0)
            SetMenuItemState(#PopUp_DisplayModeImg,#Menu_DisplayMode_DetailImg,1)
            ;}
            
          Case #Menu_Explorateur_Open  ;{      
            If CountGadgetItems(#explorerlist) <> 0                
              For i = 0 To CountGadgetItems(#explorerlist)-1          
                If GetGadgetItemState(#explorerlist, i) & #PB_Explorer_Selected           
                  NomFichier$ = GetGadgetText(#explorerlist)+GetGadgetItemText(#explorerlist, i )
                  Open_Evaluation(NomFichier$)
                  SetGadgetText(#Strg_GrilleEvalOpen, GetFilePart(NomFichier$,#PB_FileSystem_NoExtension))
                  SetGadgetState(#PANEL,0)             
                EndIf           
              Next i       
            EndIf ;}
            
          Case #Menu_Explorateur_Delete  ;{      
            If CountGadgetItems(#explorerlist) <>0         
              Suppr = MessageRequester("SUPPRESSION DEFINITIVE","Êtes vous sûr(e) de vouloir continuer ?"+Chr(13)+"Si oui, vous ne pourrez revenir en arrière !",#MB_ICONEXCLAMATION | #PB_MessageRequester_YesNo)  
              If Suppr = 6        
                For i = 0 To CountGadgetItems(#explorerlist)-1          
                  If GetGadgetItemState(#explorerlist, i) & #PB_Explorer_Selected           
                    NomFichier$ = GetGadgetText(#explorerlist)+GetGadgetItemText(#explorerlist, i )
                    Resultat = FileSize(NomFichier$)            
                    If Resultat <> -1  
                      DeleteFile(NomFichier$ ,#PB_FileSystem_Force)
                      NombreElements(#explorerlist,#Text_countitems)
                    EndIf       
                  EndIf           
                Next i
              ElseIf Suppr = 7 
              EndIf 
            EndIf
            ;}
            
          Case #Menu_Explorateur_RecycleBin ;{
            For i = 0 To CountGadgetItems(#explorerlist)-1         
              If GetGadgetItemState(#explorerlist, i) & #PB_Explorer_Selected
                NomFichier$ = GetGadgetText(#explorerlist)+GetGadgetItemText(#explorerlist, i )          
                If FileSize(NomFichier$) <> -1
                  DeleteFileToRecycleBin(NomFichier$)
                EndIf             
              EndIf          
            Next i
            NombreElements(#explorerlist,#Text_countitems)
            ;}       
            
          Case #Menu_Explorateur_Property ;{
            For i = 0 To CountGadgetItems(#explorerlist)-1         
              If GetGadgetItemState(#explorerlist, i) & #PB_Explorer_Selected    
                NomFichierSource$ = GetGadgetText(#explorerlist)+GetGadgetItemText(#explorerlist, i )                 
                FileProperty(NomFichierSource$)                  
              EndIf                      
            Next i
            ;}
            
            
          Case #Menu_Explorateur_OpenImg  ;{              
            If CountGadgetItems(#explorerlistImg) <>0                
              For i = 0 To CountGadgetItems(#explorerlistImg)-1          
                If GetGadgetItemState(#explorerlistImg, i) & #PB_Explorer_Selected           
                  NomFichier$ = GetGadgetText(#explorerlistImg)+GetGadgetItemText(#explorerlistImg, i )
                  ShellExecute_(0,"open",NomFichier$,0,0,1)            
                EndIf           
              Next i       
            EndIf ;}      
            
          Case #Menu_Explorateur_DeleteImg  ;{      
            If CountGadgetItems(#explorerlistImg) <>0         
              Suppr = MessageRequester("SUPPRESSION DEFINITIVE","Êtes vous sûr(e) de vouloir continuer ?"+Chr(13)+"Si oui, vous ne pourrez revenir en arrière !",#MB_ICONEXCLAMATION | #PB_MessageRequester_YesNo)  
              If Suppr = 6        
                For i = 0 To CountGadgetItems(#explorerlistImg)-1          
                  If GetGadgetItemState(#explorerlistImg, i) & #PB_Explorer_Selected           
                    NomFichier$ = GetGadgetText(#explorerlistImg)+GetGadgetItemText(#explorerlistImg, i )
                    Resultat = FileSize(NomFichier$)            
                    If Resultat <> -1  ;And Resultat <> -2   
                      DeleteFile(NomFichier$ ,#PB_FileSystem_Force)
                      NombreElements(#explorerlistImg,#Text_countitemsImg)
                    EndIf       
                  EndIf           
                Next i
              ElseIf Suppr = 7 
              EndIf 
            EndIf
            ;}
            
          Case #Menu_Explorateur_RecycleBinImg ;{
            For i = 0 To CountGadgetItems(#explorerlistImg)-1         
              If GetGadgetItemState(#explorerlistImg, i) & #PB_Explorer_Selected
                NomFichier$ = GetGadgetText(#explorerlistImg)+GetGadgetItemText(#explorerlistImg, i )          
                If FileSize(NomFichier$) <> -1
                  DeleteFileToRecycleBin(NomFichier$)
                EndIf             
              EndIf          
            Next i
            NombreElements(#explorerlistImg,#Text_countitemsImg)
            ;}       
            
          Case #Menu_Explorateur_PropertyImg ;{
            For i = 0 To CountGadgetItems(#explorerlistImg)-1         
              If GetGadgetItemState(#explorerlistImg, i) & #PB_Explorer_Selected    
                NomFichierSource$ = GetGadgetText(#explorerlistImg)+GetGadgetItemText(#explorerlistImg, i )                 
                FileProperty(NomFichierSource$)                  
              EndIf                      
            Next i
            ;}
            
        EndSelect
        
      Case #PB_Event_Gadget        
        Select EventGadget()
          Case #LinkID1 ;{
            If RunProgram("https://wolforan.com") = 0
              MessageRequester("Connexion...", "Impossible de se connecter au site", #MB_ICONEXCLAMATION)
            EndIf
            ;}
          Case #LinkID2 ;{
            If RunProgram("mailto:support@wolforan.fr ?subject=Besoin d'aide avec "+#PROGRAMNAME) = 0
              MessageRequester("Messagerie...", "Impossible d'utiliser votre messagerie!", #MB_ICONEXCLAMATION)
            EndIf
            ;}
          Case #CloseInfoAuteur ;{
            CloseWindow(#Win_InfoAuteur)
            DisableWindow(#WinMain,#False)
            ;}
            
          Case #OptP2_1 ;{
            SetGadgetText(#Strg_RIS_P2,"0.25")
            SetGadgetText(#Strg_RIS_Vali,Calcul_i())
            SetGadgetText(#Strg_RIS_P,Calcul_P())
            Calcul_RIS()
            
          Case #OptP2_2
            SetGadgetText(#Strg_RIS_P2,"0.30")
            SetGadgetText(#Strg_RIS_Vali,Calcul_i())
            SetGadgetText(#Strg_RIS_P,Calcul_P())
            Calcul_RIS()
            
          Case #OptP2_3
            SetGadgetText(#Strg_RIS_P2,"0.35")
            SetGadgetText(#Strg_RIS_Vali,Calcul_i())
            SetGadgetText(#Strg_RIS_P,Calcul_P())
            Calcul_RIS()
            
          Case #OptP2_4
            SetGadgetText(#Strg_RIS_P2,"0.40")
            SetGadgetText(#Strg_RIS_Vali,Calcul_i())
            SetGadgetText(#Strg_RIS_P,Calcul_P())
            Calcul_RIS()
            ;}
            
          Case #OptE1_1 ;{
            SetGadgetText(#Strg_RIS_E1,"0.25")
            SetGadgetText(#Strg_RIS_Vali,Calcul_i())
            SetGadgetText(#Strg_RIS_P,Calcul_P())
            Calcul_RIS()
            
          Case #OptE1_2
            SetGadgetText(#Strg_RIS_E1,"0.30")
            SetGadgetText(#Strg_RIS_Vali,Calcul_i())
            SetGadgetText(#Strg_RIS_P,Calcul_P())
            Calcul_RIS()
            
          Case #OptE1_3
            SetGadgetText(#Strg_RIS_E1,"0.35")
            SetGadgetText(#Strg_RIS_Vali,Calcul_i())
            SetGadgetText(#Strg_RIS_P,Calcul_P())
            Calcul_RIS()
            
          Case #OptE1_4
            SetGadgetText(#Strg_RIS_E1,"0.40")
            SetGadgetText(#Strg_RIS_Vali,Calcul_i())
            SetGadgetText(#Strg_RIS_P,Calcul_P())
            Calcul_RIS()
            ;}
            
          Case #OptE2_1 ;{
            SetGadgetText(#Strg_RIS_E2,"0.25")
            SetGadgetText(#Strg_RIS_Vali,Calcul_i())
            SetGadgetText(#Strg_RIS_P,Calcul_P())
            Calcul_RIS()
            
          Case #OptE2_2
            SetGadgetText(#Strg_RIS_E2,"0.30")
            SetGadgetText(#Strg_RIS_Vali,Calcul_i())
            SetGadgetText(#Strg_RIS_P,Calcul_P())
            Calcul_RIS()
            
          Case #OptE2_3
            SetGadgetText(#Strg_RIS_E2,"0.35")
            SetGadgetText(#Strg_RIS_Vali,Calcul_i())
            SetGadgetText(#Strg_RIS_P,Calcul_P())
            Calcul_RIS()
            
          Case #OptE2_4
            SetGadgetText(#Strg_RIS_E2,"0.40")
            SetGadgetText(#Strg_RIS_Vali,Calcul_i())
            SetGadgetText(#Strg_RIS_P,Calcul_P())
            Calcul_RIS()
            ;}
            
          Case #Strg_RIS_P1
            Select EventType()
              Case #PB_EventType_Change
                Calcul_RIS()
                NewP$ = Calcul_P() : SetGadgetText(#Strg_RIS_P,NewP$)     
            EndSelect
            
          Case #BTN_SaveGrilleEval ;{
            Evalname$ = GetGadgetText(#Strg_GrilleEvalOpen)            
            If Evalname$ 
              If FileSize(RepDPS$ + Evalname$ +".ini") <> -1               
                Save = MessageRequester("Enregistrer","Le fichier existe déjà."+#CRLF$+"Voulez-vous le remplacer ?", #MB_ICONQUESTION|#PB_MessageRequester_YesNoCancel)               
                If Save = 6                 
                  If Save_Evaluation(Evalname$) = 1                 
                    MessageRequester("Enregistrement","L'évaluation "+Evalname$+" a bien été enregistrée",#MB_ICONINFORMATION|#PB_MessageRequester_Ok)                  
                    New_Eval()                 
                  EndIf                 
                ElseIf Save = 7                   
                Else                   
                EndIf                 
              ElseIf FileSize(RepDPS$ + Evalname$ +".ini") = -1                
                If Save_Evaluation(Evalname$) = 1                  
                  MessageRequester("Enregistrement","L'évaluation "+Evalname$+" a bien été enregistrée",#MB_ICONINFORMATION|#PB_MessageRequester_Ok)               
                  New_Eval()                   
                EndIf                 
              EndIf               
            Else 
              MessageRequester("Enregistrement","Vous devez donner un nom à l'évaluation",#MB_ICONINFORMATION|#PB_MessageRequester_Ok)               
              SetActiveGadget(#Strg_GrilleEvalOpen)             
            EndIf  ;}
            
          Case #Strg_GrilleEvalOpen
            Select EventType()
              Case #PB_EventType_Change        
                SetGadgetText(#Txt_GrilleEval,"") 
            EndSelect
            
          Case #Btn_screenshot ;{                             
            ImgName$ = GetGadgetText(#Strg_GrilleEvalOpen)             
            If ImgName$ > ""
              PhotoFile$ = RepDPSimg$+ImgName$+"_"+FormatDate("%yyyy%mm%dd_%hh%ii%ss",Date())+".jpeg"           
              If CaptureJPEG(PhotoFile$) <> 0
                OpenImg = MessageRequester("Afficher l'image","Souhaitez vous ouvrir l'image créée ?",#PB_MessageRequester_YesNo|#MB_ICONQUESTION)  
                If OpenImg = 6 
                  ShellExecute_(0,"open",PhotoFile$,0,0,1)
                ElseIf OpenImg = 7
                EndIf  
              Else 
                MessageRequester("Capture d'écran","Une erreur est survenue lors de la création de l'image.",#MB_ICONERROR)
              EndIf
              
            ElseIf ImgName$ = ""
              SImgName$ = InputRequester("Image","Donnez un nom à l'image","")         
              If SImgName$ > ""
                PhotoFile$ = RepDPSimg$+SImgName$+"_"+FormatDate("%yyyy%mm%dd_%hh%ii%ss",Date())+".jpeg"              
                If CaptureJPEG(PhotoFile$) <> 0
                  OpenImg = MessageRequester("Afficher l'image","Souhaitez vous ouvrir l'image créée ?",#PB_MessageRequester_YesNo|#MB_ICONQUESTION)                  
                  If OpenImg = 6 
                    ShellExecute_(0,"open",PhotoFile$,0,0,1)
                  ElseIf OpenImg = 7
                  EndIf                     
                Else 
                  MessageRequester("Capture d'écran","Une erreur est survenue lors de la création de l'image.",#MB_ICONERROR)
                EndIf  
              EndIf    
            EndIf  
            ;}
            
            ;---Boutons Documents           
          Case #BTN_Referentiel ;{
            If FileSize(Referentiel$) <> -1 
              RunProgram(Referentiel$)
            Else 
              MessageRequester("Erreur", "Le fichier est introuvable.", #MB_ICONEXCLAMATION)
            EndIf ;}
            
          Case #BTN_Declar_Moins5000 ;{
            If FileSize(Declar_moins5000$) <> -1 
              RunProgram(Declar_moins5000$)
            Else 
              MessageRequester("Erreur", "Le fichier est introuvable.", #MB_ICONEXCLAMATION)
            EndIf ;}
            
          Case #BTN_Declar_Plus5000 ;{
            If FileSize(Declar_plus5000$) <> -1 
              RunProgram(Declar_plus5000$)
            Else 
              MessageRequester("Erreur", "Le fichier est introuvable.", #MB_ICONEXCLAMATION)
            EndIf ;}
            
          Case #BTN_Fiche_Eval ;{
            If FileSize(Grille_Eval$) <> -1 
              RunProgram(Grille_Eval$)
            Else 
              MessageRequester("Erreur", "Le fichier est introuvable.", #MB_ICONEXCLAMATION)
            EndIf ;}
            
          Case #BTN_Logigramme ;{
            If FileSize(Logigramme$) <> -1 
              RunProgram(Logigramme$)
            Else 
              MessageRequester("Erreur", "Le fichier est introuvable.", #MB_ICONEXCLAMATION)
            EndIf ;}
            
            ;---Boutons Calcul du RIS           
          Case #BTN_Img10 : SetGadgetState(#Img_info, Image10) ;{
            SetGadgetState(#BTN_Img11,0)
            SetGadgetState(#BTN_Img12,0)
            SetGadgetState(#BTN_Img13,0)
            SetGadgetState(#BTN_ImgActiv,0)
            SetGadgetState(#BTN_ImgEnvir,0)
            SetGadgetState(#BTN_ImgDelai,0) ;}
            
          Case #BTN_Img11 : SetGadgetState(#Img_info, Image11) ;{
            SetGadgetState(#BTN_Img10,0)
            SetGadgetState(#BTN_Img12,0)
            SetGadgetState(#BTN_Img13,0)
            SetGadgetState(#BTN_ImgActiv,0)
            SetGadgetState(#BTN_ImgEnvir,0)
            SetGadgetState(#BTN_ImgDelai,0) ;}
            
          Case #BTN_Img12 : SetGadgetState(#Img_info, Image12) ;{
            SetGadgetState(#BTN_Img10,0)
            SetGadgetState(#BTN_Img11,0)
            SetGadgetState(#BTN_Img13,0)
            SetGadgetState(#BTN_ImgActiv,0)
            SetGadgetState(#BTN_ImgEnvir,0)
            SetGadgetState(#BTN_ImgDelai,0) ;}
            
          Case #BTN_Img13 : SetGadgetState(#Img_info, Image13) ;{
            SetGadgetState(#BTN_Img10,0)
            SetGadgetState(#BTN_Img11,0)
            SetGadgetState(#BTN_Img12,0)
            SetGadgetState(#BTN_ImgActiv,0)
            SetGadgetState(#BTN_ImgEnvir,0)
            SetGadgetState(#BTN_ImgDelai,0) ;}     
            
          Case #BTN_ImgActiv : SetGadgetState(#Img_info, Image18) ;{
            SetGadgetState(#BTN_Img10,0)
            SetGadgetState(#BTN_Img11,0)
            SetGadgetState(#BTN_Img12,0)
            SetGadgetState(#BTN_Img13,0)
            SetGadgetState(#BTN_ImgEnvir,0)
            SetGadgetState(#BTN_ImgDelai,0) ;}
            
          Case #BTN_ImgEnvir : SetGadgetState(#Img_info, Image19) ;{
            SetGadgetState(#BTN_Img10,0)
            SetGadgetState(#BTN_Img11,0)
            SetGadgetState(#BTN_Img12,0)
            SetGadgetState(#BTN_Img13,0)
            SetGadgetState(#BTN_ImgActiv,0)
            SetGadgetState(#BTN_ImgDelai,0) ;}
            
          Case #BTN_ImgDelai : SetGadgetState(#Img_info, Image20) ;{
            SetGadgetState(#BTN_Img10,0)
            SetGadgetState(#BTN_Img11,0)
            SetGadgetState(#BTN_Img12,0)
            SetGadgetState(#BTN_Img13,0)
            SetGadgetState(#BTN_ImgActiv,0)
            SetGadgetState(#BTN_ImgEnvir,0) ;}
            
          Case #BtnDisplay
            DisplayPopupMenu(#PopUp_DisplayMode,WindowID(#WinMain))
            
          Case #BtnDisplayImg
            DisplayPopupMenu(#PopUp_DisplayModeImg,WindowID(#WinMain))
            
          Case #explorerlist ;{        
            Select EventType()
                
              Case #PB_EventType_RightClick
                PosEx = GetGadgetState(#explorerlist)
                If PosEX >= 0
                  Resultat = GetGadgetItemState(#explorerlist, PosEX)
                  If Resultat & #PB_Explorer_File
                    filename$ = GetGadgetItemText(#explorerlist,PosEX ,0)
                  EndIf 
                EndIf
                DisplayPopupMenu(#PopUp_Explorateur,WindowID(#WinMain))
                
              Case #PB_EventType_LeftDoubleClick
                PosEx = GetGadgetState(#explorerlist)
                If PosEX >= 0
                  Resultat = GetGadgetItemState(#explorerlist, PosEX)
                  If Resultat & #PB_Explorer_File
                    Evalname$ = GetGadgetItemText(#explorerlist,PosEX ,0)
                    Open_Evaluation(RepDPS$ + Evalname$)  
                    SetGadgetText(#Strg_GrilleEvalOpen, GetFilePart(Evalname$,#PB_FileSystem_NoExtension))
                    SetGadgetState(#PANEL, 0)
                  EndIf 
                EndIf
                
              Case #PB_EventType_Change 
                Path$ = GetGadgetText(#explorerlist)
                SetGadgetText(#String_pathfolder,Path$)
                DirUp.s = x_getparentpathpart(Path$)
                NombreElements(#explorerlist,#Text_countitems)  
                
                PosEx = GetGadgetState(#explorerlist)
                If PosEX >= 0
                  Resultat = GetGadgetItemState(#explorerlist, PosEX)
                  If Resultat & #PB_Explorer_Directory
                    name$ = GetGadgetItemText(#explorerlist,PosEX ,0)
                    SetGadgetText(#Text_namefolder, name$)
                  EndIf 
                EndIf 
                
            EndSelect   ;}
            
          Case #explorerlistImg ;{
            
            Select EventType()
                
              Case #PB_EventType_RightClick ;{
                PosEx = GetGadgetState(#explorerlistImg)
                If PosEX >= 0
                  Resultat = GetGadgetItemState(#explorerlistImg, PosEX)
                  If Resultat & #PB_Explorer_File
                    filename$ = GetGadgetItemText(#explorerlistImg,PosEX ,0)
                  EndIf 
                EndIf
                DisplayPopupMenu(#PopUp_ExplorateurImg,WindowID(#WinMain)) ;}
                
              Case #PB_EventType_LeftDoubleClick ;{
                PosEx = GetGadgetState(#explorerlistImg)
                If PosEX >= 0
                  Resultat = GetGadgetItemState(#explorerlistImg, PosEX)
                  If Resultat & #PB_Explorer_File
                    Imagename$ = GetGadgetItemText(#explorerlistImg,PosEX ,0)
                    ShellExecute_(0,"open",RepDPSimg$ + Imagename$,0,0,1)
                  EndIf 
                EndIf ;}
                
              Case #PB_EventType_Change ;{
                Path$ = GetGadgetText(#explorerlistImg)
                SetGadgetText(#String_pathfolderImg,Path$)
                DirUp.s = x_getparentpathpart(Path$)
                NombreElements(#explorerlistImg,#Text_countitemsImg)  
                
                PosEx = GetGadgetState(#explorerlistImg)
                If PosEX >= 0
                  Resultat = GetGadgetItemState(#explorerlistImg, PosEX)
                  If Resultat & #PB_Explorer_Directory
                    name$ = GetGadgetItemText(#explorerlistImg,PosEX ,0)
                    SetGadgetText(#Text_namefolderImg, name$)
                  EndIf 
                EndIf ;}
                
            EndSelect   ;}
        EndSelect
        
        ;---Fermeture
      Case #PB_Event_CloseWindow    
        Select EventWindow()          
          Case #WinMain
            End         
        EndSelect            
    EndSelect  
  ForEver 
EndIf 
@+
Quand tous les glands seront tombés, les feuilles dispersées, la vigueur retombée... Dans la morne solitude, ancré au coeur de ses racines, c'est de sa force maturité qu'il renaîtra en pleine magnificence...Jacobus.
Avatar de l’utilisateur
Kwai chang caine
Messages : 6962
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Re: Dispositif Prévisionnel de Secours

Message par Kwai chang caine »

Merci du partage 8)
ImageLe bonheur est une route...
Pas une destination

PureBasic Forum Officiel - Site PureBasic
Avatar de l’utilisateur
Jacobus
Messages : 1520
Inscription : mar. 06/avr./2004 10:35
Contact :

Re: Dispositif Prévisionnel de Secours

Message par Jacobus »

Salut kCC,
C'est avec plaisir, un petit log très... basic :)
Quand tous les glands seront tombés, les feuilles dispersées, la vigueur retombée... Dans la morne solitude, ancré au coeur de ses racines, c'est de sa force maturité qu'il renaîtra en pleine magnificence...Jacobus.
Avatar de l’utilisateur
Philippe_GEORGES
Messages : 119
Inscription : mer. 28/janv./2009 13:28

Re: Dispositif Prévisionnel de Secours

Message par Philippe_GEORGES »

Merci pour le code source. Je vais voir la compilation sur Mac. Ca devrait marcher !!

Merci pour le partage.
Philippe GEORGES
"La simplicité est la sophistication suprême" (De Vinci)
assistance informatique, création de logiciels
georges.informatique@gmail.com
Répondre