title: What is the correct way to check if a value is a date/number in Delphi
body: <p>What is the correct way to check if a value is a date/number in Delphi?</p>
  
  <p>I know other languages have functions like isDate and  isNaN, but what is the Delphi equivalent? at the minute I have this</p>
  
  <pre><code>function isNumeric(s1:string):boolean;
  begin   
     // will throw exception if its not a number
    // there must be a better way to do this!!
    try
       StrTofloat(s1);
         result :=  TRUE ;
       except
         result := FALSE;
        end;
  end;
  </code></pre>
  
  <p>But throwing exceptions cant be good, and it makes debugging hard as I keep seeing the exception dialogue every time the code is called.</p>