VB: Sub bei Klick abbrechen

Ich möchte in VisualBasic ein „Alternativ-Liste“ (Options) anbieten, die man jederzeit ändern kann. Wenn eine Option = True ist, soll eine Sub aufgerufen werden, die sich solange wiederholt, bis eine andere Option angeklickt (= True) wird.
die Sub sieht ungefähr so aus:


dim machwas as boolean

sub MachWas()
do while laufenlassen
’ …
loop
end sub

sub Option1_Click()
laufenlassen = false
’ …
end sub

sub Option2_Click()
laufenlassen = false
’ …
end sub

Das Problem ist nur, das während die Sub „MachWas“ läuft, kein „umklicken“ der Options möglich ist, so dass laufenlassen auf false gestellt werden kann.

Hat jemand eine Idee? Ich hoffe, ich habe das Problem verständlich dargestellt…

Hi Tino !

Ja, könntest du es eigentlich auch machen.
Aber zu empfehlen ist es nicht, da es sehr viel Rechnerperformance frisst.

Du müsstest in die Schleife die Anweisung
DoEvents
eintragen, dann kann man während die Schleife durchlaufen wird an der Oberfläche (z.B.: die Option) ändern.

Ich würde den Timer empfehlen.
Du setzt das Timer Intervall auf z.B.: 100ms. Da wird immer eine Prozedur aufgerufen. Je nachdem welche Option aktiviert ist, das passiert dann in der Prozedur.

Ciao
Mario

Versuch mal in deinem Loop in der Sub MachWas ein DoEvents hineinzuschreiben.
Ich nehme an, dass du die 2.Option nicht anklicken kannst.

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

DoEvents
Kann ich dieses „DoEvents“ in mehrmals in die Sub schreiben? Ich verstehe den Warnhinweis in der Hilfe nicht ganz…

Wie soll das mit dem Timer genau funktionieren?

Ja, kannst du. Der Befehl DoEvents gibt das System frei damit ein cooperatives Multifreding ausgeführt werden kann.

Kann ich dieses „DoEvents“ in mehrmals in
die Sub schreiben? Ich verstehe den
Warnhinweis in der Hilfe nicht ganz…

Hallo Tino,

füge in Deine Do While Schleife die Anweisung DoEvents ein, sie gibt kurzzeitig Resourcen frei, so daß der Click empfangen und verarbeitet werden kann.

Gruß Patrick