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