[Visual Basics]Wieso passiert das?

... komplette Frage anzeigen

2 Antworten

Fehler passieren häufig, wenn man unlogischen Code erstellt.

Geh doch mal deinen Code im Kopf durch. Du zeigst den aktuellen Wert der Progressbar im Label an. Danach erhöhst du den Wert der Progressbar, aber der neue Wert wird nicht am Label angezeigt. Weshalb du der Meinung bist, dass der Wert bei 97 stehenbleibt, obwohl er tatsächlich 100 erreicht hat.

Du begehst da zwei Anfängerfehler:

  • Verwalte deine relevanten Daten nicht in Steuerelementen. Erzeuge dir eine Variable, die du änderst und dann zuweist, sowohl der Progressbar, als auch dem Label. Und zwar nach der Inkrementierung.
  • Verwende keine Progressbar, wenn du den Fortschritt zeitlich in einem Timer erhöhst. Das ist Schwachsinn. Pseudo-Fortschritt, der nichts weiter als die Wartezeit erhöht ist für den Anwender nervig.

Speziell der erste Punkt ist für deine Logik wichtig. Dann würdest du beim Setzen und Abfragen (innerhalb der If Bedingung) nicht durcheinander kommen und unterschiedliche Quellen für den Wert verwenden.

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von arisolymp
05.05.2016, 08:24

Hey CrystalixXx,

Das war rein ein Test um zu sehen wie es funktioniert. Ausserdem bin ich noch ein Anfänger :) Ich verstehe nicht was du mit Punkt1 meinst. Ich hab es jetzt so mit 2 timer gelöst(ja ist nicht schlau). Könntest du mich vlt auf skype adden ? Skype xyzredoc. Wenn nicht dann wäre ich hier um eine Antwort um Punkt1 erfreut.

LG

0

Vielleicht weil du es bei jeden durchlaufen um 7 erhöht und 100 nicht durch 7 teilbar ist. Und die letzmögliche Zahl wäre Wie angezeigt 98. (14×7). Being nächsten erhöhen würde er über den maximalen wert kommen und somit ggf einen Fehler produzieren. Also ändere den Wert über den du erhöhen tust auf eine Zahl die in 100 rein passt. Grüße

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von CrystalixXx
05.05.2016, 08:02

Die Increment-Methode ist ausnahmesicher hinsichtlich der Wertänderung. Würde der in der Maximum-Eigenschaft angegebene Wert überschritten, wird die Value-Eigenschaft lediglich auf das Maximum festgelegt, unabhängig des Inkrementierungswertes.

Der Wert ist am Ende in seinem Code also immer 100.

0