visual basic te recursive fonksiyon nasıl çağrılır

enexs

Üye
Katılım
4 Kas 2008
Mesajlar
99
Puanları
1
Yaş
40
arkadaşlar aşağıdaki fonksiyonda

Private Sub deneme()

a = a + 1
MG17Motor1.MoveAbsolute CHAN1_ID, False
MG17Motor1.SetAbsMovePos CHAN1_ID, x(a)//burda motor1 1 oluyor
MG17Motor2.MoveAbsolute CHAN1_ID, False
MG17Motor2.SetAbsMovePos CHAN1_ID, y(a)//burda motor2 1 oluyor

If motor1 = 1 And motor2 = 1 Then

Print "enes eken"
motor1 = 0
motor2 = 0
deneme // bu satırda fonksiyonu çağırmasını istiyorum
End If
End Sub

adı deneme olan fonksiyon if kontrol döngüsünün içinde çağrılış olmasına rağmen fonksiyon çalışmıyor visual basic te recursive fonksiyon nasıl çağrılır
arkadaşlar yardımlarınızı acilen bekliyorum
teşekkürler
 
hocam kodlar doğru evet doğru anlamışsınız deneme adlı fonk. if döngüsünün içinde çağırıdım burda problem yok zaten if döngüzünn içine girebilmesi için motor1 ve 2 değişkenlerinin değerlerinin 1 olması gerekiyor bu değişkenlerde sonsuza kadar 1 olmuyor zaten bir süre sonra 0 oluyor bu kısım kodalarda yok
sizce problem nerde

edit(üstteki yöneticinin mesajı nereye gitti)
 
Neden fonksiyonu yeniden çalıştırmak istiyorsun anlamadığım kısım buydu.

Visual Basic 6 sürümünde fonksiyonlar bir kez çalıştırıldıktan sonra yeniden başka bir olay meydana gelmeden çalıştırılamıyor bildiğim kadarıyla. .NET Teknolojisinde bu yapılabiliyor. Ama Anlamsız...

Yukarıdaki Mesajımı ben kendim sildim.


Bu kodlar yerine While ya da Until kullan.
 
Merhaba,

Otomasyon uygulamalarında rekürsif fonksiyonlardan olabildiğince kaçınmanızı ve mümkünse rekürsif işlemlerinizi döngüler ile çözmenizi öneririm.

Fonksiyonun art arda kaç kere çağrılacağının garantisini her zaman veremeyebilirsiniz, bu da size çalışma zamanında 'Stack overflow' hatası olarak dönebilir ve programınız durabilir.

Rekürsif fonksiyon kullanım biçiminiz doğru, muhtemelen gerekli şartlar sağlanamadığı için fonksiyon yeniden çağrılamıyor.
--
Eğer fonksiyonunuzun baş tarafında bir yerlerde 'On Error Resume Next' ifadesi kullandıysanız çıkan hata mesajını göremiyor olabilirsiniz. Kullandığınız kodlar çok tehlikeli, bu tehlike işlemci hızı yüksek ise çok daha tehlikeli, çünkü çok daha kısa sürede 'Stack Overflow' hatasını alırsınız. Yazdığınız kodlar kolaylıkla döngüye çevrilebilir görünüyor.
 
Son düzenleme:
hocam dediğiniz gibi rekürsif fonksiyon bir noktadan sonra gerekli şartlar sağlanmadığında döngüden çıkıyordu. ama neticede rekürsif fonksiyon kullanımı riskli ne zaman patlayacağı belli olmaz bu yüzden döngüyle yapmaya karar verdim döngüyle yapınca daha güzel çalışıyor.
ilgilendiğiniz için teşekkürler
 

Forum istatistikleri

Konular
130,065
Mesajlar
932,701
Kullanıcılar
453,050
Son üye
alperen343

Yeni konular

Çevrimiçi üyeler

Geri
Üst