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

Makrolar ve Basic programlama dili özel bölümü
Cevapla
Aslofke
Mesajlar: 26
Kayıt: 05 Şub 2018, 14:41
İşletim Sisteminiz: Windows
LibreOffice Sürümü: 5.1.5.2

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

Mesaj gönderen 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
Kullanıcı avatarı
Hamurcu
Mesajlar: 266
Kayıt: 06 Ağu 2012, 00:14
İşletim Sisteminiz: Windows 10/11 - Pardus Linux
LibreOffice Sürümü: 7.x

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

Mesaj gönderen 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.
wait
wait
wait1.png (30.23 KiB) 5455 kere 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
wait2
wait2.png (13.6 KiB) 5455 kere görüntülendi
Aslofke
Mesajlar: 26
Kayıt: 05 Şub 2018, 14:41
İşletim Sisteminiz: Windows
LibreOffice Sürümü: 5.1.5.2

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

Mesaj gönderen 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
Kullanıcı avatarı
Hamurcu
Mesajlar: 266
Kayıt: 06 Ağu 2012, 00:14
İşletim Sisteminiz: Windows 10/11 - Pardus Linux
LibreOffice Sürümü: 7.x

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

Mesaj gönderen 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.
Aslofke
Mesajlar: 26
Kayıt: 05 Şub 2018, 14:41
İşletim Sisteminiz: Windows
LibreOffice Sürümü: 5.1.5.2

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

Mesaj gönderen Aslofke »

evet hocam bu güzel bir çözüm oldu teşekkürler
Cevapla