sethandler() help please
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 )
|
Not Categorized, Please Help
|
|