Forums Neueste Beiträge
 

Form Control "abschießen"

06/08/2009 - 19:42 von Dominik Schmidt | Report spam
Hallo,

angenommen, ein Projekt enthàlt mehrere Form Controls und in einer Form
làuft noch Code. Genau (und nur) diese Form soll beendet werden, der Code
soll abgebrochen werden.

Ein einfaches Beispiel (dieser Code sei in FormX):

While True
DoEvents
Wend

Wenn nun eine andere Form die FormX beenden will, würde ein "Unload FormX"
nur die Form verstecken, aber die Schleife làuft bis zum jüngsten Tag
weiter.
Es ist mir klar, dass man in die Schleife eine Abfrage einbauen könnte, die
prüft, ob die Form entladen wird.

Aber gibt es nun eine Möglichkeit, diese FormX abzuschießen, àhnlich wie
"End" das ganze Programm abschießt (dass dann Überreste im Speicher bleiben
könnten, ist eine andere Sache)?
 

Lesen sie die antworten

#1 Harald M. Genauck
06/08/2009 - 21:18 | Warnen spam
Hallo Dominik,

angenommen, ein Projekt enthàlt mehrere Form Controls und in einer
Form
làuft noch Code. Genau (und nur) diese Form soll beendet werden, der
Code
soll abgebrochen werden.

Ein einfaches Beispiel (dieser Code sei in FormX):

While True
DoEvents
Wend

Wenn nun eine andere Form die FormX beenden will, würde ein "Unload
FormX"
nur die Form verstecken, aber die Schleife làuft bis zum jüngsten Tag
weiter.
Es ist mir klar, dass man in die Schleife eine Abfrage einbauen
könnte, die
prüft, ob die Form entladen wird.

Aber gibt es nun eine Möglichkeit, diese FormX abzuschießen, àhnlich
wie
"End" das ganze Programm abschießt (dass dann Überreste im Speicher
bleiben
könnten, ist eine andere Sache)?



In dem "abzuschießenden" Form:


Private mCancel as Boolean

Public Sub Cancel()
mCancel = True
End Sub

... und dann in dieser Schleife:

While ...
DoEvents
If mCancel Then
Exit ...

Hoppla - das "uralte" While/Wend kennt gar kein kein "Exit". Die neuere
Variante Do/Loop dagegen schon:

Do While ...
DoEvents
If mCancel Then
mCancel = False
Unload Me
Exit Do
End If
Loop


Wir nun von anderswo die Cancel-Methode dieser Form aufgerufen, wird in
der Schleife in die Verzweigung gesprungen, die Form wird entladen und
die Schleife wird verlassen.


Viele Grüße

Harald M. Genauck

"ABOUT Visual Basic" - http://www.aboutvb.de (Herausgeber)
"VISUAL STUDIO one" - http://www.visualstudio1.de (Chefredakteur)

Ähnliche fragen