nrcomm componenti

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
bulutsuzluk_35
Üye
Mesajlar: 124
Kayıt: 06 Eki 2007 04:14
Konum: İzmir-Ankara-İstanbul-Antalya
İletişim:

nrcomm componenti

Mesaj gönderen bulutsuzluk_35 »

Mrb arkadaşlar

Şimdi ben portlarla ilgili bir program yazıyorum ve nrcomm componentini kullanmak zorundayım.Herşey güzel hoş ancak ben bir veri gönderiyorum mesela ve nrcomm un afterreceive olayıyla gelen verileri yorumluyorum ancak sorunum şu
misal
portayaz(a,5)

if buffertxt[4]='a' then
showmessage ('abc')

diorum.
burada portayaz procedureden sonra alttaki kod bloğu çalışacak ama benim buffertext değişkenim global.yani ben onu afterreceive olayıyla dolduruyorum.
sonuç olarak buffertext hemen dolmayacağı için benim nrcommun after receive olayının tamamının bitmesini beklemek istiyorum
yani şöle
portayaz(a,5)
bekle //burada buffertext değişkeninin dolmasını beklemek istiyorum
if buffertxt[4]='a' then
showmessage ('abc')

yardımlarınız için şimdiden teşekkürler
Kullanıcı avatarı
bulutsuzluk_35
Üye
Mesajlar: 124
Kayıt: 06 Eki 2007 04:14
Konum: İzmir-Ankara-İstanbul-Antalya
İletişim:

Mesaj gönderen bulutsuzluk_35 »

ya arkadaşlar hayrına yaf .yardım edin birinizi bekliyorum.bakın eğer thread olayı çözecek gibi ama onada parametre göndermem lazım
gönderebiliyormuyum bilmiyorum
Kullanıcı avatarı
unicorn64
Üye
Mesajlar: 919
Kayıt: 04 Nis 2006 08:56
Konum: yine yeniden Ankara ^_^

Mesaj gönderen unicorn64 »

if buffertxt[4]='a' then
showmessage ('abc')


kısmını afterreceive olayında çalıştırsan..??

thread e nasıl bi parametre gönderceksin, parametre göndermekten kastın nedir??
Kullanıcı avatarı
bulutsuzluk_35
Üye
Mesajlar: 124
Kayıt: 06 Eki 2007 04:14
Konum: İzmir-Ankara-İstanbul-Antalya
İletişim:

Mesaj gönderen bulutsuzluk_35 »

Senin dediğin gibi deniyorum ama showmessage penceresi acaip bi hal alıyor ve delphi hatalar vermeye başlıyor.Mesela showmessage penceresinin sadece başlığı gözüküyo yada tam boş bir tam ekran form geliyor.onu kapattığımdada object not found ınvalid pointer operation die bir hata ile karşılaşıyorum ve delphiyi kapatmadan düzelmiyor.
Kullanıcı avatarı
bulutsuzluk_35
Üye
Mesajlar: 124
Kayıt: 06 Eki 2007 04:14
Konum: İzmir-Ankara-İstanbul-Antalya
İletişim:

Mesaj gönderen bulutsuzluk_35 »

admin yada moderator arkadaşların bu konudaki düşünceleri nelerdir acaba???
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

s.a.
portayaz dan sonra sleep ile beklemesini sağlayabilirsin.
veya şöyle bir bekleme kodu koyabilirsin.

Kod: Tümünü seç

portayaz...
baslangic:=time;
repeat
application.processmessages;
until (length(buffertext)>=4) or (baslangic-time>=5)
if buffertext.....
baslangic ttime tipinde bir değişken. bilgileri buffertextin olması gereken uzunluk nedir tam bilemiyorum ama en fazla 5 saniye bekleyip yoluna devam eder.
birde baslangic-time dan dönen sonuç direk 5 i kabul etmeyebilir. daha doğrusu yazzdığımız 5, beş saniyeye tekabul etmeyebilir. 0,00 lı bişeyler olması laızm. onuda sen ayarlarsın artık.
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Kullanıcı avatarı
bulutsuzluk_35
Üye
Mesajlar: 124
Kayıt: 06 Eki 2007 04:14
Konum: İzmir-Ankara-İstanbul-Antalya
İletişim:

