Ver Mensaje Individual
  #4  
Antiguo 05-03-2005
Mick Mick is offline
Miembro
 
Registrado: may 2003
Posts: 405
Reputación: 22
Mick Va por buen camino
StrToInt no es nada mas que un wrapper a la funcion Val, lo unico que hace de mas es hacer saltar una excepcion (lo hace la funcion ConvertErrorFmt) si la conversion es erronea, como se ve en el codigo fuente:

Código:
function StrToInt(const S: string): Integer;
var
  E: Integer;
begin
  Val(S, Result, E);
  if E <> 0 then ConvertErrorFmt(@SInvalidInteger, [S]);
end;
Lo mejor es que uses directamente la funcion Val en tu programa en lugar de StrToInt.

Si quieres redefinir StrToInt el if que comprueba el error debes eliminarlo completamente y no utilizar excepciones para gestionar los errores: si utilizas excepciones es obligatorio que incluyas la unidad SysUtils ya que en ella se define el objeto base Excepcion.
Quizas sea mas sencillo que uses StrToIntDef si es posible, ya que no usa excepciones para gestionar el error, de modo que no te dara ningun problema al copiarla a una unit propia:

Código:
function StrToIntDef(const S: string; Default: Integer): Integer;
var
  E: Integer;
begin
  Val(S, Result, E);
  if E <> 0 then Result := Default;
end;
Saludos
Responder Con Cita