Code : Tout sélectionner
;*****************************************************
; WinConstructeur V5 01/12/2019 *
; Programmer par MLD Compilation PB 5.71 LTS *
; ATTENTION NE PAS COCHER le DPI DANS le COMPILATEUR*
;*****************************************************
;¤¤¤¤¤¤ Assignation gadgets ¤¤¤¤¤¤¤¤¤¤¤¤
#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
;>>>>> les Coches
#Coche_enum_oui = 18 :#Coche_enum_non = 19 :#coche_MinimizeGad = 20 :#coche_MaximizeGad = 21
#coche_size = 22 :#coche_Invisible = 23 :#coche_Tool = 24 :#coche_Maximize = 25
#coche_Minimize = 26 :#coche_Border = 27 :#coche_ScreenCentered = 28:#coche_Invisiblebar = 32 :#coche_Wincolor = 33
#coche_StickyWin = 35 :#coche_Transp = 36 :#coche_Loop_2 = 38 :#coche_Loop_3 = 39
#coche_Loop_4 = 40 :#coche_Loop_5 = 41 :#coche_Cadre = 42 :#coche_Depsour = 43
#coche_dimauto = 45 :#coche_Plecr = 46 :#coche_btv = 47 :#coche_autmax = 48:#coche_autre = 49:#coche_Fsec = 50
;>>>>> les TextGadgets
#Text_posX = 61 :#Text_posY = 62 :#Text_larg = 63 :#Text_Haut = 64
#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_transp2 = 79 :#Text_titre = 80
;>>>>> les StringGadgets
#String_Winid = 100 :#String_Titre = 101
;>>>>> les SpinGadgets
#Spin_PosX = 102 :#Spin_PosY = 103 :#Spin_Larg = 104 :#Spin_Haut = 105
;>>>>> les boutons
#Bt_aid = 123 :#Bt_enrAUTO = 124 :#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 = 149
;>>>>> Le fichier
#fichmod = 150:#FicDim = 151
;>>>>>> la petite fenêtre
#Wenr = 200 :#text_1 = 201 :#text_2 = 202 :#text_3 = 203 :#bt_1 = 204 :#bt_2 = 205 : #list1 = 206
Declare inscripcode()
Declare fentest()
Declare optft()
Declare fendepart()
Global Dim TcodeID.s(4),Dim TcodeWin.s(10),Dim Tcodebcl.s(12),Dim Toptf.s(7),Dim L.s(11)
Global Titr$,sap.b,Y,Hwq.d,Dpspin
Global opt1.l,opt2.l,opt3.l,opt4.l,typH.b,opt1$ = "#NUL",opt2$ = "#NUL",opt3$ = "#NUL",opt4$ = "#NUL",typH.b = 0
Global Ftyp = 0,dlect = 0
;¤¤¤¤ aide ¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤
L.s(1) = "But du logiciel:" +#CRLF$
L.s(2) = "Réalisation rapide d'une fenêtre. (Windows uniquement)."+#CRLF$
L.s(3) = "La fenêtre de commande est suffisament explicite pour ne pas faire une aide trop importante. Quelques points sont a signaler"+#CRLF$
L.s(4) = "Deux façons de désigner les fenêtres et les gadgets sont possibles. Enumération automatique ou assignation.(Numérotage)"+#CRLF$
L.s(5) = "Dimensions automatiques, veut dire en fonction de la résolution des écrans. La case DPI du compilateur ne doit pas être cochée."+#CRLF$
L.s(6) = "Fenêtre secondaire cochée, veut dire que la fenêtre principale a déja été réalisée avec le code pour un dimensionnement automatique,"+#CRLF$
L.s(7) = "que donc le code d'automatisme ne sera pas produit pour cette fenêtre."+#CRLF$
L.s(8) = "Vous pouvez enregistrer des modèles de fenêtre pour une utilisation ultérieure."+#CRLF$
L.s(9) = "Ce logiciel étant compatible avec AUTOGAD_V4 vous pouvez enregistrer les dimensions de la fenêtre pour une utilisation avec celui-ci."+#CRLF$
L.s(10) = "Le tranfer du code se fait par l'intermédiaire du presse papier."+#CRLF$
L.s(11) = "RESTRICTIONS:L'invisibilité de la fenêtre teste dans la barre de tâches, ainsi que le déplacement en fenêtre borderless n'est pas possible."+#CRLF$
For X = 1 To 11
LT$ = LT$ + L.s(X)
Next
FreeArray(L.s())
;¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤
Macro tab(dptab)
If dptab = 2
Dim TcodeID.s(4):Dim TcodeWin.s(10):Dim Tcodebcl.s(12):Dim Toptf.s(7)
Else
FreeArray(TcodeID.s()):FreeArray(TcodeWin.s()):FreeArray(Tcodebcl.s()):FreeArray(Toptf.s())
EndIf
EndMacro
Macro EcriEtict(gad)
SetGadgetFont(gad,FontID1)
EndMacro
Macro DG(gad,num);disabledgadget
If num = 1
DisableGadget(gad,1)
Else
DisableGadget(gad,0)
EndIf
EndMacro
Macro razCdim(gad)
For z = 46 To 49
If z <> gad:MLD_ActCoche(z,0):EndIf
Next
EndMacro
Macro razSdim()
For zz = 61 To 64
DG(zz,0)
Next
For zz = 102 To 105
DG(zz,0)
Next
EndMacro
Macro razbcl()
For x = 2 To ArraySize(Tcodebcl.s())
Tcodebcl.s(x)= ""
Next
EndMacro
;¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤Dimensions automatiques ¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤
Global Dim DA.s(55)
#Ldef = 1920:#Hdef = 1080
Global typH.b,L.d
Global definecrlarg.d = GetSystemMetrics_(#SM_CXSCREEN):Global definecrht.d = GetSystemMetrics_(#SM_CYSCREEN)
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 Hw(Dh.d,typH.b)
SystemParametersInfo_(#SPI_GETWORKAREA,0,@DesktopWorkArea.RECT,0)
htTaskbarwin.d = definecrht.d - DesktopWorkArea\Bottom
If opt1.l = #PB_Window_BorderLess
OpenWindow(2000,0,0,200,200,"",#PB_Window_BorderLess|#PB_Window_Invisible)
Else
OpenWindow(2000,0,0,200,200,"",#PB_Window_SystemMenu|#PB_Window_Invisible)
EndIf
EPframeL.d = WindowX(2000, #PB_Window_InnerCoordinate)
Httitre.d = WindowY(2000, #PB_Window_InnerCoordinate)
CloseWindow(2000)
Select typH.b
Case 1 ;fen avec titre et haut max
Hwq.d = definecrht - Httitre.d
Case 2 ;fen avec titre et barre de tache win visible
Hwq.d = definecrht - (htTaskbarwin + Httitre.d + EPframeH)
Case 3 ;fen sans titre et hauteur max
If GetGadgetState(42) = 1:Hwq.d = definecrht -6:Else:Hwq.d = definecrht:EndIf
Case 4 ;fen sans titre et barre de tache win visible
Hwq.d = definecrht - htTaskbarwin
Default ;fen quelconque
Hwq.d = Dh * (definecrht /#Hdef)
EndSelect
ProcedureReturn Hwq.d
EndProcedure
Procedure Lw(dL.d)
L.d = dL * (definecrlarg /#Ldef)
ProcedureReturn L.d
EndProcedure
Procedure Ywp(y.d)
ProcedureReturn y.d *(definecrht.d /#Hdef)
EndProcedure
Procedure XWp(lp.d)
ProcedureReturn lp.d * (definecrlarg /#Ldef)
EndProcedure
Procedure MLD_openfen(ng.d,x.d,y.d,Lf.d,H.d,titre$,opt1.l,opt2.l,opt3.l,opt4.l,typH.b)
If typH.b <> 0 : y.d = 0:EndIf
OpenWindow(ng.d,Xwp(x.d),Ywp(y.d),Lw(Lf.d),Hw(H.d,typH.b),titre$,opt1.l|opt2.l|opt3.l|opt4.l)
EndProcedure
Procedure X(lg.d)
ProcedureReturn lg *(definecrlarg.d/#Ldef)
EndProcedure
Procedure y(h.d)
ProcedureReturn h *(definecrht.d /#Hdef)
EndProcedure
DA.s(1) = "#Ldef = 1920:#Hdef = 1080"
DA.s(2) = "Global typH.b,L.d"
DA.s(3) = "Global definecrht.d = GetSystemMetrics_(#SM_CYSCREEN):Global definecrlarg.d = GetSystemMetrics_(#SM_CXSCREEN)"
DA.s(4) = " "
DA.s(5) = "Procedure Hw(Dh.d,typH.b)"
DA.s(6) = " SystemParametersInfo_(#SPI_GETWORKAREA,0,@DesktopWorkArea.RECT,0)"
DA.s(7) = " htTaskbarwin.d = definecrht.d - DesktopWorkArea\Bottom"
DA.s(8) = " If opt1.l = #PB_Window_BorderLess"
DA.s(9) = " OpenWindow(2000,0,0,200,200," + Chr(34)+Chr(34)+",#PB_Window_BorderLess|#PB_Window_Invisible)"
DA.s(10) = " Else"
DA.s(11) = " OpenWindow(2000,0,0,200,200," + Chr(34)+Chr(34)+ ",#PB_Window_SystemMenu|#PB_Window_Invisible)"
DA.s(12) = " EndIf"
DA.s(13) = " EPframeL.d = WindowX(2000, #PB_Window_InnerCoordinate)"
DA.s(14) = " Httitre.d = WindowY(2000, #PB_Window_InnerCoordinate)"
DA.s(15) = " CloseWindow(2000)"
DA.s(16) = " Select typH.b"
DA.s(17) = " Case 1 ;fen avec titre et haut max "
DA.s(18) = " Hwq.d = definecrht - Httitre.d"
DA.s(19) = " Case 2 ;fen avec titre et barre de tache win visible"
DA.s(20) = " Hwq.d = definecrht - (htTaskbarwin + Httitre.d + EPframeH)"
DA.s(21) = " Case 3 ;fen sans titre et hauteur max"
DA.s(22) = " Hwq.d = definecrht "
DA.s(23) = " Case 4 ;fen sans titre et barre de tache win visible"
DA.s(24) = " Hwq.d = definecrht - htTaskbarwin"
DA.s(25) = " Default ;fen quelconque"
DA.s(26) = " Hwq.d = Dh * (definecrht /#Hdef)"
DA.s(27) = " EndSelect"
DA.s(28) = " ProcedureReturn Hwq.d "
DA.s(29) = "EndProcedure"
DA.s(30) = " "
DA.s(31) = "Procedure Lw(dL.d)"
DA.s(32) = " L.d = dL * (definecrlarg /#Ldef)"
DA.s(33) = " ProcedureReturn L.d"
DA.s(34) = "EndProcedure"
DA.s(35) = " "
DA.s(36) = "Procedure Ywp(y.d)"
DA.s(37) = " ProcedureReturn y.d *(definecrht.d /#Hdef)"
DA.s(38) = "EndProcedure"
DA.s(39) = " "
DA.s(40) = "Procedure XWp(lp.d)"
DA.s(41) = " ProcedureReturn lp.d * (definecrlarg /#Ldef)"
DA.s(42) = "EndProcedure"
DA.s(43) = " "
DA.s(44) = "Procedure MLD_openfen(ng.d,x.d,y.d,Lf.d,H.d,titre$,opt1.l,opt2.l,opt3.l,opt4.l,typH.b)"
DA.s(45) = " If typH.b <> 0 : y.d = 0:EndIf"
DA.s(46) = " OpenWindow(ng.d,Xwp(x.d),Ywp(y.d),Lw(Lf.d),Hw(H.d,typH.b),titre$,opt1.l|opt2.l|opt3.l|opt4.l)"
DA.s(47) = "EndProcedure"
Da.s(48) = " "
Da.s(49) = "Procedure X(lg.d)"
Da.s(50) = " ProcedureReturn lg *(definecrlarg.d/#Ldef)"
Da.s(51) = "EndProcedure"
Da.s(52) = " "
Da.s(53) = "Procedure y(h.d)"
Da.s(54) = " ProcedureReturn h *(definecrht.d /#Hdef)"
Da.s(55) = "EndProcedure"
;¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤¤
Global FontID1 = LoadFont(161,"Noto Serif Condensed",X(10),0|0|0|0|0)
Global FontID2 = LoadFont(162,"Noto Serif Condensed",X(10),256|0|0|0|0)
Procedure cadrestring(Gad)
SetWindowLongPtr_(GadgetID(Gad),#GWL_EXSTYLE,GetWindowLongPtr_(GadgetID(Gad),#GWL_EXSTYLE)|#WS_EX_STATICEDGE &~ #WS_EX_CLIENTEDGE)
SetWindowPos_(GadgetID(Gad),0,0,0,0,0,#SWP_NOZORDER|#SWP_NOMOVE|#SWP_NOSIZE|#SWP_FRAMECHANGED|#SWP_DRAWFRAME)
EndProcedure
Procedure GestionCaret(Gadget) ; Gestion du caret dans stringGadget
SendMessage_(GadgetID(Gadget), #EM_GETSEL, @Debut_Position, @Fin_position)
y = Debut_Position
Texte.s = GetGadgetText(Gadget)
x =Len(Texte)
Texte2.s = Left(Texte,y ) + Right(Texte,x-y)
SendMessage_(GadgetID(Gadget), #EM_SETSEL, x, x)
EndProcedure
Procedure MLD_ActCoche(Gad,Act) ;1 = actif 0 = non actif
haut.D = GadgetHeight(Gad): larg.D = haut.D
;fontche = LoadFont(Gad,"Noto sans Condensed",X(haut * 0.75),256)
CreateImage(Gad,larg,haut)
hdc=StartDrawing(ImageOutput(Gad))
;Dessine l'image
DrawingMode(#PB_2DDrawing_Gradient)
BackColor($BEBEBE):FrontColor($FFFFFF)
LinearGradient(0,haut *1.5,0,0)
Box(0,0,larg,haut)
;Position du texte
DrawingMode(#PB_2DDrawing_Transparent)
DrawingFont(FontID2);font obligatoire en tête de programme
txtcoche$ = Chr(10003)
hautxtC = TextHeight(txtcoche$):largtxtC = TextWidth(txtcoche$)
ctrtxtC = ((larg - largtxtC)/2 )+1; centre le text en largeur
ctxtC = (haut - hautxtC)/2 ; centre le text en hauteur
If Act = 1
SetGadgetState(Gad,1):DrawText(ctrtxtC,ctxtC,txtcoche$,$32CD32)
Else
SetGadgetState(Gad,0)
EndIf
StopDrawing()
SetGadgetAttribute(Gad,#PB_Button_Image,ImageID(Gad))
EndProcedure
Procedure MLD_Coche(Gad,x.D,y.D,larg.D,haut.D,txt$,coultxt,Action) ;le num de gadget ne doit jamais être 0| Action 1 = ok 0 = no ok
ButtonImageGadget(Gad,x,y,haut,haut,0,#PB_Button_Toggle)
CouleurFond = GetSysColor_(#COLOR_3DFACE)
;Font = LoadFont(0,"Noto Sans Condensed",X(10))
hautbt.D = GadgetHeight(Gad)
plG = x + hautbt.D + 12
txtgad = TextGadget(#PB_Any,plG,y,larg.D,haut.D,txt$,#SS_CENTERIMAGE)
SetGadgetColor(txtgad,#PB_Gadget_BackColor,CouleurFond) :SetGadgetColor(txtgad,#PB_Gadget_FrontColor,coultxt)
SetGadgetFont(txtgad,FontID1);font obligatoire en tête de programme
MLD_ActCoche(Gad,Action)
EndProcedure
Procedure affcodecolor()
SetGadgetText(73,"$" + Hex(GetGadgetState(141)));R
SetGadgetText(74,"$" + Hex(GetGadgetState(142)));V
SetGadgetText(75,"$" + Hex(GetGadgetState(143)));B
SetGadgetText(76,GetGadgetText(75)+ Hex(GetGadgetState(142))+ Hex(GetGadgetState(141)))
SetGadgetColor(77,#PB_Gadget_BackColor,RGB(GetGadgetState(#trck_R),GetGadgetState(#trck_G),GetGadgetState(#trck_B)))
EndProcedure
Procedure colorRequest()
Couleur = ColorRequester()
If Couleur > -1
SetGadgetState(143,Blue(Couleur))
SetGadgetState(142,Green(Couleur))
SetGadgetState(141,Red(Couleur))
affcodecolor()
EndIf
EndProcedure
Procedure gID(act.i) ;gestion de l'ID
a$ = Trim(GetGadgetText(100))
If Left(a$,1) <> "#"
SetGadgetText(100,"#" + a$)
EndIf
If act.i = 19
If FindString(GetGadgetText(100),"=")= 0
SetGadgetText(100,GetGadgetText(100) + " = 1")
EndIf
Else
b$ = GetGadgetText(100):y = FindString(b$,"=")
If y <> 0
SetGadgetText(100,Left(b$,(y-2)))
EndIf
EndIf
GestionCaret(100)
EndProcedure
Procedure construcwin()
X = GetGadgetState(102):Y = GetGadgetState(103):larg = GetGadgetState(104):haut = GetGadgetState(105)
If GetGadgetState(18) = 1:cdID$ = Trim(TcodeID(2)):EndIf
If GetGadgetState(19) = 1:cdID$ = Trim(TcodeID(4)):EndIf
If Ftyp = 1
If GetGadgetState(24) = 1;pour fen tool
TcodeWin(1) = "OpenWindow(" + cdID$ + ","+ X + "," + Y + "," + larg + "," + haut + "," + Chr(34)+ GetGadgetText(101)+ Chr(34)+ ","+ "#PB_Window_SystemMenu"+ "|" + "#PB_Window_Tool" + "|" + opt4$ + ")"
EndIf
If GetGadgetState(27) = 1;pour fen borderless
TcodeWin(1) = "OpenWindow(" + cdID$ + ","+ X + "," + Y + "," + larg + "," + haut + "," + Chr(34)+ GetGadgetText(101)+ Chr(34)+ ","+ "#PB_Window_BorderLess"+ "|" + opt4$ + ")"
EndIf
If GetGadgetState(24) = 0 And GetGadgetState(27) = 0
TcodeWin(1) = "OpenWindow(" + cdID$ + ","+ X + "," + Y + "," + larg + "," + haut + "," + Chr(34)+ GetGadgetText(101)+ Chr(34)+ "," + opt1$ + "|" + opt2$ + "|" + opt3$ + "|"+ opt4$ + ")"
EndIf
EndIf
If Ftyp = 2
If GetGadgetState(46) = 1;pour plein écran
X = 0:Y = 0:larg = #Ldef :haut = #Hdef:EndIf
If GetGadgetState(24) = 1;pour fen tool
TcodeWin(1) = "MLD_openfen(" + cdID$ + ","+ X + "," + Y + "," + larg + "," + haut + "," + Chr(34)+ GetGadgetText(101)+ Chr(34)+ ","+ "#PB_Window_SystemMenu"+ "," + "#PB_Window_Tool" + "," + opt4$ + "," + typH.b + ")"
EndIf
If GetGadgetState(27) = 1;pour fen borderless
TcodeWin(1) = "MLD_openfen(" + cdID$ + ","+ X + "," + Y + "," + larg + "," + haut + "," + Chr(34)+ GetGadgetText(101)+ Chr(34)+ ","+ "#PB_Window_BorderLess" + "," + opt2$ + "," + opt3$ + "," + opt4$ + "," + typH.b + ")"
EndIf
If GetGadgetState(24) = 0 And GetGadgetState(27) = 0
TcodeWin(1) = "MLD_openfen(" + cdID$ + ","+ X + "," + Y + "," + larg + "," + haut + "," + Chr(34)+ GetGadgetText(101)+ Chr(34)+ "," + opt1$ + "," + opt2$ + "," + opt3$ + ","+ opt4$ + "," + typH.b + ")"
EndIf
EndIf
If GetGadgetState(32) = 1
Toptf.s(5) = "SetWindowLongPtr_(WindowID(" + cdID$ + "),#GWL_HWNDPARENT,FindWindow_(0," + Chr(34)+ "program manager" + Chr(34) + "))"
Else
Toptf.s(5) = ""
EndIf
If GetGadgetState(33) = 1
Toptf.s(1) = "SetWindowColor(" + cdID$ + "," + GetGadgetText(76) + ")"
Else
Toptf.s(1) = ""
EndIf
If GetGadgetState(35) = 1:Toptf.s(4) = "StickyWindow(" + cdID$ + ",1)":Else :Toptf.s(4) = "":EndIf
If GetGadgetState(36) = 1
valtr$= Str(GetGadgetState(144))
Toptf.s(2) = "SetWindowLongPtr_(WindowID(" + cdID$ + "),#GWL_EXSTYLE,#WS_EX_LAYERED)"
Toptf.s(3) = "SetLayeredWindowAttributes_(WindowID(" + cdID$ + "),0," + valtr$ + ",#LWA_ALPHA)"
Else
Toptf.s(2) = "":Toptf.s(3) = ""
EndIf
If GetGadgetState(38) = 1 ;boucle min
Tcodebcl.s(1) = "Repeat":Tcodebcl.s(2) = " Event = WaitWindowEvent()" :Tcodebcl.s(6) = Space(6):Tcodebcl.s(7) = Space(3)
Tcodebcl.s(10)= "Until Event = #PB_Event_CloseWindow":Tcodebcl.s(11)= "End"
EndIf
If GetGadgetState(39) = 1 ;boucle stand if
Tcodebcl.s(2) = " Event = WaitWindowEvent()"
Tcodebcl.s(6) = " If Event = #PB_Event_Gadget"
Tcodebcl.s(7) = " Select EventGadget()"
Tcodebcl.s(8) = " "
Tcodebcl.s(9) = " EndSelect"
Tcodebcl.s(10) = " EndIf"
Tcodebcl.s(11) = "Until Event = #PB_Event_CloseWindow"
Tcodebcl.s(12) = "End"
EndIf
If GetGadgetState(40) = 1 ;boucle stand select
Tcodebcl.s(2) = " Select WaitWindowEvent()"
Tcodebcl.s(6) = " Case #PB_Event_Gadget"
Tcodebcl.s(7) = " "
Tcodebcl.s(8) = " Case #PB_Event_CloseWindow"
Tcodebcl.s(9) = " Break"
Tcodebcl.s(10) = " EndSelect"
Tcodebcl.s(11) = "ForEver"
Tcodebcl.s(12) = "End"
EndIf
If GetGadgetState(41) = 1 ;boucle sans fin pour borderless
Tcodebcl.s(2) = " Event = WaitWindowEvent()"
Tcodebcl.s(6) = " If Event = #PB_Event_Gadget"
Tcodebcl.s(7) = " Select EventGadget()"
Tcodebcl.s(8) = " "
Tcodebcl.s(9) = " EndSelect"
Tcodebcl.s(10) = " EndIf"
Tcodebcl.s(11) = "ForEver"
Tcodebcl.s(12) = "End"
EndIf
If GetGadgetState(42) = 1
Toptf.s(6) = "SetWindowLongPtr_(WindowID(" + cdID$ + "), #GWL_STYLE, GetWindowLongPtr_(WindowID(" + cdID$ + "), #GWL_STYLE) | #WS_DLGFRAME)"
Toptf.s(7) = "SetWindowPos_(WindowID(" + cdID$ + "), 0,0,0,0,0,#SWP_NOSIZE|#SWP_NOMOVE|#SWP_NOZORDER|#SWP_FRAMECHANGED)"
Else
Toptf.s(6) = "":Toptf.s(7) = ""
EndIf
If GetGadgetState(43) = 1 ;déplace une fenêtre borderless
Tcodebcl(3) = " If Event = #WM_LBUTTONDOWN"
Tcodebcl(4) = " SendMessage_(WindowID(" + cdID$ + "), #WM_NCLBUTTONDOWN, #HTCAPTION, 0)"
Tcodebcl(5) = " EndIf"
Else
Tcodebcl(3) = "":Tcodebcl(4) = "":Tcodebcl(5) = ""
EndIf
EndProcedure
Procedure Interaction(act.i)
If GetGadgetState(45) = 1
Ftyp = 2
Else
Ftyp = 1
EndIf
Select act.i
Case 18 ;enumération automatique (Tcode 1 a 3 = enum)
MLD_ActCoche(19,0):MLD_ActCoche(18,1):gID(act.i)
TcodeID(1) = "Enumeration" :TcodeID(2) = " " + GetGadgetText(100): TcodeID(3) = "EndEnumeration"
TcodeID(4) = TcodeID(2)
construcwin():inscripcode()
Case 19;assignation des gadgets (Tcode 1 a 3 = enum)
MLD_ActCoche(19,1):MLD_ActCoche(18,0)
gID(act.i):cID$ = " " + GetGadgetText(100):lgIDC = Len(cID$):z = FindString(cID$,"=")
TcodeID(2)= cID$:TcodeID(4) = Right(cID$,lgIDC - (z+1));indique le n° de ID épuré
TcodeID.s(1) = ";¤¤¤¤ Assignation des gadgets ¤¤¤¤" :TcodeID(3) = ";¤¤¤¤¤¤¤¤"
construcwin():inscripcode()
Case 20 ;bt minimise
If GetGadgetState(20) = 1
opt1.l = #PB_Window_MinimizeGadget:opt1$ = "#PB_Window_MinimizeGadget"
Else
opt1.l = 0:opt1$ = "#Nul"
EndIf
If opt1.l = 0 And opt2.l = 0 :opt1.l = #PB_Window_SystemMenu :opt1$ = "#PB_Window_SystemMenu":opt2$ = "#Nul":EndIf
construcwin():inscripcode():fentest():optft()
Case 21 ;bt maximise
If GetGadgetState(21) = 1
opt2.l = #PB_Window_MaximizeGadget:opt2$ = "#PB_Window_MaximizeGadget"
Else
opt2.l = 0:opt2$ = "#Nul"
EndIf
If opt1.l = 0 And opt2.l = 0 :opt1.l = #PB_Window_SystemMenu :opt1$ = "#PB_Window_SystemMenu":opt2$ = "#Nul":EndIf
construcwin():inscripcode():fentest():optft()
Case 22;size
If GetGadgetState(22) = 1
opt3.l = #PB_Window_SizeGadget:opt3$ = "#PB_Window_SizeGadget"
Else
opt3.l = 0:opt3$ = "#Nul"
EndIf
construcwin():inscripcode():fentest():optft()
Case 23;invisible
If GetGadgetState(23) = 1
MLD_ActCoche(25,0):MLD_ActCoche(26,0);décoche maximise minimise
opt4.l = #PB_Window_Invisible:opt4$ = "#PB_Window_Invisible"
Else
opt4.l = 0:opt4$ = "#Nul"
EndIf
construcwin():inscripcode():fentest():optft()
Case 24;tool
If GetGadgetState(24) = 1
DG(20,1):DG(21,1):DG(22,1):DG(25,1):DG(26,1):DG(27,1);interdit
Else
DG(20,0):DG(21,0):DG(22,0):DG(25,0):DG(26,0):DG(27,0);rétablis
EndIf
construcwin():inscripcode():fentest():optft()
Case 25;maximise
If GetGadgetState(25) = 1
MLD_ActCoche(23,0):MLD_ActCoche(26,0);décoche invisible et minimise
opt4.l = #PB_Window_Maximize:opt4$ = "#PB_Window_Maximize"
Else
opt4.l = 0:opt4$ = "#Nul"
EndIf
construcwin():inscripcode():fentest():optft()
Case 26;minimise
If GetGadgetState(26) = 1
MLD_ActCoche(23,0):MLD_ActCoche(25,0) ;décoche invisible et maximise
opt4.l = #PB_Window_Minimize:opt4$ = "#PB_Window_Minimize"
Else
opt4.l = 0:opt4$ = "#Nul"
EndIf
construcwin():inscripcode():fentest():optft()
Case 27;BorderLess
If GetGadgetState(27) = 1
razbcl():MLD_ActCoche(38,0):MLD_ActCoche(39,0):MLD_ActCoche(40,0):MLD_ActCoche(41,1):DG(42,0):DG(43,0)
DG(20,1):DG(21,1):DG(22,1):DG(24,1):DG(25,1):DG(26,1):DG(39,1):DG(40,1);interdit
Else
razbcl():MLD_ActCoche(38,1):MLD_ActCoche(41,0):DG(42,1):DG(43,1)
DG(20,0):DG(21,0):DG(22,0):DG(25,0):DG(26,0):DG(24,0):DG(39,0):DG(40,0);rétablis
EndIf
construcwin():inscripcode():fentest():optft()
Case 28;ScreenCentered
If GetGadgetState(28) = 1
DG(46,1):DG(47,1):DG(49,1)
DG(61,1):DG(62,1):DG(63,1):DG(64,1):DG(102,1):DG(103,1):DG(104,1):DG(105,1)
opt4.l = #PB_Window_ScreenCentered :opt4$ = "#PB_Window_ScreenCentered"
Else
DG(46,0):DG(47,0):DG(49,0):DG(61,0):DG(62,0):DG(63,0):DG(64,0):DG(102,0):DG(103,0):DG(104,0):DG(105,0)
opt4.l = 0:opt4$ = "#Nul"
EndIf
construcwin():inscripcode():fentest() :optft()
Case 32;Fenêtre invisible dans la barre de tache
construcwin():inscripcode():fentest():optft()
Case 33,130,141,142,143 ;color
If GetGadgetState(33) = 1
DG(130,0)
If act.i = 130
colorRequest()
Else
affcodecolor()
EndIf
Else
DG(130,1):SetGadgetText(76,"$000000"):SetGadgetState(141,0):SetGadgetText(73,"$00")
SetGadgetState(142,0):SetGadgetText(74,"$00"):SetGadgetState(143,0):SetGadgetText(75,"$00")
SetGadgetColor(77,#PB_Gadget_BackColor,GetWindowColor(1))
EndIf
If sap = 1;action au relachement de la souris
construcwin():inscripcode():optft()
EndIf
Case 36,144;Transparence
If GetGadgetState(36) = 1
SetGadgetText(78,Str(GetGadgetState(144)))
Else
SetGadgetText(78,"255"):SetGadgetState(144,255)
EndIf
If sap = 1;action au relachement de la souris
construcwin():inscripcode():optft()
EndIf
Case 35;Sticky
construcwin():inscripcode():optft()
Case 38,39,40,41;les boucles
razbcl():construcwin():inscripcode()
Case 42;fenêtre sans titre avec cadre
If GetGadgetState(42) = 1
construcwin():inscripcode():optft()
Else
fentest():construcwin():inscripcode():optft()
EndIf
Case 43;déplace une fenêtre borderless
construcwin():inscripcode()
Case 45 ; Dim auto
If GetGadgetState(45) = 0
DG(50,1):DG(102,0):DG(103,0):DG(104,0):DG(105,0):MLD_ActCoche(49,1):MLD_ActCoche(50,0)
Else
DG(50,0)
EndIf
construcwin():inscripcode():fentest():optft()
Case 46 ; plein écran (dim auto)
If GetGadgetState(46) = 1
razCdim(46):razSdim():DG(50,0):DG(61,1):DG(62,1):DG(63,1):DG(64,1)
DG(102,1):DG(103,1):DG(104,1):DG(105,1):DG(28,1)
Else
razSdim():MLD_ActCoche(49,1):DG(28,0)
EndIf
fentest():optft():construcwin():inscripcode()
Case 47 ; barre visible (dim auto)
If GetGadgetState(47) = 1
razCdim(47):razSdim():DG(28,1):DG(50,0):DG(62,1):DG(64,1):DG(103,1):DG(105,1):typH.b = 2
If GetGadgetState(27) = 1:typH.b = 4:EndIf;pour fenêtre sans titre
Else
razSdim():DG(28,0):MLD_ActCoche(49,1):typH.b = 0
EndIf
fentest():optft():construcwin():inscripcode()
Case 48 ; Hauteur max (dim auto)
If GetGadgetState(48) = 1
razCdim(48):razSdim():DG(50,0):DG(62,1):DG(64,1):DG(103,1):DG(105,1):typH.b = 1
If GetGadgetState(27) = 1:typH.b = 3:EndIf;pour fenêtre sans titre
Else
razSdim():DG(28,0):MLD_ActCoche(49,1):typH.b = 0
EndIf
fentest():optft():construcwin():inscripcode()
Interaction(28)
Case 49 ; Autres avec et sans dim auto
If GetGadgetState(49) = 1
razCdim(49):DG(28,0):razSdim():typH.b = 0
Else
MLD_ActCoche(49,1):DG(28,0)
EndIf
fentest():optft():construcwin():inscripcode()
Case 50;fen secondaire
construcwin():inscripcode()
Case 100 ;string ID
Select EventType()
Case #PB_EventType_Change
If GetGadgetState(19) = 1
If FindString(GetGadgetText(100),"=")= 0
SetGadgetText(100,GetGadgetText(100) + " = ")
GestionCaret(100)
EndIf
n = FindString(GetGadgetText(100),"=")
If Mid(GetGadgetText(100),n-1,1)<> " ":SetGadgetText(100,InsertString(GetGadgetText(100)," ",n)):GestionCaret(100):EndIf
If Mid(GetGadgetText(100),n+1,1)<> " ":SetGadgetText(100,InsertString(GetGadgetText(100)," ",n+1)):GestionCaret(100):EndIf
cID$ = " " + GetGadgetText(100):lgIDC = Len(cID$):z = FindString(cID$,"=")
TcodeID(2)= cID$
TcodeID(4) = Right(cID$,lgIDC - (z+1));indique le n° de ID épuré
Else
TcodeID(2) = GetGadgetText(100)
EndIf
construcwin():inscripcode() :SetActiveGadget(100)
EndSelect
Case 101 ;string titre
Select EventType()
Case #PB_EventType_Change
GestionCaret(101): Titr$ = GetGadgetText(101)
construcwin():inscripcode()
EndSelect
EndSelect
If dlect = 1;drapeau fenetre enregistrée
Dpspin = 1:fentest():optft():construcwin():inscripcode(): Dpspin = 0
dlect = 0
EndIf
EndProcedure
Procedure inscripcode()
If Dpspin = 1;pour ne changer que la ligne lors du chargement des dimensions
For clg = 1 To CountGadgetItems(149)
If Left(GetGadgetItemText(149,clg),3) = "Ope" Or Left(GetGadgetItemText(149,clg),3) = "MLD";cherche la bonne ligne
Break
EndIf
Next
SetGadgetItemText(149,clg,TcodeWin(1))
ProcedureReturn #NUL
EndIf
ClearGadgetItems(149)
xt=0
For t= 1 To 3
If TcodeID(t) <> ""
xt = xt +1
AddGadgetItem(149,xt,TcodeID(t))
EndIf
Next
AddGadgetItem(149,CountGadgetItems(149)+1,"")
AddGadgetItem(149,CountGadgetItems(149)+1,"")
If Ftyp = 2 And GetGadgetState(50) = 0
For xz = 1 To 55
xt = xt +1
AddGadgetItem(149,xt,DA.s(xz))
Next
EndIf
AddGadgetItem(149,CountGadgetItems(149)+1,TcodeWin(1))
For of = 1 To 7
If Toptf(of) <> ""
lg = CountGadgetItems(149)+1
AddGadgetItem(149,lg,Toptf.s(of))
EndIf
Next
AddGadgetItem(149,CountGadgetItems(149)+1,";Vos gadgets ici")
AddGadgetItem(149,CountGadgetItems(149)+1,";")
AddGadgetItem(149,CountGadgetItems(149)+1,";")
xb=0
For tb = 1 To ArraySize(Tcodebcl.s())
If Tcodebcl(tb) <> ""
lg = CountGadgetItems(149)+1
AddGadgetItem(149,lg,Tcodebcl(tb))
EndIf
Next
SendMessage_(GadgetID(149),#EM_SCROLL,#SB_BOTTOM,0);en bas
EndProcedure
Procedure Raz()
For z = 18 To 49
Select z
Case 18 To 27,28,32,33,35,36,38 To 43,45 To 50
MLD_ActCoche(z,0)
EndSelect
Next
MLD_ActCoche(18,1):MLD_ActCoche(20,1):MLD_ActCoche(49,1):MLD_ActCoche(38,1)
DG(50,1):DG(130,1):DG(20,0):DG(21,0):DG(22,0):DG(25,0):DG(26,0):DG(24,0):DG(39,0):DG(40,0):DG(42,1):DG(43,1):DG(46,0):DG(47,0):DG(48,0):DG(49,0)
DG(102,0):DG(103,0):DG(104,0):DG(105,0):DG(61,0):DG(62,0):DG(64,0)
SetGadgetText(100,"#Ma_fen"):SetGadgetText(101,"Ma Fenêtre")
For x = 141 To 143
SetGadgetState(x,0)
Next
SetGadgetState(144,255)
For x = 73 To 75
SetGadgetText(X,"$000")
Next
SetGadgetText(76,"$000000"):SetGadgetColor(77,#PB_Gadget_BackColor, GetWindowColor(1)):SetGadgetText(78,"255")
tab(1):tab(2):typH.b = 0:fendepart()
EndProcedure
Procedure fendepart() ;ok
Ftyp = 0
SetGadgetState(102,720):SetGadgetState(103,75):SetGadgetState(104,660):SetGadgetState(105,250)
TcodeID(1) = "Enumeration" :TcodeID(2) = GetGadgetText(100): TcodeID(3) = "EndEnumeration"
TcodeWin(1) = "OpenWindow(" + GetGadgetText(100) + ",720,75,660,250," + Chr(34) + GetGadgetText(101) + Chr(34) + ",#PB_Window_MinimizeGadget)"
opt1.l = #PB_Window_MinimizeGadget :opt1$ = "#PB_Window_MinimizeGadget"
Tcodebcl.s(1) = "Repeat":Tcodebcl.s(2) = " Event = WaitWindowEvent()" :Tcodebcl.s(6) = Space(6):Tcodebcl.s(7) = Space(3)
Tcodebcl.s(10)= "Until Event = #PB_Event_CloseWindow":Tcodebcl.s(11)= "End"
inscripcode():fentest()
EndProcedure
Procedure optft()
SetWindowColor(140,GetGadgetColor(77,#PB_Gadget_BackColor));couleur de fond fentest
If GetGadgetState(35) = 1:StickyWindow(140,1):EndIf
If GetGadgetState(36) = 1
SetWindowLongPtr_(WindowID(140),#GWL_EXSTYLE,#WS_EX_LAYERED)
SetLayeredWindowAttributes_(WindowID(140), 0, GetGadgetState(144), #LWA_ALPHA)
Else
SetWindowLongPtr_(WindowID(140),#GWL_EXSTYLE,#WS_EX_LAYERED)
SetLayeredWindowAttributes_(WindowID(140), 0,255, #LWA_ALPHA)
EndIf
If GetGadgetState(42) = 1
SetWindowLongPtr_(WindowID(140), #GWL_STYLE, GetWindowLongPtr_(WindowID(140), #GWL_STYLE) | #WS_DLGFRAME)
SetWindowPos_(WindowID(140), 0,0,0,0,0,#SWP_NOSIZE|#SWP_NOMOVE|#SWP_NOZORDER|#SWP_FRAMECHANGED)
EndIf
EndProcedure
Procedure fentest()
If IsWindow(140)<>0:CloseWindow(140):EndIf
If Ftyp = 0 ;fenetre départ
OpenWindow(140,720,75,660,250,"Ma Fenêtre",opt1|opt2|opt3|opt4)
EndIf
If GetGadgetState(47) = 1 Or GetGadgetState(48) = 1
Y = 0
Else
Y = GetGadgetState(103)
EndIf
X = GetGadgetState(102):larg = GetGadgetState(104):haut = GetGadgetState(105)
If Ftyp = 1 ;fenetre avec attributs standard
If GetGadgetState(24) = 1;pour fen tool
OpenWindow(140,X,Y,larg,haut,GetGadgetText(101),#PB_Window_SystemMenu|#PB_Window_Tool|opt4)
EndIf
If GetGadgetState(27) = 1;pour fen BorderLess
OpenWindow(140,X,Y,larg,haut,GetGadgetText(101),#PB_Window_BorderLess|opt4)
EndIf
If GetGadgetState(24) = 0 And GetGadgetState(27) = 0
OpenWindow(140,X,Y,larg,Haut,GetGadgetText(101),opt1|opt2|opt3|opt4)
EndIf
EndIf
If Ftyp = 2;fenêtre avec dim automatique
If GetGadgetState(49) <> 1:SetGadgetState(103,0):EndIf;pour mettre la Y a 0 dans le cas barre visible, haut maxi, plein ecr
If GetGadgetState(46) = 1;pour plein écran
X = 0:Y = 0:larg = #Ldef :haut = #Hdef
SetGadgetState(102,0):SetGadgetState(103,0):SetGadgetState(104,larg):SetGadgetState(105,haut)
EndIf
If GetGadgetState(24) = 1;pour fen tool
MLD_openfen(140,X,Y,larg,haut,GetGadgetText(101),#PB_Window_SystemMenu,#PB_Window_Tool,opt3.l,opt4.l,typH.b)
EndIf
If GetGadgetState(27) = 1;pour fen BorderLess
MLD_openfen(140,X,Y,larg,haut,GetGadgetText(101),#PB_Window_BorderLess,opt2.l,opt3.l,opt4.l,typH.b)
EndIf
If GetGadgetState(24) = 0 And GetGadgetState(27) = 0
MLD_openfen(140,X,Y,larg,Haut,GetGadgetText(101),opt1.l,opt2.l,opt3.l,opt4.l,typH.b)
EndIf
If GetGadgetState(49) = 1 Or GetGadgetState(46) = 1
GetGadgetState(105)
Else
SetGadgetState(105,Hw(H.d,typH.b))
EndIf
EndIf
StickyWindow(140,1)
SetActiveWindow(1)
EndProcedure
Procedure EnrDim()
If GetGadgetState(27) = 1:pf$ = "1": Else :pf$ = "0":EndIf
If GetGadgetState(45) = 1:auto$ = "1": Else :auto$ = "0":EndIf
If GetGadgetState(28) = 1:scre$ = "1": Else :scre$ = "0":EndIf
CreateFile(151,"Dims_AutoGad")
WDim$ = GetGadgetText(102) + "," + GetGadgetText(103) + "," + GetGadgetText(104) + "," + GetGadgetText(105) + "," + pf$ + ","+ auto$ + ","+ scre$ + ","
FileSeek(151, Lof(151))
WriteString(151,WDim$)
CloseFile(151)
EndProcedure
Procedure enrmod()
Ec1$ = GetGadgetText(100) + "¤" + GetGadgetText(101)+ "¤" + GetGadgetText(73)+ "¤" + GetGadgetText(74)+ "¤" + GetGadgetText(75)
Ec1$ = Ec1$ + "¤" + GetGadgetText(76)+ "¤" + GetGadgetText(78)+ "¤" + GetGadgetText(102)+ "¤" + GetGadgetText(103)
Ec1$ = Ec1$ + "¤" + GetGadgetText(104)+ "¤" + GetGadgetText(105)
For X = 18 To 50
Select X
Case 18 To 28
If GetGadgetState(X) = 1:Ec1$ = Ec1$ + "¤" + Str(X)+ ",1":Else:Ec1$ = Ec1$ + "¤" + Str(X)+ ",0":EndIf
Case 32,33,35,36,38 To 43
If GetGadgetState(X) = 1:Ec1$ = Ec1$ + "¤" + Str(X)+ ",1":Else:Ec1$ = Ec1$ + "¤" + Str(X)+ ",0":EndIf
Case 45 To 50
If GetGadgetState(X) = 1:Ec1$ = Ec1$ + "¤" + Str(X)+ ",1":Else:Ec1$ = Ec1$ + "¤" + Str(X)+ ",0":EndIf
EndSelect
Next
Ec1$ = Ec1$ + "¤"
CreateFile(150,GetGadgetText(101)+".Fmod")
WriteStringN(150,Ec1$)
CloseFile(150)
EndProcedure
Procedure conver(wmod$,ind,t)
If t =1
act.i = Val(Left(StringField(wmod$,ind,"¤"),2))
ProcedureReturn act.i
Else
Et = Val(Right(StringField(wmod$,ind,"¤"),1))
ProcedureReturn Et
EndIf
EndProcedure
Procedure lectmod(mod$)
ReadFile(150,mod$)
wmod$ = ReadString(150)
CloseFile(150)
act.i = conver(wmod$,12,1)
Et = conver(wmod$,12,2)
For z = 12 To 13 ;Enum et ID
If conver(wmod$,z,2) <> 0
SetGadgetText(100,StringField(wmod$,1,"¤")):SetGadgetText(101,StringField(wmod$,2,"¤")):Interaction(conver(wmod$,z,1))
EndIf
Next
For z = 14 To 21;attributs
If conver(wmod$,z,2) = 0
MLD_ActCoche(conver(wmod$,z,1),0):Interaction(conver(wmod$,z,1))
Else
MLD_ActCoche(conver(wmod$,z,1),1):Interaction(conver(wmod$,z,1))
EndIf
Next
If conver(wmod$,24,2) = 0;couleur
MLD_ActCoche(conver(wmod$,24,1),0):Interaction(conver(wmod$,24,1))
Else
MLD_ActCoche(conver(wmod$,24,1),1)
SetGadgetState(141,Val(StringField(wmod$,3,"¤"))):SetGadgetState(142,Val(StringField(wmod$,4,"¤")))
SetGadgetState(143,Val(StringField(wmod$,5,"¤"))):Interaction(conver(wmod$,24,1))
EndIf
If conver(wmod$,26,2) = 0;transparence
MLD_ActCoche(conver(wmod$,26,1),0):Interaction(conver(wmod$,26,1))
Else
MLD_ActCoche(conver(wmod$,26,1),1):SetGadgetState(144,Val(StringField(wmod$,7,"¤"))):Interaction(conver(wmod$,26,1))
EndIf
If conver(wmod$,22,2) = 0:MLD_ActCoche(conver(wmod$,22,1),0):Else:MLD_ActCoche(conver(wmod$,22,1),1):EndIf:Interaction(conver(wmod$,22,1));screencentered
If conver(wmod$,23,2) = 0:MLD_ActCoche(conver(wmod$,23,1),0):Else:MLD_ActCoche(conver(wmod$,23,1),1):EndIf:Interaction(conver(wmod$,23,1));invisible dans la barre de tache
If conver(wmod$,25,2) = 0:MLD_ActCoche(conver(wmod$,25,1),0):Else:MLD_ActCoche(conver(wmod$,25,1),1):EndIf:Interaction(conver(wmod$,25,1));StickyWindow
If conver(wmod$,33,2) = 0:MLD_ActCoche(conver(wmod$,33,1),0):Else:MLD_ActCoche(conver(wmod$,33,1),1):EndIf:Interaction(conver(wmod$,33,1));dim auto
If conver(wmod$,34,2) = 0;plein écran
MLD_ActCoche(conver(wmod$,34,1),0)
Else
MLD_ActCoche(45,1):MLD_ActCoche(conver(wmod$,34,1),1):Interaction(conver(wmod$,34,1))
EndIf
If conver(wmod$,36,2) = 0;Hauteur max
MLD_ActCoche(conver(wmod$,36,1),0):Interaction(conver(wmod$,36,1))
Else
MLD_ActCoche(45,1):MLD_ActCoche(conver(wmod$,36,1),1):Interaction(conver(wmod$,36,1))
EndIf
If conver(wmod$,35,2) = 0;Barre de tache visible
MLD_ActCoche(conver(wmod$,35,1),0)
Else
MLD_ActCoche(45,1):MLD_ActCoche(conver(wmod$,35,1),1):Interaction(conver(wmod$,35,1))
EndIf
If conver(wmod$,38,2) = 0:MLD_ActCoche(conver(wmod$,38,1),0):Else:MLD_ActCoche(conver(wmod$,38,1),1):EndIf:Interaction(conver(wmod$,38,1));fenetre secondaire
If conver(wmod$,31,2) = 0:MLD_ActCoche(conver(wmod$,31,1),0):Else:MLD_ActCoche(conver(wmod$,31,1),1):EndIf:Interaction(conver(wmod$,31,1));fen bord cadre
If conver(wmod$,32,2) = 0:MLD_ActCoche(conver(wmod$,32,1),0):Else:MLD_ActCoche(conver(wmod$,32,1),1):EndIf:Interaction(conver(wmod$,32,1));dépl fen bord
If conver(wmod$,27,2) = 0:MLD_ActCoche(conver(wmod$,27,1),0):Else:MLD_ActCoche(conver(wmod$,27,1),1):EndIf:Interaction(conver(wmod$,27,1));bcl mini
If conver(wmod$,28,2) = 0:MLD_ActCoche(conver(wmod$,28,1),0):Else:MLD_ActCoche(conver(wmod$,28,1),1):EndIf:Interaction(conver(wmod$,28,1));bcl std1
If conver(wmod$,29,2) = 0:MLD_ActCoche(conver(wmod$,29,1),0):Else:MLD_ActCoche(conver(wmod$,29,1),1):EndIf:Interaction(conver(wmod$,29,1));bcl std2
If conver(wmod$,30,2) = 0:MLD_ActCoche(conver(wmod$,30,1),0):Else:MLD_ActCoche(conver(wmod$,30,1),1):EndIf:Interaction(conver(wmod$,30,1));bcl std2
SetGadgetState(102,Val(StringField(wmod$,8,"¤"))):Interaction(102):SetGadgetState(103,Val(StringField(wmod$,9,"¤"))):Interaction(103);X,Y
SetGadgetState(104,Val(StringField(wmod$,10,"¤"))):Interaction(104):SetGadgetState(105,Val(StringField(wmod$,11,"¤"))):Interaction(105);L,H
dlect = 1
EndProcedure
Procedure fen2(Fc.b)
Xf2 = WindowX(1) + (WindowWidth(1)-200)/2:Yf2 = WindowY(1)+200
MLD_openfen(200,Xf2,Yf2,200,100,"",#PB_Window_BorderLess,#NUL,#NUL,#NUL,0)
SetWindowColor(200,$A7BAD2)
StickyWindow(200,1)
SetWindowLongPtr_(WindowID(200),#GWL_HWNDPARENT,FindWindow_(0,"program manager"))
SetWindowLongPtr_(WindowID(200), #GWL_STYLE, GetWindowLongPtr_(WindowID(200), #GWL_STYLE) | #WS_DLGFRAME)
SetWindowPos_(WindowID(200), 0,0,0,0,0,#SWP_NOSIZE|#SWP_NOMOVE|#SWP_NOZORDER|#SWP_FRAMECHANGED)
TextGadget(201,X(10),Y(5),X(175),Y(20),"",#ES_CENTER)
EcriEtict(201):SetGadgetColor(201,#PB_Gadget_BackColor,$A7BAD2)
TextGadget(202,X(10),Y(30),X(175),Y(20),GetGadgetText(101),#ES_CENTER)
EcriEtict(202):SetGadgetColor(202,#PB_Gadget_BackColor,$A7BAD2)
HideGadget(202,1)
TextGadget(203,X(10),Y(50),X(175),Y(20),"Ce model existe, il sera modifié",#ES_CENTER)
HideGadget(203,1)
EcriEtict(203):SetGadgetColor(203,#PB_Gadget_BackColor,$A7BAD2):SetGadgetColor(203,#PB_Gadget_FrontColor,$3434D1)
ButtonGadget(204,X(80),Y(72),X(70),Y(20),"Enregistre")
EcriEtict(204):HideGadget(204,1)
ButtonGadget(205,X(150),Y(72),X(40),Y(20),"Stop")
EcriEtict(205)
ListViewGadget(206,X(10),Y(25),X(175),Y(45))
EcriEtict(206):SetGadgetColor(206,#PB_Gadget_BackColor,$98FB98)
HideGadget(206,1)
If ReadFile(150,GetGadgetText(101)+".Fmod") <> 0
HideGadget(203,0)
EndIf
If Fc.b = 1;enregistre
SetGadgetText(201,"Enregistre le model")
HideGadget(202,0):HideGadget(204,0):HideGadget(206,1)
Else
SetGadgetText(201,"Faite le choix dun model")
HideGadget(202,1):HideGadget(204,1):HideGadget(206,0)
ExamineDirectory(0,GetCurrentDirectory(), "*.Fmod")
While NextDirectoryEntry(0)
AddGadgetItem (206,-1, DirectoryEntryName(0))
Wend
FinishDirectory(0)
EndIf
Repeat
Event = WaitWindowEvent()
If Event = #WM_LBUTTONDOWN
SendMessage_(WindowID(200), #WM_NCLBUTTONDOWN, #HTCAPTION, 0)
EndIf
If Event = #PB_Event_Gadget
Select EventGadget()
Case 204 ;enr
enrmod()
CloseWindow(200)
Break
Case 206;list
Select EventType()
Case #PB_EventType_LeftClick
If GetGadgetText(206) <> "";si clic sur une ligne vide
lectmod(GetGadgetText(206))
CloseWindow(200)
Break
EndIf
EndSelect
Case 205;stop
CloseWindow(200)
Break
EndSelect
EndIf
ForEver
EndProcedure
;====== fenêtre principale =====
MLD_openfen(1,0,0,525,0,"WinConstructeur_5",#PB_Window_MinimizeGadget,opt2.l,opt3.l,opt4.l,2)
StickyWindow(1,1)
HookMouse = SetWindowsHookEx_(#WH_MOUSE_LL, @MouseHook(), GetModuleHandle_(0), 0)
;====== gadgets Frame3D ========
FrameGadget(2,X(5),Y(5),X(245),Y(60),"Enumération automatique")
FrameGadget(3,X(5),Y(75),X(245),Y(80),"ID de la Fenêtre et titre")
FrameGadget(4,X(255),Y(5),X(265),Y(120),"Attributs de la fenêtre")
FrameGadget(5,X(5),Y(160),X(245),Y(270),"Couleurs et transparence")
FrameGadget(6,X(255),Y(130),X(265),Y(355),"Position - Taille de la fenêtre")
FrameGadget(7,X(5),Y(440),X(245),Y(220),"Options")
FrameGadget(8,X(255),Y(490),X(265),Y(170),"Inclure la Boucle générale")
FrameGadget(9,X(5),Y(660),X(515),Y(60),"Fonctions")
For x = 2 To 9
EcriEtict(x)
Next
;====== gadgets case a cocher ========
MLD_Coche(18,X(40),Y(30),X(50),Y(20),"Oui",$CD0000,1)
MLD_Coche(19,X(140),Y(30),X(50),Y(20),"Non",$CD0000,0)
MLD_Coche(20,X(260),Y(23),X(100),Y(20),"Bouton Mini",$CD0000,1)
MLD_Coche(21,X(260),Y(48),X(100),Y(20),"Bouton Maxi",$CD0000,0)
MLD_Coche(22,X(260),Y(73),X(100),Y(20),"Size",$CD0000,0)
MLD_Coche(23,X(400),Y(98),X(75),Y(20),"Invisible",$CD0000,0)
MLD_Coche(24,X(260),Y(98),X(100),Y(20), "Tool",$CD0000,0)
MLD_Coche(25,X(400),Y(48),X(75),Y(20),"Maximize",$CD0000,0)
MLD_Coche(26,X(400),Y(73),X(75),Y(20),"Minimize",$CD0000,0)
MLD_Coche(27,X(400),Y(23),X(75),Y(20),"BorderLess",$CD0000,0)
MLD_Coche(28,X(260),Y(390),X(140),Y(20),"ScreenCentered",$CD0000,0)
MLD_Coche(32,X(15),Y(620),X(190),Y(20),"Invisible dans la barre de Tâche",$CD0000,0)
MLD_Coche(33,X(15),Y(180),X(105),Y(20),"WindowColor",$CD0000,0)
MLD_Coche(35,X(15),Y(470),X(120),Y(20),"StickyWindow",$CD0000,0)
MLD_Coche(36,X(15),Y(350),X(110),Y(20),"Transparence",$CD0000,0)
MLD_Coche(38,X(260),Y(520),X(200),Y(20),"Minimale (Boucle a votre choix)",$CD0000,1)
MLD_Coche(39,X(260),Y(555),X(200),Y(20),"Standard 1 (If, EndIf)",$CD0000,0)
MLD_Coche(40,X(260),Y(590),X(200),Y(20),"Standard 2 (Select,Endselect)",$CD0000,0)
MLD_Coche(41,X(260),Y(627),X(200),Y(20),"Sans fin (Utile pour Borderless)",$CD0000,0)
GadgetToolTip(41,"Boucle sans fin. Un bouton d'arrêt est obligatoire.(Principale utilisation : fenêtre Borderless.)")
MLD_Coche(42,X(15),Y(520),X(190),Y(20),"Fenêtre BorderLess avec cadre",$CD0000,0)
DG(42,1)
MLD_Coche(43,X(15),Y(570),X(190),Y(20),"Déplace une fenêtre BorderLess",$CD0000,0)
DG(43,1)
MLD_Coche(45,X(260),Y(420),X(182),Y(20),"Dimensions automatique",$1E69D2,0)
MLD_Coche(46,X(260),Y(185),X(120),Y(20),"Plein écran",$CD0000,0)
MLD_Coche(47,X(260),Y(245),X(220),Y(20),"Barre de tâche window visible",$CD0000,0)
MLD_Coche(48,X(260),Y(215),X(220),Y(20),"Hauteur maximum",$CD0000,0)
MLD_Coche(49,X(260),Y(155),X(220),Y(20),"Autres",$CD0000,1)
MLD_Coche(50,X(260),Y(450),X(182),Y(20),"Fenêtre secondaire",$1E69D2,0)
DG(50,1)
For x = 18 To 50
EcriEtict(x)
Next
;====== gadgets text
TextGadget(60,X(10),Y(98),X(30),Y(20), "ID")
TextGadget(61,X(260),Y(295),X(70),Y(20), "Position X:")
TextGadget(62,X(435),Y(295),X(20),Y(20), "Y:")
TextGadget(63,X(260),Y(350),X(60),Y(20),"Largeur:")
TextGadget(64,X(400),Y(350),X(55),Y(20),"Hauteur:")
TextGadget(70,X(15),Y(245),X(10),Y(20),"R"):SetGadgetColor(70,#PB_Gadget_FrontColor,$0000C8)
TextGadget(71,X(15),Y(280),X(10),Y(20),"V"):SetGadgetColor(71,#PB_Gadget_FrontColor,$008000)
TextGadget(72,X(15),Y(315),X(10),Y(20),"B"):SetGadgetColor(72,#PB_Gadget_FrontColor,$C80000)
TextGadget(73,X(27),Y(245),X(25),Y(20),"$00")
TextGadget(74,X(27),Y(280),X(25),Y(20),"$00")
TextGadget(75,X(27),Y(315),X(25),Y(20),"$00")
TextGadget(76,X(175),Y(210),X(60),Y(20),"$000000",#ES_CENTER)
TextGadget(77,X(195),Y(250),X(45),Y(85),"",#PB_Text_Border)
TextGadget(78,X(185),Y(370),X(30),Y(20),"255",#ES_CENTER|#PB_Text_Border)
TextGadget(79,X(132),Y(370),X(40),Y(20),"Valeur")
TextGadget(80,X(10),Y(128),X(30),Y(20), "Titre")
For x = 60 To 80
EcriEtict(x)
Next
;====== Gadget String
StringGadget(100,X(50),Y(95),X(190),Y(22),"#Ma_fen")
SendMessage_(GadgetID(100),#EM_LIMITTEXT,25,0)
cadrestring(100)
Titr$ = "Ma Fenêtre"
StringGadget(101,X(50),Y(125),X(190),Y(22),Titr$)
SendMessage_(GadgetID(101),#EM_LIMITTEXT,25,0)
cadrestring(101)
;====== Gadget Spin
SpinGadget(102,X(330),Y(290),X(60),Y(30),0,5000,#PB_Spin_ReadOnly|#PB_Spin_Numeric)
SpinGadget(103,X(455),Y(290),X(60),Y(30),0,3000,#PB_Spin_ReadOnly|#PB_Spin_Numeric)
SpinGadget(104,X(330),Y(345),X(60),Y(30),5,5000,#PB_Spin_ReadOnly|#PB_Spin_Numeric)
SpinGadget(105,X(455),Y(345),X(60),Y(30),5,3000,#PB_Spin_ReadOnly|#PB_Spin_Numeric)
For x = 100 To 105
EcriEtict(x):SetGadgetColor(x,#PB_Gadget_BackColor,$00FFFF)
Next
;====== Gadget Bouton
ButtonGadget(123,X(304),Y(680),X(70),Y(30),"Aide")
GadgetToolTip(123,"Aide de ce logiciel")
ButtonGadget(124,X(233),Y(680),X(70),Y(30),"Enrg/ATG")
GadgetToolTip(124,"Enregistre les dimensions de la fenêtre pour AUTOGAD")
ButtonGadget(125,X(10),Y(680),X(70),Y(30),"Copier")
GadgetToolTip(125,"Copie le code dans le presse-papiers.")
ButtonGadget(126,X(81),Y(680),X(70),Y(30),"Enr mod")
GadgetToolTip(126,"Enregistre cette fenêtre comme modèle.")
ButtonGadget(127,X(152),Y(680),X(80),Y(30),"Ouvre mod")
GadgetToolTip(127,"Ouvre un modèle de fenêtre.")
ButtonGadget(128,X(375),Y(680),X(65),Y(30),"Raz")
GadgetToolTip(128,"Remet a zéro WinConstructeur.")
ButtonGadget(129,X(441),Y(680),X(75),Y(30),"Stop")
GadgetToolTip(129,"On termine ici.")
ButtonGadget(130,X(50),Y(206),X(110),Y(24),"ColorRequester");btcolreq
DG(130,1)
For x = 123 To 130
EcriEtict(x)
Next
;====== Gadget autres
TrackBarGadget(141,X(55),Y(245),X(130),Y(25),0,255)
TrackBarGadget(142,X(55),Y(280),X(130),Y(25),0,255)
TrackBarGadget(143,X(55),Y(315),X(130),Y(25),0,255)
TrackBarGadget(144,X(7),Y(395),X(230),Y(25),50,255)
SetGadgetState(144,255)
EditorGadget(149,X(2),Y(725),X(520),Y(260),#PB_Editor_ReadOnly)
EcriEtict(149)
SetGadgetColor(149,#PB_Gadget_BackColor,$699A14)
fendepart()
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
CloseWindow(1)
Quit = #True
Case #PB_Event_Gadget
Interaction(EventGadget())
Select EventGadget()
Case 124 ;bt enrAUTOGAD
EnrDim()
Case #Bt_Cop
ClearClipboard()
SetClipboardText(GetGadgetText(149))
Case #Bt_enrmod
fen2(1)
Case #Bt_Ouvmod
fen2(2)
Case 128;raz
Raz()
Case 123;bt aide
MessageRequester("Logiciel Winconstructeur_5",LT$,#PB_MessageRequester_Ok | #PB_MessageRequester_Info)
Case 129;bt Stop
CloseWindow(1)
Quit = #True
Case 20 To 36,42,43,50
If GetGadgetState(EventGadget()) = 0
MLD_ActCoche(EventGadget(),0)
Else
MLD_ActCoche(EventGadget(),1)
EndIf
Case 38 To 41;les boucles
For b = 38 To 41
MLD_ActCoche(b,0)
Next
MLD_ActCoche(EventGadget(),1)
Case 45 To 49;dimauto en général ou pas
If GetGadgetState(EventGadget()) = 0
MLD_ActCoche(EventGadget(),0)
Else
MLD_ActCoche(EventGadget(),1)
MLD_ActCoche(45,1):Interaction(EventGadget())
EndIf
Case 102 To 105
Select EventType()
Case #PB_EventType_Up,#PB_EventType_Down
If Ftyp = 1
ResizeWindow(140,Val(GetGadgetText(102)),Val(GetGadgetText(103)),Val(GetGadgetText(104)),Val(GetGadgetText(105)))
EndIf
If Ftyp = 2
ResizeWindow(140,X(Val(GetGadgetText(102))),Y(Val(GetGadgetText(103))),Lw(Val(GetGadgetText(104))),Hw(Val(GetGadgetText(105)),typH.b));Hw(Dh.d,typH.b)
EndIf
Dpspin = 1:construcwin():inscripcode():Dpspin = 0
EndSelect
EndSelect
EndSelect
Until Quit
End