Dumme Frage

  • VB6

Es gibt 9 Antworten in diesem Thema. Der letzte Beitrag () ist von Gonzo.

    Hallo,
    Für Profis wohl eine dumme Frage...
    ...Ich kriegs aber nicht hin!!!

    Mein Problem:
    Ich möchte in einer Form eine Textbox erstellen, in der ich einen Zahlenwert eingeben kann. Zwei Knöpfe, beschrieben z.B. mit "+" und "-" sollen den eingetragenen Werte erhöhen oder verringern.
    Habe den "+"-Knopf mit :
    Form1.Text1 = Form1.Text1 + 1
    belegt, aber ohne Erfolg.
    Was ist falsch???

    Gruß von einem
    blutigen Laien!!!
    GONZO
    Hallo Gonzo,

    wenn etwas nicht funktioniert, dann sage uns doch bitte, ob du eine Fehlermeldung hast und wenn was für eine.

    Bei mir funzt dein Quelltext, auch wenn es schöner wäre du würdest das schreiben:

    Text1.Text = CLng(Text1.Text) + 1

    Da verläßt du dich nämlich nicht auf irgendwelche automatischen Typkonvertierungen.

    Wenn in deinem Textfeld ein numerischer Inhalt ist, müsste die Addition auch bei dir klappen. Ich setze mal voraus, dass du alle Steuerelemente korrekt benannt hast.

    Gruß Markus
    Ich schon wieder......

    In einem konkreten Fall funktioniert es wieder nicht!!!!
    Ich möchte in einem Textfeld den String(Bild) mit einer
    Zahl anzeigen lassen, die ich hoch und runterzählen lassen kann:

    Private Sub Command1_Click() 'hochzählen
    wert = wert + 1
    Text1.Text = "Bild " & wert
    End Sub

    Private Sub Command2_Click() 'runterzählen
    wert = wert - 1
    Text1.Text = "Bild " & wert
    End Sub

    Private Sub Form_Load()
    wert = 12345 'Vorgabewert
    Text1.Text = "Bild " & wert
    End Sub

    Wenn ich den "+"-Knopf drücke springt die Anzeige auf "1" und stoppt, bei "-" zeigt er "-1" an.

    Ich muß noch viel lehrnen.....

    Gruß
    GONZO
    Hallo Gonzo,

    du hast bestimmt in der Form folgende Zeile vergessen:

    Dim wert As Long

    Wenn du wert nicht modulweit dimensionierst, wird der Wert auch nicht modulweit gespeichert, sondern nur in der Prozedur, was dazu führt, dass bei Prozedurende die Variable samt Variableninhalt gelöscht wird.

    Gruß Markus

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „alchimist“ ()

    Hallo Gonzo,

    bitte setze doch mal den kompletten Quelltext (deiner Form) ins Forum, bei mir klappts es problemlos!

    Es ist super anstrengend, wenn man über etwas nicht kontrollierbares postet, einfach online stellen und schon kann man sich langen diskutieren sparen.

    Gruß Markus
    Ich versteh jetzt nicht ganz wie das gemeint ist. Mein Code sieht so aus:

    Private Sub Command1_Click()
    Dim wert As Long
    wert = wert + 1
    Text1.Text = "Bild " & wert
    End Sub

    Private Sub Command2_Click()
    Dim wert As Long
    wert = wert - 1
    Text1.Text = "Bild " & wert
    End Sub

    Private Sub Form_Load()
    Dim wert As Long
    wert = 12345 'Vorgabewert
    Text1.Text = "Bild " & wert
    End Sub

    Und er besteht aus einer Form1,
    2 Knöpfe:Command1+2
    1 Textbox

    Ist nur zur Funktionsprüfung geschrieben und soll später mal in ein kleines Projekt eingebaut werden.
    Aber wenn es im Test noch nichtmal funktioniert.....!!!!

    Gruß
    GONZO
    Hallo Gonzo,

    genau das meinte ich auch:

    Ich schrieb, bitte wert modulweit deklarieren, nicht in jeder Sub extra.

    Ein Eintrag am Anfang deiner Form reicht (das heißt modulweit deklarieren, der Variableninhalt ist von jeder Sub aus verfügbar).
    Siehe einfach mal nach, was ich vorher schrieb und wenn du davon etwas nicht verstanden hast, dann frage einfach nach.

    Ich erkläre noch mal ausführlich:

    Private Sub Command1_Click()
    Dim wert As Long <font color="darkred"> Hier wird wert deklariert und bekommt automatosch 0 zugewiesen </font>
    wert = wert + 1 <font color="darkred"> Hier wird wert=0+1 berechnet </font>
    Text1.Text = "Bild " & wert <font color="darkred"> Ausgabe von "Bild 1" </font>
    End Sub <font color="darkred"> Hier wird die Variable wert , die nur in dieser Sub existent sein kann (lokal definiert) wieder zerstört, der Inhalt ist also futsch </font>

    Gruß Markus