GARANTIR DESCONTO

Fórum Conversão de Tipos #292551

22/08/2005

0

Alguém sabe como converter uma variavel OleVariant para o tipo String? É possível?


Foxcyber

Foxcyber

Responder

Posts

22/08/2005

Michael

Colega,

A diferença principal entre [b:3281c0fdf1]Variant [/b:3281c0fdf1]e [b:3281c0fdf1]OleVariant [/b:3281c0fdf1]é que o primeiro contém dados que apenas a aplicação corrente sabe o que fazer com eles, enquanto o segundo deve conter tipos de dados compatíveis com [b:3281c0fdf1]OLE Automation[/b:3281c0fdf1].

Portanta, para vc atribuir uma string para um OleVariant, basta proceder como no tipo nativo Variants. A biblioteca de controle vai fazer as conversões necessárias.

[]´s


Responder

Gostei + 0

22/08/2005

Foxcyber

Para atribuir string para OleVariant eu consigo, mas não estou conseguindo atribuir OleVariant para string, pois o resultado me retorna com um monte de interrogação. Exemplo: ´??????????´.


Responder

Gostei + 0

22/08/2005

Massuda

Acho que a conversão deve ser feita usando OleStrToString ou OleStrToVarStr.


Responder

Gostei + 0

22/08/2005

Michael

Olá colega!

Testei aqui e funcionou. Faça vc mesmo para ver: coloque um botão em um form, e digite no seu evento OnClick:

procedure TForm1.Button1Click(Sender: TObject);
var
  OV : OleVariant;
  S  : string;
begin

  OV := ´Delphi´;

  Caption := OV;

  S := OV;

  Button1.Caption := S;

end;


Ambos os Captions do form e do botão deverão ficar definidos como ´Delphi´.

Talvez o erro esteja acontecendo com vc pq a variável OleVariant não contenha uma string. Vc deve verificar antes de atribuí-la, portanto.

Consulte no help do Delphi pelas funções: [b:3e6d778534]VarIsStr[/b:3e6d778534], [b:3e6d778534]VarIsType [/b:3e6d778534]e [b:3e6d778534]VarType[/b:3e6d778534].

[]´s


Responder

Gostei + 0

22/08/2005

Foxcyber

Mas ele pede pra passar um PWideChar. Como passo, sendo que tenho um String? Da erro de compatibilidade de tipos.


Responder

Gostei + 0

22/08/2005

Adriano Santos

Olá colega! Testei aqui e funcionou. Faça vc mesmo para ver: coloque um botão em um form, e digite no seu evento OnClick:
procedure TForm1.Button1Click(Sender: TObject);
var
  OV : OleVariant;
  S  : string;
begin

  OV := ´Delphi´;

  Caption := OV;

  S := OV;

  Button1.Caption := S;

end;
Ambos os Captions do form e do botão deverão ficar definidos como ´Delphi´. Talvez o erro esteja acontecendo com vc pq a variável OleVariant não contenha uma string. Vc deve verificar antes de atribuí-la, portanto. Consulte no help do Delphi pelas funções: [b:7f8b70dac8]VarIsStr[/b:7f8b70dac8], [b:7f8b70dac8]VarIsType [/b:7f8b70dac8]e [b:7f8b70dac8]VarType[/b:7f8b70dac8]. []´s



[b:7f8b70dac8]Michael[/b:7f8b70dac8], aqui também funcinou sem problemas do jeito que vc passou.


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar