rebotea Postado Abril 26, 2010 Denunciar Share Postado Abril 26, 2010 oláestou tendo este erro e não consigo resolver que estou fazendo de errado!ObrigadoCould not convert variant of type (UnicodeString) into type (Double)dados a lersp01.temp 18sp02.temp 25Codeprocedure TTermografia.AnileseSpClick(Sender: TObject);var v1, v2,v3: String;I, J: Integer;sp1nome : String;sp2nome : String;begintrylabel1.Caption:= trim(IRimage1.AnalysisResults('Sp01'));Pontovalor1.text:= trim(IRimage1.AnalysisResults('Sp01.temp'));label2.Caption:= trim(IRimage1.AnalysisResults('Sp02'));Pontovalor2.Text:= trim(IRimage1.AnalysisResults('Sp02.temp'));beginif (Pontovalor2.Text <> ' ') thentrysp1nome := trim(IRimage1.AnalysisResults('Sp01.temp'));Analise1.value := Copy(sp1nome , Length(sp1nome ) - 4 , 7);sp2nome := trim(IRimage1.AnalysisResults('Sp02.temp'));Analise2.value := Copy(sp2nome , Length(sp2nome ) - 4 , 7);ValorGeral.Value:= trim(Analise1.Value-Analise2.Value ) ;ValorGeral.Value := RoundTo(ValorGeral.Value, -2);finallyend;end;exceptsp1nome := trim(IRimage1.AnalysisResults('Sp01.temp'));Analise1.value := Copy(sp1nome , Length(sp1nome ) - 3 , 4);sp2nome := trim(IRimage1.AnalysisResults('Sp02.temp'));Analise2.value := Copy(sp2nome , Length(sp2nome ) - 3, 4);ValorGeral.Value:= trim(Analise1.Value-Analise2.Value ) ;ValorGeral.Value := RoundTo(ValorGeral.Value, -2);end;end; Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Abril 26, 2010 Denunciar Share Postado Abril 26, 2010 Could not convert variant of type (UnicodeString) into type (Double)Não pode converter variante de tipo (UnicodeString) em tipo (Double)OBS: quando postar o erro, idique tambem a linha onde ocorreu esse erroUma variável do tipo Variant não pode ser convertida para um tipo Double Tipo UnicodeStringOs tipos fundamentais são AnsiChar and WideChar.Tipo DoubleReal48 2.9 x 10^–39 .. 1.7 x 10^38 Single 1.5 x 10^–45 .. 3.4 x 10^38 Double 5.0 x 10^–324 .. 1.7 x 10^308 Extended 3.6 x 10^–4951 .. 1.1 x 10^4932 19–20 Comp –2^63+1 .. 2^63 –1 19–20 8Currency –922337203685477.5808.. 922337203685477.5807abraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 rebotea Postado Abril 26, 2010 Autor Denunciar Share Postado Abril 26, 2010 Brigadoo erro ocorre sempre nestas partesAnalise2.value := Copy(sp2nome , Length(sp2nome ) - 4 , 7);ValorGeral.Value:= trim(Analise1.Value-Analise2.Value ) ;em virtude de eu tentar pegar so o valor de :sp01.temp 18 que pode ser ( sp01.temp 18,8) Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Abril 26, 2010 Denunciar Share Postado Abril 26, 2010 o erro ocorre sempre nestas partesAnalise2.value := Copy(sp2nome , Length(sp2nome ) - 4 , 7);ValorGeral.Value:= trim(Analise1.Value-Analise2.Value ) ;Supondo que Analise2.value é do tipo Doubleentão voce deveria usarAnalise2.value := strtofloat(Copy(sp2nome , Length(sp2nome ) - 4 , 7)); agora nesta parte ValorGeral.Value:= trim(Analise1.Value-Analise2.Value ); se Analise1.Value é do tipo integer, real ou double, voce não pode usar o ( trim ) pois ele serve somente para tirar os espaços em branco entre variaveis do tipo string então ficaria ValorGeral.Value:= Analise1.Value-Analise2.Value;abraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
rebotea
olá
estou tendo este erro e não consigo resolver que estou fazendo de errado!
Obrigado
Could not convert variant of type (UnicodeString) into type (Double)
dados a ler
sp01.temp 18
sp02.temp 25
Code
procedure TTermografia.AnileseSpClick(Sender: TObject);
var v1, v2,v3: String;
I, J: Integer;
sp1nome : String;
sp2nome : String;
begin
try
label1.Caption:= trim(IRimage1.AnalysisResults('Sp01'));
Pontovalor1.text:= trim(IRimage1.AnalysisResults('Sp01.temp'));
label2.Caption:= trim(IRimage1.AnalysisResults('Sp02'));
Pontovalor2.Text:= trim(IRimage1.AnalysisResults('Sp02.temp'));
begin
if (Pontovalor2.Text <> ' ') then
try
sp1nome := trim(IRimage1.AnalysisResults('Sp01.temp'));
Analise1.value := Copy(sp1nome , Length(sp1nome ) - 4 , 7);
sp2nome := trim(IRimage1.AnalysisResults('Sp02.temp'));
Analise2.value := Copy(sp2nome , Length(sp2nome ) - 4 , 7);
ValorGeral.Value:= trim(Analise1.Value-Analise2.Value ) ;
ValorGeral.Value := RoundTo(ValorGeral.Value, -2);
finally
end;
end;
except
sp1nome := trim(IRimage1.AnalysisResults('Sp01.temp'));
Analise1.value := Copy(sp1nome , Length(sp1nome ) - 3 , 4);
sp2nome := trim(IRimage1.AnalysisResults('Sp02.temp'));
Analise2.value := Copy(sp2nome , Length(sp2nome ) - 3, 4);
ValorGeral.Value:= trim(Analise1.Value-Analise2.Value ) ;
ValorGeral.Value := RoundTo(ValorGeral.Value, -2);
end;
end;
Link para o comentário
Compartilhar em outros sites
3 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.