Cześć,
Chcę zrobić tak, że jeśli po kliknięciu buttona zablokuje się w sensie wyłączy a po minucie się włączy i będzie można dalej z niego “korzystać”.
Z góry dzięki za pomoc.
Cześć,
Chcę zrobić tak, że jeśli po kliknięciu buttona zablokuje się w sensie wyłączy a po minucie się włączy i będzie można dalej z niego “korzystać”.
Z góry dzięki za pomoc.
1)Z Toolboxa dołącz do programu obiekt Timer i ustaw jego własności na: interwal=1000 : enabled=false (1000 milisekund= 1 sekunda)
W butonie wpisz: czas=0: timer1.enabled=true: button1.enabled=false
3)W timerze wpisz:
czas=czas+1
if czas=60 then button1.enabled=true: timer1.enabled=false:czas=0
Jak pisze w kodzie timera to mi pokazuje “czas is not declared”
Zmienna nie jest widoczna i musi być zadeklarowana na zewnątrz formy.
A wytłumaczysz mi to jakoś jaśniej?
Może tu wystarczy:
Public Class Form1
Dim czas As Integer
Można też stworzyć moduł w którym deklarujemy zmienne lub procedury widoczne w całym projekcie czyli tzw zmienne publiczne. W projekcie można np. mieć kilka form i jeżeli chcemy aby były widoczne w każdej formie to deklarujemy je właśnie w module.
Klikamy Project—> Add class–>.Module
W tym module wpisujemy:
Module Module1
Public czas As Integer
End Module
Słowo Public jest bardzo ważne bo jeśli go nie użyjemy, to zmienna będzie widoczna tylko w tym module.
Zmienne, procedury, funkcje dzielimy na lokalne (prywatne) widoczne tylko w obrębie obiektu w którym zostały zadeklarowane lub globalne(publiczne) obejmujące swym zasięgiem cały project.
W zależności od potrzeby tak je też deklarujemy.
Private function()
Public function()
Jeżeli nie użyjemy słowa private to domyślnie tak będzie rozumiana dana deklaracja.
l
No ok to juz naprawilem. tylko ze jeszcze jak minie ta minuta to button sie nie włącza…
Musi działać jeżeli poprawnie wpisane. Nie pokazuje żadnego błędu?
Może źle wpisałeś interval dla zegara, to można umieścić tą cechę w buttonie
Możesz jeszcze dla sprawdzenia dodać okienko tekstowe na formie, a w procedurze zegara wpisać:
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
czas = czas + 1
TextBox1.Text = czas
If czas = 60 Then Button1.Enabled = True : czas = 0 : Timer1.Enabled = False
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
timer1.interval=1000
czas=0: Button1.enabled=false: Timer1.Enabled = True
End Sub
Stworzylem nowy projekt i to działalo ten kod co tu napisales a w tym (tej aplikacji co robie) nie dziala. Wiesz moze dlaczego?
Ale dzieki za pomoc.
dobra zrobilem nowy projekt i nie ma tego problemu dzieki za pomoc :D:DDDDD.
Do poszukiwania błędów w programie przydatna jest opcja oznaczona jako Debug.
Jeżeli chcemy przetestować jakąś procedurę, to klikamy na szarym pasku z lewej strony obok linii od której rozpocznie się testowanie i u ruchamiamy program. Wykonywanie programu zatrzyma się na linii którą zaznaczyliśmy. Aby przejść do następnej linii naciskamy klawisz F8 i tak do do końca procedury. Umieszczając kursor myszki nad jakąś zmienną będziemy mieli podgląd jaką wartość przyjmuje aktualne ta zmienna. W ten sposób można znaleźć linię gdzie działanie nie jest prawidłowe. Przy tak krótkich procedurach jak w tym przypadku błąd można znaleźć bardzo szybko.
Proponuję też używać przy deklarowaniu zmiennych wyrazów znaczących. Przy dużej liczbie zmiennych można się pogubić gdy zmienne są oznaczone tylko literami i nie bardzo wiadomo co one oznaczają. Warto też używać dużych liter w nazwie zmiennej. np. “Czas”, a nie “czas” bo wówczas wszędzie ta zmienna będzie zaczynała się od dużej litery i łatwiej wychwycić błąd gdy np. gdzieś tam przez pomyłkę napiszemy np. “czes” zamiast “czas”.