IBEvent UnRegister hatasi

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
ikra
Üye
Mesajlar: 901
Kayıt: 28 Nis 2005 01:26
Konum: Simdilik Topragin Üstü

IBEvent UnRegister hatasi

Mesaj gönderen ikra »

selamu aleyküm,

bi bilesende ibevents nesnesini kullaniyorum ve runtime event ler yükleyip daha sonra register ediyorum...

database aktif oldugu halde, unregister ederken hata aliyorum.
unregister islemini

Kod: Tümünü seç

if FEvents.Registered then FEvents.Registered := FALSE;
seklinde gerceklestiriyorum.
isin ilginc yani, bu hatayi her zaman vermiyor olmasi.

eventleri unregister ederken hata veriyor olmasinin sebebi ne olabilir?

bir de, unregister edecegim eventin indexini buldugum ve gercerli index oldugu halde silmeye kalktigimda list index out of hatasi aliyorum.
oysaki dedigim gibi ibevent nesnesinde silmek istedigim event ismi mevcut.

degerli yorumlariniz icin simdiden tesekkür ederim...
kıdemsiz üye
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Re: IBEvent UnRegister hatasi

Mesaj gönderen aslangeri »

s.a.

bide verdiği hataları görseydik....
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
ikra
Üye
Mesajlar: 901
Kayıt: 28 Nis 2005 01:26
Konum: Simdilik Topragin Üstü

Re: IBEvent UnRegister hatasi

Mesaj gönderen ikra »

hocam hatanin ne oldugu konusunda hic bir fikrim yok. zira alert vermiyor. F7 ile step seklinde ilerlerken FEvents.Registered := FALSE; kisminda durdugunu fark ettim. o kisma geldigi vakit duruyor ve devam etmiyor. haliyle create isleminde icinde bu bileseni bulunduran form, görev yöneticisinde calisiyor göründügü halde ekrana gelmiyor. formu kapadigimda ise yine unregister islemi gerceklestirildigi icin, form ekrandan yok olsada destroy gerceklesmiyor ve delphi tekrar design penceresine dönmüyor.

kisacasi, alert yok.

diger hatada ise alert mevcut. index gecerli oldugu halde, list index out of hatasi veriyor.
kıdemsiz üye
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Re: IBEvent UnRegister hatasi

Mesaj gönderen aslangeri »

fb eventler için remoteauxport (idi yanlış hatırlamıyorsam) u
güvenlik duvarı bu port engelleniyor olabilir.
configurasyon dosyasından bak bakalım port belirtilmişmi. eğer port belirtilmemişse rastgele bir port kullanıyordu yanlış hatırlamıyorsam.
ona belirli bir port verin ve o port içinde güvenlik duvarını kaldırın.
kolay gelsin.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
ikra
Üye
Mesajlar: 901
Kayıt: 28 Nis 2005 01:26
Konum: Simdilik Topragin Üstü

Re: IBEvent UnRegister hatasi

Mesaj gönderen ikra »

öncelikle ilgin icin tesekkür ederim. ellerine saglik...

port ile alakasi olsa register isleminde hata vermesi gerekmez mi?
oysaki bende unregister kisminda hata veriyor (donuyor).
kıdemsiz üye
Kullanıcı avatarı
aslangeri
Moderator
Mesajlar: 4322
Kayıt: 26 Ara 2003 04:19
Konum: Ankara
İletişim:

Re: IBEvent UnRegister hatasi

Mesaj gönderen aslangeri »

firebirdin loglarına bir bak bakalım bişeyler yazıyormu.
eventler ile uğraştığım zaman bendede donma oluyordu.
çözümünü yukarda bahsettim.
Duyduğun Şeylerin Söylediklerim Olduğuna Eminim Ama
Anladığın Şeylerin Anlatmak İstediklerim Olduğuna Emin Değilim
ikra
Üye
Mesajlar: 901
Kayıt: 28 Nis 2005 01:26
Konum: Simdilik Topragin Üstü

Re: IBEvent UnRegister hatasi

Mesaj gönderen ikra »

tamam abi bi arastirayim. bakalim loglar ne diyecek.
Allah razi olsun...
kıdemsiz üye
emin_as
Üye
Mesajlar: 559
Kayıt: 01 Eki 2008 10:05
Konum: izmir
İletişim:

Re: IBEvent UnRegister hatasi

Mesaj gönderen emin_as »

Eğer ibevent leri kaldırmak için döngü kuruyorsan, yukarıdan aşagı gelmelisin. Bu tüm silinecek listeler için geçerlidir.

Örnegin aşagıdaki gibi bir döngü kurarsan.

Kod: Tümünü seç

for i:=0 to 5 do
begin
   events[i].Free;
end;
Bu şekilde 0 nolu events silinince, 1 nolu event 0, 2 nolu event 1 olacaktır ve silmeye devam edersen, sonlara dogru hatalar alacaksın. Çünkü events[4] artık yoktur ve dolayısıyla, list out of index hatası alacaksın.

Dogru kod şu şekilde olabilir.

Kod: Tümünü seç

for i:=5 downto 0  do
begin
  events[i].Free;
end;
Sonlar silinecegi için, herhangi bir sorunla karşılaşılmaz.
Veya şu şekilde de döngü kurulabilir.

Kod: Tümünü seç

whiile events.Count > 0 do
begin
  events[0].Free;  
end;
Events listesinde eleman oldugu sürece 0 nolu event mutlaka olacaktır.

Bir döngü sorunu olabilir diye bu örnekleri verdim, eger döngü kullanmıyorsan sorun başka bir yerde olabilir.
ikra
Üye
Mesajlar: 901
Kayıt: 28 Nis 2005 01:26
Konum: Simdilik Topragin Üstü

Re: IBEvent UnRegister hatasi

Mesaj gönderen ikra »

emin kardesim önerin icin tesekkür ederim. fakat Events dedigimiz seyler TStrings oldugu icin index belirtildiginde geri dönen deger string. haliyle free edemiyoruz.
Allah razi olsun.
aslangeri kardesin dedigi yöntemi bi deneyip sonucu bildirecegim insaAllah.
selam ve dua ile...
kıdemsiz üye
Cevapla