Word fera un document qui ne ressemblera jamais à un document notepad alors que ton interface et japbe peuvent (dans la limite d'une fenêtre certes) donner le même résultat.
Mais bon, autant pour moi ne te brusque pas hein

Oh si j'imagine, et heureusement que tu t'en tamponnes, manquerait plus que çaChris a écrit :Je ne me brusque pas, ni moi, ni personne d'autre.
Personnellement, je m'en tamponne à un point que tu n'imagine même pas.
Oui, j'ai pas trop réfléchi quand j'ai mis ce label.falsam a écrit :Merci Chris de faire partager ce code qui trouve très bien sa place quand on a besoin que de ce qu'il sait faire. Peut être que tu pourrez remplacer le champ Constante par Id Gadget.
Code : Tout sélectionner
; ==============================
; **** Création de fenêtres ****
; ==============================
;
Global Auteur$
Auteur$="Grand Chris & un petit peu GeBonet"
;
;- Enumerations
;{/ Fenêtres
Enumeration
#Window_Main
EndEnumeration
;/ Gadgets
Enumeration
#CheckBox_SystemMenu
#CheckBox_MinimizeGadget
#CheckBox_MaximizeGadget
#CheckBox_SizeGadget
#CheckBox_Invisible
#CheckBox_TitleBar
#CheckBox_BorderLess
#CheckBox_Tool
#CheckBox_ScreenCentered
#CheckBox_WindowCentered
#CheckBox_Maximize
#CheckBox_Minimize
#CheckBox_NoGadgets
;
#CheckBox_Smart
#CheckBox_Bound
#CheckBox_Loop
#CheckBox_Menus
#CheckBox_Status
#Button_OnPlace
#Button_Cancel
#Button_NewTab
#String_W
#String_H
#String_X
#String_Y
#String_WindowIdent
#String_Bound_W_Mini
#String_Bound_H_Mini
#String_Bound_W_Maxi
#String_Bound_H_Maxi
#String_Titre
#String_StatusChamp
#Edit_Code
#Frame3D_Attributs
#Frame3D_Taille
#Frame3D_Constante
#Frame3D_TailleBound
#Frame3D_Action
#Frame3D_Titre
#Frame3D_Options
#Frame3D_Loop
#Frame3D_Menus
#Frame3D_Status
#Text_Taille
#Text_Position
#Text_Largeur
#Text_Hauteur
#Text_PosX
#Text_PosY
#Text_TailleMin
#Text_TailleMax
#Text_LargeurMin
#Text_HauteurMin
#Text_LargeurMax
#Text_HauteurMax
#Text_StatusChamp
EndEnumeration
;/ Polices
Enumeration
#Font
#LF=10
EndEnumeration;}
;{- Constantes spéciales
;/ Constantes utilisées pour le transfert sous jaPBe
#WMCD_OpenFile = 1 ; Ouvre un fichier dans une nouvelle page
#WMCD_InsertText = 2 ; Insère le texte à la position du curseur.
#wmCD_ReplaceCompleteText = 3 ; Remplace la totalité du texte
#wmcd_ReplaceCurrentLine = 4 ; Remplace la ligne ou se trouve le curseur
#wmcd_NewText = 5 ; Ouvre un nouvel onglet, et lui passe le texte
;}
;{- Variables Globales
Global Button_OnPlace_Tooltip
Global Button_NewTab_Tooltip
Global Smart$
Global RunOneWin = FindWindow_(@"WindowClass_0", @"jaPBe-RunOneWindow")
Global PosX, PosY, On
;}
;{- Tableaux, Listes et Structures
Global Dim Chaines.s(1, 12)
Chaines(1,0) = "#PB_Window_SystemMenu|"
Chaines(1,1) = "#PB_Window_MinimizeGadget|"
Chaines(1,2) = "#PB_Window_MaximizeGadget|"
Chaines(1,3) = "#PB_Window_SizeGadget|"
Chaines(1,4) = "#PB_Window_Invisible|"
Chaines(1,5) = "#PB_Window_TitleBar|"
Chaines(1,6) = "#PB_Window_BorderLess|"
Chaines(1,7) = "#PB_Window_Tool|"
Chaines(1,8) = "#PB_Window_ScreenCentered|"
Chaines(1,9) = "#PB_Window_WindowCentered|"
Chaines(1,10) = "#PB_Window_Maximize|"
Chaines(1,11) = "#PB_Window_Minimize|"
Chaines(1,12) = "#PB_Window_NoGadgets|"
;}
;- Creation tooltip
Procedure GadgetBalloonToolTip(WindowNumber.l, GadgetNumber.l, 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, GetSysColor_(#COLOR_INFOBK), 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 ChangeGadgetBalloonToolTip(Tooltip.l, GadgetNumber.l, Text.s)
Protected Balloon.TOOLINFO
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)
EndProcedure
Procedure FreeBalloonTooltip(Tooltip.l)
DestroyWindow_(Tooltip.l)
EndProcedure
; - Procédures
;/ Création de la fenêtre
Procedure OpenWin_Main()
;
;If OpenWindow(#Window_Main, PosX, PosY, 465, 465, "WindowMaker", #PB_Window_Tool|#PB_Window_SystemMenu|#PB_Window_TitleBar|#PB_Window_WindowCentered|#PB_Window_SizeGadget)
If OpenWindow(#Window_Main, PosX, PosY, 465, 550, "WindowMaker", #PB_Window_Tool|#PB_Window_SystemMenu|#PB_Window_TitleBar|#PB_Window_WindowCentered|#PB_Window_SizeGadget)
WindowBounds(#Window_Main, 465, 465, #PB_Ignore, 600)
StickyWindow(#Window_Main, 1)
;
Font = LoadFont(#Font, "Courrier", 8, #PB_Font_HighQuality)
;
CheckBoxGadget(#CheckBox_SystemMenu, 15, 80,100, 20, "SystemMenu")
CheckBoxGadget(#CheckBox_Tool, 120, 80,100, 20, "Tool")
CheckBoxGadget(#CheckBox_MinimizeGadget, 15, 105,100, 20, "MinimizeGadget")
CheckBoxGadget(#CheckBox_ScreenCentered,120, 105,100, 20, "ScreenCentered ")
CheckBoxGadget(#CheckBox_MaximizeGadget, 15, 130,100, 20, "MaximizeGadget")
CheckBoxGadget(#CheckBox_WindowCentered,120, 130,100, 20, "WindowCentered ")
CheckBoxGadget(#CheckBox_SizeGadget, 15, 155,100, 20, "SizeGadget")
CheckBoxGadget(#CheckBox_Maximize, 120, 155,100, 20, "Maximize")
CheckBoxGadget(#CheckBox_Smart, 240, 155, 90, 20, "SmartWindow")
CheckBoxGadget(#CheckBox_Bound, 365, 155, 90, 20, "WindowBound")
CheckBoxGadget(#CheckBox_Invisible, 15, 180,100, 20, "Invisible")
CheckBoxGadget(#CheckBox_Minimize, 120, 180,100, 20, "Minimize")
CheckBoxGadget(#CheckBox_TitleBar, 15, 205,100, 20, "TitleBar")
CheckBoxGadget(#CheckBox_NoGadgets, 120, 205,100, 20, "NoGadgets")
CheckBoxGadget(#CheckBox_BorderLess, 15, 230,100, 20, "BorderLess")
CheckBoxGadget(#CheckBox_Loop, 135, 280, 90, 20, "Inclure Boucle")
;
CheckBoxGadget(#CheckBox_Menus,100,325,100,20,"Menu O/N)")
CheckBoxGadget(#CheckBox_Status,240,325,90,20,"Status O/N")
;
ButtonGadget(#Button_NewTab, 240, 280, 75, 20, "", #PB_Button_Default)
ButtonGadget(#Button_OnPlace, 315, 280, 75, 20, "Sur place")
ButtonGadget(#Button_Cancel, 400, 280, 55, 20, "Quitter")
;
If RunOneWin
SetGadgetText(#Button_NewTab, "Nouvel onglet")
Else
DisableGadget(#Button_OnPlace, 1)
SetGadgetText(#Button_NewTab, "Copier")
EndIf
;
StringGadget(#String_W, 240, 105, 45, 20, "", #ES_CENTER)
StringGadget(#String_H, 300, 105, 45, 20, "", #ES_CENTER)
StringGadget(#String_X, 355, 105, 45, 20, "", #ES_CENTER)
StringGadget(#String_Y, 410, 105, 45, 20, "", #ES_CENTER)
StringGadget(#String_WindowIdent, 10, 280, 110, 20, "")
StringGadget(#String_Bound_W_Mini, 240, 230, 45, 20, "")
StringGadget(#String_Bound_H_Mini, 300, 230, 45, 20, "")
StringGadget(#String_Bound_W_Maxi, 355, 230, 45, 20, "")
StringGadget(#String_Bound_H_Maxi, 410, 230, 45, 20, "")
StringGadget(#String_Titre, 10, 25, 445, 20, "")
;
StringGadget(#String_StatusChamp,400,325,50, 20, "")
;
; EditorGadget(#Edit_Code, 5, 320, 455, 140, #PB_Editor_ReadOnly)
EditorGadget(#Edit_Code, 5, 355, 455, 190, #PB_Editor_ReadOnly)
SetGadgetFont(#Edit_Code, FontID(#Font))
SetGadgetColor(#Edit_Code, #PB_Gadget_BackColor , $00E1FFFF)
;
Frame3DGadget(#Frame3D_Attributs, 5, 55, 225, 200, "Attributs de la fenêtre")
Frame3DGadget(#Frame3D_Taille, 235, 55, 225, 75, "Taille - Position de la fenêtre")
Frame3DGadget(#Frame3D_Constante, 5, 260, 120, 50, "Constante")
Frame3DGadget(#Frame3D_Loop, 130, 260, 100, 50, "Boucle")
Frame3DGadget(#Frame3D_TailleBound, 235, 185, 225, 70, "Taille Mini/Maxi de la fenêtre")
Frame3DGadget(#Frame3D_Action, 235, 260, 160, 50, "Coller dans")
Frame3DGadget(#Frame3D_Titre, 5, 5, 455, 45, "Titre de la fenêtre")
Frame3DGadget(#Frame3D_Options, 235, 135, 225, 45, "Options")
; ----------------------------------------------------------------
Frame3DGadget(#Frame3D_Menus, 5, 310, 225,40, "Menus Standard")
Frame3DGadget(#Frame3D_Status,235, 310, 225,40, "Status Barre")
;
; ----------------------------------------------------------------
TextGadget(#Text_Taille, 245, 75, 100, 15, "Taille", #PB_Text_Center)
TextGadget(#Text_Position, 355, 75, 100, 15, "Position", #PB_Text_Center)
TextGadget(#Text_Largeur, 245, 90, 50, 15, "Largeur", #PB_Text_Center)
TextGadget(#Text_Hauteur, 295, 90, 50, 15, "Hauteur", #PB_Text_Center)
TextGadget(#Text_PosX, 355, 90, 45, 15, "X", #PB_Text_Center)
TextGadget(#Text_PosY, 410, 90, 45, 15, "Y", #PB_Text_Center)
TextGadget(#Text_TailleMin, 245, 200, 100, 15, "Taille mini", #PB_Text_Center)
TextGadget(#Text_TailleMax, 355, 200, 100, 15, "Taille maxi", #PB_Text_Center)
TextGadget(#Text_LargeurMin, 240, 215, 45, 15, "Largeur", #PB_Text_Center)
TextGadget(#Text_HauteurMin, 300, 215, 45, 15, "Hauteur")
TextGadget(#Text_LargeurMax, 355, 215, 45, 15, "Largeur")
TextGadget(#Text_HauteurMax, 410, 215, 45, 15, "Hauteur")
;
TextGadget(#Text_StatusChamp,330,327,65, 20,"Nb. Champs")
;
For i =#String_Bound_W_Mini To #String_Bound_H_Maxi
DisableGadget(i, 1)
Next
DisableGadget(#CheckBox_Status, 1)
DisableGadget(#Text_StatusChamp, 1)
DisableGadget(#String_StatusChamp, 1)
DisableGadget(#CheckBox_Bound, 1)
;
AddKeyboardShortcut(#Window_Main, #PB_Shortcut_Return, #Button_NewTab)
AddKeyboardShortcut(#Window_Main, #PB_Shortcut_Control|#PB_Shortcut_Return, #Button_OnPlace)
;
Button_OnPlace_Tooltip = GadgetBalloonToolTip(#Window_Main, #Button_OnPlace, "Coller la fenêtre à la position du curseur."+Chr(10)+Chr(10)+"[Ctrl]+[Entrée]")
Button_NewTab_Tooltip = GadgetBalloonToolTip(#Window_Main, #Button_NewTab, "Coller dans un nouvel onglet."+Chr(10)+Chr(10)+"[Entrée]")
;
CheckBox_BorderLess_TT = GadgetBalloonToolTip(#Window_Main ,#CheckBox_BorderLess ,"Créer une fenêtre sans bordures" )
CheckBox_Bound_TT = GadgetBalloonToolTip(#Window_Main ,#CheckBox_Bound , "Définit les dimensions maxi et mini de la fenêtre" )
CheckBox_Invisible_TT = GadgetBalloonToolTip(#Window_Main ,#CheckBox_Invisible ,"Créer une fenêtre invisible" )
CheckBox_Loop_TT = GadgetBalloonToolTip(#Window_Main ,#CheckBox_Loop , "Inclure la boucle dans le code")
CheckBox_Maximize_TT = GadgetBalloonToolTip(#Window_Main ,#CheckBox_Maximize , "Ouvrir la fenêtre en mode maximisé")
CheckBox_MaximizeGadget_TT = GadgetBalloonToolTip(#Window_Main ,#CheckBox_MaximizeGadget , "Ajouter le bouton 'Maximiser' en haut de la fenêtre")
CheckBox_Minimize_TT = GadgetBalloonToolTip(#Window_Main ,#CheckBox_Minimize , "Ouvrir la fenêtre en mode Minimisé" )
CheckBox_MinimizeGadget_TT = GadgetBalloonToolTip(#Window_Main ,#CheckBox_MinimizeGadget , "Ajouter le bouton 'Minimiser' en haut de la fenêtre")
CheckBox_NoGadgets_TT = GadgetBalloonToolTip(#Window_Main ,#CheckBox_NoGadgets , "Créer une fenêtre sans gadgets")
CheckBox_ScreenCentered_TT = GadgetBalloonToolTip(#Window_Main ,#CheckBox_ScreenCentered , "Créer une fenêtre centrée dans l'écran")
CheckBox_SizeGadget_TT = GadgetBalloonToolTip(#Window_Main ,#CheckBox_SizeGadget , "Créer une fenêtre redimensionnable")
CheckBox_Smart_TT = GadgetBalloonToolTip(#Window_Main ,#CheckBox_Smart , "Tente d'empecher le scintillement de la fenêtre lors des redimensionnements" )
CheckBox_SystemMenu_TT = GadgetBalloonToolTip(#Window_Main ,#CheckBox_SystemMenu , "Créer une fenêtre avec le menu système")
CheckBox_TitleBar_TT = GadgetBalloonToolTip( #Window_Main,#CheckBox_TitleBar , "Créer une fenêtre avec une barre de titre")
CheckBox_Tool_TT = GadgetBalloonToolTip(#Window_Main ,#CheckBox_Tool , "Créer une fenêtre avec une barre de titre réduite")
CheckBox_Window_Menu = GadgetBalloonToolTip(#Window_Main ,#CheckBox_WindowCentered , "Créer une fenêtre centrée dans la fenêtre mère")
;
CheckBox_WindowCentered_TT = GadgetBalloonToolTip(#Window_Main ,#CheckBox_Menus, "Créer un Menu Standard")
CheckBox_WindowCentered_TT = GadgetBalloonToolTip(#Window_Main ,#CheckBox_Status,"Créer un Statud Barre")
CheckBox_WindowCentered_TT = GadgetBalloonToolTip(#Window_Main ,#String_StatusChamp,"Nombre de champs"+Chr(#LF)+"pour le status barre")
ProcedureReturn #True
Else
ProcedureReturn #False
EndIf
EndProcedure
;/ Création et affichage du code
Procedure BuildString()
;/ Initialisation de l'affichage
Option$ = ""
ClearGadgetItems(#Edit_Code)
;
;/ Création de la chaine d'options
For i = #CheckBox_SystemMenu To #CheckBox_NoGadgets
If Chaines(0,i) = "1"
Option$ + Chaines(1,i)
EndIf
Next
;
If Right(Option$, 1) = "|"
Option$ = Left(Option$, Len(Option$)-1)
EndIf
;
Ident$ = GetGadgetText(#String_WindowIdent)
If Left(Ident$,1) <> "#"
Ident$ = "#"+Ident$
EndIf
;
If Ident$ = "#" : Ident$ = "#Win_0" : EndIf
;
X$ = GetGadgetText(#String_X) : If X$ = "" : X$ = "#PB_Ignore" : EndIf
Y$ = GetGadgetText(#String_Y) : If Y$ = "" : Y$ = "#PB_Ignore" : EndIf
W$ = GetGadgetText(#String_W) : If W$ = "" : W$ = "#PB_Ignore" : EndIf
H$ = GetGadgetText(#String_H) : If H$ = "" : H$ = "#PB_Ignore" : EndIf
;
Titre$ = Chr(34)+GetGadgetText(#String_Titre)+Chr(34)
;
Temp$ = Ident$+", "+X$+", "+Y$+", "+W$+", "+H$+", "+Titre$+", "+Option$
If Right(Trim(Temp$), 1) = "," : Temp$ = Left(Temp$, Len(Temp$)-2) : EndIf
;
Fenetre$ = "If OpenWindow("+Temp$+")"
;/ Création de la commande "WindowBound()"
If GetGadgetState(#CheckBox_Bound) = 1
BWMax$ = GetGadgetText(#String_Bound_W_Maxi) : If BWMax$ = "" : BWMax$ = "#PB_Ignore" : EndIf
BHMax$ = GetGadgetText(#String_Bound_H_Maxi) : If BHMax$ = "" : BHMax$ = "#PB_Ignore" : EndIf
BWMin$ = GetGadgetText(#String_Bound_W_Mini) : If BWMin$ = "" : BWMin$ = "#PB_Ignore" : EndIf
BHMin$ = GetGadgetText(#String_Bound_H_Mini) : If BHMin$ = "" : BHMin$ = "#PB_Ignore" : EndIf
Bound$ = "WindowBounds("+Ident$+", "+BWMin$+", "+BHMin$+", "+BWMax$+", "+BHMax$+")"
ElseIf GetGadgetState(#CheckBox_Bound) = 0
Bound$ = ""
EndIf
;/ Création de la commande "SmartWindowRefresh()"
If GetGadgetState(#CheckBox_Smart) = 1
Smart$ = "SmartWindowRefresh("+ Ident$+", 1)"
ElseIf GetGadgetState(#CheckBox_Smart) = 0
Smart$ = ""
EndIf
;/ Affichage du code
Date$ = FormatDate("%dd/%mm/%yyyy", Date())
Time$ = FormatDate("%hh:%ii:%ss", Date())
AddGadgetItem(#Edit_Code, -1,"; ==================================================")
AddGadgetItem(#Edit_Code, -1,"; Code crée par : "+ Auteur$)
AddGadgetItem(#Edit_Code, -1,"; Le : "+Date$+" a "+Time$)
AddGadgetItem(#Edit_Code, -1,"; ==================================================")
AddGadgetItem(#Edit_Code, -1, "Enumeration")
AddGadgetItem(#Edit_Code, -1, " "+Ident$)
AddGadgetItem(#Edit_Code, -1, "EndEnumeration")
AddGadgetItem(#Edit_Code, -1, "")
; -----------------------------------------------------
If On=1
AddGadgetItem(#Edit_Code, -1, "Enumeration")
AddGadgetItem(#Edit_Code, -1, " #MenuBar_Form1_titre_FICHIER")
AddGadgetItem(#Edit_Code, -1, " #MenuBar_Form1_Nouveau")
AddGadgetItem(#Edit_Code, -1, " #MenuBar_Form1_Ouvrir")
AddGadgetItem(#Edit_Code, -1, " #MenuBar_Form1_Sauver")
AddGadgetItem(#Edit_Code, -1, " #MenuBar_Form1_Sortie")
AddGadgetItem(#Edit_Code, -1, " #MenuBar_Form1_titreEDIT")
AddGadgetItem(#Edit_Code, -1, " #MenuBar_Form1_Copier")
AddGadgetItem(#Edit_Code, -1, " #MenuBar_Form1_Coller")
AddGadgetItem(#Edit_Code, -1, " #MenuBar_Form1_Effacer")
AddGadgetItem(#Edit_Code, -1, " #MenuBar_Form1_Chercher")
AddGadgetItem(#Edit_Code, -1, " #MenuBar_Form1_titreAIDES")
AddGadgetItem(#Edit_Code, -1, " #MenuBar_Form1_Aides")
AddGadgetItem(#Edit_Code, -1, " #MenuBar_Form1_About")
AddGadgetItem(#Edit_Code, -1, "EndEnumeration")
AddGadgetItem(#Edit_Code, -1, "")
EndIf
; ----------------------------------------------------
AddGadgetItem(#Edit_Code, -1, Fenetre$)
;
If Bound$ <> ""
AddGadgetItem(#Edit_Code, -1, Bound$)
EndIf
If Smart$ <> ""
AddGadgetItem(#Edit_Code, -1, Smart$)
EndIf
;
AddGadgetItem(#Edit_Code, -1, "")
AddGadgetItem(#Edit_Code, -1, "")
AddGadgetItem(#Edit_Code, -1, "Endif")
AddGadgetItem(#Edit_Code, -1, "")
;
If On=1
AddGadgetItem(#Edit_Code, -1, "; ---- Menus ---------")
AddGadgetItem(#Edit_Code, -1, "")
AddGadgetItem(#Edit_Code, -1, "MenuBar_Form1=CreateMenu(#PB_Any,WindowID(#Win_0))")
;
AddGadgetItem(#Edit_Code, -1, "MenuTitle("+Chr(34)+"Fichier"+Chr(34)+")")
AddGadgetItem(#Edit_Code, -1, " MenuItem(#MenuBar_Form1_Nouveau,"+Chr(34)+"Nouveau"+Chr(34)+")")
AddGadgetItem(#Edit_Code, -1, " MenuItem(#MenuBar_Form1_Ouvrir,"+Chr(34)+"Ouvrir"+Chr(34)+")")
AddGadgetItem(#Edit_Code, -1, " MenuItem(#MenuBar_Form1_Sauver,"+Chr(34)+"Sauver"+Chr(34)+")")
AddGadgetItem(#Edit_Code, -1, " MenuBar()")
AddGadgetItem(#Edit_Code, -1, " MenuItem(#MenuBar_Form1_Sortie,"+Chr(34)+"Sortie"+Chr(34)+")")
AddGadgetItem(#Edit_Code, -1, "MenuTitle("+Chr(34)+"Editer"+Chr(34)+")")
AddGadgetItem(#Edit_Code, -1, " MenuItem(#MenuBar_Form1_Copier,"+Chr(34)+"Copier"+Chr(34)+")")
AddGadgetItem(#Edit_Code, -1, " MenuItem(#MenuBar_Form1_Coller,"+Chr(34)+"Coller"+Chr(34)+")")
AddGadgetItem(#Edit_Code, -1, " MenuItem(#MenuBar_Form1_Effacer,"+Chr(34)+"Effacer"+Chr(34)+")")
AddGadgetItem(#Edit_Code, -1, " MenuItem(#MenuBar_Form1_Chercher,"+Chr(34)+"Chercher"+Chr(34)+")")
AddGadgetItem(#Edit_Code, -1, "MenuTitle("+Chr(34)+"Aides"+Chr(34)+")")
AddGadgetItem(#Edit_Code, -1, " MenuItem(#MenuBar_Form1_Aides,"+Chr(34)+"Aides"+Chr(34)+")")
AddGadgetItem(#Edit_Code, -1, " MenuItem(#MenuBar_Form1_Coller,"+Chr(34)+"A Propos"+Chr(34)+")")
AddGadgetItem(#Edit_Code, -1, "")
If GetGadgetState(#CheckBox_Status)
AddGadgetItem(#Edit_Code, -1, "; ---- Status barre -------------------")
AddGadgetItem(#Edit_Code, -1, "StatusBar_Form1=CreateStatusBar(#PB_Any,WindowID(#Win_0))")
Nb=Val(GetGadgetText(#String_StatusChamp))
If Nb<>0
For i=1 To Nb
AddGadgetItem(#Edit_Code, -1, " AddStatusBarField(100)")
Next i
EndIf
AddGadgetItem(#Edit_Code, -1, "")
EndIf
EndIf
;
AddGadgetItem(#Edit_Code, -1, "; ---- Boucle --------------------------")
AddGadgetItem(#Edit_Code, -1, "")
If GetGadgetState(#CheckBox_Loop ) = 1
AddGadgetItem(#Edit_Code, -1, "quitte=0")
AddGadgetItem(#Edit_Code, -1, "Repeat")
AddGadgetItem(#Edit_Code, -1, " EventID =WaitWindowEvent()")
AddGadgetItem(#Edit_Code, -1, " MenuID =EventMenu()")
AddGadgetItem(#Edit_Code, -1, " GadgetID =EventGadget()")
AddGadgetItem(#Edit_Code, -1, " WindowID =EventWindow()")
AddGadgetItem(#Edit_Code, -1, "")
AddGadgetItem(#Edit_Code, -1, " Select EventID")
AddGadgetItem(#Edit_Code, -1, " Case #PB_Event_CloseWindow")
AddGadgetItem(#Edit_Code, -1, " If WindowID=Window_Form1")
AddGadgetItem(#Edit_Code, -1, " quitte=1")
AddGadgetItem(#Edit_Code, -1, " EndIf")
AddGadgetItem(#Edit_Code, -1, "")
; ----------- Cas Menu -----------------------
If On=1
AddGadgetItem(#Edit_Code, -1," Case #PB_Event_Menu")
AddGadgetItem(#Edit_Code, -1," Select MenuID")
AddGadgetItem(#Edit_Code, -1," Case #MenuBar_Form1_Nouveau")
AddGadgetItem(#Edit_Code, -1," Case #MenuBar_Form1_Ouvrir")
AddGadgetItem(#Edit_Code, -1," Case #MenuBar_Form1_Sauver")
AddGadgetItem(#Edit_Code, -1," Case #MenuBar_Form1_Sortie")
AddGadgetItem(#Edit_Code, -1," quitte=1")
AddGadgetItem(#Edit_Code, -1," Case #MenuBar_Form1_Copier")
AddGadgetItem(#Edit_Code, -1," Case #MenuBar_Form1_Coller")
AddGadgetItem(#Edit_Code, -1," Case #MenuBar_Form1_Effacer")
AddGadgetItem(#Edit_Code, -1," Case #MenuBar_Form1_Chercher")
AddGadgetItem(#Edit_Code, -1," Case #MenuBar_Form1_Aides")
AddGadgetItem(#Edit_Code, -1," Case #MenuBar_Form1_About")
AddGadgetItem(#Edit_Code, -1," EndSelect")
EndIf
;
AddGadgetItem(#Edit_Code, -1, "")
AddGadgetItem(#Edit_Code, -1, " Case #PB_Event_Gadget")
AddGadgetItem(#Edit_Code, -1, " Select GadgetID")
AddGadgetItem(#Edit_Code, -1, "")
AddGadgetItem(#Edit_Code, -1, " ; Votre code selection gadget <ici>")
AddGadgetItem(#Edit_Code, -1, "")
AddGadgetItem(#Edit_Code, -1, " EndSelect")
AddGadgetItem(#Edit_Code, -1, "")
AddGadgetItem(#Edit_Code, -1, " EndSelect")
AddGadgetItem(#Edit_Code, -1, "Until quitte")
AddGadgetItem(#Edit_Code, -1, "End")
AddGadgetItem(#Edit_Code, -1, ";>>>>>>> =========== FIN ========== <<<<<<<")
; ----- Fin de Loop ---------
EndIf
;
EndProcedure
;/ Transfert des données sous jaPBe
Procedure SendDatasToEditor(MainWin, Text$, Mode.l)
; RunOneWin = FindWindow_(@"WindowClass_0", @"jaPBe-RunOneWindow")
If RunOneWin
If Text$
cd.COPYDATASTRUCT
cd\dwData = Mode
cd\cbData = Len(Text$)+1
cd\lpData = @Text$
SendMessage_(RunOneWin, #WM_COPYDATA, MainWin, cd)
EndIf
Else
ClearClipboard()
SetClipboardText(Text$)
MessageRequester("Terminé", "jaPBe n'a pas été détecté." + Chr(10) + "Les données ont été placées dans le presse-papier.", #MB_OK|#MB_ICONWARNING)
EndIf
EndProcedure
;/ Sauvegarde de la position de la fenêtre
Procedure SavePref()
If CreatePreferences(GetCurrentDirectory()+"WindowMaker.ini")
PosX = WindowX(#Window_Main)
PosY = WindowY(#Window_Main)
PreferenceGroup("Position")
WritePreferenceInteger("PosX", PosX)
WritePreferenceInteger("PosY", PosY)
ClosePreferences()
EndIf
EndProcedure
;/ Rappel de la position précédente de la fenêtre
Procedure LoadPref()
If OpenPreferences(GetCurrentDirectory()+"WindowMaker.ini")
PreferenceGroup("Position")
PosX = ReadPreferenceInteger("PosX", 800)
PosY = ReadPreferenceInteger("PosY", 400)
ClosePreferences()
EndIf
EndProcedure
;/ Gestion des messages de l'application
Procedure WinCallback(hWin, Msge, wParam, lParam)
Ret = #PB_ProcessPureBasicEvents
Select Msge
Case #WM_SIZE
ResizeGadget(#Edit_Code, #PB_Ignore, #PB_Ignore, WindowWidth(#Window_Main) - 10, WindowHeight(#Window_Main) - 325)
EndSelect
ProcedureReturn Ret
EndProcedure
;}
;{- Initialisation du programme
LoadPref()
If OpenWin_Main() = 0
End
Else
BuildString()
SetWindowCallback(@WinCallback())
EndIf
;}
On=0
;{- Boucle
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
SavePref()
Quit = #True
Case #PB_Event_Menu
Select EventMenu()
;/ Raccourcis clavier
Case #Button_NewTab
SendMessage_(GadgetID(#Edit_Code), #EM_SETSEL, 0, -1)
StringToSend$ = GetGadgetText(#Edit_Code)
SendDatasToEditor(WindowID(#Window_Main), Trim(StringToSend$), #wmcd_NewText)
SendMessage_(GadgetID(#Edit_Code), #EM_SETSEL, -1, -1)
EndSelect
Case #PB_Event_Gadget
Select EventGadget()
;{/ Cases à cocher Paramètres
Case #CheckBox_SystemMenu
Chaines(0,0) = Str(GetGadgetState(#CheckBox_SystemMenu))
BuildString()
Case #CheckBox_MinimizeGadget
Chaines(0,1) = Str(GetGadgetState(#CheckBox_MinimizeGadget))
BuildString()
Case #CheckBox_MaximizeGadget
Chaines(0,2) = Str(GetGadgetState(#CheckBox_MaximizeGadget))
BuildString()
Case #CheckBox_SizeGadget
Chaines(0,3) = Str(GetGadgetState(#CheckBox_SizeGadget))
DisableGadget(#CheckBox_Bound, (Not GetGadgetState(#CheckBox_SizeGadget)))
BuildString()
Case #CheckBox_Invisible
Chaines(0,4) = Str(GetGadgetState(#CheckBox_Invisible))
BuildString()
Case #CheckBox_TitleBar
Chaines(0,5) = Str(GetGadgetState(#CheckBox_TitleBar))
BuildString()
Case #CheckBox_BorderLess
Chaines(0,6) = Str(GetGadgetState(#CheckBox_BorderLess))
BuildString()
Case #CheckBox_Tool
Chaines(0,7) = Str(GetGadgetState(#CheckBox_Tool))
BuildString()
Case #CheckBox_ScreenCentered
Chaines(0,8) = Str(GetGadgetState(#CheckBox_ScreenCentered))
BuildString()
Case #CheckBox_WindowCentered
Chaines(0,9) = Str(GetGadgetState(#CheckBox_WindowCentered))
BuildString()
Case #CheckBox_Maximize
Chaines(0,10) = Str(GetGadgetState(#CheckBox_Maximize))
BuildString()
Case #CheckBox_Minimize
Chaines(0,11) = Str(GetGadgetState(#CheckBox_Minimize))
BuildString()
Case #CheckBox_NoGadgets
Chaines(0,12) = Str(GetGadgetState(#CheckBox_NoGadgets))
BuildString()
;}
;{/ Cases à cocher Fonctions additionnelles
Case #CheckBox_Smart
BuildString()
Case #CheckBox_Bound
For i = #String_Bound_W_Mini To #String_Bound_H_Maxi
DisableGadget(i,(Not GetGadgetState(#CheckBox_Bound)) )
Next
If GetGadgetState(#CheckBox_Bound) = 1 : SetActiveGadget(#String_Bound_W_Mini) : EndIf
BuildString()
Case #CheckBox_Loop
BuildString()
;}
;{/ Strings
Case #String_W
If EventType() = #PB_EventType_Change
BuildString()
EndIf
Case #String_H
If EventType() = #PB_EventType_Change
BuildString()
EndIf
Case #String_X
If EventType() = #PB_EventType_Change
BuildString()
EndIf
Case #String_Y
If EventType() = #PB_EventType_Change
BuildString()
EndIf
Case #String_WindowIdent
If EventType() = #PB_EventType_Change
BuildString()
EndIf
Case #String_Bound_W_Mini
If EventType() = #PB_EventType_Change
BuildString()
EndIf
Case #String_Bound_H_Mini
If EventType() = #PB_EventType_Change
BuildString()
EndIf
Case #String_Bound_W_Maxi
If EventType() = #PB_EventType_Change
BuildString()
EndIf
Case #String_Bound_H_Maxi
If EventType() = #PB_EventType_Change
BuildString()
EndIf
Case #String_Titre
If EventType() = #PB_EventType_Change
BuildString()
EndIf
; --------------------------------------------------------------
Case #CheckBox_Menus
If On=0
DisableGadget(#CheckBox_Status, 0)
DisableGadget(#Text_StatusChamp, 0)
DisableGadget(#String_StatusChamp,0)
On=1:BuildString()
Else
DisableGadget(#CheckBox_Status, 1)
DisableGadget(#Text_StatusChamp, 1)
DisableGadget(#String_StatusChamp,1)
On=0:BuildString()
EndIf
If EventType() = #PB_EventType_Change
BuildString()
EndIf
Case #CheckBox_Status
If On=1
BuildString()
EndIf
;}; --------------------------------------------------------------
;{/ Boutons
Case #Button_OnPlace
SendMessage_(GadgetID(#Edit_Code), #EM_SETSEL, 0, -1)
StringToSend$ = GetGadgetText(#Edit_Code)
SendDatasToEditor(WindowID(#Window_Main), Trim(StringToSend$), #WMCD_InsertText)
SendMessage_(GadgetID(#Edit_Code), #EM_SETSEL, -1, -1)
Case #Button_NewTab
SendMessage_(GadgetID(#Edit_Code), #EM_SETSEL, 0, -1)
StringToSend$ = GetGadgetText(#Edit_Code)
SendDatasToEditor(WindowID(#Window_Main), Trim(StringToSend$), #wmcd_NewText)
SendMessage_(GadgetID(#Edit_Code), #EM_SETSEL, -1, -1)
Case #Button_Cancel
SavePref()
Quit = #True
;}
EndSelect
EndSelect
Until Quit
;}
End
; IDE Options = PureBasic 4.51 (Windows - x86)
; CursorPosition = 277
; FirstLine = 255
; IDE Options = PureBasic 4.51 (Windows - x86)
; CursorPosition = 362
; FirstLine = 346
C'est vrai, et d'accord avec toi, du moins en partie.Chris a écrit :Pas mal, mais soit c'est trop, soit c'est pas assez.
Quitte à ajouter les menus, autant faire en sorte qu'on puisse choisir ce qu'on veut y mettre : Libellé du titre, libellés des menus, nombre de rubriques, etc, etc...
C'est l'esprit du programme initial
Pareil pour la barre d'état. On peut choisir le nombre de cases, mais pas leur largeur.
Bref, t'as encore du boulot![]()
PS : La barre d'état est verrouillée si on ne crée pas de menu. Ça ne devrait pas.![]()
GeBonet a écrit :C'est vrai, et d'accord avec toi, du moins en partie.Chris a écrit :Pas mal, mais soit c'est trop, soit c'est pas assez.
Quitte à ajouter les menus, autant faire en sorte qu'on puisse choisir ce qu'on veut y mettre : Libellé du titre, libellés des menus, nombre de rubriques, etc, etc...
C'est l'esprit du programme initial
Pareil pour la barre d'état. On peut choisir le nombre de cases, mais pas leur largeur.
Bref, t'as encore du boulot![]()
PS : La barre d'état est verrouillée si on ne crée pas de menu. Ça ne devrait pas.![]()
Tout comme toi, ce n'est pas fait pour être complet et comme pour l'original, c'est seulement pour donner une trame de base sans plus.
En réalité je n'ai ajouté que deux case a cocher pour avoir un menu et une barre d'état quand on demande un menu... Mais rien n'empêche de la rendre indépendante
Le reste = Avec du copier/coller/supprimer permet très vite de compléter ou d'adapter.
Soit avoir rapidement un base sans trop avoir à coder.Et de fait si on veux plus que ça, "PureForm" ou "Visual Designer" font l'affaire.
![]()
Encore merci pour l'idée de départ.
Personnellement, je trouve que l'idée est excellente, à encourager, ne serait ce que pour le code, pour l'idée, elle a le mérite d'exister !!
Un grand bravo à de telles initiatives !!
Phil
PS: En réalité, j'aimerais travailler sur un RAD dans lequel j'intégrerais un SGBDR style Access mais totalement sous PB (libéré des SQL, Lite ou moins Lite).
Pour les développeurs, avec le RAD on crée le corps de l'application : Menus, Fenêtre, Fichiers et relations.
Et avec des librairies open sources d'exploitation du SGDGR sous PB, chacun peux réaliser ses spécificités.
En gros et raccourcis, un "PureForm" mais étendu avec gestion de fichier relationnel.
J'ai déjà fait ça sous DOS et a existé de 1987-1994... Mais voilà, pas trop le courage de m'y remettre, trop vieux ? Peut-être !
Alors de temps en temps, je fait un bout de quelques chose... Qui sais, un jours, j'en aurais peut-être suffisamment des bouts qui bout a bout, ferons ce que je veux