use a função strtoint64... assim:

caption := inttostr(strtoint64('$C5E57F15'))




  ----- Original Message ----- 
  From: alineri 
  To: delphi-br@yahoogrupos.com.br 
  Sent: Monday, August 27, 2007 5:35 PM
  Subject: [delphi-br] funcao hexadecimal para inteiro para acima de 7 digitos


  Boa tarde pessoal,

  Estou com dificuldades em converter numeros hexadecimais grandes em 
  decimais.

  todas as funcoes que peguei na net e que fiz quando tem mais de 7 
  digitos nao funciona, verifico se esta certo pela calculadora do 
  windows.

  alguem pode me ajudar estou precisando muito dessa funcao

  exemplo de uma funcao que peguei aqui no grupo e que nao funcionou 
  com 
  o seguinte numero hexadecimal C5E57F15

  o resultado que a funcao retorna e: -974815467
  quando a conversao correta e: 3320151829

  Um forte abraco a todos
  Eduardo

  function TForm1.HexToInt(const HexStr: string): longint;
  var iNdx: integer;
  cTmp: Char;

  begin
  Result := 0;
  for iNdx := 1 to Length(HexStr) do
  begin
  cTmp := HexStr[iNdx];
  case cTmp of
  '0'..'9': Result := 16 * Result + (Ord(cTmp) - $30);
  'A'..'F': Result := 16 * Result + (Ord(cTmp) - $37);
  'a'..'f': Result := 16 * Result + (Ord(cTmp) - $57);
  else
  raise EConvertError.Create('Illegal character in hex string');
  end;
  end;
  end;



   

  __________ Informação do NOD32 IMON 2486 (20070827) __________

  Esta mensagem foi verificada pelo NOD32 sistema antivírus
  http://www.eset.com.br


[As partes desta mensagem que não continham texto foram removidas]

Responder a