From: mynamehere@comcast.net   
      
   "Karl E. Peterson" wrote in message   
   news:edpo6h$tfd$1@emma.aioe.org...   
   > Geoff wrote:   
   >> Consider the procedure   
   >>   
   >> Private Sub Adder(ByVal Num1 As Integer, etc. )   
   >>   
   >> End Sub   
   >>   
   >> which called by Call Adder( TxtNum1,.) where TxtNum1 is a text   
   >> box.   
   >>   
   >> Why does Num1 accept the value as an integer when the actual   
   >> parameter being passed is of type string? Why no type mismatch   
   >> error??   
   >   
   > That's one of the "features" introduced at VB4, and commonly referred to as   
   > "Evil Type Coercion". If VB can coerce, it does. Here's an article I wrote   
   > on that, way back when:   
   >   
   > Coercion Aversion   
   > http://vb.mvps.org/articles/pt199511.pdf   
   >   
      
   IN fact, when you pass TxtNum1, you are passing a TextBox, not a string. VB   
   also   
   finds the default property of the TextBox, which is Text, which is a string,   
   and   
   then does ETC and passes the result. Since default properties can also get you   
   in trouble, it is usually considered better to use TxtNum1.Text directly:   
    If IsNumeric(TxtNum1.Text) Then   
    Call Adder(CInt(TxtNum1.Text))   
    End If   
      
   --- SoupGate-Win32 v1.05   
    * Origin: you cannot sedate... all the things you hate (1:229/2)   
|