Zwei Zähler in VB6 miteinander addieren

tragon

Grünschnabel
Hallo ihr da:):)

Ich habe in VB 6 ein Formular mit einem Zähler erstellt der auch gut geht.

Option Explicit
Dim lngCounter As Long

Private Sub Form_Load()
lngCounter = 0
End Sub

Private Sub Command1_Click()
lngCounter = lngCounter + 1
lblCounter.Caption = CStr(lngCounter)
End Sub


Mein Problem ist nun, dass ich ein Zweites Formular mit einem Zähler erstellen will, der den Wert vom Zähler im Formular übernimmt und dann im Formular 2 weiterzählt.


Danke für eure Hilfe
 

tombe

Erfahrenes Mitglied
Dann dimensioniere die Zählervariable global in einem Modul, dann ist sie im gesamten Projekt verfügbar. Oder du greifst über die Caption Eingeschaft darauf zu

Visual Basic:
Form2.lblCounter.Caption = Form1.lclCounter.Caption

Wobei ich die erste Methode vorziehen würde.
 
Zuletzt bearbeitet:

tombe

Erfahrenes Mitglied
Also wenn du es mit dem obigen Code (da war übirgens ein Fehler drin ! ! !) lösen willst, dann würde ich diesen entweder in das "Form_Activate" oder in das "Form_Load" Ereignis der zweiten Form eintragen.
Wenn du die zweite Form irgendwann schließt und der Wert des Zählers soll auch in Form1 weitergeführt werden, dann musst du es hier ebenfalls eintragen.

Aber ich würde wie schon oben geschrieben in das Projekt ein Modul aufnehmen und die Variable "lngCounter" dort deklarieren (in der Form muss die Deklaration dann natürlich gelöscht werden, sonst überschreiben sich die Variablen).

Dann wird der Wert dieser einen Variablen einfach hochgezählt und kann überall verwendet und verändert werden.
 

tragon

Grünschnabel
Hallo tombe,

ich glaube ich muss noch viele Bücher lesen wenn ich nicht einmal das hinbekomme. Ich versuche das echt schon lange zu lösen.:(
 

tragon

Grünschnabel
also der übertrag geht nun. Der wert der zuletzt in Form1 stand steht in Form2. Doch wenn ich nun wieder Klicke geht es mit 1 wieder los und nicht mit z.b 10
 

tombe

Erfahrenes Mitglied
Ich gehe jetzt davon aus das du KEINE globale Variable gemacht hast sondern den Wert direkt an das Label der Form2 übergibst!!
Dann hatte ich da einen Denkfehler drin.

Je nachdem ob bei "Form_Activate" oder bei "Form_Load" musst du es so ändern (hier für Form2):

Visual Basic:
lngCounter = Form1.lblCounter.Caption
lblCounter.Caption = CStr(lngCounter)

Dann arbeitest du innerhalb der Form wie gewohnt mit der Variablen "IngCounter" weiter.

Gruß Thomas
 

tragon

Grünschnabel
So sieht mein form2 nun aus und ich bekomme es einfach nicht hin. Darf Man(n) auch mal sagen:mad:



Option Explicit
Dim lngCounter As Long

Private Sub Form_Load()
lngCounter = 0
End Sub

Private Sub Form_Activate()
Form2.lblCounter.Caption = Form1.lblCounter.Caption
End Sub

Private Sub Command1_Click()
lngCounter = lngCounter + 1
lblCounter.Caption = CStr(lngCounter)
End Sub
 

tombe

Erfahrenes Mitglied
Mach es so:

Visual Basic:
Option Explicit
Dim lngCounter As Long
 
Private Sub Form_Load()
  lngCounter = Form1.lblCounter.Caption
  lblCounter.Caption = IngCounter
End Sub

Private Sub Form_Activate()
  'Form2.lblCounter.Caption = Form1.lblCounter.Caption
  'muss hier nicht sein
End Sub
 
Private Sub Command1_Click()
  lngCounter = lngCounter + 1
  lblCounter.Caption = CStr(lngCounter)
End Sub
 

tragon

Grünschnabel
Option Explicit
Dim lngCounter As Long

Private Sub Form_Load()
lngCounter = Form1.lblCounter.Caption
Form2.lblCounter.Caption = IngCounter >>>>>>> hier macht er eine fehlermeldung und ich bekomm es nicht hin
End Sub