Olevariant tipinden bilgi almak...

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
tolgaozb
Üye
Mesajlar: 70
Kayıt: 26 Ara 2003 12:22
Konum: Karşıyaka
İletişim:

Olevariant tipinden bilgi almak...

Mesaj gönderen tolgaozb »

Selamlar
TCP/IP üzerinden gelen bir bilgiyi (kart okuyucudan) alıp değerlendirmem gerekiyor.
Okuyucu componentinin onreceive olayı şu şekilde :

rdOkuyucu1Receive(Sender: TObject; var data: OleVariant)

Buradaki data değişkeni görüldüğü gibi OleVariant tipinde.Buradan gelen bilgiyi ne şekilde bir string ifadeye dönüştürebilirim ?
netten bulduğum önce memorystringe dönüştürmek sonra da memorystringi stringe dönüştürmek.Buna yarayan fonksiyonalar var.Sistem 7/24 çalışan bir yapı ilk aşamada bu şekilde çalışsa da
bir süre sonra memory ya da yerini tespit edemediğim bir kodda program çakılıyor.
OleVariant nedir ve içindeki bilgiyi en sağlıklı nasıl alırım konusunda kısaca da olsa bilgi alabilirsem memnun olurum...

Teşekkürler
T.Tolga Özbaltalar - http://www.veridizayn.com
Kullanıcı avatarı
SimaWB
Üye
Mesajlar: 1316
Kayıt: 07 May 2009 10:42
Konum: İstanbul
İletişim:

Re: Olevariant tipinden bilgi almak...

Mesaj gönderen SimaWB »

Kod: Tümünü seç

if not VarIsNull(data) then 
  s := VarToStr(data);
There's no place like 127.0.0.1
Kullanıcı avatarı
tolgaozb
Üye
Mesajlar: 70
Kayıt: 26 Ara 2003 12:22
Konum: Karşıyaka
İletişim:

Re: Olevariant tipinden bilgi almak...

Mesaj gönderen tolgaozb »

Malesef...
kod "invalid variant type conversion " hatası veriyor..
T.Tolga Özbaltalar - http://www.veridizayn.com
Kullanıcı avatarı
SimaWB
Üye
Mesajlar: 1316
Kayıt: 07 May 2009 10:42
Konum: İstanbul
İletişim:

Re: Olevariant tipinden bilgi almak...

Mesaj gönderen SimaWB »

siz "nasıl string ifadeye dönüştürebilirim" diye sorduğunuz için bu kodu yazmıştım. Demek ki parametreyle gelen değer string uyumlu değil. Cihazın kullandığı protokol ile ilgili bilgiye ihtiyacınız var. Zaten olevariant kullanmanın temelinde; gönderen ve alan tarafların mesajlaşmada kullanılan veri yapısını biliyor olması yatar.
There's no place like 127.0.0.1
Cevapla