Voici le code en question, il y a beaucoup de gagdet et le rafraichissement de la fenêtre en prend un coup quand on passe du mode fenêtre pleine écran à fenêtre normal (le petit bouton a coté de la croix pour fermer la fenêtre dans la barre de titre

En gros, ce me laisse des bout de dessin de gadget un peu partout sur la fenêtre
voici le code :
J'ai regarder si par hazard, je n'avais pas fait de bétise avec les numéros de gagdet mais non, j'ai tout mis dans une Enumeration ou par des #PB_Any
PB 4.10 installé
Code : Tout sélectionner
; Auteur : Le Soldat Inconnu
; Version de PB : 4
;
; Explication pour le programme :
; Ecriture sous forme HTML d'un caractère : ł
Enumeration 1
#MDI
#MDI_Categorie
#MDI_Categorie_Liste
#MDI_Categorie_Ajouter
#MDI_Categorie_Renommer
#MDI_Categorie_Supprimer
#MDI_Categorie_Monter
#MDI_Categorie_Descendre
#MDI_Titre
#MDI_Titre_Liste
#MDI_Titre_Ajouter
#MDI_Titre_Renommer
#MDI_Titre_Supprimer
#MDI_Titre_Monter
#MDI_Titre_Descendre
#Dictionnaire_Nom
#Dictionnaire_Liste
#Categorie_Nom
#Recherche_Nom
#Recherche_Texte
#Recherche_Categories
#Recherche_Titres
#Recherche_Lancer
#Recherche_Defaut
#Resultat_Nom
#Resultat_Liste
#Menu_Organiser_Cascade
#Menu_Organiser_Horizontal
#Menu_Organiser_Vertical
#Menu_Edition_Categorie
#Menu_Edition_Titre
#Menu_Edition_Definition_Ajouter
#Menu_Edition_Definition_Editer
#Menu_Option_Langue
#Menu_Clavier = 100
#Menu_MDI = 200
#Categorie_Ligne_H = 300
#Recherche_Ligne_H = 320
#Separation_Ligne_V = 340
EndEnumeration
Global Dictionnaire.s, Organisation.l
#Espace_V = 10
#Espace_H = 5
#Espace_Ligne = 4
#Clavier_Nom = 25
#Clavier_Nom_H = 16
#Clavier_Bouton = 22
#Clavier_Bouton_Maj = 25
#Clavier_Espace = 5
#Clavier_NbLettre = 100
Structure Clavier_Info
Nom.s
Maj.l
Nom_ID.l
Menu_ID.l
Maj_ID.l
Active.l
Touche_ID.l[#Clavier_NbLettre]
Touche_Min.c[#Clavier_NbLettre]
Touche_Maj.c[#Clavier_NbLettre]
EndStructure
Global NewList Clavier.Clavier_Info()
#Categorie_Largeur = 150
#Categorie_Nb = 20
#Categorie_Texte_H = 16
Structure Categorie_Info
Nom.s
Ordre.l
Recherche.l
Nom_ID.l
Liste_ID.l
EndStructure
Global Dim Categorie.Categorie_Info(#Categorie_Nb)
#Texte_Nb = 20
Structure Titre_Info
Nom.s
Ordre.l
Recherche.l
EndStructure
Global Dim Titre.Titre_Info(#Texte_Nb)
Structure Definition_Info
id.l
Categorie.l[#Categorie_Nb]
Texte.s[#Texte_Nb]
Texte_ID.l[#Texte_Nb]
EndStructure
Global NewList Definition.Titre_Info()
Structure Page_Info
Win_ID.l
WebG_ID.l
Definition_ID.l
EndStructure
#Recherche_Largeur = 150
#Recherche_Texte_H = 16
Declare Sauver()
Procedure Gestion_Organisation(Type = 0)
Organisation = Type
If Organisation = #PB_MDI_Cascade
SetMenuItemState(0, #Menu_Organiser_Cascade, 1)
Else
SetMenuItemState(0, #Menu_Organiser_Cascade, 0)
EndIf
If Organisation = #PB_MDI_TileHorizontally
SetMenuItemState(0, #Menu_Organiser_Horizontal, 1)
Else
SetMenuItemState(0, #Menu_Organiser_Horizontal, 0)
EndIf
If Organisation = #PB_MDI_TileVertically
SetMenuItemState(0, #Menu_Organiser_Vertical, 1)
Else
SetMenuItemState(0, #Menu_Organiser_Vertical, 0)
EndIf
EndProcedure
Procedure Charger_Clavier()
; If ExamineDirectory(0, "Clavier\", "*.clv")
; While NextDirectoryEntry(0)
; FileType = DirectoryEntryType(0)
;
; If FileType = #PB_DirectoryEntry_File
; Fichier.s = DirectoryEntryName(0)
;
; If ReadFile(0, "Clavier\" + Fichier)
; AddElement(Clavier())
; Clavier()\Nom = StringField(Fichier, 1, ".")
; n = -1
; Maj = 0
; Repeat
; n + 1
; Caractere.c = ReadCharacter(0)
; If Caractere = 0
; Maj + 1
; n = -1
; Else
; If Maj
; Clavier()\Touche_Maj[n] = Caractere
; Else
; Clavier()\Touche_Min[n] = Caractere
; EndIf
; EndIf
; Until Eof(0)
;
; CloseFile(0)
; EndIf
;
; EndIf
;
; Wend
AddElement(Clavier())
Clavier()\Nom = "FR 1"
Clavier()\Active = 1
n = -1
For Caractere = 97 To 122
n + 1
Clavier()\Touche_Maj[n] = Caractere
Clavier()\Touche_Min[n] = Caractere
Next
AddElement(Clavier())
Clavier()\Nom = "FR 2"
Clavier()\Active = 1
n = -1
For Caractere = 97 To 122
n + 1
Clavier()\Touche_Maj[n] = Caractere
Clavier()\Touche_Min[n] = Caractere
Next
SortStructuredList(Clavier(), 2, OffsetOf(Clavier_Info\Nom), #PB_Sort_String)
n = #Menu_Clavier
ForEach Clavier()
Clavier()\Menu_ID = n
n + 1
Next
; EndIf
EndProcedure
Procedure Clavier_Majuscule()
If Clavier()\Maj
For n = 0 To #Clavier_NbLettre - 1
If Clavier()\Touche_Maj[n]
SetGadgetText(Clavier()\Touche_ID[n], Chr(Clavier()\Touche_Maj[n]))
EndIf
Next
Else
For n = 0 To #Clavier_NbLettre - 1
If Clavier()\Touche_Min[n]
SetGadgetText(Clavier()\Touche_ID[n], Chr(Clavier()\Touche_Min[n]))
EndIf
Next
EndIf
EndProcedure
Procedure Clavier_Creation()
If Clavier()\Active
Clavier()\Nom_ID = TextGadget(#PB_Any, 0, 0, #Clavier_Nom, #Clavier_Nom_H, Clavier()\Nom)
SetGadgetFont(Clavier()\Nom_ID, FontID(1))
Clavier()\Maj_ID = ButtonGadget(#PB_Any, 0, 0, #Clavier_Bouton_Maj, #Clavier_Bouton, "aA", #PB_Button_Toggle)
For n = 0 To #Clavier_NbLettre - 1
If Clavier()\Touche_Min[n]
Clavier()\Touche_ID[n] = ButtonGadget(#PB_Any, 0, 0, #Clavier_Bouton, #Clavier_Bouton, "")
Else
Break
EndIf
Next
Clavier_Majuscule() ; Laissez à la fin
Else
FreeGadget(Clavier()\Nom_ID)
FreeGadget(Clavier()\Maj_ID)
For n = 0 To #Clavier_NbLettre - 1
If Clavier()\Touche_ID[n]
FreeGadget(Clavier()\Touche_ID[n])
Clavier()\Touche_ID[n] = 0
EndIf
Next
EndIf
EndProcedure
Declare Fenetre_Dimension(Zone = -1)
Procedure Fenetre_Edition_Categorie()
If IsWindow(#MDI_Categorie) = 0
AddGadgetItem(#MDI, #MDI_Categorie, "Editer les catégories")
#MDI_Categorie_Texte_H = 32
If Organisation <> 0
SetGadgetState(#MDI, Organisation)
While WindowEvent() : Wend
EndIf
UseGadgetList(WindowID(0))
Fenetre_Dimension(#MDI_Categorie)
EndIf
EndProcedure
Procedure Fenetre_Edition_Titre()
If IsWindow(#MDI_Titre) = 0
AddGadgetItem(#MDI, #MDI_Titre, "Editer les titres")
#MDI_Titre_Texte_H = 32
If Organisation <> 0
SetGadgetState(#MDI, Organisation)
While WindowEvent() : Wend
EndIf
UseGadgetList(WindowID(0))
Fenetre_Dimension(#MDI_Titre)
EndIf
EndProcedure
Procedure Fenetre_Dimension(Zone = -1)
If Zone <= 0
y = 0
L = WindowWidth(0)
H = WindowHeight(0) - MenuHeight()
ForEach Clavier()
If Clavier()\Active = 1
x = #Clavier_Espace
ResizeGadget(Clavier()\Nom_ID, x, y + (#Clavier_Bouton - #Clavier_Nom_H) / 2, #PB_Ignore, #PB_Ignore) : x + #Clavier_Nom
ResizeGadget(Clavier()\Maj_ID, x, y, #PB_Ignore, #PB_Ignore) : x + #Clavier_Bouton_Maj + #Clavier_Espace
x2 = 0
For n = 0 To #Clavier_NbLettre - 1
If Clavier()\Touche_ID[n]
ResizeGadget(Clavier()\Touche_ID[n], x + x2, y, #PB_Ignore, #PB_Ignore)
x2 + #Clavier_Bouton
If x2 + x + #Clavier_Bouton > L And n < #Clavier_NbLettre - 1 And Clavier()\Touche_ID[n + 1]
x2 = 0
y + #Clavier_Bouton
EndIf
Else
Break
EndIf
Next
y + #Clavier_Bouton + #Clavier_Espace
EndIf
Next
ResizeGadget(#MDI, #Recherche_Largeur + #Espace_V + #Categorie_Largeur + #Espace_V, y, L - #Recherche_Largeur - #Espace_V - #Categorie_Largeur - #Espace_V, H - y)
x = 0
If y = 0
y = #Espace_H
EndIf
y2 = y
ResizeGadget(#Categorie_Ligne_H, x, y, #PB_Ignore, #PB_Ignore) : y + #Espace_Ligne
ResizeGadget(#Dictionnaire_Nom, x + #Espace_V, y, #PB_Ignore, #PB_Ignore) : y + #Categorie_Texte_H
ResizeGadget(#Dictionnaire_Liste, x, y, #PB_Ignore, #PB_Ignore) : y + GadgetHeight(#Dictionnaire_Liste) + #Espace_H
ResizeGadget(#Categorie_Ligne_H + 1, x, y, #PB_Ignore, #PB_Ignore) : y + #Espace_Ligne
ResizeGadget(#Categorie_Nom, x + #Espace_V, y, #PB_Ignore, #PB_Ignore) : y + #Categorie_Texte_H
y = y2
x = #Categorie_Largeur + #Espace_V
ResizeGadget(#Recherche_Ligne_H, x, y, #PB_Ignore, #PB_Ignore) : y + #Espace_Ligne
ResizeGadget(#Recherche_Nom, x + #Espace_V, y, #PB_Ignore, #PB_Ignore) : y + #Recherche_Texte_H
ResizeGadget(#Recherche_Texte, x, y, #PB_Ignore, #PB_Ignore) : y + GadgetHeight(#Recherche_Texte)
y + #Espace_H
ResizeGadget(#Recherche_Categories, x, y, #PB_Ignore, #PB_Ignore) : y + GadgetHeight(#Recherche_Categories)
ResizeGadget(#Recherche_Titres, x, y, #PB_Ignore, #PB_Ignore) : y + GadgetHeight(#Recherche_Titres)
y + #Espace_H
ResizeGadget(#Recherche_Lancer, x, y, #PB_Ignore, #PB_Ignore) : y + GadgetHeight(#Recherche_Lancer)
ResizeGadget(#Recherche_Defaut, x, y, #PB_Ignore, #PB_Ignore) : y + GadgetHeight(#Recherche_Defaut)
y + #Espace_H
ResizeGadget(#Recherche_Ligne_H + 1, x, y, #PB_Ignore, #PB_Ignore) : y + #Espace_Ligne
ResizeGadget(#Resultat_Nom, x + #Espace_V, y, #PB_Ignore, #PB_Ignore) : y + #Recherche_Texte_H
ResizeGadget(#Resultat_Liste, x, y, #PB_Ignore, H - y - #Espace_H)
If Organisation <> 0
SetGadgetState(#MDI, Organisation)
While WindowEvent() : Wend
EndIf
EndIf
; RedrawWindow_(GadgetID(#MDI), 0, 0, 1)
If IsWindow(#MDI_Categorie) And (Zone < 0 Or Zone = #MDI_Categorie)
x = 0
y = 0
L = WindowWidth(#MDI_Categorie)
H = WindowHeight(#MDI_Categorie)
EndIf
If IsWindow(#MDI_Titre) And (Zone < 0 Or Zone = #MDI_Titre)
x = 0
y = 0
L = WindowWidth(#MDI_Categorie)
H = WindowHeight(#MDI_Categorie)
EndIf
EndProcedure
Charger_Clavier()
; Création de la fenêtre et de la GadgetList
If OpenWindow(0, 0, 0, 500, 500, "Dictionnaire", #PB_Window_SystemMenu | #PB_Window_ScreenCentered | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget | #PB_Window_Maximize | #PB_Window_Invisible | #PB_Window_SizeGadget) = 0 Or CreateGadgetList(WindowID(0)) = 0
End
EndIf
;{- Police
LoadFont(0, "Tahoma", 8, #PB_Font_HighQuality)
LoadFont(1, "Tahoma", 8, #PB_Font_HighQuality | #PB_Font_Bold)
SetGadgetFont(#PB_Default, FontID(0))
;}
;{- Menu
If CreateMenu(0, WindowID(0))
MenuTitle("Edition")
MenuItem(#Menu_Edition_Definition_Editer, "Ajouter une définition")
MenuItem(#Menu_Edition_Definition_Editer, "Editer la définition")
MenuBar()
MenuItem(#Menu_Edition_Categorie, "Editer les catégories")
MenuItem(#Menu_Edition_Titre, "Editer les titres")
MenuTitle("Options")
OpenSubMenu("Claviers")
ForEach Clavier()
MenuItem(Clavier()\Menu_ID, Clavier()\Nom)
SetMenuItemState(0, Clavier()\Menu_ID, Clavier()\Active)
Next
CloseSubMenu()
MenuBar()
MenuItem(#Menu_Option_Langue, "Select language")
MenuTitle("Fenêtres")
MenuItem(#Menu_Organiser_Cascade, "Cascade")
MenuItem(#Menu_Organiser_Horizontal, "Horizontal")
MenuItem(#Menu_Organiser_Vertical, "Vertical")
Gestion_Organisation(Organisation)
EndIf
;}
;{- Images
Couleur_Fond = GetSysColor_(#COLOR_3DFACE)
CreateImage(#Categorie_Ligne_H, #Categorie_Largeur, 2)
StartDrawing(ImageOutput(#Categorie_Ligne_H))
StopDrawing()
CreateImage(#Recherche_Ligne_H, #Recherche_Largeur, 2)
StartDrawing(ImageOutput(#Recherche_Ligne_H))
StopDrawing()
;}
;{- Gadgets
ForEach Clavier()
If Clavier()\Active
Clavier_Creation()
EndIf
Next
MDIGadget(#MDI, 0, 0, 400, 400, 2, #Menu_MDI)
; AddGadgetItem(#MDI, #PB_Any, "Blabla 1")
; AddGadgetItem(#MDI, #PB_Any, "Blabla 2")
For n = 0 To 1
ImageGadget(#Categorie_Ligne_H + n, 0, 0, #Categorie_Largeur, 2, ImageID(#Categorie_Ligne_H))
Next
TextGadget(#Dictionnaire_Nom, 0, 0, #Categorie_Largeur - #Espace_V, #Categorie_Texte_H, "Dictionnaire")
SetGadgetFont(#Dictionnaire_Nom, FontID(1))
ComboBoxGadget(#Dictionnaire_Liste, 0, 0, #Categorie_Largeur, 50)
TextGadget(#Categorie_Nom, 0, 0, #Categorie_Largeur - #Espace_V, #Categorie_Texte_H, "Catégories")
SetGadgetFont(#Categorie_Nom, FontID(1))
For n = 0 To 1
ImageGadget(#Recherche_Ligne_H + n, 0, 0, #Recherche_Largeur, 2, ImageID(#Recherche_Ligne_H))
Next
TextGadget(#Recherche_Nom, 0, 0, #Recherche_Largeur - #Espace_V, #Recherche_Texte_H, "Rechercher")
SetGadgetFont(#Recherche_Nom, FontID(1))
StringGadget(#Recherche_Texte, 0, 0, #Recherche_Largeur, GadgetHeight(#Dictionnaire_Liste), "")
ListIconGadget(#Recherche_Categories, 0, 0, #Recherche_Largeur, 100, "Dans les catégories :", #Recherche_Largeur - 30, #PB_ListIcon_FullRowSelect | #PB_ListIcon_CheckBoxes)
ListIconGadget(#Recherche_Titres, 0, 0, #Recherche_Largeur, 100, "Dans les titres :", #Recherche_Largeur - 30, #PB_ListIcon_FullRowSelect | #PB_ListIcon_CheckBoxes)
ButtonGadget(#Recherche_Lancer, 0, 0, #Recherche_Largeur, 25, "Lancer", #PB_Button_Default)
SetGadgetFont(#Recherche_Lancer, FontID(1))
ButtonGadget(#Recherche_Defaut, 0, 0, #Recherche_Largeur, 21, "Effacer")
TextGadget(#Resultat_Nom, 0, 0, #Recherche_Largeur - #Espace_V, #Recherche_Texte_H, "Résultats")
SetGadgetFont(#Resultat_Nom, FontID(1))
ListViewGadget(#Resultat_Liste, 0, 0, #Recherche_Largeur, 100)
;}
Fenetre_Dimension()
HideWindow(0, 0)
Repeat
Event = WaitWindowEvent()
Select EventWindow() ; Fenêtre de provenance
Case 0
Select Event ; Evènement
Case #PB_Event_Menu
Select EventMenu()
;{ Menu "Fenêtre"
Case #Menu_Organiser_Cascade
SetGadgetState(#MDI, #PB_MDI_Cascade )
While WindowEvent() : Wend
Gestion_Organisation(#PB_MDI_Cascade)
Case #Menu_Organiser_Horizontal
SetGadgetState(#MDI, #PB_MDI_TileHorizontally )
While WindowEvent() : Wend
Gestion_Organisation(#PB_MDI_TileHorizontally)
Case #Menu_Organiser_Vertical
SetGadgetState(#MDI, #PB_MDI_TileVertically )
While WindowEvent() : Wend
Gestion_Organisation(#PB_MDI_TileVertically)
;}
;{Menu edition
Case #Menu_Edition_Categorie
Fenetre_Edition_Categorie()
Case #Menu_Edition_Titre
Fenetre_Edition_Titre()
;}
Case #Menu_Option_Langue
Default
ForEach Clavier()
If EventMenu() = Clavier()\Menu_ID
Clavier()\Active = Clavier()\Active ! 1
Clavier_Creation()
SetMenuItemState(0, Clavier()\Menu_ID, Clavier()\Active)
Fenetre_Dimension()
EndIf
Next
EndSelect
Case #PB_Event_Gadget
ForEach Clavier()
Select EventGadget() ; Gadgets
Case Clavier()\Maj_ID
Clavier()\Maj = GetGadgetState(Clavier()\Maj_ID)
Clavier_Majuscule()
EndSelect
Next
Case #PB_Event_SizeWindow
Fenetre_Dimension(0)
Case #PB_Event_CloseWindow
Quitter = 1
EndSelect
Case #MDI_Categorie
Select Event
Case #PB_Event_SizeWindow
Fenetre_Dimension(#MDI_Categorie)
Gestion_Organisation(0)
Case #PB_Event_MoveWindow
Gestion_Organisation(0)
Case #PB_Event_CloseWindow
CloseWindow(#MDI_Categorie)
EndSelect
Case #MDI_Titre
Select Event
Case #PB_Event_SizeWindow
Fenetre_Dimension(#MDI_Categorie)
Gestion_Organisation(0)
Case #PB_Event_MoveWindow
Gestion_Organisation(0)
Case #PB_Event_CloseWindow
CloseWindow(#MDI_Categorie)
EndSelect
Default
EndSelect
Until Quitter
End