home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1997 February / PCWK0297.iso / envelop / envelop.5 / Tools / Arsenal / apps / calc / calc.eto < prev    next >
Text File  |  1996-07-08  |  19KB  |  716 lines

  1. Type CalcMasterForm From SampleMasterForm
  2.   Type CalcConstants From Globals
  3.     Dim pi As String
  4.     Dim radians As String
  5.   End Type
  6.   Dim CalcMenuBar As New MenuBar
  7.   Dim CalcUnitsMenu As New PopupMenu
  8.   Type btn0 From Button
  9.     Dim NumberValue As String
  10.  
  11.     ' METHODS for object: CalcMasterForm.btn0
  12.     Sub Click
  13.       Parent.AppendNumber(NumberValue)
  14.     End Sub
  15.  
  16.   End Type
  17.   Dim lblResults As New Label
  18.   Dim btn7 As New CalcMasterForm.btn0
  19.   Dim btn8 As New CalcMasterForm.btn0
  20.   Dim btn9 As New CalcMasterForm.btn0
  21.   Dim btn4 As New CalcMasterForm.btn0
  22.   Dim btn5 As New CalcMasterForm.btn0
  23.   Dim btn6 As New CalcMasterForm.btn0
  24.   Dim btn1 As New CalcMasterForm.btn0
  25.   Dim btn2 As New CalcMasterForm.btn0
  26.   Dim btn3 As New CalcMasterForm.btn0
  27.   Dim btnDecimal As New Button
  28.   Dim btnC As New Button
  29.   Dim btnCE As New Button
  30.   Dim btnAdd As New Button
  31.   Dim btnSubtract As New Button
  32.   Dim btnMultiply As New Button
  33.   Dim btnDivide As New Button
  34.   Dim btnEquals As New Button
  35.   Dim btnPercentage As New Button
  36.   Dim ComputeStack As Double
  37.   Dim InputStack As String
  38.   Dim Operation As String
  39.   Dim CalcFont As New Font
  40.   Dim DisplayFont As New Font
  41.   Type btnSin From Button
  42.  
  43.     ' METHODS for object: CalcMasterForm.btnSin
  44.     Sub Click
  45.       With Parent
  46.         Operate(Val(.InputStack))
  47.         .UpdateDisplay
  48.         .ClearFlag = 1
  49.       End With
  50.     End Sub
  51.  
  52.     Sub Operate(o as double)
  53.       With Parent
  54.         If .UNITS = "Degrees" Then 
  55.           .InputStack = sin(o * radians)
  56.         Else 
  57.           .InputStack = sin(o)
  58.         End If
  59.       End With
  60.     End Sub
  61.  
  62.   End Type
  63.   Type btnCos From CalcMasterForm.btnSin
  64.  
  65.     ' METHODS for object: CalcMasterForm.btnCos
  66.     Sub Operate(o as double)
  67.       With Parent
  68.         If .UNITS = "Degrees" Then 
  69.           .InputStack = cos(o * radians)
  70.         Else 
  71.           .InputStack = cos(o)
  72.         End If
  73.       End With
  74.     End Sub
  75.  
  76.   End Type
  77.   Type btnTan From CalcMasterForm.btnSin
  78.  
  79.     ' METHODS for object: CalcMasterForm.btnTan
  80.     Sub Operate(o as double)
  81.       With Parent
  82.         If .UNITS = "Degrees" Then 
  83.           .InputStack = tan(o * radians)
  84.         Else 
  85.           .InputStack = tan(o)
  86.         End If
  87.       End With
  88.     End Sub
  89.  
  90.   End Type
  91.   Type btnATan From CalcMasterForm.btnSin
  92.  
  93.     ' METHODS for object: CalcMasterForm.btnATan
  94.     Sub Operate(o as double)
  95.       With Parent
  96.         If .UNITS = "Degrees" Then 
  97.           .InputStack = .Radian2Degree(atn(o))
  98.         Else 
  99.           .InputStack = atn(o)
  100.         End If
  101.       End With
  102.     End Sub
  103.  
  104.   End Type
  105.   Dim btne As New Button
  106.   Type btnLnx From CalcMasterForm.btnSin
  107.  
  108.     ' METHODS for object: CalcMasterForm.btnLnx
  109.     Sub Operate(o as double)
  110.       If Val(o) < 0 Then 
  111.         InfoBox.Message("", "Logarithm is undefined for a negative value!")
  112.       Else 
  113.         Parent.InputStack = log(o)
  114.       End If
  115.     End Sub
  116.  
  117.   End Type
  118.   Dim btnPi As New Button
  119.   Type btnReciprocal From CalcMasterForm.btnSin
  120.  
  121.     ' METHODS for object: CalcMasterForm.btnReciprocal
  122.     Sub Operate(o as double)
  123.       If o = 0 Then 
  124.         InfoBox.Message("", "Can't take the Reciprocal of 0")
  125.       Else 
  126.         Parent.InputStack = 1 / o
  127.       End If
  128.     End Sub
  129.  
  130.   End Type
  131.   Type btnSquared From CalcMasterForm.btnSin
  132.  
  133.     ' METHODS for object: CalcMasterForm.btnSquared
  134.     Sub Operate(o as double)
  135.       Parent.InputStack = o * o
  136.     End Sub
  137.  
  138.   End Type
  139.   Type btnSquareRoot From CalcMasterForm.btnSin
  140.  
  141.     ' METHODS for object: CalcMasterForm.btnSquareRoot
  142.     Sub Operate(o as double)
  143.       If o < 0 Then 
  144.         MessageBox.Message("Domain Error", "Can't take the square root of negative numbers")
  145.       Else 
  146.         Parent.InputStack = sqr(o)
  147.       End If
  148.     End Sub
  149.  
  150.   End Type
  151.   Dim btnStore As New Button
  152.   Dim btnRecall As New Button
  153.   Dim StoreBuffer As String
  154.   Dim ClearFlag As Integer
  155.   Dim UNITS As String
  156.   Dim btnBackSpace As New Button
  157.  
  158.   ' METHODS for object: CalcMasterForm
  159.   Sub AppendNumber(input As String)
  160.   
  161.     If ClearFlag = 1 Then 
  162.       InputStack = "0"
  163.       ClearFlag = 0
  164.     End If
  165.   
  166.     ' This guy receives input from the numberpad 0-9
  167.     ' and must save the input into the InputStack and update
  168.     ' the display. Input value of 10 indicates a decimal point
  169.   
  170.     If input = "10" Then 
  171.       input = "."
  172.     End If
  173.   
  174.     ' Determine how to insert the input into the InputStack String
  175.     Select Case InputStack
  176.       Case "0"
  177.         InputStack = input
  178.       Case "-0"
  179.         InputStack = "-" & input
  180.       Case Else
  181.         InputStack = InputStack & input
  182.     End Select
  183.   
  184.     ' Update the display with the contents of the InputStack String
  185.     UpdateDisplay
  186.   
  187.   End Sub
  188.  
  189.   Sub btnAdd_Click()
  190.     If InputStack = "-0" Then 
  191.       InputStack = "0"
  192.       UpdateDisplay
  193.     Else 
  194.       Operation = "Add"
  195.       InputStack2ComputeStack
  196.     End If
  197.   End Sub
  198.  
  199.   Sub btnBackSpace_Click()
  200.     Dim size As Integer
  201.   
  202.     ' Take number from InputStack and update the display
  203.     If InputStack <> "0" Then 
  204.       size = Len(InputStack)
  205.       InputStack = Left(InputStack, size - 1)
  206.       If InputStack = "" Then 
  207.         InputStack = "0"
  208.       End If
  209.       UpdateDisplay
  210.     End If
  211.   
  212.   End Sub
  213.  
  214.   Sub btnCE_Click()
  215.     ' Clear the input stack string
  216.     InputStack = 0
  217.   
  218.     ' update the display
  219.     UpdateDisplay
  220.   End Sub
  221.  
  222.   Sub btnC_Click()
  223.     ' Clear the input stack string
  224.     InputStack = "0"
  225.   
  226.     ' Update the display
  227.     UpdateDisplay
  228.   
  229.     ' Clear the compute stack double
  230.     ComputeStack = 0
  231.   
  232.     ' Clear the Operation string
  233.     Operation = ""
  234.   
  235.     ClearFlag = 0
  236.   
  237.   End Sub
  238.  
  239.   Sub btnDecimal_Click()
  240.   
  241.     ' The ClearFlag means that the previous operation left the results
  242.     ' of a calculation on the display.  Our next step is to add new
  243.     ' input, not to append to existing information
  244.     If ClearFlag = 1 Then 
  245.       InputStack = "0"
  246.       UpdateDisplay
  247.       ClearFlag = 0
  248.     End If
  249.   
  250.     ' If there is a decimal in the InputStack, we don't enter another
  251.     ' decimal point
  252.     If IsDecimal(InputStack) Then 
  253.       ' Do nothing
  254.     Else 
  255.       AppendNumber(10)
  256.     End If
  257.   
  258.   End Sub
  259.  
  260.   Sub btnDivide_Click()
  261.     ' Setup for a division calculation
  262.     Operation = "Divide"
  263.     InputStack2ComputeStack
  264.   End Sub
  265.  
  266.   Sub btnEquals_Click()
  267.     If Operation = "" Then Exit Sub
  268.     ' We will comment out the following line for now since it chokes
  269.     ' if you step over it in debug mode
  270.     If ComputeStack = 0 Then Exit Sub
  271.   
  272.     ' This guys is suppose to carry out the desire function
  273.     Select Case Operation
  274.       Case "Add"
  275.         lblResults.Caption = ComputeStack + Val(InputStack)
  276.       Case "Subtract"
  277.         lblResults.Caption = ComputeStack - Val(InputStack)
  278.       Case "Multiply"
  279.         lblResults.Caption = ComputeStack * Val(InputStack)
  280.       Case "Divide"
  281.         If Val(InputStack) = 0 Then 
  282.           InfoBox.Message("Calculation Error", "Can't divide by zero!")
  283.           Exit Sub
  284.         Else 
  285.           lblResults.Caption = ComputeStack / Val(InputStack)
  286.         End If
  287.     End Select
  288.   
  289.     InputStack = lblResults.Caption
  290.   
  291.     ' Reset the compute stack
  292.     ComputeStack = 0
  293.   
  294.     ' Set the clear display flag
  295.     ClearFlag = 1
  296.   
  297.   End Sub
  298.  
  299.   Sub btne_Click()
  300.     InputStack = exp(1)
  301.     UpdateDisplay
  302.     ClearFlag = 1
  303.   End Sub
  304.  
  305.   Sub btnMultiply_Click()
  306.     Operation = "Multiply"
  307.     InputStack2ComputeStack
  308.   End Sub
  309.  
  310.   Sub btnPercentage_Click()
  311.     InputStack = Val(InputStack) / 100
  312.     UpdateDisplay
  313.   End Sub
  314.  
  315.   Sub btnPi_Click()
  316.   
  317.     InputStack = 4 * atn(1)
  318.     UpdateDisplay
  319.     ClearFlag = 1
  320.   End Sub
  321.  
  322.   Sub btnRecall_Click()
  323.     If StoreBuffer = "" Then Exit Sub
  324.   
  325.     InputStack = StoreBuffer
  326.     UpdateDisplay
  327.     ClearFlag = 1
  328.   End Sub
  329.  
  330.   Sub btnStore_Click()
  331.     StoreBuffer = InputStack
  332.     ClearFlag = 1
  333.   End Sub
  334.  
  335.   Sub btnSubtract_Click()
  336.     If InputStack = "0" Then 
  337.       InputStack = "-0"
  338.       UpdateDisplay
  339.     Else 
  340.       Operation = "Subtract"
  341.       InputStack2ComputeStack
  342.     End If
  343.   End Sub
  344.  
  345.   Function Degree2Radian(degree As String) As String
  346.     Dim pi As String
  347.     Dim radians_per_degree As String
  348.   
  349.     pi = 4 * atn(1)
  350.     radians_per_degree = (2 * pi) / 360
  351.     Degree2Radian = degree * radians_per_degree
  352.   End Function
  353.  
  354.   Sub InputStack2ComputeStack()
  355.     ' This guy moves the data in the input stack to the compute stack
  356.     ComputeStack = Val(InputStack)
  357.     InputStack = "0"
  358.     ClearFlag = 1
  359.   End Sub
  360.  
  361.   Function IsDecimal(number As String) As Integer
  362.     Dim counter As Integer
  363.     Dim length As Integer
  364.     Dim char As String
  365.   
  366.     If number = "" Then 
  367.       IsDecimal = 0
  368.       Exit Sub
  369.     End If
  370.   
  371.     length = Len(number)
  372.     For counter = 1 To length
  373.       char = Mid(number, counter, 1)
  374.       If char = "." Then 
  375.         IsDecimal = 1
  376.         Exit For
  377.       Else 
  378.         IsDecimal = 0
  379.       End If
  380.     Next counter
  381.   
  382.   End Function
  383.  
  384.   Sub KeyPress(keyAscii As Integer)
  385.     Select Case keyAscii
  386.       Case 48 To 57 ' Number Key
  387.         AppendNumber(keyAscii - 48)
  388.       Case 43 ' +
  389.         btnAdd_Click
  390.       Case 45 ' -
  391.         btnSubtract_Click
  392.       Case 42 ' *
  393.         btnMultiply_Click
  394.       Case 47 ' /
  395.         btnDivide_Click
  396.       Case 46 ' .
  397.         btnDecimal_Click
  398.       Case Else
  399.     End Select
  400.   End Sub
  401.  
  402.   Function Radian2Degree (radian As String) As String
  403.     Dim pi As String
  404.     Dim degrees_per_radian As String
  405.   
  406.     pi = 4 * atn(1)
  407.     degrees_per_radian = 1 / ((2 * pi) / 360)
  408.     Radian2Degree = radian * degrees_per_radian
  409.   
  410.   End Function
  411.  
  412.   Sub ResetApplication_Click()
  413.     ' Set the default units
  414.     UNITS = "Degrees"
  415.   
  416.     ' Set default checkmarks
  417.     CalcUnitsMenu.CheckItem("UnitDegrees", 1)
  418.     CalcUnitsMenu.CheckItem("UnitRadians", 0)
  419.   
  420.     ' Run the clear button
  421.     btnC_Click
  422.   End Sub
  423.  
  424.   Sub UnitDegrees_Click()
  425.     ' Avoid trying to convert from degrees to degrees
  426.     If CalcUnitsMenu.ItemIsChecked("UnitDegrees") Then Exit Sub
  427.   
  428.     ' Toggle the unit mode to degrees
  429.     CalcUnitsMenu.CheckItem("UnitDegrees", 1)
  430.     CalcUnitsMenu.CheckItem("UnitRadians", 0)
  431.     CalcMasterForm.UNITS = "Degrees"
  432.   
  433.     ' If nothing in the InputStack, exit
  434.     If InputStack = "" Or InputStack = "0" Then Exit Sub
  435.   
  436.     ' Convert the value of the InputStack to degrees
  437.     InputStack = Radian2Degree(InputStack)
  438.   
  439.     UpdateDisplay
  440.     ClearFlag = 1
  441.   End Sub
  442.  
  443.   Sub UnitRadians_Click()
  444.     ' Avoid trying to convert from radians to radians
  445.     If CalcUnitsMenu.ItemIsChecked("UnitRadians") Then Exit Sub
  446.   
  447.     ' Toggle the unit mode to radians
  448.     CalcUnitsMenu.CheckItem("UnitDegrees", 0)
  449.     CalcUnitsMenu.CheckItem("UnitRadians", 1)
  450.     CalcMasterForm.UNITS = "Radians"
  451.   
  452.     ' If nothing in the InputStack, exit
  453.     If InputStack = "" Or InputStack = "0" Then Exit Sub
  454.   
  455.     ' Convert the value of the InputStack to degrees
  456.     InputStack = Degree2Radian(InputStack)
  457.   
  458.     UpdateDisplay
  459.     ClearFlag = 1
  460.   End Sub
  461.  
  462.   Sub UpdateDisplay()
  463.   
  464.     ' Take number from InputStack and update the display
  465.     If InputStack = "0" Then 
  466.       lblResults.Caption = InputStack & "."
  467.     Else 
  468.       lblResults.Caption = InputStack
  469.     End If
  470.   
  471.   End Sub
  472.  
  473. End Type
  474.  
  475. Begin Code
  476. ' Reconstruction commands for object: CalcMasterForm
  477. '
  478.   With CalcMasterForm
  479.     .Caption := "BOOT CAMP Calculator Application"
  480.     .Move(1755, 5310, 6105, 4260)
  481.     .KeyPreview := True
  482.     .DefaultButton := CalcMasterForm.btnEquals
  483.     .CancelButton := CalcMasterForm.btnC
  484.     .MenuBar := CalcMasterForm.CalcMenuBar
  485.     .SampleDir := "W:\arsenal\apps\calc\"
  486.     .SampleName := "calc"
  487.     .ComputeStack := 0
  488.     .InputStack := "0"
  489.     .Operation := ""
  490.     .StoreBuffer := "46"
  491.     .ClearFlag := 0
  492.     .UNITS := "Degrees"
  493.     With .CalcConstants
  494.       .pi := "3.141592653589793116"
  495.       .radians := "0.01745329251994329547"
  496.     End With  'CalcMasterForm.CalcConstants
  497.     With .CalcMenuBar
  498.  
  499.       .InsertPopup(SampleMasterFormFileMenu, "&File", -1)
  500.       .InsertPopup(CalcMasterForm.CalcUnitsMenu, "&Units", -1)
  501.       .InsertPopup(SampleMasterFormHelpMenu, "&Help", -1)
  502.     End With  'CalcMasterForm.CalcMenuBar
  503.     With .CalcUnitsMenu
  504.  
  505.       .InsertItem("UnitDegrees", "&Degrees", -1)
  506.       .InsertItem("UnitRadians", "&Radians", -1)
  507.     End With  'CalcMasterForm.CalcUnitsMenu
  508.     With .btn0
  509.       .Caption := "0"
  510.       .Font := CalcMasterForm.CalcFont
  511.       .ZOrder := 11
  512.       .Move(300, 2850, 450, 450)
  513.       .NumberValue := "0"
  514.     End With  'CalcMasterForm.btn0
  515.     With .lblResults
  516.       .Caption := "0."
  517.       .BackColor := 0
  518.       .ForeColor := 16777215
  519.       .Font := CalcMasterForm.DisplayFont
  520.       .ZOrder := 1
  521.       .Move(300, 300, 5400, 450)
  522.       .Alignment := "Right"
  523.     End With  'CalcMasterForm.lblResults
  524.     With .btn7
  525.       .Caption := "7"
  526.       .ZOrder := 2
  527.       .Move(300, 1050, 450, 450)
  528.       .NumberValue := "7"
  529.     End With  'CalcMasterForm.btn7
  530.     With .btn8
  531.       .Caption := "8"
  532.       .ZOrder := 3
  533.       .Move(915, 1050, 450, 450)
  534.       .NumberValue := "8"
  535.     End With  'CalcMasterForm.btn8
  536.     With .btn9
  537.       .Caption := "9"
  538.       .ZOrder := 4
  539.       .Move(1500, 1050, 450, 450)
  540.       .NumberValue := "9"
  541.     End With  'CalcMasterForm.btn9
  542.     With .btn4
  543.       .Caption := "4"
  544.       .ZOrder := 5
  545.       .Move(300, 1650, 450, 450)
  546.       .NumberValue := "4"
  547.     End With  'CalcMasterForm.btn4
  548.     With .btn5
  549.       .Caption := "5"
  550.       .ZOrder := 6
  551.       .Move(900, 1650, 450, 450)
  552.       .NumberValue := "5"
  553.     End With  'CalcMasterForm.btn5
  554.     With .btn6
  555.       .Caption := "6"
  556.       .ZOrder := 7
  557.       .Move(1500, 1650, 450, 450)
  558.       .NumberValue := "6"
  559.     End With  'CalcMasterForm.btn6
  560.     With .btn1
  561.       .Caption := "1"
  562.       .ZOrder := 8
  563.       .Move(300, 2250, 450, 450)
  564.       .NumberValue := "1"
  565.     End With  'CalcMasterForm.btn1
  566.     With .btn2
  567.       .Caption := "2"
  568.       .ZOrder := 9
  569.       .Move(915, 2235, 450, 450)
  570.       .NumberValue := "2"
  571.     End With  'CalcMasterForm.btn2
  572.     With .btn3
  573.       .Caption := "3"
  574.       .ZOrder := 10
  575.       .Move(1500, 2250, 450, 450)
  576.       .NumberValue := "3"
  577.     End With  'CalcMasterForm.btn3
  578.     With .btnDecimal
  579.       .Caption := "."
  580.       .Font := CalcMasterForm.CalcFont
  581.       .ZOrder := 12
  582.       .Move(900, 2850, 450, 450)
  583.     End With  'CalcMasterForm.btnDecimal
  584.     With .btnC
  585.       .Caption := "C"
  586.       .Font := CalcMasterForm.CalcFont
  587.       .ZOrder := 13
  588.       .Move(2250, 1050, 450, 450)
  589.     End With  'CalcMasterForm.btnC
  590.     With .btnCE
  591.       .Caption := "CE"
  592.       .Font := CalcMasterForm.CalcFont
  593.       .ZOrder := 14
  594.       .Move(2850, 1050, 450, 450)
  595.     End With  'CalcMasterForm.btnCE
  596.     With .btnAdd
  597.       .Caption := "+"
  598.       .Font := CalcMasterForm.CalcFont
  599.       .ZOrder := 15
  600.       .Move(2250, 1650, 450, 450)
  601.     End With  'CalcMasterForm.btnAdd
  602.     With .btnSubtract
  603.       .Caption := "-"
  604.       .Font := CalcMasterForm.CalcFont
  605.       .ZOrder := 16
  606.       .Move(2850, 1650, 450, 450)
  607.     End With  'CalcMasterForm.btnSubtract
  608.     With .btnMultiply
  609.       .Caption := "x"
  610.       .Font := CalcMasterForm.CalcFont
  611.       .ZOrder := 17
  612.       .Move(2250, 2250, 450, 450)
  613.     End With  'CalcMasterForm.btnMultiply
  614.     With .btnDivide
  615.       .Caption := "/"
  616.       .Font := CalcMasterForm.CalcFont
  617.       .ZOrder := 18
  618.       .Move(2850, 2250, 450, 450)
  619.     End With  'CalcMasterForm.btnDivide
  620.     With .btnEquals
  621.       .Caption := "="
  622.       .Font := CalcMasterForm.CalcFont
  623.       .ZOrder := 19
  624.       .Move(2250, 2865, 450, 450)
  625.     End With  'CalcMasterForm.btnEquals
  626.     With .btnPercentage
  627.       .Caption := "%"
  628.       .Font := CalcMasterForm.CalcFont
  629.       .ZOrder := 20
  630.       .Move(2850, 2850, 450, 450)
  631.     End With  'CalcMasterForm.btnPercentage
  632.     With .CalcFont
  633.       .FaceName := "Arial"
  634.       .Size := 12.000000
  635.       .Bold := True
  636.       .Italic := False
  637.       .Strikethru := False
  638.     End With  'CalcMasterForm.CalcFont
  639.     With .DisplayFont
  640.       .FaceName := "Arial"
  641.       .Size := 20.000000
  642.       .Bold := True
  643.       .Italic := False
  644.       .Strikethru := False
  645.     End With  'CalcMasterForm.DisplayFont
  646.     With .btnSin
  647.       .Caption := "Sin"
  648.       .ZOrder := 21
  649.       .Move(3600, 2850, 600, 450)
  650.     End With  'CalcMasterForm.btnSin
  651.     With .btnCos
  652.       .Caption := "Cos"
  653.       .ZOrder := 22
  654.       .Move(4350, 2850, 600, 450)
  655.     End With  'CalcMasterForm.btnCos
  656.     With .btnTan
  657.       .Caption := "Tan"
  658.       .ZOrder := 23
  659.       .Move(5100, 2850, 600, 450)
  660.     End With  'CalcMasterForm.btnTan
  661.     With .btnATan
  662.       .Caption := "aTan"
  663.       .ZOrder := 24
  664.       .Move(3600, 2250, 600, 450)
  665.     End With  'CalcMasterForm.btnATan
  666.     With .btne
  667.       .Caption := "e"
  668.       .ZOrder := 25
  669.       .Move(4350, 1650, 600, 450)
  670.     End With  'CalcMasterForm.btne
  671.     With .btnLnx
  672.       .Caption := "Ln x"
  673.       .ZOrder := 26
  674.       .Move(4350, 1050, 600, 450)
  675.     End With  'CalcMasterForm.btnLnx
  676.     With .btnPi
  677.       .Caption := "Pi"
  678.       .ZOrder := 27
  679.       .Move(4350, 2250, 600, 450)
  680.     End With  'CalcMasterForm.btnPi
  681.     With .btnReciprocal
  682.       .Caption := "1/X"
  683.       .ZOrder := 28
  684.       .Move(5100, 1050, 600, 450)
  685.     End With  'CalcMasterForm.btnReciprocal
  686.     With .btnSquared
  687.       .Caption := "x2"
  688.       .ZOrder := 29
  689.       .Move(5100, 1650, 600, 450)
  690.     End With  'CalcMasterForm.btnSquared
  691.     With .btnSquareRoot
  692.       .Caption := "Sqrt"
  693.       .ZOrder := 30
  694.       .Move(5100, 2250, 600, 450)
  695.     End With  'CalcMasterForm.btnSquareRoot
  696.     With .btnStore
  697.       .Caption := "STO"
  698.       .ZOrder := 31
  699.       .Move(3600, 1050, 600, 450)
  700.     End With  'CalcMasterForm.btnStore
  701.     With .btnRecall
  702.       .Caption := "RCL"
  703.       .ZOrder := 32
  704.       .Move(3600, 1650, 600, 450)
  705.     End With  'CalcMasterForm.btnRecall
  706.     With .btnBackSpace
  707.       .Caption := "BS"
  708.       .ZOrder := 33
  709.       .Move(1500, 2850, 450, 450)
  710.     End With  'CalcMasterForm.btnBackSpace
  711.     With .helpfile
  712.       .FileName := "W:\arsenal\apps\calc\calc.hlp"
  713.     End With  'CalcMasterForm.helpfile
  714.   End With  'CalcMasterForm
  715. End Code
  716.