Auf einen 'Event' warten

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

Hallo 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.

Gruß, Rainer

Hallo Andreas,

… oder so … :smile:

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 … :frowning:

Gruß, Rainer

Hallo Andreas,

wenn du deine Sub erst weiter fortführen möchtest, wenn die andere Form beendet ist, so rufe die Form einfach modal auf :smile:
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 :frowning:
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]