Restored from previous forum. Originally posted by naw.
> I used an INI file to describe my Gadget positions.
Interesting... would you mind posting an example here for all to see?
PB - Registered PureBasic Coder
Ok - here's the code (note that the path to the "GUI.ini" file is hardcoded - you'll have to change that)
================================================================================
Procedure BuildGUI(guifile$,objectlist$,windowid)
;
; - Nigel Wale (naw) - Registered PB User ([url]mailto:
nigel.wale@ntlworld.com[/url] / [url]mailto:
walen@hursley.ibm.com[/url])
;
; - There's probably a better way to do this
;
; You should "include" this PB Procedure in your main source
;
;
;
#DefaultObjectType$="TextBox"
INIFilename(guifile$)
INISection("Main")
MainIniDebug=ReadINIValue("Debug",0)
MainIniObjectLists=ReadINIValue("ObjectLists",1)
MainFontHeight=ReadINIValue("FontHeight",10)
MainFont$=ReadINIString("Font","arial")
MainXMultiplier=ReadINIValue("XMultiplier",10)
MainYMultiplier=ReadINIValue("YMultiplier",16)
INISection(objectlist$)
ObjectDebug=ReadINIValue("Debug", MainIniDebug)
Objects=ReadINIValue("Objects",1)
;MessageRequester("DBG",MainFont$,0)
ObjectCtr=1
Repeat
ObjectAll$=ReadINIString("Object"+Str(ObjectCtr),"-")
ObjectType$=ReadINIString("ObjectType"+Str(ObjectCtr),#DefaultObjectType$)
ObjectXpos=ReadINIValue("ObjectXpos"+Str(ObjectCtr),1)*MainXMultiplier-MainXMultiplier
ObjectYpos=ReadINIValue("ObjectYpos"+Str(ObjectCtr),1)*MainYMultiplier
ObjectWidth=ReadINIValue("ObjectWidth"+Str(ObjectCtr),1)*MainXMultiplier
ObjectHeight=ReadINIValue("ObjectHeight"+Str(ObjectCtr),1)*MainYMultiplier-2
ObjectValue$=ReadINIString("ObjectValue"+Str(ObjectCtr),"")
ObjectFlags$=ReadINIString("ObjectFlags"+Str(ObjectCtr),"0")
ObjectGID=ReadINIValue("ObjectGID"+Str(ObjectCtr),1)
Select ObjectType$
Case "String" : StringGadget(ObjectGID,ObjectXpos,ObjectYPos,ObjectWidth,ObjectHeight,ObjectValue$)
Case "Text" : TextGadget(ObjectGID,ObjectXpos,ObjectYPos,ObjectWidth,ObjectHeight,ObjectValue$)
Case "CheckBox" : CheckBoxGadget(ObjectGID,ObjectXpos,ObjectYPos,ObjectWidth,ObjectHeight,ObjectValue$)
Case "Button" : ButtonGadget(ObjectGID,ObjectXpos,ObjectYPos,ObjectWidth,ObjectHeight,ObjectValue$)
Case "Frame3d" : Frame3DGadget(ObjectGID,ObjectXpos,ObjectYPos,ObjectWidth,ObjectHeight,ObjectValue$,Val(ObjectFlags$))
;
; The list goes on (and on and on....)
;
EndSelect
ObjectCtr=ObjectCtr+1
Until ObjectCtr=Objects+1
EndProcedure
;
; Here's a minimalistic Main Section
;
;
;
InitGadget(30)
OpenWindow(WINDOWID, 100, 100, 600, 600, #PB_Window_SystemMenu | #PB_Window_MinimizeGadget, "GUI INI")
CreateGadgetList(WindowID())
buildgui("C:\Program Files\PureBasic\WIP\GUIINI\GUI.ini","ObjectList1",WINDOWID)
Repeat
Select WaitWindowEvent()
Case #PB_EventMenu
Select EventMenuID()
Default : MessageRequester("FYI","Menu Item "+Str(EventMenuID())+" Not Implemented",0)
EndSelect
Case #PB_EventGadget
Select EventGadgetID()
Case 100 :
Default : MessageRequester("FYI","Button "+Str(EventGadgetID())+" Not Implemented",0)
EndSelect
Case #WM_CLOSE : QUIT=MessageRequester("Confirm","Really Quit",1)
Case #PB_EventCloseWindow : QUIT=MessageRequester("Confirm","Really, Really Quit",1)
EndSelect
Until QUIT=1
End