nrcomm componenti
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
- bulutsuzluk_35
- Üye
- Mesajlar: 124
- Kayıt: 06 Eki 2007 04:14
- Konum: İzmir-Ankara-İstanbul-Antalya
- İletişim:
nrcomm componenti
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
Ş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
- bulutsuzluk_35
- Üye
- Mesajlar: 124
- Kayıt: 06 Eki 2007 04:14
- Konum: İzmir-Ankara-İstanbul-Antalya
- İletişim:
- bulutsuzluk_35
- Üye
- Mesajlar: 124
- Kayıt: 06 Eki 2007 04:14
- Konum: İzmir-Ankara-İstanbul-Antalya
- İletişim:
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.
- bulutsuzluk_35
- Üye
- Mesajlar: 124
- Kayıt: 06 Eki 2007 04:14
- Konum: İzmir-Ankara-İstanbul-Antalya
- İletişim:
s.a.
portayaz dan sonra sleep ile beklemesini sağlayabilirsin.
veya şöyle bir bekleme kodu koyabilirsin.
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.
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.....
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
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
- bulutsuzluk_35
- Üye
- Mesajlar: 124
- Kayıt: 06 Eki 2007 04:14
- Konum: İzmir-Ankara-İstanbul-Antalya
- İletişim:
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.
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.
- bulutsuzluk_35
- Üye
- Mesajlar: 124
- Kayıt: 06 Eki 2007 04:14
- Konum: İzmir-Ankara-İstanbul-Antalya
- İletişim:
bu arada application.messages; yöntemide olmadı.
Kod: Tümünü seç
try
try
inc(Bilgi);
except
sabir;
end;
finally
inc(Mutluluk);
end;
- bulutsuzluk_35
- Üye
- Mesajlar: 124
- Kayıt: 06 Eki 2007 04:14
- Konum: İzmir-Ankara-İstanbul-Antalya
- İletişim:
arkadaşlar hala çözemedim yardımcı olacak yokmu
Kod: Tümünü seç
try
try
inc(Bilgi);
except
sabir;
end;
finally
inc(Mutluluk);
end;