Obrigado pessoal utilizei a funcao strtoint64 como descrito abaixo e pronto, funcionou que e uma beleza. E o melhor de tudo com uma linha so.
Mais uma vez obrigado e um forte abraco a todos Eduardo --- Em delphi-br@yahoogrupos.com.br, "Desenvolvimento \(Anderson\)" <[EMAIL PROTECTED]> escreveu > > 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] >