WindowConstructeur version2

Programmation d'applications complexes
Mesa
Messages : 1098
Inscription : mer. 14/sept./2011 16:59

Re: WindowConstructeur version2

Message par Mesa »

Comme d'habitude avec mon affichage à 120%, les gadgets sont trop petits.

Voici le code modifié pour corriger cela:

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, 510, 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,270,100,"Attributs de la fenêtre")
Frame3DGadget(#Frame3D_wincolor,5,110,225,105,"Couleur Fenêtre")
Frame3DGadget(#Frame3D_tailpos,235,110,270,175,"Position - Taille de la fenêtre")
Frame3DGadget(#Frame3D_opt,5,290,235,160,"Options")
Frame3DGadget(#Frame3D_loop,235,290,270,160,"Inclure la Boucle générale")
Frame3DGadget(#Frame3D_fonct,5,455,500,45,"Fonctions")
Frame3DGadget(#Frame3D_transp,5,220,225,65,"Transparence")
;====== gadgets CheckBox ========
CheckBoxGadget(#Check_SystMenu,245,20,130,20,"Bouton Système")
SetGadgetState(#Check_SystMenu,#PB_Checkbox_Checked)
CheckBoxGadget(#Check_MinimizeGad,245,40,130,20,"Bouton Minimize")
CheckBoxGadget(#Check_MaximizeGad,245,60,130,20,"Bouton Maximize")
CheckBoxGadget(#Check_Tool,245,80,130,20, "Tool")
CheckBoxGadget(#Check_Border,380,20,120,20,"BorderLess")
CheckBoxGadget(#Check_Maximize,380,40,120,20,"Maximize")
CheckBoxGadget(#Check_Minimize,380,60,120,20,"Minimize")
CheckBoxGadget(#Check_Invisible,380,80,120,20,"Invisible")
CheckBoxGadget(#Check_ScreenCentered,245,125,120,20,"ScreenCentered")
CheckBoxGadget(#Check_SizeGadget,245,190,120,20,"SizeGadget")
CheckBoxGadget(#Check_Bound,365,190,120,20,"WindowBound")
CheckBoxGadget(#Check_Invisiblebar,15,425,220,20,"Invisible dans barre des Tâches") 
CheckBoxGadget(#Check_StickyWin,15,365,220,20,"StickyWindow")
CheckBoxGadget(#Check_Wincolor,15,125,80,20,"Couleur")
CheckBoxGadget(#Check_Statbar,15,345,80,20,"Statubar") 
CheckBoxGadget(#Check_Transp,15,235,105,20,"Transparence")
CheckBoxGadget(#Check_Doubletrame,15,305,220,20,"Double trame")
CheckBoxGadget(#Check_Hombre,15,325,220,20,"Fenêtre avec ombre")
CheckBoxGadget(#Check_Cadre,15,385,220,20,"Fenêtre sans titre avec cadre")
DisableGadget(41,1)
CheckBoxGadget(#Check_Depsour,15,405,220,20,"Déplace une fenêtre BorderLess")
DisableGadget(42,1)
CheckBoxGadget(#Check_Loop_1,245,310,240,20,"Minimale 1  (Utile pour des tests)")
CheckBoxGadget(#Check_Loop_2,245,338,240,20,"Minimale 2 (Boucle a votre choix)")
SetGadgetState(#Check_Loop_2,#PB_Checkbox_Checked)
CheckBoxGadget(#Check_Loop_3,245,366,240,20,"Standard 1  (If, EndIf)") 
CheckBoxGadget(#Check_Loop_4,245,394,240,20,"Standard 2  (Select,Case,Endselect)") 
CheckBoxGadget(#Check_Loop_5,245,422,240,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,130,20, "Position  X:")
TextGadget(#Text_posY,380,148,15,20, "Y:")
TextGadget(#Text_tailarg,245,170,130,20, "Taille  Larg:")
TextGadget(#Text_tailhaut,375,170,60,20, "Haut:") 
TextGadget(#Text_utilbound,265,215,230,20,"Si WindowBound: Taille mini/maxi")
SetGadgetColor(#Text_utilbound,#PB_Gadget_FrontColor,$D9C2BD)
TextGadget(#Text_Bdlargmin,245,236,60,20,"Larg/min") 
TextGadget(#Text_Bdhautmin,365,236,60,20,"Haut/min") 
TextGadget(#Text_Bdlargmax,245,260,60,20,"Larg/max")
TextGadget(#Text_bdhautmax,365,260,60,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,100,345,90,20,"Nb champs:")
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,320,145,40,18,"500",#ES_CENTER)
StringGadget(#String_PosY,420,145,40,18,"200",#ES_CENTER) 
StringGadget(#String_Larg,320,168,40,18,"400",#ES_CENTER) 
StringGadget(#String_Haut,420,168,40,18,"400",#ES_CENTER)
StringGadget(#String_BdL_Mini,320,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,435,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,320,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,435,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,180,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,100,20,"Enr un modèle")
ToolTipMic(#WinCtr,#Bt_enrmod,"Enregistre cette fenêtre comme modèle.") 
ButtonGadget(#Bt_Ouvmod,205,472,120,20,"Ouvre un modèle")
ToolTipMic(#WinCtr,#Bt_Ouvmod,"Ouvre un modèle de fenêtre.")
ButtonGadget(#Bt_Raz,330,472,75,20,"R A Z")
ToolTipMic(#WinCtr,#Bt_Raz,"Remet a zéro WinConstructeur.")
ButtonGadget(#Bt_Stop,410,472,85,20,"Quitter")
ToolTipMic(#WinCtr,#Bt_Stop,"On termine ici.")
ButtonGadget(130,100,127,70,20,"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,500,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
Mesa.
Avatar de l’utilisateur
MLD
Messages : 1105
Inscription : jeu. 05/févr./2009 17:58
Localisation : Bretagne

Re: WindowConstructeur version2

Message par MLD »

@ Mesa

Tu changes le code OK, mais signale les lignes que tu as changés. :)
Répondre