Consoluce maker

Vous avez développé un logiciel en PureBasic et vous souhaitez le faire connaitre ?
dayvid
Messages : 1242
Inscription : mer. 11/nov./2009 18:17
Localisation : Poitiers (Vienne)

Consoluce maker

Message par dayvid »

Voici un projet terminer ou j'ai beaucoup galérer pour arriver a cella

C'est un éditeur de message console

En gros vous tapez votre texte avec les couleurs voulues dans l'éditeur prévu à cet effet
et vous faite aperçu pour voir ce que sa donne et ensuite vous générer le code

Très pratique hein !

Je vais voir pour le simplifier encore un peut

Voici l'éditeur:

Code : Tout sélectionner

Enumeration
  #Fentre
EndEnumeration

Enumeration
  #Editor_0
  #Button_1
  #Button_2
  #Button_3
  #Fond
  #MenuPopup
EndEnumeration

Structure CHARFORMAT2_ 
  cbSize.l 
  dwMask.l  
  dwEffects.l  
  yHeight.l  
  yOffset.l  
  crTextColor.l  
  bCharSet.b  
  bPitchAndFamily.b  
  szFaceName.b[#LF_FACESIZE]  
  _wPad2.w  
  wWeight.w  
  sSpacing.w  
  crBackColor.l  
  lcid.l  
  dwReserved.l  
  sStyle.w  
  wKerning.w  
  bUnderlineType.b  
  bAnimation.b  
  bRevAuthor.b  
  bReserved1.b 
EndStructure

Global CouleurTexte
Global CouleurFondTexte

;Future proof!
CompilerIf Defined(ENM_LINK, #PB_Constant)
CompilerElse
  #ENM_LINK = $04000000
CompilerEndIf
CompilerIf Defined(CFM_LINK, #PB_Constant)
CompilerElse
  #CFM_LINK = $00000020
CompilerEndIf
CompilerIf Defined(CFE_LINK, #PB_Constant)
CompilerElse
  #CFE_LINK = $0020
CompilerEndIf
CompilerIf Defined(CFE_SUBSCRIPT, #PB_Constant)
CompilerElse
  #CFE_SUBSCRIPT = $00010000
CompilerEndIf
CompilerIf Defined(CFE_SUPERSCRIPT, #PB_Constant)
CompilerElse
  #CFE_SUPERSCRIPT = $00020000
CompilerEndIf
CompilerIf Defined(CFM_SUBSCRIPT, #PB_Constant)
CompilerElse
  #CFM_SUBSCRIPT = #CFE_SUBSCRIPT | #CFE_SUPERSCRIPT
  #CFM_SUPERSCRIPT=#CFM_SUBSCRIPT
CompilerEndIf
CompilerIf Defined(CFM_BACKCOLOR, #PB_Constant)
CompilerElse
  #CFM_BACKCOLOR =$4000000
CompilerEndIf

Global Generation_code$ = ""

Procedure.l IsMouseOverGadget(Gadget) ; gestion du passge de la souris sur le gadget
  If IsGadget(Gadget)
    GetWindowRect_(GadgetID(Gadget),GadgetRect.RECT) 
    GetCursorPos_(mouse.POINT) 
    If mouse\x>=GadgetRect\Left And mouse\x<=GadgetRect\right And mouse\y>=GadgetRect\Top And mouse\y<=GadgetRect\bottom 
      ProcedureReturn #True 
    Else 
      ProcedureReturn #False 
    EndIf 
  EndIf
EndProcedure 

Procedure Editor_BackColor(Color.l) 
  format.CHARFORMAT2 
  format\cbSize = SizeOf(CHARFORMAT2) 
  format\dwMask = #CFM_BACKCOLOR
  format\crBackColor = Color 
  SendMessage_(GadgetID(#Editor_0), #EM_SETCHARFORMAT, #SCF_SELECTION, @format) 
EndProcedure

; Set the Text color for the Selection 
; in RGB format 
Procedure Editor_Color(Color.l) 
  format.CHARFORMAT2 
  format\cbSize = SizeOf(CHARFORMAT2) 
  format\dwMask = #CFM_COLOR 
  format\crTextColor = Color 
  SendMessage_(GadgetID(#Editor_0), #EM_SETCHARFORMAT, #SCF_SELECTION, @format) 
EndProcedure 

Procedure Couleur_police(Couleur_texte, Couleur_fond)
  CouleurTexte = Couleur_texte
  CouleurFondTexte = Couleur_fond
  Editor_BackColor(Couleur_fond)
  Editor_Color(Couleur_texte)
EndProcedure

Procedure CaracteristiqueSelection()
  format.CHARFORMAT2 
  format\cbSize = SizeOf(CHARFORMAT2) 
  format\dwMask = #CFM_COLOR
  SendMessage_(GadgetID(#Editor_0), #EM_GETCHARFORMAT, #SCF_SELECTION, @format) 
  CouleurTexte = format\crTextColor
  format.CHARFORMAT2 
  format\cbSize = SizeOf(CHARFORMAT2) 
  format\dwMask = #CFM_BACKCOLOR
  SendMessage_(GadgetID(#Editor_0), #EM_GETCHARFORMAT, #SCF_SELECTION, @format) 
  CouleurFondTexte = format\crBackColor
EndProcedure

Procedure selection_libre(ligne_de_depart.l, caractere_de_depart.l, ligne_de_fin.l, caractere_de_fin.l)
  If IsGadget(#Editor_0)
    ligne_de_depart - 1
    sel.CHARRANGE 
    sel\cpMin = SendMessage_(GadgetID(#Editor_0), #EM_LINEINDEX, ligne_de_depart, 0) + caractere_de_depart - 1 
    
    If ligne_de_fin = -1 
      ligne_de_fin = SendMessage_(GadgetID(#Editor_0), #EM_GETLINECOUNT, 0, 0) - 1 
    EndIf 
    sel\cpMax = SendMessage_(GadgetID(#Editor_0), #EM_LINEINDEX, ligne_de_fin, 0) 
    
    If caractere_de_fin = -1 
      sel\cpMax + SendMessage_(GadgetID(#Editor_0), #EM_LINELENGTH, sel\cpMax, 0) 
    Else 
      sel\cpMax + caractere_de_fin - 1 
    EndIf 
    SendMessage_(GadgetID(#Editor_0), #EM_EXSETSEL, 0, @sel) 
    SendMessage_(GadgetID(#Editor_0), #EM_HIDESELECTION, #SCF_SELECTION, @sel) 
  EndIf
EndProcedure 
  
Procedure selectionner_caracteres(ligne, position_depart, position_fin)
  selection_libre(ligne, position_depart, ligne - 1, position_fin)
EndProcedure
  
  Procedure deplacer_cursseur_console(ligne, position)
  If IsGadget(#Editor_0)
  x = position
  y = ligne
  If x = - 1
  x = - 9999
  EndIf
  
  If y = - 1
  y = 9999
  EndIf
  
  ; Set cursor position 
  REG = GadgetID(#Editor_0) 
  CharIdx = SendMessage_(REG,#EM_LINEINDEX,y-1,0) 
  LLength = SendMessage_(REG,#EM_LINELENGTH,CharIdx,0) 
  If LLength >= x-1 
    CharIdx + x-1 
  EndIf 
  Range.CHARRANGE 
  Range\cpMin = CharIdx 
  Range\cpMax = CharIdx 
  SendMessage_(REG,#EM_EXSETSEL,0,Range) 
  EndIf
EndProcedure 

Procedure ecrire(Texte$, CouleurDuTexte, CouleurDuFondDuTexte)
    Couleur_police(CouleurDuTexte, CouleurDuFondDuTexte)
    SendMessage_(GadgetID(#Editor_0), #EM_REPLACESEL, 0, Texte$) 
EndProcedure
  
Procedure.l renvoiller_position_cursseur_Y_console() 
  If IsGadget(#Editor_0)
    ; returns Y-Pos of Cursor 
    REG = GadgetID(#Editor_0) 
    SendMessage_(REG,#EM_EXGETSEL,0,Range.CHARRANGE) 
    position_cursseur_Y_console = SendMessage_(REG,#EM_EXLINEFROMCHAR,0,Range\cpMin)+1 
    ProcedureReturn position_cursseur_Y_console
  EndIf
EndProcedure 

Procedure Open_Fentre()
  If OpenWindow(#Fentre, 361, 278, 660, 355, "Editeur de message console",  #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget)
    WindowBounds(#Fentre, 100, 19, 660, 9999)
    EditorGadget(#Editor_0, 0, 0, 660, 303)
    PureRESIZE_SetGadgetResize(#Editor_0, 1, 1, 1, 1)
    
    style = GetWindowLong_(GadgetID(#Editor_0), #GWL_EXSTYLE)
    newstyle = style &(~#WS_EX_CLIENTEDGE)
    SetWindowLong_(GadgetID(#Editor_0), #GWL_EXSTYLE, newstyle)
    SetWindowPos_(GadgetID(#Editor_0), 0, 0, 0, 0, 0, #SWP_SHOWWINDOW | #SWP_NOSIZE | #SWP_NOMOVE | #SWP_FRAMECHANGED)
    
    LoadFont(#Fond, "Lucida Console", 9, #PB_Font_Bold | #PB_Font_HighQuality)
    SetGadgetFont(#Editor_0, FontID(#Fond))
    CreatePopupImageMenu(#MenuPopup, #PB_Menu_ModernLook) 
    MenuTitle("Couleurs")
    OpenSubMenu("Couleur du texte")
      
      MenuItem(114, "Noir") 
      MenuItem(115, "Bleu") 
      MenuItem(116, "Vert") 
      MenuItem(117, "Cyan") 
      MenuItem(118, "Rouge") 
      MenuItem(119, "Magenta") 
      MenuItem(120, "Brun") 
      MenuItem(121, "Gris clair") 
      MenuItem(122, "Gris foncé") 
      MenuItem(123, "Bleu clair") 
      MenuItem(124, "Vert clair") 
      MenuItem(125, "Cyan clair") 
      MenuItem(126, "Rouge clair") 
      MenuItem(127, "Magenta clair") 
      MenuItem(128, "Jaune")
      MenuItem(129, "Blanc")
      MenuBar()
    CloseSubMenu()
    
    OpenSubMenu("Couleur du fond")
      MenuItem(130, "Noir") 
      MenuItem(131, "Bleu") 
      MenuItem(132, "Vert") 
      MenuItem(133, "Cyan") 
      MenuItem(134, "Rouge") 
      MenuItem(135, "Magenta") 
      MenuItem(136, "Brun") 
      MenuItem(137, "Gris clair") 
      MenuItem(138, "Gris foncé") 
      MenuItem(139, "Bleu clair") 
      MenuItem(140, "Vert clair") 
      MenuItem(141, "Cyan clair") 
      MenuItem(142, "Rouge clair") 
      MenuItem(143, "Magenta clair") 
      MenuItem(144, "Jaune")
      MenuItem(145, "Blanc")
      MenuBar()
    CloseSubMenu()
    
  CloseSubMenu()
    
      ButtonGadget(#Button_1, 226, 315, 206, 27, "Générer le Code")
      ButtonGadget(#Button_2, 442, 315, 206, 27, "Quitter")
      ButtonGadget(#Button_3, 10, 315, 206, 27, "Aperçus du message")
      
      PureRESIZE_SetGadgetResize(#Button_1, 0, 0, 0, 0)
      PureRESIZE_SetGadgetResize(#Button_2, 0, 0, 0, 0)
      PureRESIZE_SetGadgetResize(#Button_3, 0, 0, 0, 0)
      
      PureRESIZE_SetGadgetResize(#Button_1, 1, 0, 1, 0)
      PureRESIZE_SetGadgetProportionalResize(#Button_1, 1, 0, 0, 0)
      PureRESIZE_SetGadgetResize(#Button_2, 1, 0, 1, 0)
      PureRESIZE_SetGadgetProportionalResize(#Button_2, 1, 0, 0, 0)
      PureRESIZE_SetGadgetResize(#Button_3, 1, 0, 1, 0)
      PureRESIZE_SetGadgetProportionalResize(#Button_3, 1, 0, 0, 0)
      
      
      Couleur_police(0, RGB(255, 255, 255))
      
      ; Petite démo:
      
      SetGadgetColor(#Editor_0, #PB_Gadget_BackColor, 0)
      
      ecrire("Si ", RGB(255, 255, 0), 0)
      ecrire("je ", RGB(255, 0, 0), 0)
      ecrire("devais ", RGB(0, 128, 0), 0)
      ecrire("choisir ", RGB(0, 0, 255), 0)
      ecrire("l'animal ", RGB(255, 0, 0), 0)
      ecrire("que ", RGB(255, 255, 0), 0)
      ecrire("je ", RGB(0, 128, 0), 0)
      ecrire("serais, ", RGB(0, 0, 255), 0)
      ecrire("Je ", RGB(255, 255, 0), 0)
      ecrire("choisirais ", RGB(0, 128, 0), 0)
      ecrire("alors ", RGB(0, 0, 255), 0)
      ecrire("l'oiseau", RGB(255, 0, 0), 0)
      
      
      ; fin démo
      
      Repeat ; Start of the event loop
        
        Event = WaitWindowEvent() ; This line waits until an event is received from Windows
        WindowID = EventWindow() ; The Window where the event is generated, can be used in the gadget procedures
        GadgetID = EventGadget() ; Is it a gadget event?
        EventType = EventType() ; The event type
        Menu = EventMenu()
        
        
        If Event = #PB_Event_Gadget
          
          If GadgetID = #Editor_0
            
          ElseIf GadgetID = #Button_1 ; valider
            
            Generation_code$ + "Texte$ = " + Chr(34)
            
            ligne = 1
            Entrer = 0
            
            For lecture = 1 To Len(GetGadgetText(#Editor_0))
              
              selectionner_caracteres(ligne, lecture - Entrer, lecture - Entrer + 1)
              CaracteristiqueSelection()
              
              Caractere$ = Mid(GetGadgetText(#Editor_0), lecture, 1)
              Buffer$ = Caractere$ + Mid(GetGadgetText(#Editor_0), lecture + 1, 1)
              
              If  Buffer$ = Chr(13)+ Chr(10)
                Generation_code$ + "«|"
                Entrer + 1
              EndIf
              
              If CouleurTexte = RGB(0, 0, 0) ; Noir
                CouleurDuTexte = 0
              ElseIf CouleurTexte = RGB(0, 0, 128) ; Bleu
                CouleurDuTexte = 1
              ElseIf CouleurTexte = RGB(0, 128, 0) ; Vert
                CouleurDuTexte = 2
              ElseIf CouleurTexte = RGB(0, 128, 128) ; Cyan
                CouleurDuTexte = 3
              ElseIf CouleurTexte = RGB(128, 0, 0) ; Rouge
                CouleurDuTexte = 4
              ElseIf CouleurTexte = RGB(128, 0, 128) ; Magenta
                CouleurDuTexte = 5
              ElseIf CouleurTexte = RGB(128, 128, 0) ; Brun
                CouleurDuTexte = 6
              ElseIf CouleurTexte = RGB(192, 192, 192) ; Gris clair
                CouleurDuTexte = 7
              ElseIf CouleurTexte = RGB(128, 128, 128) ; Gris foncé
                CouleurDuTexte = 8
              ElseIf CouleurTexte = RGB(0, 0, 255) ; Bleu clair
                CouleurDuTexte = 9
              ElseIf CouleurTexte = RGB(0, 255, 0) ; Vert clair
                CouleurDuTexte = 10
              ElseIf CouleurTexte = RGB(0, 255, 255) ; Cyan clair
                CouleurDuTexte = 11
              ElseIf CouleurTexte = RGB(255, 0, 0) ; Rouge clair
                CouleurDuTexte = 12
              ElseIf CouleurTexte = RGB(255, 0, 255) ; Magenta clair
                CouleurDuTexte = 13
              ElseIf CouleurTexte = RGB(255, 255, 0) ; Jaune
                CouleurDuTexte= 14
              ElseIf CouleurTexte = RGB(255, 255, 255) ; Blanc
                CouleurDuTexte = 15
              Else
                CouleurDuTexte = 15
              EndIf
              
              If CouleurFondTexte = RGB(0, 0, 0) ; Noir
                CouleurDuFond = 0
              ElseIf CouleurFondTexte = RGB(0, 0, 128) ; Bleu
                CouleurDuFond = 1
              ElseIf CouleurFondTexte = RGB(0, 128, 0) ; Vert
                CouleurDuFond = 2
              ElseIf CouleurFondTexte = RGB(0, 128, 128) ; Cyan
                CouleurDuFond = 3
              ElseIf CouleurFondTexte = RGB(128, 0, 0) ; Rouge
                CouleurDuFond = 4
              ElseIf CouleurFondTexte = RGB(128, 0, 128) ; Magenta
                CouleurDuFond = 5
              ElseIf CouleurFondTexte = RGB(128, 128, 0) ; Brun
                CouleurDuFond = 6
              ElseIf CouleurFondTexte = RGB(192, 192, 192) ; Gris clair
                CouleurDuFond = 7
              ElseIf CouleurFondTexte = RGB(128, 128, 128) ; Gris foncé
                CouleurDuFond = 8
              ElseIf CouleurFondTexte = RGB(0, 0, 255) ; Bleu clair
                CouleurDuFond = 9
              ElseIf CouleurFondTexte = RGB(0, 255, 0) ; Vert clair
                CouleurDuFond = 10
              ElseIf CouleurFondTexte = RGB(0, 255, 255) ; Cyan clair
                CouleurDuFond = 11
              ElseIf CouleurFondTexte = RGB(255, 0, 0) ; Rouge clair
                CouleurDuFond = 12
              ElseIf CouleurFondTexte = RGB(255, 0, 255) ; Magenta clair
                CouleurDuFond = 13
              ElseIf CouleurFondTexte = RGB(255, 255, 0) ; Jaune
                CouleurDuFond = 14
              ElseIf CouleurFondTexte = RGB(255, 255, 255) ; Blanc
                CouleurDuFond = 15
              Else
                CouleurDuFond = 15
              EndIf
              
              If Asc(Caractere$) > 31
                Compteur_caractere + 1
                If Compteur_caractere  < 20
                  Generation_code$ + Caractere$ + "(" + Str(CouleurDuTexte) + "." + Str(CouleurDuFond) + ")|"
                Else
                  Compteur_caractere = 0
                  Generation_code$ + Chr(34) + Chr(13) + Chr(10)+ "Texte$ + " + Chr(34) + Caractere$ + "(" + Str(CouleurDuTexte) + "." + Str(CouleurDuFond) + ")|"
                EndIf
              EndIf
              
            Next
            
            Generation_code$ + Chr(34) + Chr(13) + Chr(10)
            
            SetClipboardText(Generation_code$)
            MessageRequester("Information", "     Le code a été copier avec succer dans le presse papier !", 64)
            
          EndIf
          
          
          
          ElseIf GadgetID = #Button_2 ; annuler
            End
            
          ElseIf GadgetID = #Button_3 ; aperçus
            ligne = 1
            
            OpenConsole()
            EnableGraphicalConsole(1)
            ClearConsole()
            EnableGraphicalConsole(0)
            
            Entrer = 0
            
            For lecture = 1 To Len(GetGadgetText(#Editor_0))
              
              selectionner_caracteres(ligne, lecture - Entrer, lecture - Entrer + 1)
              CaracteristiqueSelection()
              
              Caractere$ = Mid(GetGadgetText(#Editor_0), lecture, 1)
              Buffer$ = Caractere$ + Mid(GetGadgetText(#Editor_0), lecture + 1, 1)
              
              If  Buffer$ = Chr(13)+ Chr(10)
                PrintN("")
                Entrer + 1
              EndIf
              
              If CouleurTexte = RGB(0, 0, 0) ; Noir
                CouleurDuTexte = 0
              ElseIf CouleurTexte = RGB(0, 0, 128) ; Bleu
                CouleurDuTexte = 1
              ElseIf CouleurTexte = RGB(0, 128, 0) ; Vert
                CouleurDuTexte = 2
              ElseIf CouleurTexte = RGB(0, 128, 128) ; Cyan
                CouleurDuTexte = 3
              ElseIf CouleurTexte = RGB(128, 0, 0) ; Rouge
                CouleurDuTexte = 4
              ElseIf CouleurTexte = RGB(128, 0, 128) ; Magenta
                CouleurDuTexte = 5
              ElseIf CouleurTexte = RGB(128, 128, 0) ; Brun
                CouleurDuTexte = 6
              ElseIf CouleurTexte = RGB(192, 192, 192) ; Gris clair
                CouleurDuTexte = 7
              ElseIf CouleurTexte = RGB(128, 128, 128) ; Gris foncé
                CouleurDuTexte = 8
              ElseIf CouleurTexte = RGB(0, 0, 255) ; Bleu clair
                CouleurDuTexte = 9
              ElseIf CouleurTexte = RGB(0, 255, 0) ; Vert clair
                CouleurDuTexte = 10
              ElseIf CouleurTexte = RGB(0, 255, 255) ; Cyan clair
                CouleurDuTexte = 11
              ElseIf CouleurTexte = RGB(255, 0, 0) ; Rouge clair
                CouleurDuTexte = 12
              ElseIf CouleurTexte = RGB(255, 0, 255) ; Magenta clair
                CouleurDuTexte = 13
              ElseIf CouleurTexte = RGB(255, 255, 0) ; Jaune
                CouleurDuTexte= 14
              ElseIf CouleurTexte = RGB(255, 255, 255) ; Blanc
                CouleurDuTexte = 15
              Else
                CouleurDuTexte = 15
              EndIf
              
              If CouleurFondTexte = RGB(0, 0, 0) ; Noir
                CouleurDuFond = 0
              ElseIf CouleurFondTexte = RGB(0, 0, 128) ; Bleu
                CouleurDuFond = 1
              ElseIf CouleurFondTexte = RGB(0, 128, 0) ; Vert
                CouleurDuFond = 2
              ElseIf CouleurFondTexte = RGB(0, 128, 128) ; Cyan
                CouleurDuFond = 3
              ElseIf CouleurFondTexte = RGB(128, 0, 0) ; Rouge
                CouleurDuFond = 4
              ElseIf CouleurFondTexte = RGB(128, 0, 128) ; Magenta
                CouleurDuFond = 5
              ElseIf CouleurFondTexte = RGB(128, 128, 0) ; Brun
                CouleurDuFond = 6
              ElseIf CouleurFondTexte = RGB(192, 192, 192) ; Gris clair
                CouleurDuFond = 7
              ElseIf CouleurFondTexte = RGB(128, 128, 128) ; Gris foncé
                CouleurDuFond = 8
              ElseIf CouleurFondTexte = RGB(0, 0, 255) ; Bleu clair
                CouleurDuFond = 9
              ElseIf CouleurFondTexte = RGB(0, 255, 0) ; Vert clair
                CouleurDuFond = 10
              ElseIf CouleurFondTexte = RGB(0, 255, 255) ; Cyan clair
                CouleurDuFond = 11
              ElseIf CouleurFondTexte = RGB(255, 0, 0) ; Rouge clair
                CouleurDuFond = 12
              ElseIf CouleurFondTexte = RGB(255, 0, 255) ; Magenta clair
                CouleurDuFond = 13
              ElseIf CouleurFondTexte = RGB(255, 255, 0) ; Jaune
                CouleurDuFond = 14
              ElseIf CouleurFondTexte = RGB(255, 255, 255) ; Blanc
                CouleurDuFond = 15
              Else
                CouleurDuFond = 15
              EndIf
              
              ConsoleColor(CouleurDuTexte, CouleurDuFond)
              
              If Asc(Caractere$) > 31
                Print(Caractere$)
              EndIf
              
              Next
              
              SetActiveGadget(#Editor_0)
              deplacer_cursseur_console(0, 0)
              
        ElseIf Event = #WM_RBUTTONDOWN
          CaracteristiqueSelection()
          If IsMouseOverGadget(#Editor_0)
            DisplayPopupMenu(#MenuPopup,WindowID(#Fentre)) 
          EndIf
          
        ElseIf Event = #PB_Event_Menu
          Select Menu
          
        Case 114 To 129 ; Couleur du texte
          If Menu = 114 ; Noir
            Couleur_police(RGB(0, 0, 0), CouleurFondTexte)
          ElseIf Menu = 115 ; Bleu
            Couleur_police(RGB(0, 0, 128), CouleurFondTexte)
          ElseIf Menu = 116 ; Vert
            Couleur_police(RGB(0, 128, 0), CouleurFondTexte)
          ElseIf Menu = 117 ; Cyan
            Couleur_police(RGB(0, 128, 128), CouleurFondTexte)
          ElseIf Menu = 118 ; Rouge
            Couleur_police(RGB(128, 0, 0), CouleurFondTexte)
          ElseIf Menu = 119 ; Magenta
            Couleur_police(RGB(128, 0, 128), CouleurFondTexte)
          ElseIf Menu = 120 ; Brun
            Couleur_police(RGB(128, 128, 0), CouleurFondTexte)
          ElseIf Menu = 121 ; Gris clair
            Couleur_police(RGB(192, 192, 192), CouleurFondTexte)
          ElseIf Menu = 122 ; Gris foncé
            Couleur_police(RGB(128, 128, 128), CouleurFondTexte)
          ElseIf Menu = 123 ; Bleu clair
            Couleur_police(RGB(0, 0, 255), CouleurFondTexte)
          ElseIf Menu = 124 ; Vert clair
            Couleur_police(RGB(0, 255, 0), CouleurFondTexte)
          ElseIf Menu = 125 ; Cyan clair
            Couleur_police(RGB(0, 255, 255), CouleurFondTexte)
          ElseIf Menu = 126 ; Rouge clair
            Couleur_police(RGB(255, 0, 0), CouleurFondTexte)
          ElseIf Menu = 127 ; Magenta clair
            Couleur_police(RGB(255, 0, 255), CouleurFondTexte)
          ElseIf Menu = 128 ; Jaune
            Couleur_police(RGB(255, 255, 0), CouleurFondTexte)
          ElseIf Menu = 129 ; Blanc
            Couleur_police(RGB(255, 255, 255), CouleurFondTexte)
          EndIf
          
        Case 130 To 145 ; Couleur de fond du texte
          If Menu = 130 ; Noir
            Couleur_police(CouleurTexte, RGB(0, 0, 0))
          ElseIf Menu = 131 ; Bleu
            Couleur_police(CouleurTexte, RGB(0, 0, 128))
          ElseIf Menu = 132 ; Vert
            Couleur_police(CouleurTexte, RGB(0, 128, 0))
          ElseIf Menu = 133 ; Cyan
            Couleur_police(CouleurTexte, RGB(0, 128, 128))
          ElseIf Menu = 134; Rouge
            Couleur_police(CouleurTexte, RGB(128, 0, 0))
          ElseIf Menu = 135 ; Magenta
            Couleur_police(CouleurTexte, RGB(128, 0, 128))
          ElseIf Menu = 136 ; Brun
            Couleur_police(CouleurTexte, RGB(128, 128, 0))
          ElseIf Menu = 137 ; Gris clair
            Couleur_police(CouleurTexte, RGB(192, 192, 192))
          ElseIf Menu = 138 ; Gris foncé
            Couleur_police(CouleurTexte, RGB(128, 128, 128))
          ElseIf Menu = 139 ; Bleu clair
            Couleur_police(CouleurTexte, RGB(0, 0, 255))
          ElseIf Menu = 140 ; Vert clair
            Couleur_police(CouleurTexte, RGB(0, 255, 0))
          ElseIf Menu = 141 ; Cyan clair
            Couleur_police(CouleurTexte, RGB(0, 255, 255))
          ElseIf Menu = 142 ; Rouge clair
            Couleur_police(CouleurTexte, RGB(255, 0, 0))
          ElseIf Menu = 143 ; Magenta clair
            Couleur_police(CouleurTexte, RGB(255, 0, 255))
          ElseIf Menu = 144 ; Jaune
            Couleur_police(CouleurTexte, RGB(255, 255, 0))
          ElseIf Menu = 145 ; Blanc
            Couleur_police(CouleurTexte, RGB(255, 255, 255))
          EndIf
        
      EndSelect
      
  EndIf
  
  
      Until Event = #PB_Event_CloseWindow ; End of the event loop
      
  EndIf
EndProcedure

Open_Fentre()

; IDE Options = PureBasic 4.51 (Windows - x86)
; CursorPosition = 233
; Folding = P0
; EnableCompileCount = 46
; EnableBuildCount = 0
; EnableExeConstant 
; jaPBe Version=3.10.9.849
; FoldLines=004A00540056005C006000660068006D006F007A007C008F00910093009500AD
; FoldLines=00AF00B200B400BC
; Build=0
; Language=0x0000 Language Neutral
; FirstLine=287
; CursorPosition=300
; EnableXP
; ExecutableFormat=Windows
; DontSaveDeclare
; EOF
Et voici le programme qui va afficher le message dans la console:

Code : Tout sélectionner

Texte$ = "S(14.0)|i(12.0)| (14.0)|j(2.0)|e(9.0)| (12.0)|d(14.0)|e(12.0)|v(2.0)|a(9.0)|i(14.0)|s(12.0)| (2.0)|c(9.0)|h(14.0)|o(12.0)|i(2.0)|s(9.0)|i(14.0)|"
Texte$ + "r(12.0)| (9.0)|l(2.0)|'(9.0)|a(14.0)|n(12.0)|i(2.0)|m(9.0)|a(14.0)|l(12.0)| (12.0)|q(2.0)|u(9.0)|e(14.0)| (14.0)|j(12.0)|e(2.0)| (2.0)|s(9.0)|e(14.0)|"
Texte$ + "r(12.0)|a(2.0)|i(9.0)|s(14.0)|,(12.0)| (9.0)|J(2.0)|e(9.0)| (14.0)|c(14.0)|h(12.0)|o(2.0)|i(9.0)|s(14.0)|i(12.0)|r(2.0)|a(9.0)|i(14.0)|s(12.0)| (2.0)|"
Texte$ + "a(2.0)|l(9.0)|o(14.0)|r(12.0)|s(2.0)| (9.0)|l(9.0)|'(14.0)|o(12.0)|i(2.0)|s(9.0)|e(14.0)|a(12.0)|u(2.0)|«|S(14.0)|i(12.0)| (14.0)|j(2.0)|e(9.0)| (12.0)|"
Texte$ + "d(14.0)|e(12.0)|v(2.0)|a(9.0)|i(14.0)|s(12.0)| (2.0)|c(9.0)|h(14.0)|o(12.0)|i(2.0)|s(9.0)|i(14.0)|r(12.0)| (9.0)|l(2.0)|'(9.0)|a(14.0)|n(12.0)|i(2.0)|"
Texte$ + "m(9.0)|a(14.0)|l(12.0)| (12.0)|q(2.0)|u(9.0)|e(14.0)| (14.0)|j(12.0)|e(2.0)| (2.0)|s(9.0)|e(14.0)|r(12.0)|a(2.0)|i(9.0)|s(14.0)|,(12.0)| (9.0)|J(2.0)|"
Texte$ + "e(9.0)| (14.0)|c(14.0)|h(12.0)|o(2.0)|i(9.0)|s(14.0)|i(12.0)|r(2.0)|a(9.0)|i(14.0)|s(12.0)| (2.0)|a(2.0)|l(9.0)|o(14.0)|r(12.0)|s(2.0)| (9.0)|l(9.0)|"
Texte$ + "'(14.0)|o(12.0)|i(2.0)|s(9.0)|e(14.0)|a(12.0)|u(2.0)|«|S(14.0)|i(12.0)| (14.0)|j(2.0)|e(9.0)| (12.0)|d(14.0)|e(12.0)|v(2.0)|a(9.0)|i(14.0)|s(12.0)| (2.0)|"
Texte$ + "c(9.0)|h(14.0)|o(12.0)|i(2.0)|s(9.0)|i(14.0)|r(12.0)| (9.0)|l(2.0)|'(9.0)|a(14.0)|n(12.0)|i(2.0)|m(9.0)|a(14.0)|l(12.0)| (12.0)|q(2.0)|u(9.0)|e(14.0)|"
Texte$ + " (14.0)|j(12.0)|e(2.0)| (2.0)|s(9.0)|e(14.0)|r(12.0)|a(2.0)|i(9.0)|s(14.0)|,(12.0)| (9.0)|J(2.0)|e(9.0)| (14.0)|c(14.0)|h(12.0)|o(2.0)|i(9.0)|s(14.0)|"
Texte$ + "i(12.0)|r(2.0)|a(9.0)|i(14.0)|s(12.0)| (2.0)|a(2.0)|l(9.0)|o(14.0)|r(12.0)|s(2.0)| (9.0)|l(9.0)|'(14.0)|o(12.0)|i(2.0)|s(9.0)|e(14.0)|a(12.0)|u(2.0)|«|"
Texte$ + "S(14.0)|i(12.0)| (14.0)|j(2.0)|e(9.0)| (12.0)|d(14.0)|e(12.0)|v(2.0)|a(9.0)|i(14.0)|s(12.0)| (2.0)|c(9.0)|h(14.0)|o(12.0)|i(2.0)|s(9.0)|i(14.0)|r(12.0)|"
Texte$ + " (9.0)|l(2.0)|'(9.0)|a(14.0)|n(12.0)|i(2.0)|m(9.0)|a(14.0)|l(12.0)| (12.0)|q(2.0)|u(9.0)|e(14.0)| (14.0)|j(12.0)|e(2.0)| (2.0)|s(9.0)|e(14.0)|r(12.0)|"
Texte$ + "a(2.0)|i(9.0)|s(14.0)|,(12.0)| (9.0)|J(2.0)|e(9.0)| (14.0)|c(14.0)|h(12.0)|o(2.0)|i(9.0)|s(14.0)|i(12.0)|r(2.0)|a(9.0)|i(14.0)|s(12.0)| (2.0)|a(2.0)|"
Texte$ + "l(9.0)|o(14.0)|r(12.0)|s(2.0)| (9.0)|l(9.0)|'(14.0)|o(12.0)|i(2.0)|s(9.0)|e(14.0)|a(12.0)|u(2.0)|«|S(14.0)|i(12.0)| (14.0)|j(2.0)|e(9.0)| (12.0)|d(14.0)|"
Texte$ + "e(12.0)|v(2.0)|a(9.0)|i(14.0)|s(12.0)| (2.0)|c(9.0)|h(14.0)|o(12.0)|i(2.0)|s(9.0)|i(14.0)|r(12.0)| (9.0)|l(2.0)|'(9.0)|a(14.0)|n(12.0)|i(2.0)|m(9.0)|"
Texte$ + "a(14.0)|l(12.0)| (12.0)|q(2.0)|u(9.0)|e(14.0)| (14.0)|j(12.0)|e(2.0)| (2.0)|s(9.0)|e(14.0)|r(12.0)|a(2.0)|i(9.0)|s(14.0)|,(12.0)| (9.0)|J(2.0)|e(9.0)|"
Texte$ + " (14.0)|c(14.0)|h(12.0)|o(2.0)|i(9.0)|s(14.0)|i(12.0)|r(2.0)|a(9.0)|i(14.0)|s(12.0)| (2.0)|a(2.0)|l(9.0)|o(14.0)|r(12.0)|s(2.0)| (9.0)|l(9.0)|'(14.0)|"
Texte$ + "o(12.0)|i(2.0)|s(9.0)|e(14.0)|a(12.0)|u(2.0)|«|S(14.0)|i(12.0)| (14.0)|j(2.0)|e(9.0)| (12.0)|d(14.0)|e(12.0)|v(2.0)|a(9.0)|i(14.0)|s(12.0)| (2.0)|c(9.0)|"
Texte$ + "h(14.0)|o(12.0)|i(2.0)|s(9.0)|i(14.0)|r(12.0)| (9.0)|l(2.0)|'(9.0)|a(14.0)|n(12.0)|i(2.0)|m(9.0)|a(14.0)|l(12.0)| (12.0)|q(2.0)|u(9.0)|e(14.0)| (14.0)|"
Texte$ + "j(12.0)|e(2.0)| (2.0)|s(9.0)|e(14.0)|r(12.0)|a(2.0)|i(9.0)|s(14.0)|,(12.0)| (9.0)|J(2.0)|e(9.0)| (14.0)|c(14.0)|h(12.0)|o(2.0)|i(9.0)|s(14.0)|i(12.0)|"
Texte$ + "r(2.0)|a(9.0)|i(14.0)|s(12.0)| (2.0)|a(2.0)|l(9.0)|o(14.0)|r(12.0)|s(2.0)| (9.0)|l(9.0)|'(14.0)|o(12.0)|i(2.0)|s(9.0)|e(14.0)|a(12.0)|u(2.0)|«|S(14.0)|"
Texte$ + "i(12.0)| (14.0)|j(2.0)|e(9.0)| (12.0)|d(14.0)|e(12.0)|v(2.0)|a(9.0)|i(14.0)|s(12.0)| (2.0)|c(9.0)|h(14.0)|o(12.0)|i(2.0)|s(9.0)|i(14.0)|r(12.0)| (9.0)|"
Texte$ + "l(2.0)|'(9.0)|a(14.0)|n(12.0)|i(2.0)|m(9.0)|a(14.0)|l(12.0)| (12.0)|q(2.0)|u(9.0)|e(14.0)| (14.0)|j(12.0)|e(2.0)| (2.0)|s(9.0)|e(14.0)|r(12.0)|a(2.0)|"
Texte$ + "i(9.0)|s(14.0)|,(12.0)| (9.0)|J(2.0)|e(9.0)| (14.0)|c(14.0)|h(12.0)|o(2.0)|i(9.0)|s(14.0)|i(12.0)|r(2.0)|a(9.0)|i(14.0)|s(12.0)| (2.0)|a(2.0)|l(9.0)|"
Texte$ + "o(14.0)|r(12.0)|s(2.0)| (9.0)|l(9.0)|'(14.0)|o(12.0)|i(2.0)|s(9.0)|e(14.0)|a(12.0)|u(2.0)|«|S(14.0)|i(12.0)| (14.0)|j(2.0)|e(9.0)| (12.0)|d(14.0)|e(12.0)|"
Texte$ + "v(2.0)|a(9.0)|i(14.0)|s(12.0)| (2.0)|c(9.0)|h(14.0)|o(12.0)|i(2.0)|s(9.0)|i(14.0)|r(12.0)| (9.0)|l(2.0)|'(9.0)|a(14.0)|n(12.0)|i(2.0)|m(9.0)|a(14.0)|"
Texte$ + "l(12.0)| (12.0)|q(2.0)|u(9.0)|e(14.0)| (14.0)|j(12.0)|e(2.0)| (2.0)|s(9.0)|e(14.0)|r(12.0)|a(2.0)|i(9.0)|s(14.0)|,(12.0)| (9.0)|J(2.0)|e(9.0)| (14.0)|"
Texte$ + "c(14.0)|h(12.0)|o(2.0)|i(9.0)|s(14.0)|i(12.0)|r(2.0)|a(9.0)|i(14.0)|s(12.0)| (2.0)|a(2.0)|l(9.0)|o(14.0)|r(12.0)|s(2.0)| (9.0)|l(9.0)|'(14.0)|o(12.0)|"
Texte$ + "i(2.0)|s(9.0)|e(14.0)|a(12.0)|u(2.0)|«|S(14.0)|i(12.0)| (14.0)|j(2.0)|e(9.0)| (12.0)|d(14.0)|e(12.0)|v(2.0)|a(9.0)|i(14.0)|s(12.0)| (2.0)|c(9.0)|h(14.0)|"
Texte$ + "o(12.0)|i(2.0)|s(9.0)|i(14.0)|r(12.0)| (9.0)|l(2.0)|'(9.0)|a(14.0)|n(12.0)|i(2.0)|m(9.0)|a(14.0)|l(12.0)| (12.0)|q(2.0)|u(9.0)|e(14.0)| (14.0)|j(12.0)|"
Texte$ + "e(2.0)| (2.0)|s(9.0)|e(14.0)|r(12.0)|a(2.0)|i(9.0)|s(14.0)|,(12.0)| (9.0)|J(2.0)|e(9.0)| (14.0)|c(14.0)|h(12.0)|o(2.0)|i(9.0)|s(14.0)|i(12.0)|r(2.0)|"
Texte$ + "a(9.0)|i(14.0)|s(12.0)| (2.0)|a(2.0)|l(9.0)|o(14.0)|r(12.0)|s(2.0)| (9.0)|l(9.0)|'(14.0)|o(12.0)|i(2.0)|s(9.0)|e(14.0)|a(12.0)|u(2.0)|«|S(14.0)|i(12.0)|"
Texte$ + " (14.0)|j(2.0)|e(9.0)| (12.0)|d(14.0)|e(12.0)|v(2.0)|a(9.0)|i(14.0)|s(12.0)| (2.0)|c(9.0)|h(14.0)|o(12.0)|i(2.0)|s(9.0)|i(14.0)|r(12.0)| (9.0)|l(2.0)|"
Texte$ + "'(9.0)|a(14.0)|n(12.0)|i(2.0)|m(9.0)|a(14.0)|l(12.0)| (12.0)|q(2.0)|u(9.0)|e(14.0)| (14.0)|j(12.0)|e(2.0)| (2.0)|s(9.0)|e(14.0)|r(12.0)|a(2.0)|i(9.0)|"
Texte$ + "s(14.0)|,(12.0)| (9.0)|J(2.0)|e(9.0)| (14.0)|c(14.0)|h(12.0)|o(2.0)|i(9.0)|s(14.0)|i(12.0)|r(2.0)|a(9.0)|i(14.0)|s(12.0)| (2.0)|a(2.0)|l(9.0)|o(14.0)|"
Texte$ + "r(12.0)|s(2.0)| (9.0)|l(9.0)|'(14.0)|o(12.0)|i(2.0)|s(9.0)|e(14.0)|a(12.0)|u(2.0)|«|S(14.0)|i(12.0)| (14.0)|j(2.0)|e(9.0)| (12.0)|d(14.0)|e(12.0)|v(2.0)|"
Texte$ + "a(9.0)|i(14.0)|s(12.0)| (2.0)|c(9.0)|h(14.0)|o(12.0)|i(2.0)|s(9.0)|i(14.0)|r(12.0)| (9.0)|l(2.0)|'(9.0)|a(14.0)|n(12.0)|i(2.0)|m(9.0)|a(14.0)|l(12.0)|"
Texte$ + " (12.0)|q(2.0)|u(9.0)|e(14.0)| (14.0)|j(12.0)|e(2.0)| (2.0)|s(9.0)|e(14.0)|r(12.0)|a(2.0)|i(9.0)|s(14.0)|,(12.0)| (9.0)|J(2.0)|e(9.0)| (14.0)|c(14.0)|"
Texte$ + "h(12.0)|o(2.0)|i(9.0)|s(14.0)|i(12.0)|r(2.0)|a(9.0)|i(14.0)|s(12.0)| (2.0)|a(2.0)|l(9.0)|o(14.0)|r(12.0)|s(2.0)| (9.0)|l(9.0)|'(14.0)|o(12.0)|i(2.0)|"
Texte$ + "s(9.0)|e(14.0)|a(12.0)|u(2.0)|«|S(14.0)|i(12.0)| (14.0)|j(2.0)|e(9.0)| (12.0)|d(14.0)|e(12.0)|v(2.0)|a(9.0)|i(14.0)|s(12.0)| (2.0)|c(9.0)|h(14.0)|o(12.0)|"
Texte$ + "i(2.0)|s(9.0)|i(14.0)|r(12.0)| (9.0)|l(2.0)|'(9.0)|a(14.0)|n(12.0)|i(2.0)|m(9.0)|a(14.0)|l(12.0)| (12.0)|q(2.0)|u(9.0)|e(14.0)| (14.0)|j(12.0)|e(2.0)|"
Texte$ + " (2.0)|s(9.0)|e(14.0)|r(12.0)|a(2.0)|i(9.0)|s(14.0)|,(12.0)| (9.0)|J(2.0)|e(9.0)| (14.0)|c(14.0)|h(12.0)|o(2.0)|i(9.0)|s(14.0)|i(12.0)|r(2.0)|a(9.0)|"
Texte$ + "i(14.0)|s(12.0)| (2.0)|a(2.0)|l(9.0)|o(14.0)|r(12.0)|s(2.0)| (9.0)|l(9.0)|'(14.0)|o(12.0)|i(2.0)|s(9.0)|e(14.0)|a(12.0)|u(2.0)|«|S(14.0)|i(12.0)| (14.0)|"
Texte$ + "j(2.0)|e(9.0)| (12.0)|d(14.0)|e(12.0)|v(2.0)|a(9.0)|i(14.0)|s(12.0)| (2.0)|c(9.0)|h(14.0)|o(12.0)|i(2.0)|s(9.0)|i(14.0)|r(12.0)| (9.0)|l(2.0)|'(9.0)|"
Texte$ + "a(14.0)|n(12.0)|i(2.0)|m(9.0)|a(14.0)|l(12.0)| (12.0)|q(2.0)|u(9.0)|e(14.0)| (14.0)|j(12.0)|e(2.0)| (2.0)|s(9.0)|e(14.0)|r(12.0)|a(2.0)|i(9.0)|s(14.0)|"
Texte$ + ",(12.0)| (9.0)|J(2.0)|e(9.0)| (14.0)|c(14.0)|h(12.0)|o(2.0)|i(9.0)|s(14.0)|i(12.0)|r(2.0)|a(9.0)|i(14.0)|s(12.0)| (2.0)|a(2.0)|l(9.0)|o(14.0)|r(12.0)|"
Texte$ + "s(2.0)| (9.0)|l(9.0)|'(14.0)|o(12.0)|i(2.0)|s(9.0)|e(14.0)|a(12.0)|u(2.0)|«|S(14.0)|i(12.0)| (14.0)|j(2.0)|e(9.0)| (12.0)|d(14.0)|e(12.0)|v(2.0)|a(9.0)|"
Texte$ + "i(14.0)|s(12.0)| (2.0)|c(9.0)|h(14.0)|o(12.0)|i(2.0)|s(9.0)|i(14.0)|r(12.0)| (9.0)|l(2.0)|'(9.0)|a(14.0)|n(12.0)|i(2.0)|m(9.0)|a(14.0)|l(12.0)| (12.0)|"
Texte$ + "q(2.0)|u(9.0)|e(14.0)| (14.0)|j(12.0)|e(2.0)| (2.0)|s(9.0)|e(14.0)|r(12.0)|a(2.0)|i(9.0)|s(14.0)|,(12.0)| (9.0)|J(2.0)|e(9.0)| (14.0)|c(14.0)|h(12.0)|"
Texte$ + "o(2.0)|i(9.0)|s(14.0)|i(12.0)|r(2.0)|a(9.0)|i(14.0)|s(12.0)| (2.0)|a(2.0)|l(9.0)|o(14.0)|r(12.0)|s(2.0)| (9.0)|l(9.0)|'(14.0)|o(12.0)|i(2.0)|s(9.0)|"
Texte$ + "e(14.0)|a(12.0)|u(2.0)|«|S(14.0)|i(12.0)| (14.0)|j(2.0)|e(9.0)| (12.0)|d(14.0)|e(12.0)|v(2.0)|a(9.0)|i(14.0)|s(12.0)| (2.0)|c(9.0)|h(14.0)|o(12.0)|i(2.0)|"
Texte$ + "s(9.0)|i(14.0)|r(12.0)| (9.0)|l(2.0)|'(9.0)|a(14.0)|n(12.0)|i(2.0)|m(9.0)|a(14.0)|l(12.0)| (12.0)|q(2.0)|u(9.0)|e(14.0)| (14.0)|j(12.0)|e(2.0)| (2.0)|"
Texte$ + "s(9.0)|e(14.0)|r(12.0)|a(2.0)|i(9.0)|s(14.0)|,(12.0)| (9.0)|J(2.0)|e(9.0)| (14.0)|c(14.0)|h(12.0)|o(2.0)|i(9.0)|s(14.0)|i(12.0)|r(2.0)|a(9.0)|i(14.0)|"
Texte$ + "s(12.0)| (2.0)|a(2.0)|l(9.0)|o(14.0)|r(12.0)|s(2.0)| (9.0)|l(9.0)|'(14.0)|o(12.0)|i(2.0)|s(9.0)|e(14.0)|a(12.0)|u(2.0)|«|"

Procedure PrintTexte(Texte$)
  OpenConsole()
  
Index = 0

Repeat
  
  Index + 1
  
  Parametre_lettre$ = StringField(Texte$, Index, "|") 
  
  If Parametre_lettre$ > ""
    Lettre$ = Mid(Parametre_lettre$, 1, 1)
    
    If Lettre$ = "«"
      PrintN("")
      Continue
    EndIf
    
    Recherche_parentese_ouvrente = FindString(Parametre_lettre$, "(", 1)
    Recherche_point = FindString(Parametre_lettre$, ".", 1)
    Recherche_parentese_fermente = FindString(Parametre_lettre$, ")", 1)
    
    Couleur_lettre = Val(Mid(Parametre_lettre$, Recherche_parentese_ouvrente + 1, Recherche_point - Recherche_parentese_ouvrente))
    Couleur_fond_lettre = Val(Mid(Parametre_lettre$, Recherche_point + 1, Recherche_parentese_fermente - Recherche_point))
    
    ConsoleColor(Couleur_lettre, Couleur_fond_lettre)
    Print(Lettre$)
    
  EndIf
  
Until Parametre_lettre$ = ""
EndProcedure

PrintTexte(Texte$)
Input() 
; jaPBe Version=3.10.9.849
; FoldLines=00380058
; Build=1
; Language=0x0000 Language Neutral
; FirstLine=8
; CursorPosition=55
; EnableXP
; EnableOnError
; ExecutableFormat=Windows
; Executable=C:\Users\dayvid\Desktop\a.exe
; DontSaveDeclare
; EOF
La vie, C'est comme, Une boitte, De startis, On en voie, De toutes, Les couleurs !

Mon forum http://purebasic.forumphp3.com/index.php
Warkering
Messages : 808
Inscription : ven. 08/janv./2010 1:14
Localisation : Québec, Canada

Re: Consoluce maker

Message par Warkering »

Malheureusement, je n'ai pas PureResize. :(
dayvid
Messages : 1242
Inscription : mer. 11/nov./2009 18:17
Localisation : Poitiers (Vienne)

Re: Consoluce maker

Message par dayvid »

Va sur le site de gonzal tu trouvera tous ce donne tu as besoin mon ami :)

Bin sinon pas grave, voici le programme entièrement terminer
j'ai passer une bonne partie de la semaine dernière a le finaliser :)

http://www.archive-host.com/files/94034 ... s_Maker.7z
La vie, C'est comme, Une boitte, De startis, On en voie, De toutes, Les couleurs !

Mon forum http://purebasic.forumphp3.com/index.php
Warkering
Messages : 808
Inscription : ven. 08/janv./2010 1:14
Localisation : Québec, Canada

Re: Consoluce maker

Message par Warkering »

Merci pour l'exécutable. C'est vachement bien, dit-donc! :)
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Re: Consoluce maker

Message par Kwai chang caine »

Du bon boulot 8)
En tout cas tu as bien bossé, j'ai pas saisi exactement la finalité de ton programme, mais c'est joli, et c'est déjà ça.
En plus tu t'améliores et c'est une seconde raison, non moins intéressante 8)
Encore bravo, et continue dans cette voie :wink:

J'ai testé l'exe, je ne sais pas si ça vient de PureResize, mais si on resize la fenêtre ça saute un max
Pour les MsgBox et les textes, j'ai fait au plus gros, y'en a peut être encore :roll:

Code : Tout sélectionner

MessageRequester("étas de l'enregistrement", "            le programme à tenter d'enregistrer le " + Chr(13) + "             Fichier mais celui-ci est Introuvable !", 64)
Moi j'aurais vu plutot:

Code : Tout sélectionner

MessageRequester("Etat de l'enregistrement", "Le programme a tenté d'enregistrer le fichier," + Chr(13) + "mais celui-ci est introuvable !", 64)

Code : Tout sélectionner

MessageRequester("erreur de chargement...", "le fichier spécifier est introuvable !", 16)
MessageRequester("Erreur de chargement...", "Le fichier spécifié est introuvable !", 16)

Code : Tout sélectionner

MessageRequester("Question", "Souhaitez_vous inclure la procedure de lecture du message ?", 68)
MessageRequester("Question", "Souhaitez-vous inclure la procedure de lecture du message ?", 68)

Code : Tout sélectionner

MessageRequester("Information", "     Le code a été copier avec succer dans Le presse papier !", 64)
MessageRequester("Information", "Le code a été copié avec succès dans le presse-papier !", 64)
Je n'ai pas corrigé les tournures de phrases (C'est toi l'auteur), juste l'orthographe :wink:

Code : Tout sélectionner

Texte$ = "Message Editor Of Consolus Maker est un outil de facilité, pour créer des messages avec la console de Pure basic." + Chr(13) + Chr(13)
          Texte$ + "Il est très simple d'utilisation et fonctionne à la manière d'un éditeur de texte RTF." + Chr(13) + Chr(13)
          Texte$ + "Vous avez la possibilité d'enregistrer et d'ouvrir le message, de taper. Le type de fichier supporté est RTF." + Chr(13) + Chr(13)
          Texte$ + "Attention, veuillez à ne pas ouvrir de fichier RTF qui n'ont pas été enregistrés avec le programme"  + Chr(13)
          Texte$ + "simplement parce que certaines couleurs ne sont pas supportées par la console et même si t'elle était le cas" + Chr(13)
          Texte$ +  "le programme ignorerait simplement ces couleurs et les remplacerait par la couleur blanc"  + Chr(13)
          Texte$ + "(Une fois l'aperçu demandé ou le code généré) qui est la couleur par défaut de la console."  + Chr(13) + Chr(13)
          Texte$ +  "Les boutons de gauche servent pour la mise en couleur du texte voulu, sélectionnez le texte et choisissez"  + Chr(13)
          Texte$ + "la couleur du texte, ainsi que celle du fond." + Chr(13) + Chr(13)
          Texte$ + "Lorsque vous choisissez les couleurs pour le texte ou le fond du texte ou que le curseur" + Chr(13)
          Texte$ + "est sur un texte, les couleurs sont indiquées en dessous des boutons de couleur de gauche:" + Chr(13) + Chr(13) + "Texte = couleur du Texte" + Chr(13) + "Fond = couleur du Fond du Texte" + Chr(13) + Chr(13)
          Texte$ + "Pour changer la couleur d'arrière plans de la console, utilisez les menus et aller dans:   Couleur et dans console" + Chr(13) + Chr(13)
          Texte$ + "Pour avoir un aperçu que donnera le message dans la console, cliquez sur le bouton " + Chr(34) + "Aperçu" + Chr(34) + Chr(13)
          Texte$ + "un message sera automatiquement placé en bas de la console pour"  + Chr(13)
          Texte$ + "vous indiquer d'appuyer plutôt sur la touche entrée pour fermer la console."  + Chr(13) +  Chr(13)
          Texte$ + "Attention, n'utilisez jamais la croix de fermeture pour fermer la console, sinon le programme entier se fermera !"  + Chr(13) + Chr(13)
          Texte$ + "Si l'aperçu vous convient, appuyez ensuite sur le bouton " + Chr(34) + "Générer le code" + Chr(34) + ", pour que le programme"  + Chr(13)
          Texte$ + "construise le code et le place dans le presse-papier."  + Chr(13) + Chr(13)
          Texte$ + "Lorsque vous générez le code, le programme vous demandera pour y inclure"  + Chr(13)
          Texte$ + "la procédure de lecture du message, cette procédure n'est utile"  + Chr(13)
          Texte$  + "qu'une seule fois donc inutile de l'inclure à chaque fois que vous générez le code." + Chr(13) + Chr(13)
          Texte$ + "Pour créer plusieurs messages et les lire les uns après les autres, il suffit de générer plusieurs messages"  + Chr(13)
          Texte$ + "puis de leur mettre chacun un nom de variable différent et pour"  + Chr(13)
          Texte$ + "finir, d'appeler la procédure avec la variable correspondant au message voulu."

Code : Tout sélectionner

Texte$ +  "- Vous pouvez utiliser le logiciel dans n'importe quel but, qu'il soit personnel ou commercial." + Chr(13) + Chr(13)
          Texte$ + "- Le logiciel est livré " + Chr(34) + "tel quel" + Chr(34) + ", sans aucune garantie." + Chr(13) + Chr(13)
          Texte$ + "- Vous pouvez distribuer le logiciel tant que vous ne demandez pas d'argent, que vous ne dites pas que vous en êtes l'auteur, et tant que vous distribuez le logiciel en entier." + Chr(13) + Chr(13)
          Texte$ + "Code générer avec Message Editor Of Consolus Maker:"+ Chr(13) + Chr(13)
          Texte$ + "- L'auteur de Message Editor Of Consolus Maker n'est aucunement"  + Chr(13)
          Texte$ + "lié aux code créés avec Message Editor Of Consolus Maker."+ Chr(13) + Chr(13)
          Texte$ + "- Vous n'êtes pas obligé de mentionner l'utilisation de "  + Chr(13)
          Texte$ + "Message Editor Of Consolus Maker dans votre programme." + Chr(13) + Chr(13)
          Texte$ + "Une mention sera appréciée, mais n'est absolument pas obligatoire." + Chr(13) + Chr(13)
          Texte$ + "Merci a tout utilisateur ayant utilisé ce logiciel !"
Dernière modification par Kwai chang caine le lun. 04/avr./2011 14:42, modifié 1 fois.
ImageLe bonheur est une route...
Pas une destination

PureBasic Forum Officiel - Site PureBasic
dayvid
Messages : 1242
Inscription : mer. 11/nov./2009 18:17
Localisation : Poitiers (Vienne)

Re: Consoluce maker

Message par dayvid »

merci pour les compliment, reste a le finaliser :D
La vie, C'est comme, Une boitte, De startis, On en voie, De toutes, Les couleurs !

Mon forum http://purebasic.forumphp3.com/index.php
dayvid
Messages : 1242
Inscription : mer. 11/nov./2009 18:17
Localisation : Poitiers (Vienne)

Re: Consoluce maker

Message par dayvid »

Salut, désoler pour l'autre jour mais j'avais plus le temps

@Warkering, Un grand merci pour ton compliment, sa me fait trèèèèèès plaisir :D

Quant a toi mon tres cher @Kwai chang caine
Excuse moi j'avais pas vue que tu m'avais corriger mes fautes :oops:
je vient de le voir ici même maintenant !

Je te remerci pour ta participation, tu veut un crédit ? :)

Sinon:

J'ai un peut améliorer le programme, cependant je rencontre de sérieux problème:

n°1 = Comment désactiver la croix de fermeture de la console
n°2 = L'or de l'ouverture et fermeture de la fenêtre « remplacer »
un bogue intervient quand la fenêtre principale est minimiser puis maximiser (erreur de mémoire)
n°3 = Impossible de faire marcher ce code pour mètre les boutons en mode style XP:

Code : Tout sélectionner

 
    Result = OpenLibrary(1,"UxTheme.dll")

    If Result 
      ; here is the code to remove XP style 
      CallFunction(1, "SetWindowTheme",GadgetID(#Button_1) , 0, 0)
      CallFunction(1, "SetWindowTheme",GadgetID(#Button_2) , 0, 0)
      CallFunction(1, "SetWindowTheme",GadgetID(#Button_3) , 0, 0) 
      CloseLibrary(1) 
    EndIf 
    
    UpdateWindow_(WindowID(Window)) 
n°4 = ce code ne fonctionne pas pour faire disparaître les bords de l'éditeur de texte:

Code : Tout sélectionner

style = GetWindowLong_(GadgetID(#Editor_0), #GWL_EXSTYLE)
    newstyle = style &(~#WS_EX_CLIENTEDGE)
    SetWindowLong_(GadgetID(#Editor_0), #GWL_EXSTYLE, newstyle)
    SetWindowPos_(GadgetID(#Editor_0), 0, 0, 0, 0, 0, #SWP_SHOWWINDOW | #SWP_NOSIZE | #SWP_NOMOVE | #SWP_FRAMECHANGED)
n°5 Impossible de trouve la police de la console « Police raster »
n°6 Comment faire pour mettre les textes gadget en transparent, ainsi que le texte d'une frame3d

Amélioration à apporter:

Les fonctions « rechercher » et « remplacer » doivent être revue
Corriger les fautes d'orthographe
Mettre plusieurs langues pour le programme

Je travail avec la version 4.51

http://www.archive-host.com/files/94419 ... aker_44.7z
La vie, C'est comme, Une boitte, De startis, On en voie, De toutes, Les couleurs !

Mon forum http://purebasic.forumphp3.com/index.php
Avatar de l’utilisateur
Ouaf-Ouaf
Messages : 212
Inscription : dim. 11/juil./2004 9:07

Re: Consoluce maker

Message par Ouaf-Ouaf »

Whou.. Je n'ai pas testé car je n'ai pas Pure sur cette machine, et suis trop lessivé pour surexploiter mon dernier neurone.. Toutefois, je me posais une question :

Une grande partie de ton code est dévouée à l'attribution de couleurs aux textes / fonds. A-tu choisis toutes ces couleurs manuellement ?

Par ce que -je dis ça sans connaitre ton niveau, du coups je vais peut-être passer pour un c*n- tu pourrais te baser sur un systématisme pour attribuer ces couleurs !
Bon.. dans l'idéal... pour le faire dans "les règles de l'art" et avoir des résultats aisément harmonieux il serait préférable de se taper la conversion en RVB/TSL..


Enfin j'dis ça... c'est par ce que ça me parait amusant à faire.. :P

Bonne continuation.
Le problème n'est tant pas tant la dette.. que les paradis fiscaux !
dayvid
Messages : 1242
Inscription : mer. 11/nov./2009 18:17
Localisation : Poitiers (Vienne)

Re: Consoluce maker

Message par dayvid »

Salut @Ouaf-Ouaf :)

Mon niveaux est très moyen pour te dire, je me débrouille
et sans ce forum, je serais déjà mort "aurais peter un tas de durite"

Oui ici je trouve de l'aide a certain de mes problème et les gents son
sympa de m'aider :)

Tu parle de quoi, des couleur attribuer grace a des nom de variable ?
c'est bien plus simple comme sa non, pas besoin de se r'appeler les dirvers variantes de couleur :)

Enfin si je t'es bien compris évidement

Et toi qu'elle est ton niveaux ?

tu serais pret a m'aider, sa pourais être sympa de crée une console (simulation)
a ton bon coeur :)
La vie, C'est comme, Une boitte, De startis, On en voie, De toutes, Les couleurs !

Mon forum http://purebasic.forumphp3.com/index.php
dayvid
Messages : 1242
Inscription : mer. 11/nov./2009 18:17
Localisation : Poitiers (Vienne)

Re: Consoluce maker

Message par dayvid »

Puis-je avoir des réponces svp :)
La vie, C'est comme, Une boitte, De startis, On en voie, De toutes, Les couleurs !

Mon forum http://purebasic.forumphp3.com/index.php
Répondre