Mesaj gönderen bulutsuzluk_35 »

yazdığın yöntemi henüz deneme şansı bulamadım yani sistem şu anda bakımda yaklaşık yarım saat sonra tekrar çalışmaya başlayacağım ama benim asıl merak ettiğim şu aslında sizinkinin çözüm olabileceğini düşünüyorum ancak delphide bir eventın bitmesini bekleyebileceğimiz bir komut varmı thread lar için waitforsingleobject die bir komut olduğunu biliyorum ama mesela

procedure.button2.onclick(Sender:Tobject);
button1onclick(Sender);

bekle.. //waitforsingleobject(button1onclick,2000),yada waitformultipleobject(button1onclick,200)

dur
kodlar...

gibi
birde şunu düşünün:ben geçendede buna benzer bir sorun yaşadım onun için benim bu soruna kesin ve net bir çözüm bulmam lazım
arkadaşlar projeyi adım adım anlatim
şimdi formumda 720*720 bir image var ve ben bunu on piksel on piksel okuyup kırmızı ise stringe şunu ekle sarı ise bunu ekle diyorum ve en sonunda stringim tamamlandığında bunu porta yazıyorum

burada sorun yok

ancak birde şu vardı cihazda 720*720 bir vms yani yani şu otobanlardaki uyarı levhaları...oda bana eğer arıza varsa bunu gönderiyor ve ben bu gelen değerlere göre birtakım döngülerle arızanın koordinatını image üzerinde tespit edip o noktayı bir renge boyuyorum.Şimdi burda şöle bir sıkıntı doğdu arıza 1 veya 2 tane ise sorun yok ama birkaçtane olduğu zaman sorun çıkıyor nedeni ise şu ben dizimden arızabul fonsiyonuma tek tek bir integer değer gönderiyorum ve oda koordinatını bulup boyuyor ama bu sırada döngü devam ettiği için üstüste değerler gidiyor fonksiyonuma ve fonksiyonum boyamayı tamamlamadan geldiği için program sapıtıp acaip işler yapıyor.bu noktada da işte benim dediğim olayı mutlaka yapmam lazım yani fonksiyonum bitmeden döngü devam etmeyecek bu fonksiyon için bu button1 i beklemede olabilir.yani beklemeyi nasıl yapacağımı çok ii bilmem gerekiyor.:)
Neyse sanırım anlatabildim.
Yardım eden tüm arkadaşlara en büyük saygı dileklerimle.
Kullanıcı avatarı
bulutsuzluk_35
Üye
Mesajlar: 124
Kayıt: 06 Eki 2007 04:14
Konum: İzmir-Ankara-İstanbul-Antalya
İletişim:

Mesaj gönderen bulutsuzluk_35 »

bu arada application.messages; yöntemide olmadı.

Kod: Tümünü seç

try
  try
    inc(Bilgi);
  except
    sabir;
  end;
finally
  inc(Mutluluk);
end;
Kullanıcı avatarı
bulutsuzluk_35
Üye
Mesajlar: 124
Kayıt: 06 Eki 2007 04:14
Konum: İzmir-Ankara-İstanbul-Antalya
İletişim:

Mesaj gönderen bulutsuzluk_35 »

arkadaşlar hala çözemedim yardımcı olacak yokmu

Kod: Tümünü seç

try
  try
    inc(Bilgi);
  except
    sabir;
  end;
finally
  inc(Mutluluk);
end;
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Mesaj gönderen aslangeri »

peki kullandığınız bileşenini porttan veri gelince tetiklenen bir olayı yokmu. varsa onu kullanmayı deneyin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
Cevapla