L'exemple que je vous propose
- Affichage d'une fenêtre full-screen (
utilisation du flag #PB_Window_Background)
- Cette fenêtre contient 3 gadgets : Message de bienvenu, un bouton qui ne sert à rien et un combo choix de la langue Français ou Anglais.
Demo :
http://falsam.com/sbtest/readfile0.html
■
La configuration de langue est définie dans une structure.Code : Tout sélectionner
Structure NewSetup
Array t0.s(1) ;Message de bienvenue = "Bienvenu invité !","Welcome guest !"
Array t1.s(1) ;Bouton qui ne sert à rien = "Cliquez moi","Click me"
EndStructure
Global Config.NewSetup
Le fichier JSON a été généré avec un code PureBasic. Le résultat de ce fichier est
config.json a écrit :{"t0":["Bienvenu invité !","Welcome guest !"],"t1":["Cliquez moi","Click me"]}
■
Comment est lu le fichier config.
Le fichier config est un fichier au format JSON se trouvant sur le serveur est lu avec la commande
HTTPRequest() faisant appel à un callback
Code : Tout sélectionner
HTTPRequest(#PB_HTTP_Get, "data/config.json", "", @HttpOnRead())
■
Que fait le callback ?
Cette procédure callback va extraire le contenu JSON vers la structure
■
Code.Code : Tout sélectionner
Enumeration
#FontH1
#mf
#mfLang
#mfWelcome
#mfValid
EndEnumeration
;Setup
Structure NewSetup
Array t0.s(1)
Array t1.s(1)
EndStructure
Global Config.NewSetup
;Summary
Declare Start()
Declare HttpOnRead(Success, Result$, UserData)
Declare UpdateLang()
Declare Resize()
Start()
Procedure Start()
LoadFont(#FontH1, "", 18)
OpenWindow(#mf, 0, 0, 0, 0, "", #PB_Window_Background)
TextGadget(#mfWelcome, 10, 10, 200, 22, "")
SetGadgetFont(#mfWelcome, FontID(#FontH1))
ButtonGadget(#mfValid, 0, 10, 80, 22, "")
ComboBoxGadget(#mfLang, 0, 0, 80, 24)
AddGadgetItem(#mfLang, -1, "Français")
AddGadgetItem(#mfLang, -1, "English")
SetGadgetState(#mfLang, 0)
Resize()
;Trigger
BindGadgetEvent(#mfLang, @UpdateLang())
BindEvent(#PB_Event_SizeDesktop, @Resize())
;Import and Read JSON file
HTTPRequest(#PB_HTTP_Get, "data/config.json", "", @HttpOnRead())
EndProcedure
Procedure HttpOnRead(Success, Result$, UserData)
If Success
;Extract to structure config.NewSetup
ParseJSON(0, Result$)
ExtractJSONStructure(JSONValue(0), @config, NewSetup)
UpdateLang()
Else
Debug "HTTPRequest(): Error"
EndIf
EndProcedure
Procedure UpdateLang()
Protected Lang = GetGadgetState(#mfLang)
SetGadgetText( #mfWelcome, config\t0(Lang) )
SetGadgetText( #mfValid, config\t1(Lang) )
EndProcedure
Procedure Resize()
Protected Width = DesktopWidth(#mf)
Protected Height = DesktopHeight(#mf)
ResizeGadget(#mfValid, Width - 100, #PB_Ignore, #PB_Ignore, #PB_Ignore)
ResizeGadget(#mfLang, Width - 100, Height - 50, #PB_Ignore, #PB_Ignore)
EndProcedure
■
Remarque. la fonction HTTPRequest() ne fonctionne pas si vous testez le code depuis l'IDE de SpiderBasic. Il faut générer la web-application sur votre serveur local ou distant.