C'est un prog pour créer des OpenFileRequester, ou SaveFileRequester.
Dans la zone "Type de boite":
Selectionnez "OpenFileRequester" ou "SaveFileRequester"
Dans la zone "Paramètres par défaut":
Entrez le titre de la boite
Entrez le chemin par défaut. (Ou seulement l'extension, si vous voulez)
Dans la zone "Fichiers et Extensions"
Champ "Fichiers" : entrez le fichier par défaut (Ex Fichier PureBasic)
Champ "Extensions" : Entrez les extensions séparées par des point-virgules. (Ex *.pb;*.pbi)
Cliquez sur "Ajouter".
Vous pouvez entrer autant de filtres que vous voulez
Dans la zone "Position":
Entrez la position, entre 0 et le nbre de filtres (Si vous laissez en blanc : 0)
Cliquez sur "Copier" pour copier dans le presse-papiers.
Fichier Principal
Code : Tout sélectionner
IncludeFile "FileReq_Proc.pb"
Procedure CallBack(hwnd,Msg,wParam,lParam)
Resultat = #PB_ProcessPureBasicEvents
Select Msg
Case #WM_COMMAND
Select lParam
Case GadgetID(#Str_Extension)
If wParam >>16&$FFFF = #EN_CHANGE
;Info\Filtre = GetGadgetText(#Str_Extension)
EndIf
Case GadgetID(#Str_Default_Folder)
If wParam >>16&$FFFF = #EN_CHANGE
Info\Defaut = GetGadgetText(#Str_Default_Folder)
EndIf
Case GadgetID(#Str_Title)
If wParam >>16&$FFFF = #EN_CHANGE
Info\Titre = GetGadgetText(#Str_Title)
EndIf
Case GadgetID(#Str_Position)
If wParam >>16&$FFFF = #EN_CHANGE
Info\Pos = Val(GetGadgetText(#Str_Position))
EndIf
Case GadgetID(#Str_Default_Ext)
If wParam >>16&$FFFF = #EN_CHANGE
Info\Ext = GetGadgetText(#Str_Default_Ext)
EndIf
EndSelect
EndSelect
ProcedureReturn Resultat
EndProcedure
Open_Window_0()
SetWindowCallback(@CallBack())
SetTimer_(WindowID(#Window_0),1,10,0)
If GetGadgetState(#Rad_Open) = 1
flag = 1
ElseIf GetGadgetState(#Rad_Save) = 1
flag = 2
EndIf
SetBoxType(flag)
SetGadgetItemText(#Resultat,0,T$,0)
Repeat
Select WaitWindowEvent()
Case #WM_Timer
string$ = Chr(34)+Info\Titre+Chr(34)+","+Chr(34)+Info\Defaut+Info\Ext+Chr(34)+","+Chr(34)+Info\Filtre+Chr(34)+","+Str(Info\Pos)+")"
SetGadgetItemText(#Resultat,0,Info\Type + string$,0)
Case #PB_EventGadget
Select EventGadgetID()
Case #Btn_GetFolder
Path$ = PeekS(SetDefaultFolder())
Tmp$ = GetGadgetItemText(#Resultat,0,0)
Case #Rad_Open
SetBoxType(1)
Case #Rad_Save
SetBoxType(2)
Case #Btn_Cancel
quit = 1
Case #Btn_Copy
ClearClipboard()
SetClipboardText(GetGadgetText(#Resultat))
Case #Btn_Add
Temp$ = Info\Filtre
If Temp$ = ""
Tmp$ = GetGadgetText(#Str_Default_File)+Chr(124)+GetGadgetText(#Str_Extension)
Else
Tmp$ = Chr(124)+GetGadgetText(#Str_Default_File)+Chr(124)+GetGadgetText(#Str_Extension)
EndIf
tmp2$ = Temp$ + Tmp$
Info\Filtre = tmp2$
EndSelect
Case #PB_EventCloseWindow
quit = 1
EndSelect
Until quit = 1
End
Code : Tout sélectionner
Enumeration
#Window_0
EndEnumeration
Enumeration
#Btn_GetFolder
#Btn_Add
#Btn_Copy
#Btn_Cancel
#Str_Default_Folder
#Str_Default_Ext
#Str_Title
#Str_Default_File
#Str_Extension
#Str_Position
#Rad_Open
#Rad_Save
#Resultat
#Text_0
#Text_1
#Text_2
#Text_3
#Text_4
#Text_5
#Frame3D_0
#Frame3D_1
#Frame3D_2
#Frame3D_3
#Frame3D_4
EndEnumeration
Structure REQUESTER_INFO
Type.s
Ext.s
Titre.s
Defaut.s
Filtre.s
Pos.w
EndStructure
Global Info.REQUESTER_INFO, string$
Def$ = ""
Info\Type = Def$
Info\Ext = Def$
Info\Titre = Def$
Info\Defaut = Def$
Info\Filtre = Def$
Info\Pos = 0
Procedure Open_Window_0()
If OpenWindow(#Window_0, 216, 0, 520, 345, #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar , "FileRequester - Maker")
If CreateGadgetList(WindowID())
ButtonGadget(#Btn_GetFolder, 430, 40, 25, 20, "...")
ButtonGadget(#Btn_Add, 325, 175, 75, 20, "Ajouter")
ButtonGadget(#Btn_Copy, 360, 320, 75, 20, "Copier")
ButtonGadget(#Btn_Cancel, 440, 320, 75, 20, "Quitter")
StringGadget(#Str_Default_Folder, 150, 40, 280, 20, "")
StringGadget(#Str_Default_Ext, 460, 40, 50, 20, "")
StringGadget(#Str_Title, 150, 85, 360, 20, "")
StringGadget(#Str_Default_File, 10, 150, 150, 20, "")
StringGadget(#Str_Extension, 165, 150, 235, 20, "")
StringGadget(#Str_Position, 415, 150, 95, 20, "")
OptionGadget(#Rad_Open, 10, 40, 115, 20, "OpenFileRequester")
OptionGadget(#Rad_Save, 10, 85, 115, 20, "SaveFileRequester")
SetGadgetState(#Rad_Open,1)
EditorGadget(#Resultat, 10, 240, 500, 65)
TextGadget(#Text_0, 150, 25, 250, 15, "Dossier par défaut")
TextGadget(#Text_1, 460, 25, 250, 15, "Extension")
TextGadget(#Text_2, 150, 70, 250, 15, "Titre de la boîte")
TextGadget(#Text_3, 10, 225, 495, 15, "Resultat")
TextGadget(#Text_4, 10, 135, 150, 15, "Fichiers")
TextGadget(#Text_5, 165, 135, 235, 15, "Extensions")
Frame3DGadget(#Frame3D_0, 5, 5, 125, 105, "Type de boite")
Frame3DGadget(#Frame3D_1, 135, 5, 380, 105, "Paramètres par défaut")
Frame3DGadget(#Frame3D_2, 5, 115, 400, 85, "Fichiers et Extensions")
Frame3DGadget(#Frame3D_3, 5, 205, 510, 105, "Prévisualisation")
Frame3DGadget(#Frame3D_4, 410, 115, 105, 85, "Position")
EndIf
EndIf
EndProcedure
Procedure SetBoxType(flag)
Global T$
If flag = 1
T$ = "OpenFileRequester("
ElseIf flag = 2
T$ = "SaveFileRequester("
EndIf
Info\Type = T$
EndProcedure
Procedure SetDefaultFolder()
Global Ch$
Chemin$ = PathRequester("Selection du dossier", "")
If Chemin$ = ""
Ch$ = Chr(34)+Chr(34)
Else
Ch$ = Chemin$
EndIf
SetGadgetText(#Str_Default_Folder,Ch$)
Info\Defaut = Ch$
EndProcedure
Chris