Bom, estou ficando meio ausente do forum por falta de tempo por causa da faculdade, mas ainda estou com alguns problemas e um é sobre esse tópico ainda, tinha conversado com Micheus e ele me pediu para fazer um debug, mas na hora de executar pelo "F9" está dando esse erro:
Project sistemacfc.exe raised exception class EConvertError with message "-' is not a valid floating point value'. Process stopped.
Use Step or Run to continue.
E aparece nessa linha de codigo em azul depois que aperto ok:
if ENumero( Copy( nPro, i, 1 ) ) then
Sei que isso não tem nada haver com esse tópico e erro que estava dando, mas o Micheus pediu para que eu postasse aqui, pois isso é para o programa fazer a verificação do serial do programa, embaixo tem todo o codigo da funcão.
Aguardo resposta.
function VerificaSerial( pSHD, pSEs : String ) : Boolean;
var nPro, nCPr, nHDS, nPa1, nPa2, nSer : String;
i : Integer;
nRes : Extended;
vReg : TRegistry;
vAut : Boolean;
begin
vAut := True;
vReg := TRegistry.Create;
vReg.RootKey := HKEY_LOCAL_MACHINE;
// le a chave ProductID
vReg.OpenKey( 'SOFTWARE\Microsoft\Windows\CurrentVersion', False );
nPro := vReg.ReadString( 'ProductID' );
// remove todos os caracteres não numericos da chave do produto
nCPr := '';
for i := 1 to Length( nPro ) do
begin
if ENumero( Copy( nPro, i, 1 ) ) then
nCPr := nCPr + Copy( nPro, i, 1 );
end;
// remove todos os caracteres não numericos do serial do HD
nHDS := '';
for i := 1 to Length( pSHD ) do
begin
if ENumero( Copy( pSHD, i, 1 ) ) then
nHDS := nHDS + Copy( pSHD, i, 1 );
end;
// calcula o serial do programa
nRes := ( StrToFloat( nCPr ) * StrToFloat( nCPr ) ) + StrToFloat( nHDS );
nRes := nRes / ( StrToFloat( nHDS ) * 2 );
i := Pos( ',', FloatToStr( nRes ) );
// verifica se foi encontrada alguma virgula no numero definido
if ( i > 0 ) then
begin
nPa1 := Copy( FloatToStr( nRes ), 01, ( i - 1 ) );
nPa2 := Copy( FloatToStr( nRes ), ( i + 1 ), ( Length( FloatToStr( nRes ) ) - i ) );
end;
if Length( nPa1 ) > Length( nPa2 ) then
nSer := nPa1
else
nSer := nPa2;
// compara o serial encontrado, com o que esta gravado no registro da estacao
if ( pSEs <> nSer ) then
begin
// Mensagem( 'Cópia ilegal!' );
vAut := False;
end;
VerificaSerial := vAut;
end;
Editado por Micheus Post desmembrado de outro tópico.
Pergunta
robinhocne
Tópico de origem: Erro "multiple rows in singleton"
__________________
Bom, estou ficando meio ausente do forum por falta de tempo por causa da faculdade, mas ainda estou com alguns problemas e um é sobre esse tópico ainda, tinha conversado com Micheus e ele me pediu para fazer um debug, mas na hora de executar pelo "F9" está dando esse erro:
E aparece nessa linha de codigo em azul depois que aperto ok: Sei que isso não tem nada haver com esse tópico e erro que estava dando, mas o Micheus pediu para que eu postasse aqui, pois isso é para o programa fazer a verificação do serial do programa, embaixo tem todo o codigo da funcão. Aguardo resposta. Editado por MicheusPost desmembrado de outro tópico.
Link para o comentário
Compartilhar em outros sites
2 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.