1 sayfadan 1. sayfa

wait komutu ikinci kez çalıştırmayla 0 ı görüyor

İletiTarih: 19 Oca 2019, 10:51
Aslofke
wait komutunu kullanmak istediğimde wait 10000 dediğimde sonucunda msgbox ile bir ileti girecek şekilde yazıyorum ancak fonksiyonu ikinci kez çalıştırdığımda 10 saniye beklemiyor ve anında sonuç döndürüyor oysa her tıklamada fonksiyonu yeniden başlattığı için her tıklamada sayacı sıfırlayarak en baştan 10 dan geri saymasını istiyorum ne yapabilirim bu konuda acaba

Re: wait komutu ikinci kez çalıştırmayla 0 ı görüyor

İletiTarih: 19 Oca 2019, 23:15
Hamurcu
Merhaba,

Aşağıdaki gibi basit bir kod yazdım.

Kod: Tümünü seç
Sub gecikmeli_mesaj
  Wait 10000
  MsgBox "merhaba"
End Sub


10sn bekleyip ekrana merhaba yazacak.

Sonrasında basit bir İtme Düğmesi oluşturup, yukarıdaki gecikmeli_mesaj prosedürünü düğmeye bağladım.

wait1.png
wait
wait1.png (30.23 KiB) 193 defa görüntülendi


Son olarak Araçlar menüsünden Formlar-->Tasarım kipi'ni kapatıp İtme Düğmesinin çalışmaya başlamasını sağladım.

Şimdi Düğmeye her bastığımda 10sn. bekleyip merhaba mesajı ekrana geliyor.

Herhangi bir problem olmadı.

Sonuç;
wait2.png
wait2
wait2.png (13.6 KiB) 193 defa görüntülendi

Re: wait komutu ikinci kez çalıştırmayla 0 ı görüyor

İletiTarih: 20 Oca 2019, 13:39
Aslofke
Evet hocam bı şekilde ben de yaptım ama üst üste tıklayınca 10 saniye beklemiyor ikinci tıklamada msj kutusu açılıyor

[ Post made via Android ] Resim

Re: wait komutu ikinci kez çalıştırmayla 0 ı görüyor

İletiTarih: 21 Oca 2019, 10:25
Hamurcu
Merhaba,

Problemi şöyle çözebilirsin.

Düğmeye tıklandığında, düğmeyi pasif yapıp, mesajı aldıktan sonra tekrar aktif yaparsan tam olarak istediğin süre bekletebilirsin.

Kod: Tümünü seç
sub DugmeAktifPasifYap(DugmeninBulunduguForm As Object,Optional Durum As Boolean)
  DugmeninBulunduguForm.getByName("İtme Düğmesi 1").Enabled=Durum
End Sub

Sub OrnekWait
  Dim CalismaKitabi As Object
  Dim CalismaSayfasi As Object
  Dim DugmeninFormu As Object

  CalismaKitabi=ThisComponent
  CalismaSayfasi=CalismaKitabi.Sheets.getByName("Çizelge1")
  DugmeninFormu=CalismaSayfasi.DrawPage.Forms.getByIndex(0)

  DugmeAktifPasifYap(DugmeninFormu,False)
  wait 3000
  msgbox "merhaba"
  DugmeAktifPasifYap(DugmeninFormu,True) 
End Sub


Yukarıda basit bir örnek yaptım.

Re: wait komutu ikinci kez çalıştırmayla 0 ı görüyor

İletiTarih: 21 Oca 2019, 23:28
Aslofke
evet hocam bu güzel bir çözüm oldu teşekkürler