Hi Leute
Weiß wieder mal nicht weiter.
Es geht um folgendes:
Ich befinde mich gerade in einem gewöhnlichen Sub und rufe an einer Stelle ein Form (Form.Show) auf. Nun möchte ich in dem erstgenannten Sub darauf warten, bis im Form irgendein CommandButton gedrückt wird.
Wir verwirkliche ich das am besten?
Danke für die Hilfe
mfg Andreas
Weiß wieder mal nicht weiter.
Es geht um folgendes:
Ich befinde mich gerade in einem gewöhnlichen Sub und rufe an
einer Stelle ein Form (Form.Show) auf. Nun möchte ich in dem
erstgenannten Sub darauf warten, bis im Form irgendein
CommandButton gedrückt wird.
Wir verwirkliche ich das am besten?
Du möchtest eine laufende Pozedur unterberchen und nach einem Event an die Stelle zurückkehren? Das geht so nicht.
Teile die Prozedur, die Du unterbrechen möchtest und rufe die zweite Prozedur auf, wenn die erste abgearbeiet wurde und das Event eintritt. Mit einem Flag läßt sich das steuern und so realisieren.
Einen anderen, einfachen Weg gibt es nicht, weil VB von Haus aus nicht Multithreadfähig ist. Dafür eine ActivX.exe zu erstellen (der einzige Weg zum Multitrhreading) dürfte zu aufwändig sein.
Option Explicit
Dim Flag As Boolean
Private Sub Command1\_Click()
If Flag = False Then
Flag = True
Command1.Caption = "Warte"
test
Else
Flag = False
'Was eben sonst passieren soll
End If
End Sub
Private Sub test()
'Dein Code
While Flag = True
DoEvents
Wend
'Fortsetzung
Command1.Caption = "Bereit"
End Sub
… aber das würde mir nicht gefallen, wenn das Programm ständig die Schleife durchkurbelt …
wenn du deine Sub erst weiter fortführen möchtest, wenn die andere Form beendet ist, so rufe die Form einfach modal auf
Willst du den Code in der Sub erst fortführen, wenn in der 2 Form ein Button getaetig wurde, so kommst du um ein Flag nicht drum herum
Lege dazu ein Modul an. Definiere dort eine Variable als Boolean. Frage in der Sub in der 1 Form die Variable ab und wenn sie den Wert xyz hat, dann führe die Sub fort.
Bsp:
'modul
Public Run as Boolean
'Form1
Private Sub DeineProzedure
'dein Code
Form2.show 'Andere Form aufrufen
Do
doevents
loop until Run
run=not(run)
'Dein weitere Code
End Sub
'Code in Form 2
'Bsp wenn Command1 geklickt wurde dann soll der Code in Form1 fortgesetz werden
Private Sub Command1\_click()
run = not(run)
'Dein Code
End Sub
MfG Alex
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]