Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Anonymous

unregistriert

1

28.08.2003, 21:02

tbGUIInput "BUG" ?

Hallo David,,,

es scheint so als hätte ich einen BUG in tbGUIInput gefunden.

[Erklärung]

Wenn ich mit dem nachfolgenden Code ein Eingabefeld erzeuge und dann im laufenden Programm die Zeichen lösche, geht es so lange gut bis das letzte Zeichen gelöscht wird, dann stürtzt das Programm ohne Fehlermeldung sofort ab.

Quellcode

1
m_pGUI->CreateInput(503, 4, tbVector2(200.0f, 200.0f), tbVector2(500.0f, 50.0f), "Test", FALSE, '*');

Versuche ich ein leeres Eingabefeld mit dem nachfolgendem Code

Quellcode

1
m_pGUI->CreateInput(503, 4, tbVector2(200.0f, 200.0f), tbVector2(500.0f, 50.0f), "", FALSE, '*');

zu erzeugen, stürtzt das Programm ebenfalls ohne Fehlermeldung ab, nachdem die Page auf der sich das Feld befindet aktiviert wird, z.B. durch klicken auf eine Schaltfläche die den Code :

Quellcode

1
2
3
4
case 150: // TEST Page aktiv setzen und zeigen
            pGUI->SetCurrentPage(4);
            ipActPage = 4;
            break;

enthält.

[Fehlerbehebung]

Ich habe das jetzt ersteinmal wie folgt behoben :
Die Datei tbGUIInput.cpp aus der Engine geöffnet und den folgenden Code :

Quellcode

1
2
3
4
5
6
7
8
9
case TB_KEY_BACK:
                 
                if(m_iCursor > 0)
                {
                    // Zeichen löschen
                    for(int i = m_iCursor - 1; i < (int)(strlen(m_acText)); i++) m_acText[i] = m_acText[i + 1];
                    m_iCursor--;
                }
                break;

durch diesen Code :

Quellcode

1
2
3
4
5
6
7
8
9
10
11
case TB_KEY_BACK:
                // 28.08.2003
                // BUG werden alle Zeichen gelöscht stürzt das Programm ab 
                // if(m_iCursor > 0) 
                if(m_iCursor > 1)
                {
                    // Zeichen löschen
                    for(int i = m_iCursor - 1; i < (int)(strlen(m_acText)); i++) m_acText[i] = m_acText[i + 1];
                    m_iCursor--;
                }
                break;

ersetzt. Die Engine neu erstellt, dann den obigen Code wie folgt abgeändert :

Quellcode

1
m_pGUI->CreateInput(503, 4, tbVector2(200.0f, 200.0f), tbVector2(500.0f, 50.0f), " ", FALSE, '*');

Jetzt kann das letzte Zeichen welches ein leerzeichen ist nicht mehr gelöscht werden.

2

28.08.2003, 22:07

Wie wärs mit der FAQ? Suchfunktion?
Das Problem gabs hier schon. ;)
ebah rutangiS reniem ni relheF 01 rebü hci ssad, etniem latkraF!

Anonymous

unregistriert

3

29.08.2003, 03:10

Siehste lukuku,,,

war doch gut so ! :huhu:

4

29.08.2003, 08:34

Was meinsten damit?
ebah rutangiS reniem ni relheF 01 rebü hci ssad, etniem latkraF!

Anonymous

unregistriert

5

29.08.2003, 13:14

So wie ich das schrieb, denn es ist doch einfacher hier die Message zu posten als wenn ich ich erst alles durchsuchen sollte wo es vielleicht schon ähnliches gibt. *g* So kommst du und sagst :

Zitat:
Wie wärs mit der FAQ? Suchfunktion?
Das Problem gabs hier schon.

Also habe ich dann dort geschaut, das ist gut.

6

29.08.2003, 17:01

Achso.
Naja dann bis zum 7. September
Ich fahr heute um 22 Uhr nach Franceeeee. JUHU!!!!
Tschüsschen an alle!!! :huhu: :huhu: :huhu:
ebah rutangiS reniem ni relheF 01 rebü hci ssad, etniem latkraF!

Anonymous

unregistriert

7

29.08.2003, 19:32

Jo lukuku,,, :huhu:

gehab Dich wohl, geniesse Deinen Urlaub. :jojo:
Ich wünsche Dir viel Spaß und komme ausgeruht wieder. 8)

;) ;p ;D

Werbeanzeige