Page 1 sur 3

WindowConstructeur version2

Publié : jeu. 23/mai/2013 14:54
par MLD
Bonjour a tous

Il me semble que cette version répond a 80% des utilisateurs. Bien entendu ceci reste assez
minimaliste, mais évite de frapper souvent les mêmes codes, avec seulement les dimensions des
fenêtres qui changent.
Cette version n'est certainement pas la dernière, car pendant que j'écrivais le code des idées me sont venues a l'esprit.
Rendre les fenêtres indépendantes de la résolution d'écran.(Une fenêtre qui fait
200mm X 150mm fera toujours 200x150mm quelque soit la résolution).Ceci suppose que
les gadgets suivent le même principe.
Un système innovant de déplacement des gadgets sur le prototype de fenêtre en cours
de développement, ect.
Donc la prochaine version devra intégrer les gadgets. (Ceci est une autre paire de manches, qui
demande beaucoup de réflexions.
Par ailleurs du boulot m'arrive, qui demande pas mal de temps. Donc la version3,Ce n'est pas pour demain.
Je suis nul en programmation LINUX ou MAC, mais si certains ont envis de se mettre a la tâche pour compléter cet outil, qu'ils me contact en MP.

Ce code est libre, vous pouvez le copier, le modifier. Par contre pour l'intégré a un autre
logiciel, une demande sur ce Fofo serait la bienvenue.

Merci de me faire part de bugs éventuels.

Code rectifié

Code : Tout sélectionner

;*****************************************
; WinConstructeur V2.1 23/05/2013        *
; Programmer par MLD Compilation PB 5.11 *
;*****************************************
Enumeration
 #WinCtr = 1
;>>>>> les Frames
 #Frame3D_idfen = 2
 #Frame3D_titre = 3
 #Frame3D_attrib = 4
 #Frame3D_wincolor = 5
 #Frame3D_tailpos = 6
 #Frame3D_opt = 7
 #Frame3D_loop = 8
 #Frame3D_fonct = 9
 #Frame3D_transp = 10
;>>>>> les CheckBoxs
 #Check_SystMenu = 20   ;attributs
 #Check_MinimizeGad = 21 
 #Check_MaximizeGad = 22 
 #Check_Invisible = 23
 #Check_Tool = 24
 #Check_Maximize  = 25
 #Check_Minimize  = 26
 #Check_Border  = 27
 #Check_ScreenCentered = 28 ;Taille/position
 #Check_Doubletrame = 29
 #Check_SizeGadget = 30
 #Check_Bound = 31
 #Check_Invisiblebar = 32 ;Options
 #Check_Wincolor = 33
 #Check_Statbar = 34
 #Check_StickyWin = 35
 #Check_Transp = 36
 #Check_Loop_1  = 37 ;boucle
 #Check_Loop_2 = 38;boucle
 #Check_Loop_3 = 39;boucle
 #Check_Hombre = 40
 #Check_Cadre = 41
 #Check_Depsour = 42
 #Check_Loop_4 = 43;boucle
 #Check_Loop_5 = 44;boucle
;>>>>> les TextGadgets
 #Text_id = 60
 #Text_posX = 61
 #Text_posY = 62
 #Text_tailarg = 63
 #Text_tailhaut = 64
 #Text_utilbound = 65
 #Text_Bdlargmin = 66
 #Text_bdhautmin = 67
 #Text_Bdlargmax = 68
 #Text_bdhautmax = 69
 #Text_col1 = 70
 #Text_col2 = 71
 #Text_col3 = 72
 #Text_col4 = 73
 #Text_col5 = 74
 #Text_col6 = 75
 #Text_colcod = 76
 #Text_colG = 77
 #Text_Transp = 78
 #Text_statbarnbchamp = 79
 ;#Text_idfenmere = 80
;>>>>> les StringGadgets
 #String_Winid = 100
 #String_Titre = 101
 #String_PosX = 102
 #String_PosY = 103
 #String_Larg = 104
 #String_Haut = 105
 ;#string_idfenmere = 106
 #String_BdL_Mini = 107
 #String_BdH_Mini = 108
 #String_BdL_Maxi = 109
 #String_BdH_Maxi = 110
 #String_Statbar = 111
;>>>>> les boutons
 #Bt_Cop = 125
 #Bt_enrmod = 126
 #Bt_Ouvmod = 127
 #Bt_Raz = 128
 #Bt_Stop = 129 
 #Bt_coloreq = 130
;>>>>> les autres gadgets 
 #ftest = 140
 #trck_R = 141
 #trck_G = 142
 #trck_B = 143
 #Trakb_Winctr = 144 
 #Edit = 140
 #StatusBar = 145
 #ftestStatusBar = 146
 #timer1 = 147
 #fichmod = 148
;>>>>>> la petite fenêtre
 #Wenr
 #text_1
 #text_2
 #bt_1
 #bt_2
 #list1 
EndEnumeration
Declare fentest()
Declare contructeurwin()
Declare fendepart()
Declare affcodecolor()
Declare trScrCent()
Declare wBound(dpwb.i)
Declare alerte(indal)
Declare transp()
Global Titr$
Global X,Y,Lrg,Htr,Btc,Bt1,Bt2,Typ,Ouv,Viv,Rds,Ctf
Global Wblmin$,Wblmax$,WbHmin$,WbHmax$,choixmod$ 
Global sap.b,nbbstat.l
Procedure MouseHook(nCode, wParam, lParam)
  If wParam = #WM_LBUTTONUP
   sap.b = 1
  ElseIf wParam = #WM_MOUSEMOVE Or wParam = #WM_LBUTTONDOWN
    sap.b = 0 
  EndIf
  ProcedureReturn CallNextHookEx_(0, nCode, wParam, lParam)
EndProcedure

Procedure StatuBarWindowCallback(hWnd.i,uMsg.i,wParam.i,lParam.i);+++++ .i au lieu de .l
 Structure ODSBTEXT
   szText.i
   clrFront.i
EndStructure
Global osbt.ODSBTEXT
osbt\clrFront = #Red;couleur du text
    Select uMsg
        Case #WM_DRAWITEM
      Protected *lpdis.DRAWITEMSTRUCT = lParam      
      If *lpdis\hWndItem = StatusBarID(#StatusBar)
         Protected *osbt.ODSBTEXT = *lpdis\itemData
         SetTextColor_(*lpdis\hDC,*osbt\clrFront)
         SetBkMode_(*lpdis\hDC,1)         
         DrawText_(*lpdis\hDC,*osbt\szText,-1,*lpdis\rcItem,#DT_SINGLELINE | #DT_VCENTER |#DT_CENTER)            
      EndIf
    EndSelect
ProcedureReturn #PB_ProcessPureBasicEvents
EndProcedure

Procedure ToolTipMic(WindowNumber.i,GadgetNumber.i,Text.s)
  Protected Tooltip.l,Balloon.TOOLINFO
  Tooltip=CreateWindowEx_(0,"ToolTips_Class32","",#WS_POPUP | #TTS_NOPREFIX | #TTS_BALLOON,0,0,0,0,WindowID(WindowNumber),0,GetModuleHandle_(0),0)
  SendMessage_(Tooltip,#TTM_SETTIPTEXTCOLOR,GetSysColor_(#COLOR_INFOTEXT),0)
  SendMessage_(Tooltip,#TTM_SETTIPBKCOLOR,$5E5EB0,0)
  SendMessage_(Tooltip,#TTM_SETMAXTIPWIDTH,0,180)
  Balloon\cbSize=SizeOf(TOOLINFO)
  Balloon\uFlags=#TTF_IDISHWND | #TTF_SUBCLASS
  If IsGadget(GadgetNumber)
    Balloon\hwnd=GadgetID(GadgetNumber)
    Balloon\uId=GadgetID(GadgetNumber)
  Else
    Balloon\hwnd=GadgetNumber
    Balloon\uId=GadgetNumber
  EndIf
  Balloon\lpszText=@Text
  SendMessage_(Tooltip,#TTM_ADDTOOL,0,@Balloon)
  ProcedureReturn Tooltip
EndProcedure
Procedure FreeBalloonTooltip(Tooltip.i)
  DestroyWindow_(Tooltip.i)
EndProcedure

Procedure Interaction(action.i)
 Select action
  Case 20 ;#Check_SystMenu
   SetGadgetState(41,0):SetGadgetState(42,0)
   DisableGadget(29,0): DisableGadget(41,1):DisableGadget(42,1)
   If GetGadgetState(21)= 1 Or GetGadgetState(22)= 1 
    SetGadgetState(20,0)
   Else
    SetGadgetState(20,1):SetGadgetState(24,0):SetGadgetState(27,0)
   EndIf
  Case 21;#Check_MinimizeGad  
   SetGadgetState(20,0):SetGadgetState(24,0):SetGadgetState(27,0)
   SetGadgetState(41,0):SetGadgetState(42,0)
   DisableGadget(29,0):DisableGadget(41,1):DisableGadget(42,1)
  Case 22 ;#Check_MaximizeGad
   SetGadgetState(20,0):SetGadgetState(24,0):SetGadgetState(27,0)
   SetGadgetState(41,0):SetGadgetState(42,0)
   DisableGadget(29,0):DisableGadget(41,1):DisableGadget(42,1)
  Case 24 ;#Check_Tool
   SetGadgetState(20,1):SetGadgetState(21,0):SetGadgetState(22,0)
   SetGadgetState(27,0):SetGadgetState(33,0):SetGadgetState(29,0)
   SetGadgetState(41,0):SetGadgetState(42,0)
   DisableGadget(29,1):DisableGadget(41,1):DisableGadget(42,1)
   If GetGadgetState(24) = 1
    SetGadgetState(36,0):DisableGadget(36,1)
   Else
    DisableGadget(36,0)
   EndIf 
   affcodecolor()
  Case 25 ; #Check_Maximize 
   If GetGadgetState(25) = 1
    SetGadgetState(26,0)
   EndIf 
  Case 26 ;#Check_Minimize
   If GetGadgetState(26) = 1
    SetGadgetState(25,0)
   EndIf  
  Case 27 ;#Check_Border
   If GetGadgetState(27) = 1
    SetGadgetState(20,0):SetGadgetState(21,0):SetGadgetState(22,0)
    SetGadgetState(24,0):SetGadgetState(30,0):SetGadgetState(31,0)
    SetGadgetState(29,0):SetGadgetState(41,0):SetGadgetState(42,0)
    DisableGadget(29,1):DisableGadget(41,0):DisableGadget(42,0) 
    wBound(1) 
   Else
    SetGadgetState(41,0):SetGadgetState(42,0) 
    DisableGadget(29,0):DisableGadget(41,1):DisableGadget(42,1)
   EndIf 
  Case 28 ;#Check_ScreenCentered
   trScrCent()
  Case 30 ;#Check_SizeGadget
   If GetGadgetState(27) <> 1
    If GetGadgetState(30)= 0
     SetGadgetState(31,0)
     SetGadgetColor(65,#PB_Gadget_FrontColor,$D9C2BD)
     wBound(1)
    Else
     SetGadgetColor(65,#PB_Gadget_FrontColor,$0)
    EndIf 
   Else
    SetGadgetState(30,0)
    alerte(2)   
   EndIf 
  Case 31 ;#Check_Bound
   If GetGadgetState(30)= 1
    wBound(1)
   Else
    SetGadgetState(31,0) 
   EndIf
  Case 32 ;#Check_Invisiblebar
   If GetGadgetState(24) <> 1 
    If GetGadgetState(32) = 1
     contructeurwin()
    EndIf
   Else 
    SetGadgetState(32,0) 
    alerte(3)
   EndIf  
  Case 33 ;#Check_Wincolor
   If GetGadgetState(24)<> 1
     affcodecolor()
   Else
    SetGadgetState(33,0)
    alerte(1)
   EndIf    
  Case 36 ;#Check_Transp
   If GetGadgetState(36) <> 1
    SetGadgetText(78,"255")
    SetGadgetState(#Trakb_Winctr,255)
    contructeurwin()
   EndIf 
  Case 37 ;#Check_Loop_1
   SetGadgetState(37,1):SetGadgetState(38,0):SetGadgetState(39,0)
   SetGadgetState(43,0):SetGadgetState(44,0)
   contructeurwin()
  Case 38 ;#Check_Loop_2
   SetGadgetState(37,0):SetGadgetState(38,1):SetGadgetState(39,0)
   SetGadgetState(43,0):SetGadgetState(44,0)
   contructeurwin()
  Case 39 ;#Check_Loop_3
   SetGadgetState(37,0):SetGadgetState(38,0):SetGadgetState(39,1)
   SetGadgetState(43,0):SetGadgetState(44,0)
   contructeurwin()  
  Case 43 ;#Check_Loop_4
   SetGadgetState(37,0):SetGadgetState(38,0):SetGadgetState(39,0)
   SetGadgetState(43,1):SetGadgetState(44,0)
   contructeurwin()  
  Case 44 ;#Check_Loop_5
   SetGadgetState(37,0):SetGadgetState(38,0):SetGadgetState(39,0)
   SetGadgetState(43,0):SetGadgetState(44,1)
   contructeurwin()  
  Case 141 ;#trck_R
   affcodecolor()
  Case 142 ;#trck_G
   affcodecolor()
  Case 143 ;#trck_B
   affcodecolor()  
  Case 144 ;#Trakb_Winctr
   If GetGadgetState(36) = 1
    SetGadgetText(78,Str(GetGadgetState(144)))
    transp()
   Else
    SetGadgetState(144,255)
   EndIf 
 EndSelect
 ProcedureReturn 0
EndProcedure

Procedure alerte(indal)
 Select indal
  Case 1
   osbt\szText = @ "Pas de couleur de fond avec une fenêtre Tool"
  Case 2
   osbt\szText = @ "Pas de Resize possible avec une fenêtre Borderless"
  Case 3
   osbt\szText = @ "Une fenêtre Tool est en natif invisible dans la barre de tâche"
  Case 4
   osbt\szText = @ "Le model de fenêtre est enregistré" 
  Case 5
   osbt\szText = @ "Interdit avec la boucle Minimum 1"  
 EndSelect
 SendMessage_(StatusBarID(#StatusBar),#SB_SETTEXT,1 | #SBT_OWNERDRAW,osbt)
EndProcedure

Procedure Raz() ;ok
For b = 20 To 44
 SetGadgetState(b,0)
Next 
SetGadgetState(20,1):SetGadgetState(38,1):SetGadgetState(144,255)
DisableGadget(41,1):DisableGadget(29,0):DisableGadget(42,1)
SetGadgetText(100,"Ma_fen"):SetGadgetText(101,"Ma Fenêtre")
SetGadgetText(102,"500"):SetGadgetText(103,"200")
SetGadgetText(104,"400"):SetGadgetText(105,"400")
SetGadgetText(111,"3"):SetGadgetText(78,"255")
trScrCent()
wBound(1)
affcodecolor()
fendepart()
EndProcedure

Procedure transp();transparence ok
 If GetGadgetState(36) = 1 And sap.b = 1
  contructeurwin()
 EndIf 
EndProcedure

Procedure colorRequest()
Couleur = ColorRequester() 
If Couleur > -1
 SetGadgetState(#trck_B,Blue(Couleur))
 SetGadgetState(#trck_G,Green(Couleur))
 SetGadgetState(#trck_R,Red(Couleur))
 affcodecolor()
EndIf
EndProcedure
 
 Procedure affcodecolor();ok
  While WindowEvent() : Wend 
  If GetGadgetState(33)= 1
   dpcolor.b = 0
   DisableGadget(141,0):DisableGadget(142,0):DisableGadget(143,0):DisableGadget(130,0)
   SetGadgetText(73,"$" + Hex(GetGadgetState(#trck_R)))
   SetGadgetText(74,"$" + Hex(GetGadgetState(#trck_G)))
   SetGadgetText(75,"$" + Hex(GetGadgetState(#trck_B)))
   SetGadgetText(76,GetGadgetText(75)+ Hex(GetGadgetState(#trck_G))+ Hex(GetGadgetState(#trck_R)))
   SetGadgetColor(77,#PB_Gadget_BackColor,RGB(GetGadgetState(#trck_R),GetGadgetState(#trck_G),GetGadgetState(#trck_B)))
   If GetGadgetState(#Check_Wincolor)= 1 And  sap.b = 1
   contructeurwin()
   EndIf
  Else
   DisableGadget(141,1):DisableGadget(142,1):DisableGadget(143,1):DisableGadget(130,1)
   SetGadgetColor(77,#PB_Gadget_BackColor,GetWindowColor(#WinCtr))
   SetGadgetState(#trck_R,0):SetGadgetText(73,"$00")
   SetGadgetState(#trck_G,0):SetGadgetText(74,"$00")
   SetGadgetState(#trck_B,0):SetGadgetText(75,"$00")
   SetGadgetText(76,"$000000")
   contructeurwin()
  EndIf
 EndProcedure 

Procedure trScrCent();ok
 If GetGadgetState(28) = #PB_Checkbox_Checked
  SetGadgetColor(102,#PB_Gadget_FrontColor,$D9C2BD)
  SetGadgetColor(103,#PB_Gadget_FrontColor,$D9C2BD)
  SetGadgetColor(102,#PB_Gadget_FrontColor,$EEDFDB)
  SetGadgetColor(103,#PB_Gadget_FrontColor,$EEDFDB)
  SendMessage_(GadgetID(102),#EM_SETREADONLY,1,0) 
  SendMessage_(GadgetID(103),#EM_SETREADONLY,1,0)
 Else
  SetGadgetColor(102,#PB_Gadget_FrontColor,$0)
  SetGadgetColor(103,#PB_Gadget_FrontColor,$0)
  SendMessage_(GadgetID(102),#EM_SETREADONLY,0,0) 
  SendMessage_(GadgetID(103),#EM_SETREADONLY,0,0)
 EndIf
EndProcedure

Procedure wBound(dpwp.i) ;ok
 If GetGadgetState(31)= 1
  For b = 66 To 69
   SetGadgetColor(b,#PB_Gadget_FrontColor,$0)
  Next
  For bb = 107 To 110
   SendMessage_(GadgetID(bb),#EM_SETREADONLY,0,0)
   SetGadgetColor(bb,#PB_Gadget_FrontColor,$0)
  Next  
  Wblmin$ = GetGadgetText(107)
  wblmax$ = GetGadgetText(109)
  Wbhmin$ = GetGadgetText(108)
  Wbhmax$ = GetGadgetText(110)
  If dpwp = 1
   contructeurwin()
  EndIf 
 Else
  For b = 66 To 69
   SetGadgetColor(b,#PB_Gadget_FrontColor,$D9C2BD)
  Next
  For bb = 107 To 110
   SendMessage_(GadgetID(bb),#EM_SETREADONLY,1,0)
   SetGadgetColor(bb,#PB_Gadget_FrontColor,$D9C2BD)
  Next 
 EndIf  
EndProcedure

Procedure fendepart() ;ok
ClearGadgetItems(#Edit)
AddGadgetItem(#Edit,0,";")
AddGadgetItem(#Edit,1,"Enumeration")
AddGadgetItem(#Edit,2," #" + GetGadgetText(#String_Winid))
AddGadgetItem(#Edit,3,"EndEnumeration")
AddGadgetItem(#Edit,4,"")
AddGadgetItem(#Edit,5,"")
AddGadgetItem(#Edit,6,"OpenWindow(" + GetGadgetItemText(#Edit,2)+ ",500,200,400,400," + Chr(34) + GetGadgetText(#String_Titre) + Chr(34) + ", #PB_Window_SystemMenu)")
AddGadgetItem(#Edit,7,"")
AddGadgetItem(#Edit,8,"; Ici vos gadgets")
For z  = 9 To 11 
 AddGadgetItem(#Edit,z,"") 
Next 
AddGadgetItem(#Edit,12,";  Boucle générale")
AddGadgetItem(#Edit,13,"Repeat") 
AddGadgetItem(#Edit,14," Event = WaitWindowEvent()")
For zz  = 15 To 17 
 AddGadgetItem(#Edit,zz,"")
Next
AddGadgetItem(#Edit,18,"Until Event = #PB_Event_CloseWindow") 
AddGadgetItem(#Edit,19,"End")
a$ = GetGadgetText(#String_Titre)
OpenWindow(#ftest,500,200,400,400,a$,#PB_Window_SystemMenu)
SetActiveWindow(#WinCtr)
SendMessage_(GadgetID(#Edit),#EM_SCROLL,#SB_BOTTOM,0);en bas
EndProcedure

Procedure ctl()
 nl.l = CountGadgetItems(#Edit)+ 1
 ProcedureReturn nl.l
EndProcedure 

Procedure contructeurwin()
 Btc = 0 : Bt1 = 0 : Bt2 = 0 :Typ = 0 : Ouv = 0 : Viv = 0 : Rds = 0 : Ctf = 0 ;: dp = 0
 fn$ = ")"
 sp$ = " " + Chr(124)+ " ";"|"
;¤¤¤¤¤¤¤¤¤¤¤¤¤¤ id,placement,dimensions,titre 
 id$ = "#" + GetGadgetText(#String_Winid)
 If GetGadgetState(#Check_ScreenCentered) <> 1 
  X$ = "," + GetGadgetText(#String_PosX):X = Val(GetGadgetText(#String_PosX))
  Y$ = "," + GetGadgetText(#String_PosY):Y = Val(GetGadgetText(#String_PosY))
 Else
  X$ = "," + "0":X = 0
  Y$ = "," +"0" :y = 0
 EndIf
 Lrg$ = "," + GetGadgetText(#String_Larg) :Lrg = Val(GetGadgetText(#String_Larg)) 
 Htr$ = "," + GetGadgetText(#String_Haut) :Htr = Val(GetGadgetText(#String_Haut)) 
 TitrEcr$ = Chr(34) + GetGadgetText(#String_Titre) + Chr(34): Titr$ = GetGadgetText(#String_Titre)
 Cw_1$ = "OpenWindow(" + id$ + X$ + Y$ + Lrg$ + Htr$ + "," + TitrEcr$  + ","
;¤¤¤¤¤¤¤¤¤¤¤¤¤¤ les boutons de fenêtres  
 If GetGadgetState(#Check_SystMenu) = 1 Or GetGadgetState(#Check_SystMenu) = 0 And GetGadgetState(#Check_MinimizeGad) = 0 And GetGadgetState(#Check_MaximizeGad) = 0 
  Cw_2$ = "#PB_Window_SystemMenu":Btc = #PB_Window_SystemMenu
 EndIf      
 If GetGadgetState(#Check_SystMenu) = 0 And GetGadgetState(#Check_MinimizeGad) = 1 And GetGadgetState(#Check_MaximizeGad) = 0 
  Cw_2$ = "#PB_Window_MinimizeGadget" :Bt1 = #PB_Window_MinimizeGadget
 EndIf
 If GetGadgetState(#Check_SystMenu) = 0 And GetGadgetState(#Check_MinimizeGad) = 0 And GetGadgetState(#Check_MaximizeGad) = 1 
  Cw_2$ = "#PB_Window_MaximizeGadget": Bt2 = #PB_Window_MaximizeGadget
 EndIf
 If GetGadgetState(#Check_SystMenu) = 0 And GetGadgetState(#Check_MinimizeGad) = 1 And GetGadgetState(#Check_MaximizeGad) = 1 
  Cw_2$ = "#PB_Window_MinimizeGadget" + sp$ + "#PB_Window_MaximizeGadget" 
  Bt1 = #PB_Window_MinimizeGadget:Bt2 = #PB_Window_MaximizeGadget 
 EndIf
;¤¤¤¤¤¤¤¤¤¤¤¤¤¤ les types de fenêtres (tool,bordeless)
 If GetGadgetState(#Check_Tool) = 1 Or GetGadgetState(#Check_Border) = 1
  If GetGadgetState(#Check_Tool) = 1
   Cw_3$ = sp$ + "#PB_Window_Tool" : Typ = #PB_Window_Tool
   CwP_1$ = Cw_1$ + Cw_2$ + Cw_3$ 
  EndIf
  If GetGadgetState(#Check_Border) = 1
   Cw_3$ = "#PB_Window_BorderLess": Btc = 0 :Typ = #PB_Window_BorderLess
   CwP_1$ = Cw_1$ + Cw_3$ 
  EndIf
 Else 
  CwP_1$ = Cw_1$ + Cw_2$ 
 EndIf
;¤¤¤¤¤¤¤¤¤¤¤¤¤¤ les ouvertures des fenêtres
 If GetGadgetState(#Check_Maximize) = 1
  Cw_4$ = sp$ + "#PB_Window_Maximize" 
  CwP_1$ = CwP_1$ + Cw_4$ :Ouv = #PB_Window_Maximize     
 EndIf
 If GetGadgetState(#Check_Minimize) = 1
  Cw_4$ = sp$ + "#PB_Window_Minimize"
  CwP_1$ = CwP_1$ + Cw_4$ :Ouv = #PB_Window_Minimize 
 EndIf
;¤¤¤¤¤¤¤¤¤¤¤¤¤¤ visible/invisible 
 If GetGadgetState(#Check_Invisible) = 1 Or GetGadgetState(#Check_Doubletrame) = 1 Or GetGadgetState(#Check_Hombre) = 1
  Cw_5$ = sp$ + "#PB_Window_Invisible"
  CwP_1$ = CwP_1$ + Cw_5$ :Viv = #PB_Window_Invisible
 EndIf
;¤¤¤¤¤¤¤¤¤¤¤¤¤¤ redimensionne les fenêtres  
 If GetGadgetState(#Check_SizeGadget) = 1
  Cw_6$ = sp$ + "#PB_Window_SizeGadget": Rds = #PB_Window_SizeGadget 
  CwP_1$ = CwP_1$ + Cw_6$ 
 EndIf
;¤¤¤¤¤¤¤¤¤¤¤¤¤¤ centrage des fenêtres
 If GetGadgetState(#Check_ScreenCentered) = 1
  Cw_7$ = sp$ + "#PB_Window_ScreenCentered" :Ctf = #PB_Window_ScreenCentered
  CwP_1$ = CwP_1$ + Cw_7$ 
 EndIf 
 If GetGadgetState(#Check_Invisiblebar) = 1 ;invible dans la barre de tache
 Cwtot$ = CwP_1$ + ",FindWindow_(0," + Chr(34)+ "program manager" + Chr(34)+")" + fn$
 Else
  Cwtot$ = CwP_1$  + fn$;***************************************************
 EndIf
 ClearGadgetItems(#Edit) ;Ecriture du code dans l'editeur
 AddGadgetItem(#Edit,0,";")
 AddGadgetItem(#Edit,ctl(),"Enumeration")
 AddGadgetItem(#Edit,ctl()," " + id$)
 If GetGadgetState(#Check_Statbar) = 1;Statusbar
  AddGadgetItem(#Edit,ctl()," " + "#StatusBar")
 EndIf
 AddGadgetItem(#Edit,ctl(),"EndEnumeration") 
 AddGadgetItem(#Edit,ctl(),""):AddGadgetItem(#Edit,ctl(),"") 
 AddGadgetItem(#Edit,ctl(),Cwtot$);fin ecriture
;¤¤¤¤¤¤¤¤¤¤¤¤¤¤ Fin OpenWindow début des options
 If GetGadgetState(#Check_Doubletrame) = 1 ;double trame
  WDT$ = "SetWindowLongPtr_(WindowID(" + id$ + "),#GWL_EXSTYLE,$2300)"
  AddGadgetItem(#Edit,ctl(),WDT$);ecriture
 EndIf
 If GetGadgetState(#Check_Hombre) = 1 ;ombre
  WOMB$ = "SetClassLongPtr_(WindowID(" + id$ + "),#GCL_STYLE,$00020000)"
  AddGadgetItem(#Edit,ctl(),WOMB$);ecriture
 EndIf
 If GetGadgetState(#Check_Doubletrame) = 1 Or GetGadgetState(#Check_Hombre) = 1
  WHIDE$ = "HideWindow(" + id$ + ",0)" ;rend la fentre visible pour les options nécéssitant invisible
  AddGadgetItem(#Edit,ctl(),WHIDE$);ecriture
 EndIf 
 If GetGadgetState(#Check_SizeGadget)= 1 And GetGadgetState(#Check_Bound)= 1; WindowBound
  WB$ = "WindowBounds(" + id$ + "," + Wblmin$ + "," + Wbhmin$ + "," + Wblmax$ + "," + WbHmax$ + ")"
  AddGadgetItem(#Edit,ctl(),WB$);ecriture
 EndIf
 If GetGadgetState(#Check_Wincolor)= 1 ;window color
  WCL$ = "SetWindowColor(" + id$ + "," + GetGadgetText(#Text_colcod)+ ")"
  AddGadgetItem(#Edit,ctl(),WCL$);ecriture
 EndIf
 If GetGadgetState(#Check_StickyWin)= 1 ;StickyWindow
  WSTY$ = "StickyWindow(" + id$ + "," + "1)"
  AddGadgetItem(#Edit,ctl(),WSTY$);ecriture
 EndIf 
;  If GetGadgetState(#Check_Invisiblebar) = 1 ;invible dans la barre de tache ; ***************
;   WINVBT$ = "SetWindowLongPtr_(WindowID(" + id$ + ")," + "#GWL_HWNDPARENT, FindWindow_(0," + Chr(34) + Chr(34) + "))"
;   AddGadgetItem(#Edit,ctl(),WINVBT$);ecriture
;  EndIf
 If GetGadgetState(#Check_Transp) = 1 ;transparence
  WTRP1$ = "SetWindowLongPtr_(WindowID(" + id$ + ")," + "#GWL_EXSTYLE, $00080000)"
  AddGadgetItem(#Edit,ctl(),WTRP1$);ecriture 
  WTRP2$ = "SetLayeredWindowAttributes_(WindowID(" + id$ + ")," + "0," + GetGadgetText(#Text_Transp) + ",#LWA_ALPHA)"
  AddGadgetItem(#Edit,ctl(),WTRP2$);ecriture 
 EndIf
 If GetGadgetState(#Check_Border) = 1 And GetGadgetState(#Check_Cadre) = 1 ;cadre
  WCDE$ = "SetWindowLongPtr_(WindowID(" +  id$  + "), #GWL_STYLE, GetWindowLongPtr_(WindowID(" + id$ + "), #GWL_STYLE) | #WS_DLGFRAME)"
  AddGadgetItem(#Edit,ctl(),WCDE$);ecriture 
  WCDE1$ = "SetWindowPos_(WindowID(" + id$ + "), 0,0,0,0,0,#SWP_NOSIZE|#SWP_NOMOVE|#SWP_NOZORDER|#SWP_FRAMECHANGED)"
  AddGadgetItem(#Edit,ctl(),WCDE1$);ecriture 
 EndIf
 If GetGadgetState(#Check_Statbar) = 1;Statusbar
  nbbstat.l = Val(GetGadgetText(#String_Statbar)) -1 
  WSTBR1$ = "CreateStatusBar(#StatusBar,WindowID(" + id$ + "))"; attention a l'écriture mettre dans enumeration
  AddGadgetItem(#Edit,ctl(),WSTBR1$);ecriture 
  WSTBR2$ = "For i.l= 0 To " + Str(nbbstat.l)
  AddGadgetItem(#Edit,ctl(),WSTBR2$);ecriture 
  WSTBR3$ = "  AddStatusBarField(#PB_Ignore)"
  AddGadgetItem(#Edit,ctl(),WSTBR3$);ecriture 
  WSTBR4$ = "Next"
  AddGadgetItem(#Edit,ctl(),WSTBR4$);ecriture 
 EndIf
;¤¤¤¤¤¤¤¤¤¤ Fin des options, début des boucles 
 AddGadgetItem(#Edit,ctl(),"")
 AddGadgetItem(#Edit,ctl(),"; Ici vos gadgets")
 bl = ctl()
 For z  = bl To bl+3 
  AddGadgetItem(#Edit,z,"") 
 Next 
 AddGadgetItem(#Edit,ctl(),";  Boucle générale")
 If GetGadgetState(#Check_Loop_1) = 1
  If GetGadgetState(42) = 1
   SetGadgetState(42,0)
   alerte(5)
  EndIf
  WLP1L$ = "" 
  WLP1L2$ = "Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow"
  WLP1L3$ = "End"
  AddGadgetItem(#Edit,ctl(),WLP1L$);ecriture 
  AddGadgetItem(#Edit,ctl(),WLP1L2$);ecriture 
  AddGadgetItem(#Edit,ctl(),WLP1L3$);ecriture 
 EndIf 
 If GetGadgetState(#Check_Loop_2) = 1
  Dim WLP2L.s (8)
  WLP2L(1) = "Repeat"
  WLP2L(2) = "Event = WaitWindowEvent()"
  If GetGadgetState(#Check_Border) = 1 And GetGadgetState(#Check_Depsour) = 1 ;déplace borderless
   WLP2L(3) = " If Event = #WM_LBUTTONDOWN"
   WLP2L(4) = "  SendMessage_(WindowID(" + id$ + "), #WM_NCLBUTTONDOWN, #HTCAPTION, 0)" 
   WLP2L(5) = " EndIf"
  Else
   WLP2L(3) = ""
   WLP2L(4) = "" 
   WLP2L(5) = ""
  EndIf  
  WLP2L(6) = ""
  WLP2L(7) = "Until Event = #PB_Event_CloseWindow"
  WLP2L(8) = "End"
  For xx = 1 To 8
   AddGadgetItem(#Edit,ctl(),WLP2L(xx));ecriture 
  Next
  FreeArray(WLP2L.s()) 
 EndIf  
 If GetGadgetState(#Check_Loop_3) = 1 
  Dim WLP3L.s (12)
  WLP3L(1) = "Repeat"
  WLP3L(2) = " Event = WaitWindowEvent()"
  WLP3L(3) = "  If Event = #WM_LBUTTONDOWN"
  WLP3L(4) = "   SendMessage_(WindowID(" + id$ + "), #WM_NCLBUTTONDOWN, #HTCAPTION, 0)" 
  WLP3L(5) = "  EndIf"
  WLP3L(6) = "  If Event = #PB_Event_Gadget"
  WLP3L(7) = "   Select EventGadget()"
  WLP3L(8) = "" 
  WLP3L(9) = "   EndSelect"
  WLP3L(10) = " EndIf"
  WLP3L(11) = "Until Event = #PB_Event_CloseWindow"
  WLP3L(12) = "End"
  For yy = 1 To 12
   If GetGadgetState(#Check_Border) = 1 And GetGadgetState(#Check_Depsour) = 1 ;déplace borderless
    AddGadgetItem(#Edit,ctl(),WLP3L(yy));ecriture 
   Else
    Select yy
     Case 1,2,6 To 12
     AddGadgetItem(#Edit,ctl(),WLP3L(yy));ecriture 
    EndSelect
   EndIf
  Next
 FreeArray(WLP3L.s())  
 EndIf
 If GetGadgetState(#Check_Loop_4) = 1
  Dim WLP4L.s (11) 
  WLP4L(1) = "Repeat"
  WLP4L(2) = " Select WaitWindowEvent()"
  WLP4L(3) = "  Case #WM_LBUTTONDOWN"
  WLP4L(4) = "   SendMessage_(WindowID(#Ma_fen), #WM_NCLBUTTONDOWN, #HTCAPTION, 0)" 
  WLP4L(5) = "  Case #PB_Event_Gadget"
  WLP4L(6) = ""  
  WLP4L(7) = "  Case #PB_Event_CloseWindow"
  WLP4L(8) = "   Break"
  WLP4L(9) = " EndSelect"
  WLP4L(10) = "ForEver"
  WLP4L(11) = "End"
 For zz = 1 To 11
   If GetGadgetState(#Check_Border) = 1 And GetGadgetState(#Check_Depsour) = 1 ;déplace borderless
    AddGadgetItem(#Edit,ctl(),WLP3L(yy));ecriture 
   Else
    Select zz
     Case 1,2,5 To 11
     AddGadgetItem(#Edit,ctl(),WLP4L(zz));ecriture 
    EndSelect
   EndIf
  Next
  FreeArray(WLP3L.s()) 
 EndIf   
 If GetGadgetState(#Check_Loop_5) = 1
  Dim WLP5L.s (11) 
  WLP5L(1) = "Repeat"
  WLP5L(2) = "Event = WaitWindowEvent()"
  WLP5L(3) = " If Event = #WM_LBUTTONDOWN" 
  WLP5L(4) = "  SendMessage_(WindowID(" + id$ + "), #WM_NCLBUTTONDOWN, #HTCAPTION, 0)" 
  WLP5L(5) = " Endif"
  WLP5L(6) = " If Event = #PB_Event_Gadget" 
  WLP5L(7) = "   Select EventGadget()"
  WLP5L(8) = "" 
  WLP5L(9) = " EndSelect"
  WLP5L(10) = " EndIf"
  WLP5L(11) = "ForEver"
  For z = 1 To 11
   If GetGadgetState(#Check_Border) = 1 And GetGadgetState(#Check_Depsour) = 1 ;déplace borderless
    AddGadgetItem(#Edit,ctl(),WLP5L(z));ecriture 
   Else
    Select z
     Case 1,2,6 To 11
      AddGadgetItem(#Edit,ctl(),WLP5L(z));ecriture 
    EndSelect
   EndIf   
  Next
 FreeArray(WLP5L.s()) 
 EndIf 
 SendMessage_(GadgetID(#Edit),#EM_SCROLL,#SB_BOTTOM,0);liste en bas
fentest()
EndProcedure

Procedure fentest()
 CloseWindow(#ftest)
 OpenWindow(#ftest,X,Y,Lrg,Htr,Titr$,Btc|Bt1|Bt2|Typ|Ouv|Viv|Rds|Ctf)
 If GetGadgetState(#Check_Doubletrame) = 1 ;double trame
  SetWindowLongPtr_(WindowID(#ftest),#GWL_EXSTYLE,$2300)
 EndIf
 If GetGadgetState(#Check_Hombre) = 1 ;ombre
  SetClassLongPtr_(WindowID(#ftest),#GCL_STYLE,$00020000)
 EndIf
 HideWindow(#ftest,0)
 If GetGadgetState(#Check_SizeGadget)= 1 And GetGadgetState(#Check_Bound)= 1 ; WindowBound
  WindowBounds(#ftest,Val(Wblmin$),Val(Wbhmin$),Val(Wblmax$),Val(WbHmax$))
 EndIf
 If GetGadgetState(#Check_Wincolor)= 1 
  SetWindowColor(#ftest,RGB(GetGadgetState(#trck_R),GetGadgetState(#trck_G),GetGadgetState(#trck_B)))   
 EndIf
 If GetGadgetState(#Check_StickyWin)= 1 ;StickyWindow
  StickyWindow(#ftest,1) 
 Else
  StickyWindow(#ftest,0) 
 EndIf 
 If GetGadgetState(#Check_Transp) = 1 ;transparence
  If GetGadgetState(#Check_Doubletrame) = 1:XZZ = $00082300 :Else:XZZ = $00082000:EndIf
  SetWindowLongPtr_(WindowID(#ftest),#GWL_EXSTYLE, XZZ)
  SetLayeredWindowAttributes_(WindowID(#ftest), 0, GetGadgetState(#Trakb_Winctr), #LWA_ALPHA) 
 EndIf
 If GetGadgetState(#Check_Statbar) = 1
  CreateStatusBar(#ftestStatusBar, WindowID(#ftest))
  For i.l= 0 To nbbstat.l
   AddStatusBarField(#PB_Ignore)
  Next
 EndIf
 If GetGadgetState(#Check_Border) = 1 And GetGadgetState(#Check_Cadre) = 1 ;cadre
  SetWindowLongPtr_(WindowID(#ftest), #GWL_STYLE, GetWindowLongPtr_(WindowID(#ftest), #GWL_STYLE) | #WS_DLGFRAME)
  SetWindowPos_(WindowID(#ftest), 0,0,0,0,0,#SWP_NOSIZE|#SWP_NOMOVE|#SWP_NOZORDER|#SWP_FRAMECHANGED)
 EndIf
 SetActiveWindow(#WinCtr)
EndProcedure

Procedure fen2(Fc.b)
OpenWindow(#Wenr,180,200,200,100,"Ma Fenêtre",#PB_Window_BorderLess|#PB_Window_Invisible)
If Fc = 1
 SetWindowColor(#Wenr,$00E9)
Else
 SetWindowColor(#Wenr,$A7BAD2)
EndIf
SetWindowLongPtr_(WindowID(#Wenr), #GWL_STYLE, GetWindowLongPtr_(WindowID(#Wenr), #GWL_STYLE) | #WS_DLGFRAME)
SetWindowPos_(WindowID(#Wenr), 0,0,0,0,0,#SWP_NOSIZE|#SWP_NOMOVE|#SWP_NOZORDER|#SWP_FRAMECHANGED)
SetClassLongPtr_(WindowID(#Wenr),#GCL_STYLE,$00020000)
StickyWindow(#Wenr,1)
HideWindow(#Wenr,0)
If Fc = 1
 TextGadget(#text_1,5, 20,190,20,"CE MODEL EXISTE")
 SetGadgetColor(#text_1,#PB_Gadget_BackColor,$00E9) 
 TextGadget(#text_2,25, 45,150,20,"Voulez vous le modifier ?")
 SetGadgetColor(#text_2,#PB_Gadget_BackColor,$00E9)
 ButtonGadget(#bt_1,70,70, 80,18,"Non") 
 ButtonGadget(#bt_2,150,70, 40,18,"Oui") 
Else
  TextGadget(#text_1,5,5,190,20,"Choisissez un modèle")
  SetGadgetColor(#text_1,#PB_Gadget_BackColor,$A7BAD2) 
  ListViewGadget(#list1, 5, 20,185,55)
  SetGadgetColor(#list1,#PB_Gadget_BackColor,$45A713)
  ButtonGadget(#bt_2,150,75, 40,18,"Stop") 
  Directory$ = GetCurrentDirectory()
  ExamineDirectory(0, Directory$, "*.mld")  
  While NextDirectoryEntry(0)
   AddGadgetItem (#list1,-1,DirectoryEntryName(0))
  Wend
  FinishDirectory(0) 
EndIf
;  Boucle générale
Repeat
Event = WaitWindowEvent()
 If Event = #PB_Event_Gadget
   Select EventGadget()
    Case #bt_1
     CloseWindow(#Wenr)
     ProcedureReturn  0
    Case #bt_2
     If Fc.b = 1
      CloseWindow(#Wenr)
      ProcedureReturn  1 
     Else
      CloseWindow(#Wenr)
      ProcedureReturn  0
     EndIf 
    Case #list1
     Select EventType() 
      Case #PB_EventType_LeftClick 
        choixmod$ = GetGadgetText(#list1)
        CloseWindow(#Wenr)
        ProcedureReturn  0
     EndSelect
   EndSelect
 EndIf
SendMessage_(WindowID(#Wenr), #WM_NCLBUTTONDOWN, #HTCAPTION, 0) 
ForEver
EndProcedure

Procedure EnrWmodel()
Dpenr.b = 0
Dim Wmodel$(32)
Wmodel$(1) = GetGadgetText(100) + "¤";id
Wmodel$(2) = GetGadgetText(101) + "¤";titre
If GetGadgetState(20)= 1 : Wmodel$(3) = "1" + "¤" : Else :Wmodel$(3) = "0" + "¤" :EndIf;bt system
If GetGadgetState(21)= 1 : Wmodel$(4) = "1" + "¤" : Else :Wmodel$(4) = "0" + "¤" : EndIf;bt minimise 
If GetGadgetState(22)= 1 : Wmodel$(5) = "1" + "¤" : Else :Wmodel$(5) = "0" + "¤" : EndIf;bt maximise 
If GetGadgetState(24)= 0 And GetGadgetState(27)= 0
 Wmodel$(6) = "0" + "¤" ;fn normale
Else
 If GetGadgetState(24)= 1 : Wmodel$(6) = "1" + "¤" :EndIf;fn tool
 If GetGadgetState(27)= 1 : Wmodel$(6) = "2" + "¤" :EndIf ;fn borderless
EndIf
If GetGadgetState(25)= 0 And GetGadgetState(26)= 0
 Wmodel$(7) = "0" + "¤" ;fn normale
Else
 If GetGadgetState(25)= 1 : Wmodel$(7) = "1" + "¤" :EndIf;maximise
 If GetGadgetState(26)= 1 : Wmodel$(7) = "2" + "¤" :EndIf ;minimise
EndIf
If GetGadgetState(23)= 1 : Wmodel$(8) = "1" + "¤" : Else :Wmodel$(8) = "0" + "¤" :EndIf;fn invisible
If GetGadgetState(28)= 1 : Wmodel$(9) = "1" + "¤" : Else :Wmodel$(9) = "0" + "¤" :EndIf;screencentered
Wmodel$(10) = GetGadgetText(102) + "¤";posx
Wmodel$(11) = GetGadgetText(103) + "¤";posy
Wmodel$(12) = GetGadgetText(104) + "¤";largeur
Wmodel$(13) = GetGadgetText(105) + "¤";hauteur
If GetGadgetState(30)= 1 : Wmodel$(14) = "1" + "¤" : Else :Wmodel$(14) = "0" + "¤" :EndIf;size
If GetGadgetState(31)= 1 : Wmodel$(15) = "1" + "¤" : Else :Wmodel$(15) = "0" + "¤" :EndIf;bound
Wmodel$(16) = GetGadgetText(107) + "¤";largeur/min
Wmodel$(17) = GetGadgetText(108) + "¤";hauteur/min
Wmodel$(18) = GetGadgetText(109) + "¤";largeur/max
Wmodel$(19) = GetGadgetText(110) + "¤";hauteur/max
If GetGadgetState(33)= 1 : Wmodel$(20) = "1" + "¤" : Else :Wmodel$(20) = "0" + "¤" :EndIf;wcolor
Wmodel$(21) = GetGadgetText(75)+ "*"+GetGadgetText(74)+ "*"+GetGadgetText(73)+ "*" + "¤";chiffre color
If GetGadgetState(32)= 1 : Wmodel$(22) = "1" + "¤" : Else :Wmodel$(22) = "0" + "¤" :EndIf;invisibleBT
If GetGadgetState(35)= 1 : Wmodel$(23) = "1" + "¤" : Else :Wmodel$(23) = "0" + "¤" :EndIf;sticky
If GetGadgetState(36)= 1 : Wmodel$(24) = "1" + "¤" : Else :Wmodel$(24) = "0" + "¤" :EndIf;transp
Wmodel$(25) = GetGadgetText(78) + "¤";chiffre transp
If GetGadgetState(34)= 1 : Wmodel$(26) = "1" + "¤" : Else :Wmodel$(26) = "0" + "¤" :EndIf;statusbar
Wmodel$(27) = GetGadgetText(111) + "¤";chiffre statusb
If GetGadgetState(29)= 1 : Wmodel$(28) = "1" + "¤" : Else :Wmodel$(28) = "0" + "¤" :EndIf;Double trame
If GetGadgetState(40)= 1 : Wmodel$(29) = "1" + "¤" : Else :Wmodel$(29) = "0" + "¤" :EndIf;Ombre
If GetGadgetState(41)= 1 : Wmodel$(30) = "1" + "¤" : Else :Wmodel$(30) = "0" + "¤" :EndIf;Cadre
If GetGadgetState(42)= 1 : Wmodel$(31) = "1" + "¤" : Else :Wmodel$(31) = "0" + "¤" :EndIf;Deplacesour
If GetGadgetState(37)= 1 : Wmodel$(32) = "1" + "¤" :EndIf
If GetGadgetState(38)= 1 : Wmodel$(32) = "2" + "¤" :EndIf
If GetGadgetState(39)= 1 : Wmodel$(32) = "3" + "¤" :EndIf
If GetGadgetState(43)= 1 : Wmodel$(32) = "4" + "¤" :EndIf
If GetGadgetState(44)= 1 : Wmodel$(32) = "5" + "¤" :EndIf
For x =1 To 32
 mod$ = mod$ + Wmodel$(x)
Next
fichmod$ = GetGadgetText(100) + ".mld"
If  FileSize(fichmod$) = -1
 Dpenr.b = 1
Else
 Dpenr.b = fen2(1) 
EndIf  
If Dpenr.b = 1
 CreateFile(#fichmod,fichmod$)
 WriteString(#fichmod,mod$) 
 CloseFile(#fichmod)
 alerte(4) 
EndIf
Dim Wmodel$(0)
EndProcedure

Procedure Ouvmod()
choixmod$  = "" ;mis en global
fen2(2)
If choixmod$  = "" : ProcedureReturn 0 :EndIf 
ReadFile(#fichmod,choixmod$)  
winmod$ = ReadString(#fichmod)
CloseFile(#fichmod) 
SetGadgetText(100,StringField(winmod$,1,"¤")) : SetGadgetText(101,StringField(winmod$,2,"¤"))
SetGadgetState(20,Val(StringField(winmod$,3,"¤")))
SetGadgetState(21,Val(StringField(winmod$,4,"¤")))
SetGadgetState(22,Val(StringField(winmod$,5,"¤")))
If Val(StringField(winmod$,6,"¤")) = 0
 SetGadgetState(24,0):SetGadgetState(27,0):DisableGadget(29,0):DisableGadget(41,1):DisableGadget(42,1)
Else 
 If Val(StringField(winmod$,6,"¤")) = 1
  SetGadgetState(24,1):SetGadgetState(27,0):DisableGadget(29,1):DisableGadget(41,1):DisableGadget(42,1)
  SetGadgetState(36,0) : DisableGadget(36,1)
 EndIf
 If Val(StringField(winmod$,6,"¤")) = 2
  SetGadgetState(24,0):SetGadgetState(27,1):DisableGadget(29,1):DisableGadget(41,0):DisableGadget(42,0)
 EndIf 
EndIf 
If Val(StringField(winmod$,7,"¤")) = 0
 SetGadgetState(25,0):SetGadgetState(26,0)
Else 
 If Val(StringField(winmod$,7,"¤")) = 1
  SetGadgetState(25,1):SetGadgetState(26,0)
 EndIf
 If Val(StringField(winmod$,7,"¤")) = 2
  SetGadgetState(25,0):SetGadgetState(26,1)
 EndIf 
EndIf 
SetGadgetState(23,Val(StringField(winmod$,8,"¤")))
If Val(StringField(winmod$,9,"¤")) = 0 
 SetGadgetState(28,0)
Else 
 SetGadgetState(28,1)
EndIf 
SetGadgetText(102,StringField(winmod$,10,"¤")) : SetGadgetText(103,StringField(winmod$,11,"¤"))
SetGadgetText(104,StringField(winmod$,12,"¤")) : SetGadgetText(105,StringField(winmod$,13,"¤"))
SetGadgetState(30,Val(StringField(winmod$,14,"¤")))
SetGadgetState(31,Val(StringField(winmod$,15,"¤")))
SetGadgetText(107,StringField(winmod$,16,"¤")) : SetGadgetText(108,StringField(winmod$,17,"¤"))
SetGadgetText(109,StringField(winmod$,18,"¤")) : SetGadgetText(110,StringField(winmod$,19,"¤"))
If Val(StringField(winmod$,14,"¤")) = 1 
 SetGadgetColor(65,#PB_Gadget_FrontColor,$0)
EndIf 
wBound(0)
SetGadgetState(33,Val(StringField(winmod$,20,"¤")))
If Val(StringField(winmod$,20,"¤")) = 1
 coul$ = StringField(winmod$,21,"¤")
 SetGadgetState(#trck_B,Val(StringField(coul$,1,"*")))
 SetGadgetState(#trck_G,Val(StringField(coul$,2,"*")))
 SetGadgetState(#trck_R,Val(StringField(coul$,3,"*")))
EndIf
SetGadgetState(32,Val(StringField(winmod$,22,"¤")))
SetGadgetState(35,Val(StringField(winmod$,23,"¤")))
SetGadgetState(36,Val(StringField(winmod$,24,"¤")))
SetGadgetText(78,StringField(winmod$,25,"¤"))
If Val(StringField(winmod$,25,"¤")) <> 0
 SetGadgetState(144,Val(StringField(winmod$,25,"¤")))
EndIf
SetGadgetState(34,Val(StringField(winmod$,26,"¤")))
SetGadgetText(111,StringField(winmod$,27,"¤")) 
SetGadgetState(29,Val(StringField(winmod$,28,"¤")))
SetGadgetState(40,Val(StringField(winmod$,29,"¤")))
SetGadgetState(41,Val(StringField(winmod$,30,"¤")))
SetGadgetState(42,Val(StringField(winmod$,31,"¤")))
lp.b = Val(StringField(winmod$,32,"¤")) 
Select lp.b
 Case 1
  SetGadgetState(37,1):SetGadgetState(38,0):SetGadgetState(39,0):SetGadgetState(43,0):SetGadgetState(44,0)
 Case 2 
  SetGadgetState(37,0):SetGadgetState(38,1):SetGadgetState(39,0):SetGadgetState(43,0):SetGadgetState(44,0)
 Case 3 
  SetGadgetState(37,0):SetGadgetState(38,0):SetGadgetState(39,1):SetGadgetState(43,0):SetGadgetState(44,0)
 Case 4 
  SetGadgetState(37,0):SetGadgetState(38,0):SetGadgetState(39,0):SetGadgetState(43,1):SetGadgetState(44,0)
 Case 5 
  SetGadgetState(37,0):SetGadgetState(38,0):SetGadgetState(39,0):SetGadgetState(43,0):SetGadgetState(44,1)
EndSelect   
If Val(StringField(winmod$,20,"¤")) = 1
 affcodecolor()
Else
 contructeurwin()
EndIf 
EndProcedure

;====== fenêtre principale =====
OpenWindow(#WinCtr, 10, 20, 470, 700, "WinConstructeur", #PB_Window_SystemMenu|#PB_Window_MinimizeGadget)
SetWindowCallback(@StatuBarWindowCallback())
HookMouse = SetWindowsHookEx_(#WH_MOUSE_LL, @MouseHook(), GetModuleHandle_(0), 0)
AddWindowTimer(#WinCtr,#timer1, 6000)
CreateStatusBar(#StatusBar,WindowID (#WinCtr)) 
AddStatusBarField(#PB_Ignore)
AddStatusBarField(300)
AddStatusBarField(#PB_Ignore)
StatusBarText(#StatusBar,0,"   2013/V2.1")
StatusBarText(#StatusBar,2,"     "+ Chr(174) + " MLD")
;====== gadgets Frame3D ========
Frame3DGadget(#Frame3D_idfen,5,5,225,45,"Id Fenêtre")
Frame3DGadget(#Frame3D_Titre,5,55,225,50,"Titre de la fenêtre")
Frame3DGadget(#Frame3D_Attrib,235,5,230,100,"Attributs de la fenêtre")
Frame3DGadget(#Frame3D_wincolor,5,110,225,105,"Windowcolor")
Frame3DGadget(#Frame3D_tailpos,235,110,230,175,"Position - Taille de la fenêtre")
Frame3DGadget(#Frame3D_opt,5,290,225,160,"Options")
Frame3DGadget(#Frame3D_loop,235,290,230,160,"Inclure la Boucle générale")
Frame3DGadget(#Frame3D_fonct,5,455,460,45,"Fonctions")
Frame3DGadget(#Frame3D_transp,5,220,225,65,"Transparence")
;====== gadgets CheckBox ========
CheckBoxGadget(#Check_SystMenu,245,20,100,20,"Bouton System")
SetGadgetState(#Check_SystMenu,#PB_Checkbox_Checked)
CheckBoxGadget(#Check_MinimizeGad,245,40,100,20,"Bouton Minimize")
CheckBoxGadget(#Check_MaximizeGad,245,60,100,20,"Bouton Maximize")
CheckBoxGadget(#Check_Tool,245,80,80,20, "Tool")
CheckBoxGadget(#Check_Border,380,20,80,20,"BorderLess")
CheckBoxGadget(#Check_Maximize,380,40,80,20,"Maximize")
CheckBoxGadget(#Check_Minimize,380,60,80,20,"Minimize")
CheckBoxGadget(#Check_Invisible,380,80,80,20,"Invisible")
CheckBoxGadget(#Check_ScreenCentered,245,125,100,20,"ScreenCentered")
CheckBoxGadget(#Check_SizeGadget,245,190,80,20,"SizeGadget")
CheckBoxGadget(#Check_Bound,365,190,90,20,"WindowBound")
CheckBoxGadget(#Check_Invisiblebar,15,425,180,20,"Invisible dans la barre de Tâche") 
CheckBoxGadget(#Check_StickyWin,15,365,100,20,"StickyWindow")
CheckBoxGadget(#Check_Wincolor,15,125,60,20,"Color")
CheckBoxGadget(#Check_Statbar,15,345,60,20,"Statubar") 
CheckBoxGadget(#Check_Transp,15,235,85,20,"Transparence")
CheckBoxGadget(#Check_Doubletrame,15,305,85,20,"Double trame")
CheckBoxGadget(#Check_Hombre,15,325,130,20,"Fenêtre avec ombre")
CheckBoxGadget(#Check_Cadre,15,385,180,20,"Fenêtre sans titre avec cadre")
DisableGadget(41,1)
CheckBoxGadget(#Check_Depsour,15,405,180,20,"Déplace une fenêtre BorderLess")
DisableGadget(42,1)
CheckBoxGadget(#Check_Loop_1,245,310,180,20,"Minimale 1  (Utile pour des tests)")
CheckBoxGadget(#Check_Loop_2,245,338,180,20,"Minimale 2 (Boucle a votre choix)")
SetGadgetState(#Check_Loop_2,#PB_Checkbox_Checked)
CheckBoxGadget(#Check_Loop_3,245,366,180,20,"Standard 1  (If, EndIf)") 
CheckBoxGadget(#Check_Loop_4,245,394,200,20,"Standard 2  (Select,Case,Endselect)") 
CheckBoxGadget(#Check_Loop_5,245,422,180,20,"Sans fin  (Utile pour Borderless)")
ToolTipMic(#WinCtr,#Check_Loop_5,"Boucle sans fin. Un bouton d'arrêt est obligatoire.(Principale utilisation : fenêtre Borderless.)") 
;====== gadgets text
TextGadget(#Text_id,10,26,20,20, "# +") 
TextGadget(#Text_posX,245,148,60,20, "Position  X:")
TextGadget(#Text_posY,380,148,15,20, "Y:")
TextGadget(#Text_tailarg,245,170,60,20, "Taille  Larg:")
TextGadget(#Text_tailhaut,365,170,60,20, "Haut:") 
TextGadget(#Text_utilbound,265,215,160,20,"Si WindowBound: Taille mini/maxi")
SetGadgetColor(#Text_utilbound,#PB_Gadget_FrontColor,$D9C2BD)
TextGadget(#Text_Bdlargmin,245,236,50,20,"Larg/min") 
TextGadget(#Text_Bdhautmin,365,236,50,20,"Haut/min") 
TextGadget(#Text_Bdlargmax,245,260,50,20,"Larg/max")
TextGadget(#Text_bdhautmax,365,260,50,20,"Haut/max")
For x = 65 To 69
 SetGadgetColor(x,#PB_Gadget_FrontColor,$D9C2BD)
Next  
TextGadget(#Text_col1,15,150,10,20,"R"):SetGadgetColor(#Text_col1,#PB_Gadget_FrontColor,$0000C8)
TextGadget(#Text_col2,15,170,10,20,"G"):SetGadgetColor(#Text_col2,#PB_Gadget_FrontColor,$008000)
TextGadget(#Text_col3,15,190,10,20,"B"):SetGadgetColor(#Text_col3,#PB_Gadget_FrontColor,$C80000)
TextGadget(#Text_col4,27,150,20,20,"$00")
TextGadget(#Text_col5,27,170,20,20,"$00") 
TextGadget(#Text_col6,27,190,20,20,"$00")
TextGadget(#Text_colcod,175,127,50,20,"$000000",#ES_CENTER)
TextGadget(#Text_colG,175,150,50,55,"",#PB_Text_Border) 
TextGadget(#Text_statbarnbchamp,85,348,60,20,"Nb champ:")
TextGadget(#Text_Transp,177,233,30,20,"255",#ES_CENTER|#PB_Text_Border) 
;====== Gadget String
StringGadget(#String_Winid,40,23,180,20,"Ma_fen")
StringGadget(#String_Titre,10,73,210,20,"Ma Fenêtre") 
StringGadget(#String_PosX,310,145,40,18,"500",#ES_CENTER)
StringGadget(#String_PosY,400,145,40,18,"200",#ES_CENTER) 
StringGadget(#String_Larg,310,168,40,18,"400",#ES_CENTER) 
StringGadget(#String_Haut,400,168,40,18,"400",#ES_CENTER)
StringGadget(#String_BdL_Mini,300,235,40,18,"50",#ES_CENTER)
SendMessage_(GadgetID(#String_BdL_Mini),#EM_SETREADONLY,1,0)
SetGadgetColor(#String_BdL_Mini,#PB_Gadget_FrontColor,$D9C2BD)   
StringGadget(#String_BdH_Mini,415,235,40,18,"50",#ES_CENTER)
SendMessage_(GadgetID(#String_BdH_Mini),#EM_SETREADONLY,1,0)
SetGadgetColor(#String_BdH_Mini,#PB_Gadget_FrontColor,$D9C2BD)      
StringGadget(#String_BdL_Maxi,300,258,40,18,"800",#ES_CENTER)
SendMessage_(GadgetID(#String_BdL_Maxi),#EM_SETREADONLY,1,0) 
SetGadgetColor(#String_BdL_Maxi,#PB_Gadget_FrontColor,$D9C2BD)     
StringGadget(#String_BdH_Maxi,415,258,40,18,"800",#ES_CENTER)
SendMessage_(GadgetID(#String_BdH_Maxi),#EM_SETREADONLY,1,0)
SetGadgetColor(#String_BdH_Maxi,#PB_Gadget_FrontColor,$D9C2BD)  
StringGadget(#String_Statbar,150,344,20,20,"3",#ES_CENTER) 
;====== Gadget Bouton
ButtonGadget(#Bt_Cop,10,472,85,20,"Copier")
ToolTipMic(#WinCtr,#Bt_Cop,"Copie le code dans le presse-papiers.")
ButtonGadget(#Bt_enrmod,100,472,85,20,"Enr un modèle")
ToolTipMic(#WinCtr,#Bt_enrmod,"Enregistre cette fenêtre comme modèle.") 
ButtonGadget(#Bt_Ouvmod,190,472,87,20,"Ouvre un modèle")
ToolTipMic(#WinCtr,#Bt_Ouvmod,"Ouvre un modèle de fenêtre.")
ButtonGadget(#Bt_Raz,283,472,85,20,"R A Z")
ToolTipMic(#WinCtr,#Bt_Raz,"Remet a zéro WinConstructeur.")
ButtonGadget(#Bt_Stop,375,472,85,20,"Quitter")
ToolTipMic(#WinCtr,#Bt_Stop,"On termine ici.")
ButtonGadget(130,90,125,55,17,"ColorReq");btcolreq
DisableGadget(130,1)
;====== Gadget autres
TrackBarGadget(#trck_R,50,148,125,20,0,255)
TrackBarGadget(#trck_G,50,168,125,20,0,255)
TrackBarGadget(#trck_B,50,188,125,20,0,255)
TrackBarGadget(#Trakb_Winctr,7,258,220,20,50,255)
SetGadgetState(#Trakb_Winctr,255)
While WindowEvent() : Wend 
EditorGadget(#Edit,2,505,466,170,#PB_Editor_ReadOnly)
SetGadgetColor(#Edit,#PB_Gadget_BackColor,$699A14)  

fendepart()

Repeat
  Select WaitWindowEvent()
   Case #PB_Event_Timer 
     If EventTimer() = #timer1
      osbt\szText = @ ""
      SendMessage_(StatusBarID(#StatusBar),#SB_SETTEXT,1 | #SBT_OWNERDRAW,osbt)
     EndIf 
    Case #PB_Event_CloseWindow
     If GetActiveWindow()= #WinCtr
      Quit = #True
     EndIf 
    Case #PB_Event_Gadget 
      Interaction(EventGadget())
    Select EventGadget()
      Case #Bt_coloreq
       colorRequest()
      Case #Bt_Cop 
       contructeurwin()
       ClearClipboard()
       SetClipboardText(GetGadgetText(#Edit))
      Case #Bt_enrmod
        EnrWmodel() 
      Case #Bt_Ouvmod  
         Ouvmod()
      Case #Bt_Raz
       Raz()  
      Case #Bt_Stop
       CloseWindow(#WinCtr)
       CloseWindow(#ftest)
       Quit = #True
      Case 20 To 35,40 To 42 
       While WindowEvent() : Wend 
        contructeurwin()
      Case 100 To 106
       Select EventType() 
        Case #PB_EventType_Change
         contructeurwin()   
       EndSelect  
      Case 107 To 110
       Select EventType() 
        Case #PB_EventType_Change
         wBound(1)  
       EndSelect
      EndSelect
    EndSelect
Until Quit
UnhookWindowsHookEx_(HookMouse)
FreeBalloonTooltip(Tooltip.l) 
End

Re: WindowConstructeur version2

Publié : jeu. 23/mai/2013 15:22
par falsam
Bonjour MLD. C'est pas mal mais un code formaté serait un plus.
:( Pas terrible

Code : Tout sélectionner

Enumeration
#Ma_fen
EndEnumeration
:P Biennnnnn

Code : Tout sélectionner

Enumeration
  #Ma_fen
EndEnumeration
Merci pour ce partage.

Re: WindowConstructeur version2

Publié : jeu. 23/mai/2013 15:44
par MLD
@falsam

La critique non constructive étant facile j'attend avec impatience que tu fasse mieux avec un code plus court.
Ceci évitera de me fatigué pour une prochaine foi. :twisted: :mrgreen:

Re: WindowConstructeur version2

Publié : jeu. 23/mai/2013 17:23
par GallyHC
Bonjour,

La critique étant facile, je ferait la même que "falsam" et pourquoi pas mettre de tel belle source sur un site qui permet d'avoir justement le formatage du source? ha oui le mien aussi peu être je fait ma propre pub, même si je ne donnerais même plus l'url lol voila a tous de voir et aussi a toi :)

Cordialement,
GallyHC

Re: WindowConstructeur version2

Publié : jeu. 23/mai/2013 17:52
par MLD
Salut Gally

Si tu souhaite mettre ce source sur ton site ? Je suis ok
Seul restriction : Pas d'intégration dans un autre logiciel sans permission. Je suis sur que tu me transmettra une demande de ce genre. :lol:

a+ Michel

Re: WindowConstructeur version2

Publié : jeu. 23/mai/2013 18:13
par Backup
le forum ici present permet bien la mise en page ...
il faut simplement la faire avant de coller le code dans l'editeur de message ! :roll:

Code : Tout sélectionner

Procedure Raz() ;ok
	For b = 20 To 44
		SetGadgetState(b,0)
	Next
	SetGadgetState(20,1):SetGadgetState(38,1):SetGadgetState(144,255)
	DisableGadget(41,1):DisableGadget(29,0):DisableGadget(42,1)
	SetGadgetText(100,"Ma_fen"):SetGadgetText(101,"Ma Fenêtre")
	SetGadgetText(102,"500"):SetGadgetText(103,"200")
	SetGadgetText(104,"400"):SetGadgetText(105,"400")
	SetGadgetText(111,"3"):SetGadgetText(78,"255")
	trScrCent()
	wBound(1)
	affcodecolor()
	fendepart()
EndProcedure


on peut meme utiliser les Citations pour la mise en page :

exemple :


Procedure Raz() ;ok
    For b = 20 To 44
       SetGadgetState(b, 0)
    Next
    SetGadgetState( 20, 1):SetGadgetState( 38, 1):SetGadgetState( 144, 255)
    DisableGadget( 41, 1): DisableGadget( 29, 0): DisableGadget( 42, 1)
    SetGadgetText( 100, "Ma_fen" ):SetGadgetText( 101, "Ma Fenêtre" )
    SetGadgetText( 102, "500" ):SetGadgetText( 103, "200" )
    SetGadgetText( 104, "400" ):SetGadgetText( 105, "400" )
    SetGadgetText( 111, "3" ):SetGadgetText( 78, "255" )
    trScrCent()
    wBound( 1)
    affcodecolor()
    fendepart()
EndProcedure

Re: WindowConstructeur version2

Publié : jeu. 23/mai/2013 20:15
par GallyHC
MLD > je ne me permettrais pas d'ajouter des codes qui ne son pas de moi sur mon site. Ce que j'ai fait toute fois avant (en indiquant a chaque fois d'où vient l'info, ect...), mais je ne le ferais plus car cela est inutile du fait qu'il n'y a pas d'échange juste des ajouts d'autres dev qui n'est même pas de moi...

Sinon j'ai testé sur PB 5.11 est vraiment cela a l'air fonctionnel et je vais surement l'utilisé personnellement (même si faut faire des tes plus poussé qu'un simple test).

Cordialement,
GallyHC

Re: WindowConstructeur version2

Publié : jeu. 23/mai/2013 22:25
par falsam
MLD a écrit :@falsam

La critique non constructive étant facile j'attend avec impatience que tu fasse mieux avec un code plus court.
Ceci évitera de me fatigué pour une prochaine foi. :twisted: :mrgreen:
critique non constructive ? Non mais tu as fumé un clavier avarié soupoudré à la coke !!!!!! Sacré bad trip !!!!

Je ne critique pas ton code, j'ai même dit que c'était pas mal et je t'ai remercié pour le partage. (Relis bien quand tu seras un peu mieux luné.)


Par contre ma critique (que je trouve constructive) porte sur le code généré par ton programme qui LUI n'est pas formaté (Quelques TAB ç'est rapide à mettre en place) et j'ai dit que ce serait un plus.

Si tu postes c'est pour avoir un avis hein ? Alors acceptes ces remarques.

Re: WindowConstructeur version2

Publié : ven. 24/mai/2013 9:07
par MLD
@falsam

Oui sur le coup tu m'a mis les boules. :?
J'ai modifié le code pour que entre Enumeration et EndEnumeration le code soit décalé. C'était un oublis. :oops:
Pour le reste du code, il y a bien formatage, du moins comme moi je le pratique. :D
Si le formatage ne te convient pas, comme le code est libre, fait la modif qui te convient. :wink:
Merci et sans rancune.
Michel

Re: WindowConstructeur version2

Publié : ven. 24/mai/2013 9:11
par MLD
@Gally

Merci
Ok test, et dis moi s'il y a des Bugs :lol:
Prend a nouveau le code plus haut j'ai fai 2 petites modifs pour tenir compte de la remarque de falsam.

Re: WindowConstructeur version2

Publié : ven. 24/mai/2013 9:37
par Ar-S
Salut MLD.
Bonne petite avancée de ton prog bravo.
Coté remarque :
- Lorsque l'on clique sur la croix de fermeture de la fenêtre d'aperçu, il faudrait un MessageRequester nous avertissant que c'est tout le prog que l'on ferme et non uniquement notre fenêtre d'aperçu.
- Détails mais tu devrais franciser ton programme complètement (Tool, borderless...)
- Toujours le soucis de la "non" disparition du prog dans la barre des tâches sous W8 x64 mais je crois savoir comment y arriver.
En gros le SetWindowLong_ ne passe pas. MAIS je viens de m'apercevoir que c'est l'attribut #PB_Window_Tool qui fait apparaître ou pas le prog dans la barre des tâches. (Il est censé ajouter une bordure à la base, serait-ce un bug ?)

En gros :

Code : Tout sélectionner

; Non visible dans barre des tâches
OpenWindow(#Ma_fen,0,0,400,400,"Ma Fenêtre",#PB_Window_SystemMenu | #PB_Window_Tool | #PB_Window_ScreenCentered)

;Visible
OpenWindow(#Ma_fen,0,0,400,400,"Ma Fenêtre",#PB_Window_SystemMenu |  #PB_Window_ScreenCentered)
Voilou. Bonne continuation

Re: WindowConstructeur version2

Publié : ven. 24/mai/2013 12:51
par MLD
@Ar-S

Merci pour les remarques.

Une petite mise au point: La fenêtre "Test" n'est pas en principe active. Elle sert simplement a visualiser l'aspect de celle-ci, mais pas son fonctionnement.
Pour un fonctionnement de la fenêtre en question il faut coller le code dans le presse papier et ouvrir un nouveau dossier dans PB et lui coller le code. Comme lorsque tu commences un nouveau programme. c'est le même principe qu'un IDE avec un form intégré.
L'appui sur le bouton de fermeture de la fenêtre "Test" qui ferme tous le programme n'est pas top je te l'accorde, je réfléchis a la question pour la prochaine version.

Pour la barre de tache je ne peu pas tester, mais en seven ceci fonctionne parfaitement.
Mais fait un essai en copiant le code comme ci-dessus.
Non ce n'est pas l'attribut #PB_Window_Tool qui fait apparaître ou pas le prog dans la barre des tâches. C'est SetWindowLongPtr_(WindowID(#x),#GWL_HWNDPARENT,FindWindow_(0, ""))

Pour la Francisation du programme, il y a du pour et du contre. J'ai voulu pour les commandes de base resté dans le langage PB. Mais....
Mais encore merci. Pour le 9 toi c'est soirée déguisée et moi invitation a un mariage a la cambrousse :lol:

Re: WindowConstructeur version2

Publié : ven. 24/mai/2013 13:52
par Ar-S
MLD a écrit : Une petite mise au point: (...)
Vivi cela va de soi

L'appui sur le bouton de fermeture de la fenêtre "Test" qui ferme tous le programme n'est pas top je te l'accorde, je réfléchis a la question pour la prochaine version.

Pour la barre de tache je ne peu pas tester, mais en seven ceci fonctionne parfaitement.
Mais fait un essai en copiant le code comme ci-dessus.
Non ce n'est pas l'attribut #PB_Window_Tool qui fait apparaître ou pas le prog dans la barre des tâches. C'est SetWindowLongPtr_(WindowID(#x),#GWL_HWNDPARENT,FindWindow_(0, ""))
[/Quote]
Je le sais. Ce que je dis c'est que sous Windows 8 x64 en pb 5.11x86
Ceci :

Code : Tout sélectionner

OpenWindow(#toto,500,200,400,400,"Ma Fenêtre",#PB_Window_Tool | #PB_Window_SystemMenu)
Ne fait pas apparaitre le prog dans la barre
alors que ceci :

Code : Tout sélectionner

 OpenWindow(#toto,500,200,400,400,"Ma Fenêtre", #PB_Window_SystemMenu)
Fait apparaitre le prog dans la barre (comme d'hab quoi)

Et je précise que ceci se produit sans l'API SetWindowLongPtr_ (en commentant la ligne)

Le poids des mots...
Image

----edit----
Je viens de relire la doc :
#PB_Window_Tool : Crée une fenêtre avec une barre de titre plus fine, et non visible dans la barre des tâches.

Ceci entrainant cela :)

la barre des titres par contre ne semble pas être impactée, ce sont les boutons de la barre qui sont plus fin.


Pour la Francisation c'est toi qui voit. ;)

Re: WindowConstructeur version2

Publié : ven. 24/mai/2013 21:08
par Starwolf20
Salut MLD

j'ai remarqué un petit pb sur la gestion de la couleur : si tu coches le bouton 'color' et fais varier les composantes, la couleur de la fenêtre change (comme prévu) mais si après, tu décoches le bouton 'color' , les 3 composantes de la couleur reviennent a zéro mais la couleur reste et le code généré ne change pas..

Merci pour le code
A+

Re: WindowConstructeur version2

Publié : sam. 25/mai/2013 8:50
par MLD
@ Strawolf20

Tu est sur ! 8O Car chez moi la couleur revient au gris quand Color est décoché. De plus ceci me semble impossible ...... Mais en informatique rien n'est impossible. :wink: