sethandler() help please

new topic     » topic index » view thread      » older message » newer message

I'm fairly new to Euphoria and am trying to get this piece of code 
working. The Save button is supposed to switch between Save and Close 
depending on whether anything has been changed. It will switch one way, 
but not back. Prolly a dumb mistake on my part, but I'm just not seeing 
it! Code follows:

include Win32lib.ew
without warning

--  Window Product_Edit
global constant Product_Edit = createEx( Window, "Edit Product List", 0, 
Default, Default, 403, 412, 0, 0 )
global constant Product_Text = createEx( CText, "Product", Product_Edit, 
5, 0, 110, 20, 0, 0 )
global constant QTY_Text = createEx( CText, "QTY", Product_Edit, 120, 0, 
40, 20, 0, 0 )
global constant Price_Text = createEx( CText, "Price", Product_Edit, 
165, 0, 70, 20, 0, 0 )
global constant Product_List = createEx( List, "", Product_Edit, 5, 20, 
110, 355, or_all({WS_VSCROLL}), 0 )
global constant QTY_List = createEx( List, "", Product_Edit, 120, 20, 
40, 355, 0, 0 )
global constant Price_List = createEx( List, "", Product_Edit, 165, 20, 
70, 355, 0, 0 )
global constant Add_Button = createEx( PushButton, "Add", Product_Edit, 
295, 40, 90, 30, 0, 0 )
global constant Edit_Button = createEx( PushButton, "Edit", 
Product_Edit, 295, 90, 90, 30, 0, 0 )
global constant Delete_Button = createEx( PushButton, "Delete", 
Product_Edit, 295, 140, 90, 30, 0, 0 )
global constant Cancel_Button = createEx( PushButton, "Cancel", 
Product_Edit, 295, 275, 90, 30, 0, 0 )
global constant Save_Button = createEx( PushButton, "Close", 
Product_Edit, 295, 325, 90, 30, 0, 0 )

--  Variables  -- 
global integer isnew, haschanged, NeedToSave, YES, NO
global sequence hl
isnew=0  
haschanged=0
YES=1
NO=0
NeedToSave=NO

procedure save_off()
	setText(Save_Button, "Close")
	setHandler(Save_Button, w32HClick, {-1, 
routine_id("Close_Button_onClick")})
	hl = getHandler(Save_Button, w32HClick)
	addItem( Product_List, hl )
end procedure

procedure save_on()
	setText(Save_Button, "Save")
	setHandler(Save_Button, w32HClick, {-1, 
routine_id("Save_Button_OnClick")})
	addItem( Product_List, "Save On" )
end procedure

--  Button Procedures  --
procedure Close_Button_onClick(integer self, integer event, sequence 
params)
	NeedToSave=NO
	closeWindow(Product_Edit)	
end procedure

procedure Save_Button_onClick(integer self, integer event, sequence 
params)
	NeedToSave=NO
	save_off()
end procedure

procedure Add_Button_onClick(integer self, integer event, sequence 
params)
	NeedToSave=YES
	save_on()
end procedure

procedure Delete_Button_onClick(integer self, integer event, sequence 
params)
	NeedToSave=YES
	save_on()
end procedure

procedure Edit_Button_onClick(integer self, integer event, sequence 
params)
	NeedToSave=YES
	save_on()
end procedure

procedure Cancel_Button_onClick(integer self, integer event, sequence 
params)
	closeWindow(Product_Edit)
end procedure

--  Program Procedures  --
procedure Product_Edit_onDestroy(integer self, integer event, sequence 
params)
integer junk
	if haschanged=1 then
		junk = message_box("You have made changes.\n" &
	   	"Would you like to save them?",
	   	"Product List Changed!",
	   	MB_ICONWARNING + MB_YESNO + MB_TASKMODAL)
	   	if junk = IDYES then
	   		--Save_Button_onClick()
	   	end if	
  	end if
end procedure


--  Handlers  --
--onOpen[Product_Edit] = routine_id("onLoad_Product_Edit")
--onChange[List1]   = routine_id("onChange_List1")

setHandler(Add_Button, w32HClick, routine_id("Add_Button_onClick"))
setHandler(Edit_Button, w32HClick, routine_id("Edit_Button_onClick"))
setHandler(Delete_Button, w32HClick, 
routine_id("Delete_Button_onClick"))
setHandler(Cancel_Button, w32HClick, 
routine_id("Cancel_Button_onClick"))
setHandler(Save_Button, w32HClick, routine_id("Close_Button_onClick"))
setHandler(Product_Edit, w32HDestroy, 
routine_id("Product_Edit_onDestroy"))


WinMain( Product_Edit,Normal )

new topic     » topic index » view thread      » older message » newer message

Search



Quick Links

User menu

Not signed in.

Misc Menu