Page 1 of 1

Cannot access gadget inside xml dialog

Posted: Mon Aug 26, 2013 1:16 am
by roslansalleh
Please someone tell me what's wrong with below code.
I'm using PB5.20B13, OSX64

here xml code menudialog.xml

Code: Select all

<?xml version="1.0" ?>
<!-- Window -->
	<window flags="#PB_Window_SizeGadget | #PB_Window_MaximizeGadget | #PB_Window_MinimizeGadget"
		id="0" minheight="auto" minwidth="auto" name="firstwindow" text="Reporting">
		<hbox expand="item:2">
			<vbox expand="no">
				<panel name="panelbtn" width="200">
					<tab text="Program Selection"/>
					<vbox>
						<button Flags="" name="btnsetup" text="Setup" width="70"
							height="40"/>
						<button name="btnanalysis" text="Analysis" width="70" height="40"/>
						<button name="btnreport" text="Report" width="70" height="40"/>
					</vbox>
				</panel>
			</vbox>
			<vbox expand="yes">
				<panel width="400" height="300">
					<tab text="Setup"/>
					<vbox>
						<image name="imgdbsetup" width="140" height="140" imageid="0"/>
					</vbox>
					<tab text="Analysis"/>
					<tab text="Report"/>
				</panel>
			</vbox>
		</hbox>
	</window>
And here the PB code.

Code: Select all

If LoadXML(#Xml, "menudialog.xml") And XMLStatus(#Xml) = #PB_XML_Success
  CreateDialog(#Dialog)
  
  If OpenXMLDialog(#Dialog, #Xml, "firstwindow", 200, 200)
    
    btnNr = DialogGadget(#Dialog, "btnsetup")
    MessageRequester("#ButtonGadget","Button Number : " + Str(btnNr))    
    Repeat
      Event = WaitWindowEvent()
    Until Event = #PB_Event_CloseWindow
    
  Else
    Debug "Dialog creation error: " + DialogError(#Dialog)
  EndIf
  
Else
  Debug "XML error on line " + XMLErrorLine(#Xml) + ": " + XMLError(#Xml)
EndIf

Code: Select all

DialogGadget(#Dialog, "btnsetup") 
always return -1.

Re: Cannot access gadget inside xml dialog

Posted: Mon Aug 26, 2013 1:23 am
by roslansalleh

Code: Select all

#Xml = 0
#Dialog = 0

If LoadXML(#Xml, "menudialog.xml") And XMLStatus(#Xml) = #PB_XML_Success
  CreateDialog(#Dialog)
  
  If OpenXMLDialog(#Dialog, #Xml, "firstwindow", 200, 200)
    
    btnNr = DialogGadget(#Dialog, "btnsetup")
    MessageRequester("#ButtonGadget","Button Number : " + Str(btnNr))    
    Repeat
      Event = WaitWindowEvent()
    Until Event = #PB_Event_CloseWindow
    
  Else
    Debug "Dialog creation error: " + DialogError(#Dialog)
  EndIf
  
Else
  Debug "XML error on line " + XMLErrorLine(#Xml) + ": " + XMLError(#Xml)
EndIf
forgot to put constants declaration.
But the result same.

Re: Cannot access gadget inside xml dialog

Posted: Mon Aug 26, 2013 8:29 am
by davido
Hi roslansalleh,

Your dialog produces a very nice screen.

Please look at the post below and later a reply by Fred.

It appears that ListIcon gadgets, in panels don't work properly. It may well apply to others, too.

Andre: http://www.purebasic.fr/english/viewtop ... 40#p422640

Fred: http://www.purebasic.fr/english/viewtop ... 79#p422679

Re: Cannot access gadget inside xml dialog

Posted: Mon Aug 26, 2013 8:31 am
by roslansalleh
Thank you davido. At last somebody say something about my problem.

Re: Cannot access gadget inside xml dialog

Posted: Mon Aug 26, 2013 10:32 am
by Fred
It's a bug, already fixed for the next beta.

Re: Cannot access gadget inside xml dialog

Posted: Tue Aug 27, 2013 4:37 am
by roslansalleh
Thank you Fred.
Now its become easier and easier to make program using PB.
Great job.