Microsoft Visual Basic 2008 Express Edition

Shakie

Erfahrenes Mitglied
Lass dir eine Nachricht ausgeben, was in den Labels drin steht, bevor du die Konvertierung nach Double vornimmst. Wahrscheinlich steht keine Zahl drin.
zum Beispiel so:
Code:
' AB HIER IST ES BUGGY ************************************!
MessageBox.Show(Label1wachsen.Text)
If CDbl(Label1wachsen.Text) = 100 Then
' [...]
 

Willy Fog

Mitglied
Eigentlich können die gar nicht leer sein.
Ich meine die zeigen doch permanent Wasser und Wachsen an. Ich meine davon hängt ja das ganze Programm ab. Nämlich das A) Immer genug Wasser vorhanden ist. Und B) wenn genug Wasser da ist, soll die Blume wachsen. Ich habe schon 4 (Kontrolllabel) erstellt und mit einem Timer versehen also werden die 4 Werte immer abgefragt und angezeigt.
@Shakie
Die Zeilen sind in einem Timer Namens Wachhund, und wenn ich da Msgbox verwende, habe ich in einer Sekunde 10 geöffnette Messageboxen, kannst Dir ja vorstellen, was in 12 Sekunden auf meinem Bildschirm los ist, denn so lange brauche um den Task-Manager zu öffnen.
Jetzt siehst Du wie verzwickt die Lage ist, ich will nur ein Blumendeskmate machen, danach würden Tiere und Spiele Folgen. Aber ein kleiner Fehler sorgt dafür, das ich die Datei nicht veröffentlichen kann.
Aber ich bin mir sicher, das wir alle das schon irgentwie hin bekommen und sollte mir was gelungen sein, schreib ich Euch natürlich sofort und Poste auch das Ergebnis rein.

Hier die Aktuelle Datei:
keine Viren! Beim Hochladen. Checkt es zur Sicherheit ruhig nochmal, bevor Ihr sie öffnet OK!
 

Anhänge

  • Der famouse Garten.rar
    502,7 KB · Aufrufe: 21

Shakie

Erfahrenes Mitglied
Dann verwende halt keine MessageBox sondern die Konsole.
Oder gib nur eine MessageBox aus, wenn der Fehler tatsächlich auftritt:
Code:
        Try
            If CDbl(Label1wachsen.Text) = 100 Then
                ToolStripMenuItem1.Visible = False
            Else
                ToolStripMenuItem1.Visible = True
            End If
            If CDbl(Label1Wasser.Text) = 0 Then
                BlumeWässernToolStripMenuItem.Visible = False
            Else
                BlumeWässernToolStripMenuItem.Visible = True
            End If
            If CDbl(Label1wachsen.Text) = 0 And CDbl(Label1Wasser.Text) = 0 Then
                BlumeWässernToolStripMenuItem.Visible = True
                ToolStripMenuItem1.Visible = True
            End If
        Catch ex As Exception
            MessageBox.Show("Ein Fehler ist aufgetreten. In Label1wachsen steht: " & Label1wachsen.Text & Environment.NewLine & "Fehlermeldung lautet: " & ex.ToString)
        End Try
Ach ja, steht nach dem letzten "Else" noch was oder kommt da gleich "End If"? Dann kannst du dir das "Else" auch sparen (ich habe es im Code hier mal rausgenommen).
 

Willy Fog

Mitglied
Ging los wie ne Bombe, ein Fenster nach dem anderen ging auf.
Und schlauer bin ich auch nicht, da der alte Fehlercode wieder auftaucht.

Ich bin Euch allen sehr dankbar, das Ihr alle den Fehler versucht mit allen Tips und Tricks auszumerzen. Aber ich bekomme ein schlechtes Gewissen Eure Zeit verschwendet zu haben.
Sonst Programmiere ich eben wieder normale Animationen und billige Puzzles.
Vielleicht soll ich keine tollen Animierte Tierdeskmates, Tier-Tamagotchis sowie Spiele in Richtung Townsmen, Die Siedler oder Frohe Ernte ohne Hintergrund machen so das man alles verschieben kann wie man will. Ich meine es gibt so wunderbar viel mit
Microsoft Visual Basic 2008 Express Edition zu entdecken und zu machen, das ich mir keine Grenzen Vorstellen kann!
Man muß eben Visual Basic 2008 Studiert haben um diesen Fehler zu verstehen und zu beheben und das habe ich leider nicht :(

Trotzdem danke. (!)
 

Anhänge

  • Fehler.jpg
    Fehler.jpg
    44,6 KB · Aufrufe: 12
Zuletzt bearbeitet:

Shakie

Erfahrenes Mitglied
Eigentlich löst der Screenshot deiner Fehlermeldung-Bombe das Rätsel. Schauen wir uns diese Zeile an:
Ein Fehler ist aufgetreten: In Label1wachsen steht:
Was steht also in Label1wachsen? Nichts! Ein leerer String oder maximal ein paar Leerzeichen, die im Screenshot nicht erkennbar sind.
Du musst dir jetzt überlegen: Wie kann es sein, dass im Label1wachsen ein leerer String steht? Dieser kann natürlich nicht in eine Zahl konvertiert werden. (Denn welche Zahl soll man denn in "" hineininterpretieren?)
Am besten suchst du dir dazu im Code alle Stellen, in denen der Inhalt vom Label gesetzt wird und schaust dir da an, ob es jemals sein könnte, dass ein Null-String gesetzt wird.
 
Zuletzt bearbeitet:

Willy Fog

Mitglied
Fragt mich nicht was ich gemacht habe, aber es hat geklappt :eek: :)

@Shakie

Du hattest recht. Nicht die Timer oder die Befehle, die auf die Labels zugreifen sind schuld das es nicht Funktioniert, sondern die Zuweisungen, die man am Anfang
( YourGarden01_Load ) macht. Ich hoffe, das es so bleibt. Kann ja auch zufall gewesen sein.
Werde es auf Herz und Nieren testen.
Aber sollte es kein zufall gewesen sein, Poste ich das Projekt hoch und markiere dieses Thema als erledigt. Danke an alle, die mir geholfen haben und die so viel geduld mit mir hatten. Ihr seit echte Profis wisst ihr das? Auf Euch kann man sich wirklich verlassen !

Also bis bald :)
 

Anhänge

  • Der famouse Garten.zip
    600,2 KB · Aufrufe: 27
Zuletzt bearbeitet: