Message d'aide personnalisé avec liste

Programmation d'applications complexes
Avatar de l’utilisateur
Micoute
Messages : 2583
Inscription : dim. 02/oct./2011 16:17
Localisation : 35520 La Mézière

Message d'aide personnalisé avec liste

Message 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.
Dernière modification par Micoute le mer. 12/mars/2025 20:55, modifié 1 fois.
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce RTX 3080 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 6.20 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !
Avatar de l’utilisateur
MLD
Messages : 1124
Inscription : jeu. 05/févr./2009 17:58
Localisation : Bretagne

Re: Message d'aide personnalisé avec liste

Message 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
Avatar de l’utilisateur
Micoute
Messages : 2583
Inscription : dim. 02/oct./2011 16:17
Localisation : 35520 La Mézière

Re: Message d'aide personnalisé avec liste

Message par Micoute »

Merci mon cher ami MLD, je pense que tu as raison, car mon écran a un comportement bizarre avec certaines résolutions.
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce RTX 3080 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 6.20 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !
Avatar de l’utilisateur
Ar-S
Messages : 9539
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Message d'aide personnalisé avec liste

Message 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.
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
Micoute
Messages : 2583
Inscription : dim. 02/oct./2011 16:17
Localisation : 35520 La Mézière

Re: Message d'aide personnalisé avec liste

Message 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.
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce RTX 3080 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 6.20 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !
Avatar de l’utilisateur
Ar-S
Messages : 9539
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Message d'aide personnalisé avec liste

Message par Ar-S »

Regarde en bas de ma signature.. :?
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Répondre