Page 1 sur 1

Message d'aide personnalisé avec liste

Publié : lun. 10/mars/2025 9:27
par Micoute
Bonjour à tous,

Je trouve que le MessageRequester() affiche des caractère trop petits pour ma vue, alors j'ai créé et conçcu ce programme.

Code : Tout sélectionner

Procedure Aide()
  Enumeration
    #fenetre_Aide
    #Cvs
    #Police
    #Image
    #Bouton_Aide_Ok
  EndEnumeration
  
  Global NewList Message$()
  Global Dim Texte$(0)
  Global i, Largeur, Longueur, Hauteur, Sortir
  Global Police = LoadFont(#Police, "Calibri", 14, #PB_Font_Bold)
  
  UsePNGImageDecoder()
  i = 0
  ;Restore Message
  
  ; Lire les messages et déterminer la largeur maximale
  Repeat
    Read.s Texte$(i)
    If Texte$(i) = "999"
      Break
    EndIf
    If Len(Texte$(i)) > Largeur
      Largeur = Len(Texte$(i))
    EndIf
    AddElement(Message$()) : Message$() = Texte$(i)
    i + 1
    ReDim Texte$(i)
  ForEver
  
  ; Calculer la taille de la fenêtre
  Hauteur = (ListSize(Message$()) * 20) + 80
  Longueur = Largeur * 10
  
  ; Créer la fenêtre
  OpenWindow(#fenetre_Aide, 0, 0, Longueur, Hauteur, UCase("MICOUTE   système d'aide personnalisé  @ 2025"), #PB_Window_SystemMenu | #PB_Window_TitleBar | #PB_Window_ScreenCentered)
  SetWindowColor(#fenetre_Aide, $FFFFFF)
  ; Créer le CanvasGadget
  CanvasGadget(#Cvs, 0, 0, Longueur, Hauteur - 40)
  StartDrawing(CanvasOutput(#Cvs))
  DrawingFont(FontID(#Police))
  DrawingMode(#PB_2DDrawing_Default)
  Box(0, 0, Longueur, Hauteur - 40, $FFFFFF)
  
  ; Dessiner les messages
  i = 0
  ForEach Message$()
    DrawText(70, 10 + i * 20, Message$(), 0 ,$FFFFFF)
    i + 1
  Next
  
  StopDrawing()
  
  ; Charger et afficher l'image
  CatchImage(#Image, ?Information)
  ImageGadget(#Image, 10, 10, 60, 60, ImageID(#Image))
  
  ; Créer le bouton OK
  ButtonGadget(#Bouton_Aide_Ok, (Longueur / 2) - 30, Hauteur - 40, 60, 30, "&Ok")
  SetGadgetFont(#Bouton_Aide_Ok, FontID(#Police))
  
  ; Gestion des événements
  Repeat
    Select WaitWindowEvent()
      Case #PB_Event_Gadget
        Select EventGadget()
          Case #Bouton_Aide_Ok
            CloseWindow(#fenetre_Aide)
            Sortir = 1
        EndSelect
      Case #PB_Event_CloseWindow
        If EventWindow() = #fenetre_Aide
          CloseWindow(#fenetre_Aide)
          Sortir = 1
        EndIf
    EndSelect
  Until Sortir = 1 
EndProcedure

DataSection
  Aucune:
  IncludeBinary #PB_Compiler_FilePath + "\Icones\iconeAucune.png"
  Erreur:
  IncludeBinary #PB_Compiler_FilePath + "\Icones\iconeError.png"
  Exclamation:
  IncludeBinary #PB_Compiler_FilePath + "\Icones\iconeExclamation.png"
  Information:
  IncludeBinary #PB_Compiler_FilePath + "\Icones\iconeInformation.png"
  Question:
  IncludeBinary #PB_Compiler_FilePath + "\Icones\iconeQuestion.png"
  Aide:
  IncludeBinary #PB_Compiler_FilePath + "\Icones\help.png"
EndDataSection

CompilerIf #PB_Compiler_IsMainFile
  ;/ ***TEST***
  Aide()
  
  ; Mettre dans cette DataSection les données de votre message d'aide, la liste s'aggrandira d'elle-même.
  DataSection
    Message:
    Data.s "INFORMATIONS"
    Data.s ""
    Data.s ""
    Data.s " Ce système de messages a été conçu et créé par Micoute"
    Data.s ""
    Data.s "UTILISATION"
    Data.s ""
    Data.s " L'utilisation de ce logiciel est très simple."
    Data.s " Vous écrivez le message à afficher dans des lignes de données"
    Data.s ""
    Data.s " Vous indiquez dans votre programme l'icône à afficher"
    Data.s ""
    Data.s " C'est aussi simple que ça."
    Data.s ""
    Data.s "Programmation Micoute le 10/03/2025. Programmé avec Pure Basic 6.20 (x64)"
    Data.s "999"
  EndDataSection
CompilerEndIf
Alors, s'il vous plaît amusez-vous bien.

Re: Message d'aide personnalisé avec liste

Publié : lun. 10/mars/2025 10:22
par MLD
Bonjour Michel
Bonne idée, mais les fichiers include sont valable que sur ton ordinateur.
Sur le mien cela ne fonctionne pas.
Je me suis remis a la programmation, je vais bientôt proposé des choses.
a+
Michel

Re: Message d'aide personnalisé avec liste

Publié : mer. 12/mars/2025 20:54
par Micoute
Merci mon cher ami MLD, je pense que tu as raison, car mon écran a un comportement bizarre avec certaines résolutions.

Re: Message d'aide personnalisé avec liste

Publié : ven. 14/mars/2025 18:48
par Ar-S
Ce qu'il veut dire c'est que tu postes un code avec des includes d'images que tu ne fournis pas.

Re: Message d'aide personnalisé avec liste

Publié : sam. 15/mars/2025 13:25
par Micoute
Merci Ar-s pour ce renseignement, c'est hélas vrai, ça me rappelle que je ne me rappelle plus comment je faisais avant pour transmettre des images sans passer par la dropbox.

Re: Message d'aide personnalisé avec liste

Publié : lun. 17/mars/2025 23:27
par Ar-S
Regarde en bas de ma signature.. :?