[VB] Wecker Problem

01/09/2011 20:01 Banana.Crafts#1
Hi,
ich habe mich mal ein Tag lang mit VB beschäftigt und mich dann an einem Wecker versucht.

Das ist das Script:

PHP Code:
Public Class Form1

    
Private Sub Button1_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles Button1.Click
        
If Not IsNumeric(TextBox1.TextThen
            MsgBox
("Enter a value.")
        Else
            
Dim input1 As Integer TextBox1.Text
            Timer1
.Enabled True
            Timer1
.Interval 1000
            Me
.Text input1
        End 
If
    
End Sub

    
Private Sub Button2_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles Button2.Click
        End
    End Sub

    
Private Sub Timer1_Tick(ByVal sender As System.ObjectByVal e As System.EventArgsHandles Timer1.Tick
        Dim input1 
As Integer TextBox1.Text
        Dim input2 
As String TextBox2.Text
        
If input1 0 Then
            Timer1
.Enabled False
            MsgBox
(input2, , "Time is over")
        Else
            
input1 input1 1
            Me
.Text input1
        End 
If
    
End Sub
End 
Class 
Es wird aber nur einmal input1 - 1 gerechnet, danach stoppt das Script.
Was mach ich falsch?

Banana.Crafts
01/10/2011 16:48 Al Kappaccino#2
Reine Logik aufgabe.
Denk mal drüber nach, was dein Timer jede Sekunde ausführt, vielleicht kommst du ja dann selber drauf ;)

PHP Code:
Private Sub Timer1_Tick(ByVal sender As System.ObjectByVal e As System.EventArgsHandles Timer1.Tick 
        Dim input1 
As Integer TextBox1.Text 
        Dim input2 
As String TextBox2.Text 
        
If input1 0 Then 
            Timer1
.Enabled False 
            MsgBox
(input2, , "Time is over"
        Else 
            
input1 input1 
            Me
.Text input1 
        End 
If 
    
End Sub 
01/11/2011 15:02 Banana.Crafts#3
Ah, verdammt, hab den Fehler gefunden.

Aber wie kann ich die Variable für alle Funktionen definieren?
In AutoIT ist es Global, in VB hab ich es nicht so ganz geblickt, was global bringt.
Wie gesagt, erst mit VB angefangen;D

Edit: Wie es aussieht, braucht man dafür Public?? Aber wie verwende ich das?
Public input1 As Integer geht schon mal nicht, da:
"Public" ist bei der Deklaration von lokalen Variablen ungültig."
01/11/2011 17:18 nkkk#4
deklarier es innerhlab der klasse, aber ausserhab der methode.
und nein du brauchst dafür kein public, public brauchst du wenn du erkauben wisst das jm d von ausserhalb der klasse darauf zugreifen kann, wofür es eig. selten einen grund gibt.
dass nenn tmna dan instanzvaraible, weil sie teil des zustandes des objektes speichet,
01/11/2011 19:01 Banana.Crafts#5
Hab es jetzt mal so versucht:
Funktioniert allerdings nicht o.O
Wiso das nicht?

Und wie kann ich Variablen in einer Funktion definiere, die auch von anderen Funktionen verwendet werden kann? Das werde ich später eh noch brauchen, daher wäre es cool, wenn ihr mir weiterhelfen könntet;D
01/11/2011 23:11 nkkk#6
?? hast du dich schon, die variable input1 kannst du doch in der methode "Button1_Click" und in "Timer1_Tick" als auch in allen anderen Methoden innerhalb von Form1.,

ich würde sie allerdings in "Button1_Click" nochmal auf den wert der TextBox setzten.
also noch ein "input1 = TextBox1.Text" innerhalb von "Button1_Click" einfügen.
01/12/2011 04:47 Al Kappaccino#7
Ich würde dir raten, mal Grundlagen zu lernen ;)

PHP Code:
Public Class Form1
    Dim input1 
As Integer
    Dim input2 
As String
    
Private Sub Button1_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles Button1.Click
        input1 
TextBox1.Text
        input2 
TextBox2.Text
        
If Not IsNumeric(TextBox1.TextThen
            MsgBox
("Enter a value.")
        Else
            
Timer1.Enabled True
            Timer1
.Interval 1000
            Me
.Text input1
        End 
If
    
End Sub

    
Private Sub Button2_Click(ByVal sender As System.ObjectByVal e As System.EventArgsHandles Button2.Click
        End
    End Sub

    
Private Sub Timer1_Tick(ByVal sender As System.ObjectByVal e As System.EventArgsHandles Timer1.Tick
        
If input1 0 Then
            input1 
input1 1
            Me
.Text input1
        
Else
            
Timer1.Enabled False
            MsgBox
(input2, , "Time is over")
        
End If
    
End Sub
End 
Class 
01/12/2011 15:34 Banana.Crafts#8
Wie gesagt, 2 Tage VB, davor nur AutoIT;D

Aber danke an euch;D

Kann geclosed werden.