CalcDialogFormat=`WWWDLGED,4.0` CalcDialogCaption=`Calc` CalcDialogX=226 CalcDialogY=25 CalcDialogWidth=77 CalcDialogHeight=151 CalcDialogNumControls=10 CalcDialog01=`6,4,64,DEFAULT,EDITBOX,edbox,""` CalcDialog02=`6,20,64,DEFAULT,PUSHBUTTON,DEFAULT,"Decrement",1` CalcDialog03=`6,34,64,DEFAULT,PUSHBUTTON,DEFAULT,"Count Down",2` CalcDialog04=`6,48,64,DEFAULT,PUSHBUTTON,DEFAULT,"Cube",3` CalcDialog05=`6,62,64,DEFAULT,PUSHBUTTON,DEFAULT,"Factorial",4` CalcDialog06=`6,76,64,DEFAULT,PUSHBUTTON,DEFAULT,"Increment",5` CalcDialog07=`6,90,64,DEFAULT,PUSHBUTTON,DEFAULT,"Count Up",6` CalcDialog08=`6,104,64,DEFAULT,PUSHBUTTON,DEFAULT,"Square",7` CalcDialog09=`6,118,64,DEFAULT,PUSHBUTTON,DEFAULT,"Close",8` CalcDialog10=`6,132,64,DEFAULT,PUSHBUTTON,DEFAULT,"Quit",0` DispCalc=ObjectOpen("dispcalc.ccalc") :next edbox=DispCalc.Accum DispCalc.Display() select=Dialog("CalcDialog") if edbox=="" then edbox = 0 if !IsNumber(edbox) then Display(5,"Error","Edit box contents must be an integer") then goto next DispCalc.Accum = edbox goto select%select% ; Case Statement :select1 ; Decrement DispCalc.opnd=1 DispCalc.op=2 ; Minus DispCalc.Eval() DispCalc.Display() goto next :select2 ; Count Down if DispCalc.Accum <= 0 then Message ("Value too small or zero",DispCalc.Accum) then goto next DispCalc.opnd=1 DispCalc.op=2 DispCalc.Eval() DispCalc.Display() goto select2 :select3 ; Cube DispCalc.op=3 ; 3 is code for multiply DispCalc.opnd = edbox DispCalc.Eval() DispCalc.Eval() DispCalc.Display() goto next :select4 ; Factorial if DispCalc.Accum > 12 then Message("Value too large",DispCalc.Accum) then goto next DispCalc.op=3 ; Multiply DispCalc.opnd=DispCalc.Accum :factloop DispCalc.opnd=DispCalc.opnd-1 if DispCalc.opnd<=1 then goto next DispCalc.Eval() DispCalc.Display() goto factloop :select5 ; Increment DispCalc.Opnd=1 DispCalc.op=1 DispCalc.Eval() DispCalc.Display() goto next :select6 ; Count Up DispCalc.opnd=1 DispCalc.op=1 DispCalc.Eval() DispCalc.Display() goto select6 :select7 ; Square DispCalc.op=3 ; 3 is code for multiply DispCalc.opnd = edbox DispCalc.Eval() DispCalc.Display() goto next :select8 ; Close DispCalc.Quit() ObjectClose(DispCalc)