Page 1 sur 1

redimentionner des string gadget suivent leur contenu

Publié : mer. 30/juin/2010 15:52
par dayvid
le titre est asser éxaustive il me semble


Code : Tout sélectionner

; crée par Mr dieppedalle david le mercredi 30 juin 2010

; ce programme permet de redimensionner en temps réel les string gadget suivent leur contenu

Enumeration
#Window_0
#String_0
#String_1
#String_2
#String_3
#String_4
#String_5
#String_6
#String_7
#String_8
#String_9
#Fond
#fond_neutre
#Fond2
#Fond3
#Fond4
#Fond5
#Fond6
#Fond7
#Fond8
#Fond9
#Fond10
EndEnumeration

Procedure Open_Window_0()
  If OpenWindow(#Window_0, 382, 195, 800, 600, "New window ( 0 )",  #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar )
      SmartWindowRefresh(#Window_0, 1)
      
      StringGadget(#String_0, 10, 10, 145, 20, "")
      SetGadgetFont(#String_0, LoadFont(#Fond, "arial", 10))
      ResizeGadget(#String_0,  #PB_Ignore, #PB_Ignore, 18, #PB_Ignore)
      
      StringGadget(#String_1, 10, 10, 145, 20, "")
      SetGadgetFont(#String_1, LoadFont(#Fond2, "arial", 10))
      ResizeGadget(#String_1,  GadgetX(#String_0) + GadgetWidth(#String_0) , #PB_Ignore, 18, #PB_Ignore)
      
      StringGadget(#String_2, 10, 10, 145, 20, "")
      SetGadgetFont(#String_2, LoadFont(#Fond3, "arial", 10))
      ResizeGadget(#String_2,  GadgetX(#String_1) + GadgetWidth(#String_1) , #PB_Ignore, 18, #PB_Ignore)
      
      StringGadget(#String_3, 10, 10, 145, 20, "")
      SetGadgetFont(#String_3, LoadFont(#Fond4, "arial", 10))
      ResizeGadget(#String_3,  GadgetX(#String_2) + GadgetWidth(#String_2) , #PB_Ignore, 18, #PB_Ignore)
      
      StringGadget(#String_4, 10, 10, 145, 20, "")
      SetGadgetFont(#String_4, LoadFont(#Fond5, "arial", 10))
      ResizeGadget(#String_4,  GadgetX(#String_3) + GadgetWidth(#String_3) , #PB_Ignore, 18, #PB_Ignore)
      
      StringGadget(#String_5, 10, 10, 145, 20, "")
      SetGadgetFont(#String_5, LoadFont(#Fond6, "arial", 10))
      ResizeGadget(#String_5,  GadgetX(#String_4) + GadgetWidth(#String_4) , #PB_Ignore, 18, #PB_Ignore)
      
      StringGadget(#String_6, 10, 10, 145, 20, "")
      SetGadgetFont(#String_6, LoadFont(#Fond7, "arial", 10))
      ResizeGadget(#String_6,  GadgetX(#String_5) + GadgetWidth(#String_5) , #PB_Ignore, 18, #PB_Ignore)
      
      StringGadget(#String_7, 10, 10, 145, 20, "")
      SetGadgetFont(#String_7, LoadFont(#Fond8, "arial", 10))
      ResizeGadget(#String_7,  GadgetX(#String_6) + GadgetWidth(#String_6) , #PB_Ignore, 18, #PB_Ignore)
      
      StringGadget(#String_8, 10, 10, 145, 20, "")
      SetGadgetFont(#String_8, LoadFont(#Fond9, "arial", 10))
      ResizeGadget(#String_8,  GadgetX(#String_7) + GadgetWidth(#String_7) , #PB_Ignore, 18, #PB_Ignore)
      
      StringGadget(#String_9, 10, 10, 145, 20, "")
      SetGadgetFont(#String_9, LoadFont(#Fond10, "arial", 10))
      ResizeGadget(#String_9,  GadgetX(#String_8) + GadgetWidth(#String_8) , #PB_Ignore, 18, #PB_Ignore)
      
  EndIf
  
  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
  EvenMenue = EventMenu()  
  
  If Event = #PB_Event_Gadget
    
    If GadgetID = #String_0
      If EventType = #PB_EventType_Change
      texte$ = GetGadgetText(#String_0)
      fond = LoadFont(#fond_neutre, "arial", 10)
      StartDrawing(WindowOutput(#Window_0))
      DrawingFont(fond)
      Longueur_texte = TextWidth(texte$)
      StopDrawing()
      ResizeGadget(#String_0,  #PB_Ignore, #PB_Ignore, Longueur_texte + 18, #PB_Ignore)
      ResizeGadget(#String_1,  GadgetX(#String_0) + GadgetWidth(#String_0), #PB_Ignore, Longueur_texte2 + 18, #PB_Ignore)
      ResizeGadget(#String_2,  GadgetX(#String_1) + GadgetWidth(#String_1), #PB_Ignore, Longueur_texte3 + 18, #PB_Ignore)
      ResizeGadget(#String_3,  GadgetX(#String_2) + GadgetWidth(#String_2), #PB_Ignore, Longueur_texte4 + 18, #PB_Ignore)
      ResizeGadget(#String_4,  GadgetX(#String_3) + GadgetWidth(#String_3), #PB_Ignore, Longueur_texte5 + 18, #PB_Ignore)
      ResizeGadget(#String_5,  GadgetX(#String_4) + GadgetWidth(#String_4), #PB_Ignore, Longueur_texte6 + 18, #PB_Ignore)
      ResizeGadget(#String_6,  GadgetX(#String_5) + GadgetWidth(#String_5), #PB_Ignore, Longueur_texte7 + 18, #PB_Ignore)
      ResizeGadget(#String_7,  GadgetX(#String_6) + GadgetWidth(#String_6), #PB_Ignore, Longueur_texte8 + 18, #PB_Ignore)
      ResizeGadget(#String_8,  GadgetX(#String_7) + GadgetWidth(#String_7), #PB_Ignore, Longueur_texte9 + 18, #PB_Ignore)
      ResizeGadget(#String_9,  GadgetX(#String_8) + GadgetWidth(#String_8), #PB_Ignore, Longueur_texte10 + 18, #PB_Ignore)
      ; ceci sert pour ré-afficher correctement les gadget, sinon certain sons parfois pas bien afficher
      SetActiveGadget(#String_1)
      SetActiveGadget(#String_2)
      SetActiveGadget(#String_3)
      SetActiveGadget(#String_4)
      SetActiveGadget(#String_5)
      SetActiveGadget(#String_6)
      SetActiveGadget(#String_7)
      SetActiveGadget(#String_8)
      SetActiveGadget(#String_9)
      SetActiveGadget(#String_0)
      EndIf
       
      ElseIf GadgetID = #String_1
      If EventType = #PB_EventType_Change
      texte2$ = GetGadgetText(#String_1)
      fond2 = LoadFont(#fond_neutre, "arial", 10)
      StartDrawing(WindowOutput(#Window_0))
      DrawingFont(fond2)
      Longueur_texte2 = TextWidth(texte2$)
      StopDrawing()
      ResizeGadget(#String_1,  GadgetX(#String_0) + GadgetWidth(#String_0), #PB_Ignore, Longueur_texte2 + 18, #PB_Ignore)
      ResizeGadget(#String_2,  GadgetX(#String_1) + GadgetWidth(#String_1), #PB_Ignore, Longueur_texte3 + 18, #PB_Ignore)
      ResizeGadget(#String_3,  GadgetX(#String_2) + GadgetWidth(#String_2), #PB_Ignore, Longueur_texte4 + 18, #PB_Ignore)
      ResizeGadget(#String_4,  GadgetX(#String_3) + GadgetWidth(#String_3), #PB_Ignore, Longueur_texte5 + 18, #PB_Ignore)
      ResizeGadget(#String_5,  GadgetX(#String_4) + GadgetWidth(#String_4), #PB_Ignore, Longueur_texte6 + 18, #PB_Ignore)
      ResizeGadget(#String_6,  GadgetX(#String_5) + GadgetWidth(#String_5), #PB_Ignore, Longueur_texte7 + 18, #PB_Ignore)
      ResizeGadget(#String_7,  GadgetX(#String_6) + GadgetWidth(#String_6), #PB_Ignore, Longueur_texte8 + 18, #PB_Ignore)
      ResizeGadget(#String_8,  GadgetX(#String_7) + GadgetWidth(#String_7), #PB_Ignore, Longueur_texte9 + 18, #PB_Ignore)
      ResizeGadget(#String_9,  GadgetX(#String_8) + GadgetWidth(#String_8), #PB_Ignore, Longueur_texte10 + 18, #PB_Ignore)
      ; ceci sert pour ré-afficher correctement les gadget, sinon certain sons parfois pas bien afficher
      SetActiveGadget(#String_0)
      SetActiveGadget(#String_2)
      SetActiveGadget(#String_3)
      SetActiveGadget(#String_4)
      SetActiveGadget(#String_5)
      SetActiveGadget(#String_6)
      SetActiveGadget(#String_7)
      SetActiveGadget(#String_8)
      SetActiveGadget(#String_9)
      SetActiveGadget(#String_1)
      EndIf
      
      ElseIf GadgetID = #String_2
      If EventType = #PB_EventType_Change
      texte3$ = GetGadgetText(#String_2)
      fond3 = LoadFont(#fond_neutre, "arial", 10)
      StartDrawing(WindowOutput(#Window_0))
      DrawingFont(fond3)
      Longueur_texte3 = TextWidth(texte3$)
      StopDrawing()
      ResizeGadget(#String_2,  GadgetX(#String_1) + GadgetWidth(#String_1), #PB_Ignore, Longueur_texte3 + 18, #PB_Ignore)
      ResizeGadget(#String_3,  GadgetX(#String_2) + GadgetWidth(#String_2), #PB_Ignore, Longueur_texte4 + 18, #PB_Ignore)
      ResizeGadget(#String_4,  GadgetX(#String_3) + GadgetWidth(#String_3), #PB_Ignore, Longueur_texte5 + 18, #PB_Ignore)
      ResizeGadget(#String_5,  GadgetX(#String_4) + GadgetWidth(#String_4), #PB_Ignore, Longueur_texte6 + 18, #PB_Ignore)
      ResizeGadget(#String_6,  GadgetX(#String_5) + GadgetWidth(#String_5), #PB_Ignore, Longueur_texte7 + 18, #PB_Ignore)
      ResizeGadget(#String_7,  GadgetX(#String_6) + GadgetWidth(#String_6), #PB_Ignore, Longueur_texte8 + 18, #PB_Ignore)
      ResizeGadget(#String_8,  GadgetX(#String_7) + GadgetWidth(#String_7), #PB_Ignore, Longueur_texte9 + 18, #PB_Ignore)
      ResizeGadget(#String_9,  GadgetX(#String_8) + GadgetWidth(#String_8), #PB_Ignore, Longueur_texte10 + 18, #PB_Ignore)
      ; ceci sert pour ré-afficher correctement les gadget, sinon certain sons parfois pas bien afficher
      SetActiveGadget(#String_0)
      SetActiveGadget(#String_1)
      SetActiveGadget(#String_3)
      SetActiveGadget(#String_4)
      SetActiveGadget(#String_5)
      SetActiveGadget(#String_6)
      SetActiveGadget(#String_7)
      SetActiveGadget(#String_8)
      SetActiveGadget(#String_9)
      SetActiveGadget(#String_2)
      EndIf
      
      ElseIf GadgetID = #String_3
      If EventType = #PB_EventType_Change
      texte4$ = GetGadgetText(#String_3)
      fond4 = LoadFont(#fond_neutre, "arial", 10)
      StartDrawing(WindowOutput(#Window_0))
      DrawingFont(fond4)
      Longueur_texte4 = TextWidth(texte4$)
      StopDrawing()
      ResizeGadget(#String_3,  GadgetX(#String_2) + GadgetWidth(#String_2), #PB_Ignore, Longueur_texte4 + 18, #PB_Ignore)
      ResizeGadget(#String_4,  GadgetX(#String_3) + GadgetWidth(#String_3), #PB_Ignore, Longueur_texte5 + 18, #PB_Ignore)
      ResizeGadget(#String_5,  GadgetX(#String_4) + GadgetWidth(#String_4), #PB_Ignore, Longueur_texte6 + 18, #PB_Ignore)
      ResizeGadget(#String_6,  GadgetX(#String_5) + GadgetWidth(#String_5), #PB_Ignore, Longueur_texte7 + 18, #PB_Ignore)
      ResizeGadget(#String_7,  GadgetX(#String_6) + GadgetWidth(#String_6), #PB_Ignore, Longueur_texte8 + 18, #PB_Ignore)
      ResizeGadget(#String_8,  GadgetX(#String_7) + GadgetWidth(#String_7), #PB_Ignore, Longueur_texte9 + 18, #PB_Ignore)
      ResizeGadget(#String_9,  GadgetX(#String_8) + GadgetWidth(#String_8), #PB_Ignore, Longueur_texte10 + 18, #PB_Ignore)
      ; ceci sert pour ré-afficher correctement les gadget, sinon certain sons parfois pas bien afficher
      SetActiveGadget(#String_0)
      SetActiveGadget(#String_1)
      SetActiveGadget(#String_2)
      SetActiveGadget(#String_4)
      SetActiveGadget(#String_5)
      SetActiveGadget(#String_6)
      SetActiveGadget(#String_7)
      SetActiveGadget(#String_8)
      SetActiveGadget(#String_9)
      SetActiveGadget(#String_3)
      EndIf
      
      ElseIf GadgetID = #String_4
      If EventType = #PB_EventType_Change
      texte5$ = GetGadgetText(#String_4)
      fond5 = LoadFont(#fond_neutre, "arial", 10)
      StartDrawing(WindowOutput(#Window_0))
      DrawingFont(fond5)
      Longueur_texte5 = TextWidth(texte5$)
      StopDrawing()
      ResizeGadget(#String_4,  GadgetX(#String_3) + GadgetWidth(#String_3), #PB_Ignore, Longueur_texte5 + 18, #PB_Ignore)
      ResizeGadget(#String_5,  GadgetX(#String_4) + GadgetWidth(#String_4), #PB_Ignore, Longueur_texte6 + 18, #PB_Ignore)
      ResizeGadget(#String_6,  GadgetX(#String_5) + GadgetWidth(#String_5), #PB_Ignore, Longueur_texte7 + 18, #PB_Ignore)
      ResizeGadget(#String_7,  GadgetX(#String_6) + GadgetWidth(#String_6), #PB_Ignore, Longueur_texte8 + 18, #PB_Ignore)
      ResizeGadget(#String_8,  GadgetX(#String_7) + GadgetWidth(#String_7), #PB_Ignore, Longueur_texte9 + 18, #PB_Ignore)
      ResizeGadget(#String_9,  GadgetX(#String_8) + GadgetWidth(#String_8), #PB_Ignore, Longueur_texte10 + 18, #PB_Ignore)
      ; ceci sert pour ré-afficher correctement les gadget, sinon certain sons parfois pas bien afficher
      SetActiveGadget(#String_0)
      SetActiveGadget(#String_1)
      SetActiveGadget(#String_2)
      SetActiveGadget(#String_3)
      SetActiveGadget(#String_5)
      SetActiveGadget(#String_6)
      SetActiveGadget(#String_7)
      SetActiveGadget(#String_8)
      SetActiveGadget(#String_9)
      SetActiveGadget(#String_4)
      EndIf
      
      ElseIf GadgetID = #String_5
      If EventType = #PB_EventType_Change
      texte6$ = GetGadgetText(#String_5)
      fond6 = LoadFont(#fond_neutre, "arial", 10)
      StartDrawing(WindowOutput(#Window_0))
      DrawingFont(fond6)
      Longueur_texte6 = TextWidth(texte6$)
      StopDrawing()
      ResizeGadget(#String_5,  GadgetX(#String_4) + GadgetWidth(#String_4), #PB_Ignore, Longueur_texte6 + 18, #PB_Ignore)
      ResizeGadget(#String_6,  GadgetX(#String_5) + GadgetWidth(#String_5), #PB_Ignore, Longueur_texte7 + 18, #PB_Ignore)
      ResizeGadget(#String_7,  GadgetX(#String_6) + GadgetWidth(#String_6), #PB_Ignore, Longueur_texte8 + 18, #PB_Ignore)
      ResizeGadget(#String_8,  GadgetX(#String_7) + GadgetWidth(#String_7), #PB_Ignore, Longueur_texte9 + 18, #PB_Ignore)
      ResizeGadget(#String_9,  GadgetX(#String_8) + GadgetWidth(#String_8), #PB_Ignore, Longueur_texte10 + 18, #PB_Ignore)
      ; ceci sert pour ré-afficher correctement les gadget, sinon certain sons parfois pas bien afficher
      SetActiveGadget(#String_0)
      SetActiveGadget(#String_1)
      SetActiveGadget(#String_2)
      SetActiveGadget(#String_3)
      SetActiveGadget(#String_4)
      SetActiveGadget(#String_6)
      SetActiveGadget(#String_7)
      SetActiveGadget(#String_8)
      SetActiveGadget(#String_9)
      SetActiveGadget(#String_5)
      EndIf
      
      ElseIf GadgetID = #String_6
      If EventType = #PB_EventType_Change
      texte7$ = GetGadgetText(#String_6)
      fond7 = LoadFont(#fond_neutre, "arial", 10)
      StartDrawing(WindowOutput(#Window_0))
      DrawingFont(fond7)
      Longueur_texte7 = TextWidth(texte7$)
      StopDrawing()
      ResizeGadget(#String_6,  GadgetX(#String_5) + GadgetWidth(#String_5), #PB_Ignore, Longueur_texte7 + 18, #PB_Ignore)
      ResizeGadget(#String_7,  GadgetX(#String_6) + GadgetWidth(#String_6), #PB_Ignore, Longueur_texte8 + 18, #PB_Ignore)
      ResizeGadget(#String_8,  GadgetX(#String_7) + GadgetWidth(#String_7), #PB_Ignore, Longueur_texte9 + 18, #PB_Ignore)
      ResizeGadget(#String_9,  GadgetX(#String_8) + GadgetWidth(#String_8), #PB_Ignore, Longueur_texte10 + 18, #PB_Ignore)
      ; ceci sert pour ré-afficher correctement les gadget, sinon certain sons parfois pas bien afficher
      SetActiveGadget(#String_0)
      SetActiveGadget(#String_1)
      SetActiveGadget(#String_2)
      SetActiveGadget(#String_3)
      SetActiveGadget(#String_4)
      SetActiveGadget(#String_5)
      SetActiveGadget(#String_7)
      SetActiveGadget(#String_8)
      SetActiveGadget(#String_9)
      SetActiveGadget(#String_6)
      EndIf
      
      ElseIf GadgetID = #String_7
      If EventType = #PB_EventType_Change
      texte8$ = GetGadgetText(#String_7)
      fond8 = LoadFont(#fond_neutre, "arial", 10)
      StartDrawing(WindowOutput(#Window_0))
      DrawingFont(fond8)
      Longueur_texte8 = TextWidth(texte8$)
      StopDrawing()
      ResizeGadget(#String_7,  GadgetX(#String_6) + GadgetWidth(#String_6), #PB_Ignore, Longueur_texte8 + 18, #PB_Ignore)
      ResizeGadget(#String_8,  GadgetX(#String_7) + GadgetWidth(#String_7), #PB_Ignore, Longueur_texte9 + 18, #PB_Ignore)
      ResizeGadget(#String_9,  GadgetX(#String_8) + GadgetWidth(#String_8), #PB_Ignore, Longueur_texte10 + 18, #PB_Ignore)
      ; ceci sert pour ré-afficher correctement les gadget, sinon certain sons parfois pas bien afficher
      SetActiveGadget(#String_0)
      SetActiveGadget(#String_1)
      SetActiveGadget(#String_2)
      SetActiveGadget(#String_3)
      SetActiveGadget(#String_4)
      SetActiveGadget(#String_5)
      SetActiveGadget(#String_6)
      SetActiveGadget(#String_8)
      SetActiveGadget(#String_9)
      SetActiveGadget(#String_7)
      EndIf
      
      ElseIf GadgetID = #String_8
      If EventType = #PB_EventType_Change
      texte9$ = GetGadgetText(#String_8)
      fond9 = LoadFont(#fond_neutre, "arial", 10)
      StartDrawing(WindowOutput(#Window_0))
      DrawingFont(fond9)
      Longueur_texte9 = TextWidth(texte9$)
      StopDrawing()
      ResizeGadget(#String_8,  GadgetX(#String_7) + GadgetWidth(#String_7), #PB_Ignore, Longueur_texte9 + 18, #PB_Ignore)
      ResizeGadget(#String_9,  GadgetX(#String_8) + GadgetWidth(#String_8), #PB_Ignore, Longueur_texte10 + 18, #PB_Ignore)
      ; ceci sert pour ré-afficher correctement les gadget, sinon certain sons parfois pas bien afficher
      SetActiveGadget(#String_0)
      SetActiveGadget(#String_1)
      SetActiveGadget(#String_2)
      SetActiveGadget(#String_3)
      SetActiveGadget(#String_4)
      SetActiveGadget(#String_5)
      SetActiveGadget(#String_6)
      SetActiveGadget(#String_7)
      SetActiveGadget(#String_9)
      SetActiveGadget(#String_8)
      EndIf
      
      ElseIf GadgetID = #String_9
      If EventType = #PB_EventType_Change
      texte10$ = GetGadgetText(#String_9)
      fond10 = LoadFont(#fond_neutre, "arial", 10)
      StartDrawing(WindowOutput(#Window_0))
      DrawingFont(fond10)
      Longueur_texte10 = TextWidth(texte10$)
      StopDrawing()
      ResizeGadget(#String_9,  GadgetX(#String_8) + GadgetWidth(#String_8), #PB_Ignore, Longueur_texte10 + 18, #PB_Ignore)
      ; ceci sert pour ré-afficher correctement les gadget, sinon certain sons parfois pas bien afficher
      SetActiveGadget(#String_0)
      SetActiveGadget(#String_1)
      SetActiveGadget(#String_2)
      SetActiveGadget(#String_3)
      SetActiveGadget(#String_4)
      SetActiveGadget(#String_5)
      SetActiveGadget(#String_6)
      SetActiveGadget(#String_7)
      SetActiveGadget(#String_8)
      SetActiveGadget(#String_9)
      EndIf
      
    EndIf
      
  EndIf
  
Until Event = #PB_Event_CloseWindow ; End of the event loop

EndProcedure
    
    Open_Window_0()

Re: redimentionner des string gadget suivent leur contenu

Publié : mer. 30/juin/2010 16:58
par MLD
Salut Mr Dieppedalle (petite bourgade prés de Rouen)
Tu progresse c'est le principal.Continu :wink:

Re: redimentionner des string gadget suivent leur contenu

Publié : mer. 30/juin/2010 17:38
par TazNormand
Salut Dayvid, en progrès je confirme comme MLD, mais...

pour optimiser ton code, tu ne crois pas qu'une procédure avec le pavé suivant serait plus simple que de copier x fois le même bloc de lignes ???

Code : Tout sélectionner

Procedure ResizeSet()
   ResizeGadget(#String_0,  #PB_Ignore, #PB_Ignore, Longueur_texte + 18, #PB_Ignore) 
   ResizeGadget(#String_1,  GadgetX(#String_0) + GadgetWidth(#String_0), #PB_Ignore, Longueur_texte2 + 18, #PB_Ignore) 
   ResizeGadget(#String_2,  GadgetX(#String_1) + GadgetWidth(#String_1), #PB_Ignore, Longueur_texte3 + 18, #PB_Ignore) 
   ResizeGadget(#String_3,  GadgetX(#String_2) + GadgetWidth(#String_2), #PB_Ignore, Longueur_texte4 + 18, #PB_Ignore) 
   ResizeGadget(#String_4,  GadgetX(#String_3) + GadgetWidth(#String_3), #PB_Ignore, Longueur_texte5 + 18, #PB_Ignore) 
   ResizeGadget(#String_5,  GadgetX(#String_4) + GadgetWidth(#String_4), #PB_Ignore, Longueur_texte6 + 18, #PB_Ignore) 
   ResizeGadget(#String_6,  GadgetX(#String_5) + GadgetWidth(#String_5), #PB_Ignore, Longueur_texte7 + 18, #PB_Ignore) 
   ResizeGadget(#String_7,  GadgetX(#String_6) + GadgetWidth(#String_6), #PB_Ignore, Longueur_texte8 + 18, #PB_Ignore) 
   ResizeGadget(#String_8,  GadgetX(#String_7) + GadgetWidth(#String_7), #PB_Ignore, Longueur_texte9 + 18, #PB_Ignore) 
   ResizeGadget(#String_9,  GadgetX(#String_8) + GadgetWidth(#String_8), #PB_Ignore, Longueur_texte10 + 18, #PB_Ignore) 
   ; ceci sert pour ré-afficher correctement les gadget, sinon certain sons parfois pas bien afficher 
   SetActiveGadget(#String_1) 
   SetActiveGadget(#String_2) 
   SetActiveGadget(#String_3) 
   SetActiveGadget(#String_4) 
   SetActiveGadget(#String_5) 
   SetActiveGadget(#String_6) 
   SetActiveGadget(#String_7) 
   SetActiveGadget(#String_8) 
   SetActiveGadget(#String_9) 
   SetActiveGadget(#String_0)
EndProcedure

Re: redimentionner des string gadget suivent leur contenu

Publié : mer. 30/juin/2010 18:09
par Ar-S
Tu devrais aussi pouvoir simplement donner un numéro à tes stringgadget() 1,2,3,4,5
et faire une tite boucle genre

Code : Tout sélectionner

for i = 1 to 5
ResizeGadget(i,  GadgetX(i-1) + GadgetWidth(i-1), #PB_Ignore, Longueur_texte2 + 18, #PB_Ignore)  
next i

Re: redimentionner des string gadget suivent leur contenu

Publié : mer. 30/juin/2010 20:24
par G-Rom
MLD a écrit :Salut Mr Dieppedalle (petite bourgade prés de Rouen)
Tu progresse c'est le principal.Continu :wink:
Tu es Normand ?
sinon DieppeDalle est aussi une société de TP

Re: redimentionner des string gadget suivent leur contenu

Publié : jeu. 01/juil./2010 15:19
par Le Soldat Inconnu
pour dimensionner un stringgadget en fonction du contenu, voici une solution. C'est la même chose que toi sauf que je charge la police par défaut de window

Code : Tout sélectionner

; Auteur : Le Soldat Inconnu
; Version de PB : 4.50
;
; Explication du programme :
; Dimensionner un StringGadget avec le contenu

Procedure.l LoadWindowFont(Bold = -1, Italic = -1, UnderLine = -1, Size.f = -1)
  Protected ncm.NONCLIENTMETRICS
  ncm\cbSize = SizeOf(NONCLIENTMETRICS)
  SystemParametersInfo_(#SPI_GETNONCLIENTMETRICS, SizeOf(NONCLIENTMETRICS), @ncm, 0)
  If Bold = 0
    ncm\lfMessageFont\lfWeight = 0
	ElseIf Bold = 1
    ncm\lfMessageFont\lfWeight = 700
	EndIf
  If Italic = 0
    ncm\lfMessageFont\lfItalic = 0
	ElseIf Italic = 1
    ncm\lfMessageFont\lfItalic = 1
	EndIf
  If UnderLine = 0
    ncm\lfMessageFont\lfUnderline = 0
	ElseIf UnderLine = 1
    ncm\lfMessageFont\lfUnderline = 1
	EndIf
  If Size > 0
    ncm\lfMessageFont\lfheight * Size
	EndIf
	
	Debug PeekS(@ncm\lfMessageFont\lfFaceName, 32)
	CompilerIf #PB_Compiler_Debugger
		DC = GetDC_(0)
		Debug Round(Abs(ncm\lfMessageFont\lfheight) * 72 / GetDeviceCaps_(DC, #LOGPIXELSY), #PB_Round_Nearest)
		ReleaseDC_(0, DC)
	CompilerEndIf
  
  ProcedureReturn CreateFontIndirect_(@ncm\lfMessageFont)
EndProcedure

; Création de la fenêtre et de la GadgetList
If OpenWindow(0, 0, 0, 300, 300, "Test", #PB_Window_SystemMenu | #PB_Window_ScreenCentered | #PB_Window_MinimizeGadget) = 0
  End
EndIf

WindowFont = LoadWindowFont()
StringGadget(0, 10, 10, 100, 24, "")

Repeat
  Event = WaitWindowEvent()
  
  Select Event
		Case #PB_Event_Gadget
      Select EventGadget() ; Gadgets
				Case 0
					Select EventType()
						Case #PB_EventType_Change, #PB_EventType_LostFocus
							Image = CreateImage(#PB_Any, 10, 10, 24)
							Largeur=0
							StartDrawing(ImageOutput(Image))
								DrawingFont(WindowFont)
								Largeur = TextWidth(GetGadgetText(0)) + 16
							StopDrawing()
							FreeImage(Image)
							If Largeur < 100
								Largeur = 100
							EndIf
							If GadgetWidth(0) <> Largeur
								ResizeGadget(0, #PB_Ignore, #PB_Ignore, Largeur, #PB_Ignore)
							EndIf
					EndSelect
			EndSelect
	EndSelect
  
Until Event = #PB_Event_CloseWindow

If WindowFont
  DeleteObject_(WindowFont)
EndIf
sinon,
redimentionner des string gadget suivent leur contenu
:?

Re: redimentionner des string gadget suivent leur contenu

Publié : jeu. 01/juil./2010 20:36
par Warkering
Ainsi que :

"Le titre est assez exhaustif, il me semble."

Et là, tu peux rajouter un beau petit Smiley, comme par exemple celui-ci : :lol:

Au final, cela t'aurais donner ceci :

Le titre est assez exhaustif, il me semble. :lol:

:mrgreen:

Re: redimentionner des string gadget suivent leur contenu

Publié : ven. 02/juil./2010 13:48
par dayvid
bonjour

merci pour vos réponses et vos codes
oui j'ai toujours beaucoup de mal a optimiser mon code
je progresse oui mais pas tant que ça

savez-vous a quoi cela va me servir (m'a servi)
je cherche a crée un petit langage simple de programmation
mais je créer des strings gadget ou chaque élément reçois une fonction
ça va beaucoup m'aider pour debuger le code si vous me suivez

j'ai bien essayé de le faire avec un fichier texte mais c'est mégas chaud
alors je créer çela en attendant, mais il y a quand même du boulot

voila ou j'en suis actuellement, je suis fier de ce début de code avec
autocompletion et reconnaissance des mots clef avec des couleurs

Code : Tout sélectionner


; crée par Mr dieppedalle david le mercredi 2 juillet 2010

; ce programme permet de redimensionner en temps réel les string gadget suivant leur contenu

Enumeration
#Window_0
#String_0
#String_1
#String_2
#String_3
#String_4
#String_5
#String_6
#String_7
#String_8
#String_9
#Fond
#fond_neutre
#Fond2
#Fond3
#Fond4
#Fond5
#Fond6
#Fond7
#Fond8
#Fond9
#Fond10
#fond_mot_clee
#auto_completion
#auto_completion_touche_haut
#auto_completion_touche_bas
#auto_completion_touche_entree
EndEnumeration

Global mot_clee$, hauteur_auto_completion, largeur_auto_completion, position_String_0_en_x, position_String_0_en_y, hauteur_String_0, largeur_String_0, numero_du_String_0, gadget_actif
Global auto_completion_mot_clee$

Procedure auto_completion(commande_auto_completion$, position_auto_completion_en_x, position_auto_completion_en_y, numero_gedget_auto_completion)
position_extraction = 1
position_recherche = 1
hauteur_auto_completion = 10
longueur_commande_auto_completion = Len(commande_auto_completion$)
UseGadgetList(#Window_0)
ListViewGadget(#auto_completion, position_auto_completion_en_x, position_auto_completion_en_y, 200, hauteur_auto_completion)
AddKeyboardShortcut(#Window_0, #PB_Shortcut_Up, #auto_completion_touche_haut)
AddKeyboardShortcut(#Window_0, #PB_Shortcut_Down, #auto_completion_touche_bas)
AddKeyboardShortcut(#Window_0, #PB_Shortcut_Return, #auto_completion_touche_entree)
Repeat
position_depert + 1
commande_auto_completion$ = ReplaceString(commande_auto_completion$, ", ", ",")
caractere$ = Mid(commande_auto_completion$, position_depert, 1)
If caractere$ = ","
hauteur_auto_completion + 10
AddGadgetItem(#auto_completion, -1, commande_pour_auto_completion$)
ResizeGadget(#auto_completion, #PB_Ignore, #PB_Ignore, #PB_Ignore, hauteur_auto_completion)
commande_pour_auto_completion$ = ""
Continue
ElseIf position_depert > longueur_commande_auto_completion
hauteur_auto_completion + 10
AddGadgetItem(#auto_completion, -1, commande_pour_auto_completion$)
ResizeGadget(#auto_completion, #PB_Ignore, #PB_Ignore, #PB_Ignore, hauteur_auto_completion)
commande_pour_auto_completion$ = ""
Break
Else
commande_pour_auto_completion$ = commande_pour_auto_completion$ + caractere$
EndIf
ForEver
EndProcedure

Procedure mot_clee(mot_clee$)
mot_clee$ = LCase(mot_clee$)
mot_clee$ = Trim(mot_clee$)
longueur_mot_clee = Len(mot_clee$)
position_String_0_en_x = GadgetX(#String_0)
position_String_0_en_y = GadgetY(#String_0)
hauteur_String_0 = GadgetHeight(#String_0)
largeur_String_0 = GadgetWidth(#String_0)
numero_du_String_0 = #String_0
auto_completion_mot_clee$ = Mid(mot_clee$, 1, 3)
If auto_completion_mot_clee$ = "ouv" And mot_clee$ <> "ouvrir une console"
auto_completion("ouvrir une console, ouvrir une fenêtre", position_String_0_en_x,  position_String_0_en_y + hauteur_String_0, numero_du_String_0)
ElseIf auto_completion_mot_clee$ = "mod" And mot_clee$ <> "mode de la console"
auto_completion("mode de la console", position_String_0_en_x,  position_String_0_en_y + hauteur_String_0, numero_du_String_0)
ElseIf auto_completion_mot_clee$ = "tit" And mot_clee$ <> "titre de la console"
auto_completion("titre de la console", position_String_0_en_x,  position_String_0_en_y + hauteur_String_0, numero_du_String_0)
ElseIf auto_completion_mot_clee$ = "cou" And mot_clee$ <> "couleur du texte de la console"
auto_completion("couleur du texte de la console", position_String_0_en_x,  position_String_0_en_y + hauteur_String_0, numero_du_String_0)
ElseIf auto_completion_mot_clee$ = "écr" And mot_clee$ <> "écrire du texte dans la console"
auto_completion("écrire du texte dans la console", position_String_0_en_x,  position_String_0_en_y + hauteur_String_0, numero_du_String_0)
Else
FreeGadget(#auto_completion)
EndIf


If mot_clee$ = ""
; ne fait rien

ElseIf mot_clee$ = "ouvrir une console"
SetGadgetColor(#String_0, #PB_Gadget_FrontColor, RGB(255, 0, 0))
SetActiveGadget(#String_1)
ElseIf mot_clee$ = "mode de la console"
SetGadgetColor(#String_0, #PB_Gadget_FrontColor, RGB(255, 155, 0))
SetActiveGadget(#String_1)
ElseIf mot_clee$ = "titre de la console"
SetGadgetColor(#String_0, #PB_Gadget_FrontColor, RGB(0, 155, 0))
SetActiveGadget(#String_1)
ElseIf mot_clee$ = "couleur du texte de la console"
SetGadgetColor(#String_0, #PB_Gadget_FrontColor, RGB(0, 0, 255))
SetActiveGadget(#String_1)
ElseIf mot_clee$ = "écrire du texte dans la console"
SetGadgetColor(#String_0, #PB_Gadget_FrontColor, RGB(0, 0, 255))
SetActiveGadget(#String_1)
Else
SetGadgetColor(#String_0, #PB_Gadget_FrontColor, RGB(0, 0, 0))
SetGadgetFont(#String_0, LoadFont(#Fond, "arial", 8))
EndIf

If gadget_actif = #String_0 And mot_clee$ = "" And IsGadget(#auto_completion)
  FreeGadget(#auto_completion)
EndIf

EndProcedure

Procedure Open_Window_0()
  If OpenWindow(#Window_0, 382, 195, 800, 600, "New window ( 0 )",  #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar )
      
      StringGadget(#String_0, 10, 10, 145, 20, "")
      SetGadgetFont(#String_0, LoadFont(#Fond, "arial", 8))
      ResizeGadget(#String_0,  #PB_Ignore, #PB_Ignore, 18, #PB_Ignore)
      
      StringGadget(#String_1, 10, 10, 145, 20, "")
      SetGadgetFont(#String_1, LoadFont(#Fond2, "arial", 8))
      ResizeGadget(#String_1,  GadgetX(#String_0) + GadgetWidth(#String_0) , #PB_Ignore, 18, #PB_Ignore)
      
      StringGadget(#String_2, 10, 10, 145, 20, "")
      SetGadgetFont(#String_2, LoadFont(#Fond3, "arial", 8))
      ResizeGadget(#String_2,  GadgetX(#String_1) + GadgetWidth(#String_1) , #PB_Ignore, 18, #PB_Ignore)
      
      StringGadget(#String_3, 10, 10, 145, 20, "")
      SetGadgetFont(#String_3, LoadFont(#Fond4, "arial", 8))
      ResizeGadget(#String_3,  GadgetX(#String_2) + GadgetWidth(#String_2) , #PB_Ignore, 18, #PB_Ignore)
      
      StringGadget(#String_4, 10, 10, 145, 20, "")
      SetGadgetFont(#String_4, LoadFont(#Fond5, "arial", 8))
      ResizeGadget(#String_4,  GadgetX(#String_3) + GadgetWidth(#String_3) , #PB_Ignore, 18, #PB_Ignore)
      
      StringGadget(#String_5, 10, 10, 145, 20, "")
      SetGadgetFont(#String_5, LoadFont(#Fond6, "arial", 8))
      ResizeGadget(#String_5,  GadgetX(#String_4) + GadgetWidth(#String_4) , #PB_Ignore, 18, #PB_Ignore)
      
      StringGadget(#String_6, 10, 10, 145, 20, "")
      SetGadgetFont(#String_6, LoadFont(#Fond7, "arial", 8))
      ResizeGadget(#String_6,  GadgetX(#String_5) + GadgetWidth(#String_5) , #PB_Ignore, 18, #PB_Ignore)
      
      StringGadget(#String_7, 10, 10, 145, 20, "")
      SetGadgetFont(#String_7, LoadFont(#Fond8, "arial", 8))
      ResizeGadget(#String_7,  GadgetX(#String_6) + GadgetWidth(#String_6) , #PB_Ignore, 18, #PB_Ignore)
      
      StringGadget(#String_8, 10, 10, 145, 20, "")
      SetGadgetFont(#String_8, LoadFont(#Fond9, "arial", 8))
      ResizeGadget(#String_8,  GadgetX(#String_7) + GadgetWidth(#String_7) , #PB_Ignore, 18, #PB_Ignore)
      
      StringGadget(#String_9, 10, 10, 145, 20, "")
      SetGadgetFont(#String_9, LoadFont(#Fond10, "arial", 8))
      ResizeGadget(#String_9,  GadgetX(#String_8) + GadgetWidth(#String_8) , #PB_Ignore, 18, #PB_Ignore)
      
  EndIf
  
  Repeat ; Start of the event loop
  
  Event = WaitWindowEvent(1) ; 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
  EvenMenue = EventMenu()  
  
  
  If Event = #PB_Event_Gadget
    
    If GadgetID = #String_0
      If EventType = #PB_EventType_Change
      rectualisation:
      texte$ = GetGadgetText(#String_0)
      fond = LoadFont(#fond_neutre, "arial", 8)
      StartDrawing(WindowOutput(#Window_0))
      DrawingFont(fond)
      Longueur_texte = TextWidth(texte$)
      StopDrawing()
      ResizeGadget(#String_0,  #PB_Ignore, #PB_Ignore, Longueur_texte + 18, #PB_Ignore)
      ResizeGadget(#String_1,  GadgetX(#String_0) + GadgetWidth(#String_0), #PB_Ignore, Longueur_texte2 + 18, #PB_Ignore)
      ResizeGadget(#String_2,  GadgetX(#String_1) + GadgetWidth(#String_1), #PB_Ignore, Longueur_texte3 + 18, #PB_Ignore)
      ResizeGadget(#String_3,  GadgetX(#String_2) + GadgetWidth(#String_2), #PB_Ignore, Longueur_texte4 + 18, #PB_Ignore)
      ResizeGadget(#String_4,  GadgetX(#String_3) + GadgetWidth(#String_3), #PB_Ignore, Longueur_texte5 + 18, #PB_Ignore)
      ResizeGadget(#String_5,  GadgetX(#String_4) + GadgetWidth(#String_4), #PB_Ignore, Longueur_texte6 + 18, #PB_Ignore)
      ResizeGadget(#String_6,  GadgetX(#String_5) + GadgetWidth(#String_5), #PB_Ignore, Longueur_texte7 + 18, #PB_Ignore)
      ResizeGadget(#String_7,  GadgetX(#String_6) + GadgetWidth(#String_6), #PB_Ignore, Longueur_texte8 + 18, #PB_Ignore)
      ResizeGadget(#String_8,  GadgetX(#String_7) + GadgetWidth(#String_7), #PB_Ignore, Longueur_texte9 + 18, #PB_Ignore)
      ResizeGadget(#String_9,  GadgetX(#String_8) + GadgetWidth(#String_8), #PB_Ignore, Longueur_texte10 + 18, #PB_Ignore)
      ; ceci sert pour ré-afficher correctement les gadget, sinon certain sons parfois pas bien afficher
      SetActiveGadget(#String_1)
      SetActiveGadget(#String_2)
      SetActiveGadget(#String_3)
      SetActiveGadget(#String_4)
      SetActiveGadget(#String_5)
      SetActiveGadget(#String_6)
      SetActiveGadget(#String_7)
      SetActiveGadget(#String_8)
      SetActiveGadget(#String_9)
      SetActiveGadget(#String_0)
      mot_clee(GetGadgetText(#String_0))
      EndIf
       
      ElseIf GadgetID = #String_1
      If EventType = #PB_EventType_Change
      texte2$ = GetGadgetText(#String_1)
      fond2 = LoadFont(#fond_neutre, "arial", 10)
      StartDrawing(WindowOutput(#Window_0))
      DrawingFont(fond2)
      Longueur_texte2 = TextWidth(texte2$)
      StopDrawing()
      ResizeGadget(#String_1,  GadgetX(#String_0) + GadgetWidth(#String_0), #PB_Ignore, Longueur_texte2 + 18, #PB_Ignore)
      ResizeGadget(#String_2,  GadgetX(#String_1) + GadgetWidth(#String_1), #PB_Ignore, Longueur_texte3 + 18, #PB_Ignore)
      ResizeGadget(#String_3,  GadgetX(#String_2) + GadgetWidth(#String_2), #PB_Ignore, Longueur_texte4 + 18, #PB_Ignore)
      ResizeGadget(#String_4,  GadgetX(#String_3) + GadgetWidth(#String_3), #PB_Ignore, Longueur_texte5 + 18, #PB_Ignore)
      ResizeGadget(#String_5,  GadgetX(#String_4) + GadgetWidth(#String_4), #PB_Ignore, Longueur_texte6 + 18, #PB_Ignore)
      ResizeGadget(#String_6,  GadgetX(#String_5) + GadgetWidth(#String_5), #PB_Ignore, Longueur_texte7 + 18, #PB_Ignore)
      ResizeGadget(#String_7,  GadgetX(#String_6) + GadgetWidth(#String_6), #PB_Ignore, Longueur_texte8 + 18, #PB_Ignore)
      ResizeGadget(#String_8,  GadgetX(#String_7) + GadgetWidth(#String_7), #PB_Ignore, Longueur_texte9 + 18, #PB_Ignore)
      ResizeGadget(#String_9,  GadgetX(#String_8) + GadgetWidth(#String_8), #PB_Ignore, Longueur_texte10 + 18, #PB_Ignore)
      ; ceci sert pour ré-afficher correctement les gadget, sinon certain sons parfois pas bien afficher
      SetActiveGadget(#String_0)
      SetActiveGadget(#String_2)
      SetActiveGadget(#String_3)
      SetActiveGadget(#String_4)
      SetActiveGadget(#String_5)
      SetActiveGadget(#String_6)
      SetActiveGadget(#String_7)
      SetActiveGadget(#String_8)
      SetActiveGadget(#String_9)
      SetActiveGadget(#String_1)
      EndIf
      
      ElseIf GadgetID = #String_2
      If EventType = #PB_EventType_Change
      texte3$ = GetGadgetText(#String_2)
      fond3 = LoadFont(#fond_neutre, "arial", 10)
      StartDrawing(WindowOutput(#Window_0))
      DrawingFont(fond3)
      Longueur_texte3 = TextWidth(texte3$)
      StopDrawing()
      ResizeGadget(#String_2,  GadgetX(#String_1) + GadgetWidth(#String_1), #PB_Ignore, Longueur_texte3 + 18, #PB_Ignore)
      ResizeGadget(#String_3,  GadgetX(#String_2) + GadgetWidth(#String_2), #PB_Ignore, Longueur_texte4 + 18, #PB_Ignore)
      ResizeGadget(#String_4,  GadgetX(#String_3) + GadgetWidth(#String_3), #PB_Ignore, Longueur_texte5 + 18, #PB_Ignore)
      ResizeGadget(#String_5,  GadgetX(#String_4) + GadgetWidth(#String_4), #PB_Ignore, Longueur_texte6 + 18, #PB_Ignore)
      ResizeGadget(#String_6,  GadgetX(#String_5) + GadgetWidth(#String_5), #PB_Ignore, Longueur_texte7 + 18, #PB_Ignore)
      ResizeGadget(#String_7,  GadgetX(#String_6) + GadgetWidth(#String_6), #PB_Ignore, Longueur_texte8 + 18, #PB_Ignore)
      ResizeGadget(#String_8,  GadgetX(#String_7) + GadgetWidth(#String_7), #PB_Ignore, Longueur_texte9 + 18, #PB_Ignore)
      ResizeGadget(#String_9,  GadgetX(#String_8) + GadgetWidth(#String_8), #PB_Ignore, Longueur_texte10 + 18, #PB_Ignore)
      ; ceci sert pour ré-afficher correctement les gadget, sinon certain sons parfois pas bien afficher
      SetActiveGadget(#String_0)
      SetActiveGadget(#String_1)
      SetActiveGadget(#String_3)
      SetActiveGadget(#String_4)
      SetActiveGadget(#String_5)
      SetActiveGadget(#String_6)
      SetActiveGadget(#String_7)
      SetActiveGadget(#String_8)
      SetActiveGadget(#String_9)
      SetActiveGadget(#String_2)
      EndIf
      
      ElseIf GadgetID = #String_3
      If EventType = #PB_EventType_Change
      texte4$ = GetGadgetText(#String_3)
      fond4 = LoadFont(#fond_neutre, "arial", 10)
      StartDrawing(WindowOutput(#Window_0))
      DrawingFont(fond4)
      Longueur_texte4 = TextWidth(texte4$)
      StopDrawing()
      ResizeGadget(#String_3,  GadgetX(#String_2) + GadgetWidth(#String_2), #PB_Ignore, Longueur_texte4 + 18, #PB_Ignore)
      ResizeGadget(#String_4,  GadgetX(#String_3) + GadgetWidth(#String_3), #PB_Ignore, Longueur_texte5 + 18, #PB_Ignore)
      ResizeGadget(#String_5,  GadgetX(#String_4) + GadgetWidth(#String_4), #PB_Ignore, Longueur_texte6 + 18, #PB_Ignore)
      ResizeGadget(#String_6,  GadgetX(#String_5) + GadgetWidth(#String_5), #PB_Ignore, Longueur_texte7 + 18, #PB_Ignore)
      ResizeGadget(#String_7,  GadgetX(#String_6) + GadgetWidth(#String_6), #PB_Ignore, Longueur_texte8 + 18, #PB_Ignore)
      ResizeGadget(#String_8,  GadgetX(#String_7) + GadgetWidth(#String_7), #PB_Ignore, Longueur_texte9 + 18, #PB_Ignore)
      ResizeGadget(#String_9,  GadgetX(#String_8) + GadgetWidth(#String_8), #PB_Ignore, Longueur_texte10 + 18, #PB_Ignore)
      ; ceci sert pour ré-afficher correctement les gadget, sinon certain sons parfois pas bien afficher
      SetActiveGadget(#String_0)
      SetActiveGadget(#String_1)
      SetActiveGadget(#String_2)
      SetActiveGadget(#String_4)
      SetActiveGadget(#String_5)
      SetActiveGadget(#String_6)
      SetActiveGadget(#String_7)
      SetActiveGadget(#String_8)
      SetActiveGadget(#String_9)
      SetActiveGadget(#String_3)
      EndIf
      
      ElseIf GadgetID = #String_4
      If EventType = #PB_EventType_Change
      texte5$ = GetGadgetText(#String_4)
      fond5 = LoadFont(#fond_neutre, "arial", 10)
      StartDrawing(WindowOutput(#Window_0))
      DrawingFont(fond5)
      Longueur_texte5 = TextWidth(texte5$)
      StopDrawing()
      ResizeGadget(#String_4,  GadgetX(#String_3) + GadgetWidth(#String_3), #PB_Ignore, Longueur_texte5 + 18, #PB_Ignore)
      ResizeGadget(#String_5,  GadgetX(#String_4) + GadgetWidth(#String_4), #PB_Ignore, Longueur_texte6 + 18, #PB_Ignore)
      ResizeGadget(#String_6,  GadgetX(#String_5) + GadgetWidth(#String_5), #PB_Ignore, Longueur_texte7 + 18, #PB_Ignore)
      ResizeGadget(#String_7,  GadgetX(#String_6) + GadgetWidth(#String_6), #PB_Ignore, Longueur_texte8 + 18, #PB_Ignore)
      ResizeGadget(#String_8,  GadgetX(#String_7) + GadgetWidth(#String_7), #PB_Ignore, Longueur_texte9 + 18, #PB_Ignore)
      ResizeGadget(#String_9,  GadgetX(#String_8) + GadgetWidth(#String_8), #PB_Ignore, Longueur_texte10 + 18, #PB_Ignore)
      ; ceci sert pour ré-afficher correctement les gadget, sinon certain sons parfois pas bien afficher
      SetActiveGadget(#String_0)
      SetActiveGadget(#String_1)
      SetActiveGadget(#String_2)
      SetActiveGadget(#String_3)
      SetActiveGadget(#String_5)
      SetActiveGadget(#String_6)
      SetActiveGadget(#String_7)
      SetActiveGadget(#String_8)
      SetActiveGadget(#String_9)
      SetActiveGadget(#String_4)
      EndIf
      
      ElseIf GadgetID = #String_5
      If EventType = #PB_EventType_Change
      texte6$ = GetGadgetText(#String_5)
      fond6 = LoadFont(#fond_neutre, "arial", 10)
      StartDrawing(WindowOutput(#Window_0))
      DrawingFont(fond6)
      Longueur_texte6 = TextWidth(texte6$)
      StopDrawing()
      ResizeGadget(#String_5,  GadgetX(#String_4) + GadgetWidth(#String_4), #PB_Ignore, Longueur_texte6 + 18, #PB_Ignore)
      ResizeGadget(#String_6,  GadgetX(#String_5) + GadgetWidth(#String_5), #PB_Ignore, Longueur_texte7 + 18, #PB_Ignore)
      ResizeGadget(#String_7,  GadgetX(#String_6) + GadgetWidth(#String_6), #PB_Ignore, Longueur_texte8 + 18, #PB_Ignore)
      ResizeGadget(#String_8,  GadgetX(#String_7) + GadgetWidth(#String_7), #PB_Ignore, Longueur_texte9 + 18, #PB_Ignore)
      ResizeGadget(#String_9,  GadgetX(#String_8) + GadgetWidth(#String_8), #PB_Ignore, Longueur_texte10 + 18, #PB_Ignore)
      ; ceci sert pour ré-afficher correctement les gadget, sinon certain sons parfois pas bien afficher
      SetActiveGadget(#String_0)
      SetActiveGadget(#String_1)
      SetActiveGadget(#String_2)
      SetActiveGadget(#String_3)
      SetActiveGadget(#String_4)
      SetActiveGadget(#String_6)
      SetActiveGadget(#String_7)
      SetActiveGadget(#String_8)
      SetActiveGadget(#String_9)
      SetActiveGadget(#String_5)
      EndIf
      
      ElseIf GadgetID = #String_6
      If EventType = #PB_EventType_Change
      texte7$ = GetGadgetText(#String_6)
      fond7 = LoadFont(#fond_neutre, "arial", 10)
      StartDrawing(WindowOutput(#Window_0))
      DrawingFont(fond7)
      Longueur_texte7 = TextWidth(texte7$)
      StopDrawing()
      ResizeGadget(#String_6,  GadgetX(#String_5) + GadgetWidth(#String_5), #PB_Ignore, Longueur_texte7 + 18, #PB_Ignore)
      ResizeGadget(#String_7,  GadgetX(#String_6) + GadgetWidth(#String_6), #PB_Ignore, Longueur_texte8 + 18, #PB_Ignore)
      ResizeGadget(#String_8,  GadgetX(#String_7) + GadgetWidth(#String_7), #PB_Ignore, Longueur_texte9 + 18, #PB_Ignore)
      ResizeGadget(#String_9,  GadgetX(#String_8) + GadgetWidth(#String_8), #PB_Ignore, Longueur_texte10 + 18, #PB_Ignore)
      ; ceci sert pour ré-afficher correctement les gadget, sinon certain sons parfois pas bien afficher
      SetActiveGadget(#String_0)
      SetActiveGadget(#String_1)
      SetActiveGadget(#String_2)
      SetActiveGadget(#String_3)
      SetActiveGadget(#String_4)
      SetActiveGadget(#String_5)
      SetActiveGadget(#String_7)
      SetActiveGadget(#String_8)
      SetActiveGadget(#String_9)
      SetActiveGadget(#String_6)
      EndIf
      
      ElseIf GadgetID = #String_7
      If EventType = #PB_EventType_Change
      texte8$ = GetGadgetText(#String_7)
      fond8 = LoadFont(#fond_neutre, "arial", 10)
      StartDrawing(WindowOutput(#Window_0))
      DrawingFont(fond8)
      Longueur_texte8 = TextWidth(texte8$)
      StopDrawing()
      ResizeGadget(#String_7,  GadgetX(#String_6) + GadgetWidth(#String_6), #PB_Ignore, Longueur_texte8 + 18, #PB_Ignore)
      ResizeGadget(#String_8,  GadgetX(#String_7) + GadgetWidth(#String_7), #PB_Ignore, Longueur_texte9 + 18, #PB_Ignore)
      ResizeGadget(#String_9,  GadgetX(#String_8) + GadgetWidth(#String_8), #PB_Ignore, Longueur_texte10 + 18, #PB_Ignore)
      ; ceci sert pour ré-afficher correctement les gadget, sinon certain sons parfois pas bien afficher
      SetActiveGadget(#String_0)
      SetActiveGadget(#String_1)
      SetActiveGadget(#String_2)
      SetActiveGadget(#String_3)
      SetActiveGadget(#String_4)
      SetActiveGadget(#String_5)
      SetActiveGadget(#String_6)
      SetActiveGadget(#String_8)
      SetActiveGadget(#String_9)
      SetActiveGadget(#String_7)
      EndIf
      
      ElseIf GadgetID = #String_8
      If EventType = #PB_EventType_Change
      texte9$ = GetGadgetText(#String_8)
      fond9 = LoadFont(#fond_neutre, "arial", 10)
      StartDrawing(WindowOutput(#Window_0))
      DrawingFont(fond9)
      Longueur_texte9 = TextWidth(texte9$)
      StopDrawing()
      ResizeGadget(#String_8,  GadgetX(#String_7) + GadgetWidth(#String_7), #PB_Ignore, Longueur_texte9 + 18, #PB_Ignore)
      ResizeGadget(#String_9,  GadgetX(#String_8) + GadgetWidth(#String_8), #PB_Ignore, Longueur_texte10 + 18, #PB_Ignore)
      ; ceci sert pour ré-afficher correctement les gadget, sinon certain sons parfois pas bien afficher
      SetActiveGadget(#String_0)
      SetActiveGadget(#String_1)
      SetActiveGadget(#String_2)
      SetActiveGadget(#String_3)
      SetActiveGadget(#String_4)
      SetActiveGadget(#String_5)
      SetActiveGadget(#String_6)
      SetActiveGadget(#String_7)
      SetActiveGadget(#String_9)
      SetActiveGadget(#String_8)
      EndIf
      
      ElseIf GadgetID = #String_9
      If EventType = #PB_EventType_Change
      texte10$ = GetGadgetText(#String_9)
      fond10 = LoadFont(#fond_neutre, "arial", 10)
      StartDrawing(WindowOutput(#Window_0))
      DrawingFont(fond10)
      Longueur_texte10 = TextWidth(texte10$)
      StopDrawing()
      ResizeGadget(#String_9,  GadgetX(#String_8) + GadgetWidth(#String_8), #PB_Ignore, Longueur_texte10 + 18, #PB_Ignore)
      ; ceci sert pour ré-afficher correctement les gadget, sinon certain sons parfois pas bien afficher
      SetActiveGadget(#String_0)
      SetActiveGadget(#String_1)
      SetActiveGadget(#String_2)
      SetActiveGadget(#String_3)
      SetActiveGadget(#String_4)
      SetActiveGadget(#String_5)
      SetActiveGadget(#String_6)
      SetActiveGadget(#String_7)
      SetActiveGadget(#String_8)
      SetActiveGadget(#String_9)
      EndIf
      
      ElseIf GadgetID = #auto_completion
      
      nombre_element_auto_completion = CountGadgetItems(#auto_completion)
      element_autocompletion_selectionner = GetGadgetState(#auto_completion)
      element_selection = element_autocompletion_selectionner
      
      If EventType = #PB_EventType_LeftDoubleClick
      SetGadgetText(#String_0, GetGadgetItemText(#auto_completion, GetGadgetState(#auto_completion)))
      FreeGadget(#auto_completion)
      Goto rectualisation 
      EndIf
      
    EndIf
    
     ElseIf Event = #PB_Event_Menu
      
      If IsGadget(#auto_completion) 
      
      gadget_actif = GetActiveGadget()
      
      nombre_element_auto_completion = CountGadgetItems(#auto_completion)
      element_autocompletion_selectionner = GetGadgetState(#auto_completion)
      element_selection = element_autocompletion_selectionner
      
     If gadget_actif = #String_0 And IsGadget(#auto_completion)
     If EvenMenue = #auto_completion_touche_bas  
     SetActiveGadget(#auto_completion)
     element_selection = 0
     ElseIf EvenMenue = #auto_completion_touche_haut
     SetActiveGadget(#auto_completion)
     element_selection = nombre_element_auto_completion - 1
     EndIf
     EndIf
      
      If EvenMenue = #auto_completion_touche_bas
      element_selection + 1
      
      If element_selection = nombre_element_auto_completion
      element_selection = 0
      EndIf
      
      SetGadgetState(#auto_completion, element_selection)

      ElseIf EvenMenue = #auto_completion_touche_haut
      
      If element_selection = 0
      element_selection = nombre_element_auto_completion - 1
      Else
      element_selection - 1
      EndIf
      
      SetGadgetState(#auto_completion, element_selection)
      
      ElseIf EvenMenue = #auto_completion_touche_entree
      If gadget_actif = #auto_completion
      RemoveKeyboardShortcut(#Window_0, #PB_Shortcut_Down)
      RemoveKeyboardShortcut(#Window_0, #PB_Shortcut_Up)
      RemoveKeyboardShortcut(#Window_0, #PB_Shortcut_Return)
      SetGadgetText(#String_0, GetGadgetItemText(#auto_completion, GetGadgetState(#auto_completion)))
      FreeGadget(#auto_completion)
      Goto rectualisation
      EndIf
      EndIf
  
  Else
  RemoveKeyboardShortcut(#Window_0, #PB_Shortcut_Down)
  RemoveKeyboardShortcut(#Window_0, #PB_Shortcut_Up)
  RemoveKeyboardShortcut(#Window_0, #PB_Shortcut_Return)
  EndIf
  EndIf
  
  gadget_actif = GetActiveGadget()
  commande_mot_clee$ = GetGadgetText(#String_0)
  
  If gadget_actif <> #String_0 And gadget_actif <> #auto_completion And IsGadget(#auto_completion)
  FreeGadget(#auto_completion)
  EndIf
  
  If auto_completion_mot_clee$ = "ouv"
  If gadget_actif = #String_0 And Not IsGadget(#auto_completion) And commande_mot_clee$ <> "ouvrir une console" And commande_mot_clee$ <> "ouvrir une fenêtre"
  mot_clee(auto_completion_mot_clee$)
  Delay(100)
  EndIf
  EndIf
  
  
Until Event = #PB_Event_CloseWindow ; End of the event loop

EndProcedure
    
    
    Open_Window_0()
    
voila je vais continuer sur ma lancé et tenter de mettre en pratique vos conseils, merci :D
et au fait; je suis d'origine belge mais pas de blague hein :mrgreen: