Yahoo Clever wird am 4. Mai 2021 (Eastern Time, Zeitzone US-Ostküste) eingestellt. Ab dem 20. April 2021 (Eastern Time) ist die Website von Yahoo Clever nur noch im reinen Lesemodus verfügbar. Andere Yahoo Produkte oder Dienste oder Ihr Yahoo Account sind von diesen Änderungen nicht betroffen. Auf dieser Hilfeseite finden Sie weitere Informationen zur Einstellung von Yahoo Clever und dazu, wie Sie Ihre Daten herunterladen.

Visual Basic 2008: Es soll sich nur EINE MsgBox öffnen nachdem Progressbar voll ist. Wie schaff' ich das ?

Hallo, habe ein kleines Programm geschriben das folgendermaßen aussieht:

Man öffnet es, eine Progressbar beginnt sich zu füllen.

Nach 10 Sekunden ist sie voll. Sobald sie voll ist, soll sich eine MessageBox öffnen.

Das Problem:

Es öffnet sich nicht EIN Fenster, sondern unendlich viele ! Und ich hab einfach keine Ahnung, wie ich das beheben soll.

Hier der Code des Timers:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Timer1.Tick

ProgressBar1.Increment(1)

If ProgressBar1.Value = ProgressBar1.Maximum Then

MsgBox("Progressbar voll !")

End If

End Sub

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Warum wird die Aktion denn nicht nur Einmal ausgeführt, sondern solange wie die Progressbar voll ist ? :( Und: Wie schaff ich es so, wie ich es will ? Ich verzweifel und bitte um Hilfe.

Lg, -cReep

Update:

Perfekt, hat funktioniert mit "Timer1.stop()". Hab nur keine Ahnung, wie du das mit der boolschen Variable meinst. :) Wäre nett, wenn du das noch ergänzen könntest.

3 Antworten

Bewertung
  • vor 1 Jahrzehnt
    Beste Antwort

    Das Problem liegt daran dass du den Timer1 anhalten muss!! bevor die MsgBox erscheint!

    So sollte es klappen oder so ähnlich..

    Timer1.tick

    ProgressBar1.Increment(1)

    If ProgressBar1.Value = ProgressBar1.Maximum Then

    Timer1.stop

    MsgBox("Progressbar voll !")

    ich hoffe ich konnte dir helfen

    Quelle(n): hatte das Problem selber ^^
  • vor 1 Jahrzehnt

    Ich kenne mich in Basic nicht aus, denke aber das die Inkrementation nicht mehr stattfindet, wenn die Progress-Bar einmal voll ist, und die If-Abfrage somit immer wahr ist. Du könntest innerhalb dieser If-Abfrage entweder den Timer stoppen - "Timer1.stop()" - oder eine boolsche Variable abfragen und beim ersten Aufruf umschalten, so dass trotz mehrmaligem Tick des Timers nur einmalig die MessageBox angezeigt wird.

  • vor 1 Jahrzehnt

    Die Syntax ist ok.

    Diese Subroutine ist fehlerfrei.

Haben Sie noch Fragen? Jetzt beantworten lassen.