German Warnung: Not all code paths a value.

pjo12345

Active Member
Licensed User
Longtime User
Hallo,

warum bekomme ich bei diesem Code die Warnung: "Not all code paths returns a value"?

B4X:
Sub Activity_KeyPress (KeyCode As Int) As Boolean
    If KeyCode = KeyCodes.KEYCODE_BACK AND pnlMenu.Visible = True Then
        pnlMenu.Enabled = False
        pnlMenu.Visible = False
        Canvas1.DrawLine(x1,x2,y1,y2,Colors.Transparent,2dip) 'Linie löschen
        Canvas1.DrawRect(Rechteck1,Colors.Transparent,False,3dip)
        Return True
    End If
End Sub
 

DonManfred

Expert
Licensed User
Longtime User
Ich glaube nicht das das an genau DIESEM Code liegt. Das kann ja nicht der ganze Quelltext deiner app sein die du da kompilieren wolltest.
Hast du genauere informationen im log stehen?

Evtl. mal das projekt als zip exportieren und hier hochladen. So mit dem Quelltext oben würde ich halt sagen, das das nicht das problem sein sollte. Mal davon ausgegangen dass x1,x2, y2 und y2 vermutlich int´s und Rechteck1 ein RECT ist... Viel mehr kann man da aktuell nicht sagen
 

DonManfred

Expert
Licensed User
Longtime User
Nachtrag: Hmmm

Sicher das das mit dem AND in der IF-Abfrage SO funktioniert?

B4X:
If KeyCode = KeyCodes.KEYCODE_BACK AND pnlMenu.Visible = True Then

würde ich vermutlich SO anwenden

B4X:
If ((KeyCode = KeyCodes.KEYCODE_BACK) AND (pnlMenu.Visible = True)) Then
 

pjo12345

Active Member
Licensed User
Longtime User
Ja das ist nicht der gesamte Code. Aber an dieser Stelle wird die Warnung angezeigt. Auch wenn ich die Zeilen zum Zeichnen der Linie und des Rechtecks auskommentiere bleibt die Warnung. Ich fange mit diesem Code die Back-Taste ab und verhindere das Schließen der App. Lösche ich die ganze Sub ist alles OK.

Ich versuche mal deinen Vorschlag aus dem zweiten Post.
 

pjo12345

Active Member
Licensed User
Longtime User
Habe jetzt mal deinen Vorschlag probiert aber das Ergebnis ist das Gleiche. Es funktioniert alles aber eben diese Warnung bleibt.
 

klaus

Expert
Licensed User
Longtime User
Dein Code muss so aussehen:
B4X:
If KeyCode = KeyCodes.KEYCODE_BACK AND pnlMenu.Visible = True Then
    pnlMenu.Enabled = False
    pnlMenu.Visible = False
    Canvas1.DrawLine(x1,x2,y1,y2,Colors.Transparent,2dip) 'Linie löschen
    Canvas1.DrawRect(Rechteck1,Colors.Transparent,False,3dip)
    Return True
Else
    Return False
End If
Die Warnung kommt weil in deinem Code wenn die If Funktion False ist kein Return Wert zurück gegeben wird !
 

pjo12345

Active Member
Licensed User
Longtime User
Danke, genau das war es.
 
Top