Nach einem Jahr kurz vor der lang, lang ersehnten Version 4 grüße ich wieder alle recht herzlich!!! Nunja nun fange ich seit 2 Tagen an zu programmieren. Nun habe ich in den Tagen mehr oder weniger Bugs oder vermeintliche Fehler gefunden.
Wer Lust hat und es kann, mag mich bitte aufklären oder die Bugs weiterleiten

(Alle Beispiele mit PB 3.94 unter Win98SE) (Ich bin mir sicher, dass die Bugs auch in V4.00Beta enthalten sind)
1. GoSub funktioniert nicht
Code: Alles auswählen
OpenConsole()
abcd:
PrintN("1")
PrintN("2")
Return
PrintN("3")
Delay(5000)
Gosub abcd
PrintN("4")
PrintN("5")
Delay(5000)
CloseConsole()
End
2. Stringsproblematik (oder String-Unlogik)
2.1 a$ und a.s sind NICHT identisch! Ein String den man also einmal a$ genannt hat kann man nicht mehr mit a.s ansprechen und umgekehrt! Eigentlich sollte sowas doch möglich sein, da die Datentypen absolut identisch sind! Die verschiedene Verhaltensweise fällt insbesondere bei Val(a) auf - Hier darf man auschließlich nur "Val(a$)" schreiben und nicht etwa "Val(a.s)" oder Val(a) selbst wenn vorher "Global a.s" festgelegt wurde. Wenns nicht zuändern ist, bitte diese Besonderheit im Handbuch explizit aufführen!
2.2 - "Global a.s" reicht es, nachfolgend nur den Variablenstring ohne Datentyp anzugeben, bei "Global a$" muss immer das Dollarzeichen mitangegeben werden. Wenns nicht zuändern ist, bitte diese Besonderheit im Handbuch explizit aufführen!
3. 16 Farben (4Bit) Modi geht nicht!
Stattdessen erscheint eine Fehlermeldung!
Zwar vielleicht veraltet, aber eher sollte man diese Funktion reparieren oder ausbauen (bzw. in der Hilfe unkommentiert lassen oder als inoffizielle Funktion ansehen) - immer noch viel besser als ein zusätzlicher Fehler!
4. Entommen aus Beispiel 7_1 des PB-Tutorium (bei PureBasic.de)
Code: Alles auswählen
; 1. Inizierung
InitSprite()
InitKeyboard()
OpenScreen(640,480,16,"Beispiel 7_1")
Global BallX.w
Global BallY.w
Global SchlaegerX.w
Global SchlaegerY.w
Global BewegX.w
Global BewegY.w
BallX = 319
BallY = 239
BewegX = -1 ; warum lässt sich hier nicht +1 einsetzen?
BewegY = -1 ; warum lässt sich auch hier nicht +1 einsetzen?
SchlaegerX = 639 - 10
SchlaegerY = 239 - (30 / 2)
....
5. Überprüfung der Eingabe
Überprüfen, dass nur Zahlen eingeben worden sind, funzt net! Es dürften nur Zahlen 0 bis 9 (einzeln) eingegeben werden! Zusatzfrage: Wie macht man, das nur diese Zahlen in beliebiger Reihenfolge (einschließlich Punkt und Minus-Zeichen) eingegeben werden?
Mein Code:
Code: Alles auswählen
For a.b = 0 to 9 ; ich dachte
Next
Repeat
PrintN("Zahl 1 eingeben: ")
Zahl1.s = Input()
Until Val(Zahl1) = a.b
Next
Danke!