Input3dEvent() Backspace

Fragen zu Grafik- & Soundproblemen und zur Spieleprogrammierung haben hier ihren Platz.
Benutzeravatar
kob
Beiträge: 116
Registriert: 01.01.2008 02:02
Computerausstattung: 2x 2.4 GHz Amd Cpu | Geforce N9600GT OC |2.5GB Ram |Windows 7 Ultimate
Wohnort: Fulda

Input3dEvent() Backspace

Beitrag von kob »

Hallo
Ich mache greade sachen mit der 3D Gui und da ist mir aufgefallen das
man in einem String gadget garnicht den text löschen kann.
Habe schon folgendes versucht :

Code: Alles auswählen

If KeyboardPushed(#PB_Key_Back)
  InputEvent3D(MouseX(), MouseY(), MouseButton(#PB_MouseButton_Left),Chr(8))
Else
  InputEvent3D(MouseX(), MouseY(), MouseButton(#PB_MouseButton_Left),KeyboardInkey())
EndIf
das geht aber auch nicht , selbst wenn ich auch in der else das KeyboardInkey() gegen Chr(8) astausche tut sich nix. Habe auch schon andere 'zeichen' ausprobiert , geht auch nicht. Weis jemand wie ich da mache das sich zeichen löschen lassen ?
Wenn sie weich werden bringt Pandora sie um und scheisst sie aus bevor sie irgend etwas merken.
Benutzeravatar
kob
Beiträge: 116
Registriert: 01.01.2008 02:02
Computerausstattung: 2x 2.4 GHz Amd Cpu | Geforce N9600GT OC |2.5GB Ram |Windows 7 Ultimate
Wohnort: Fulda

Re: Input3dEvent() Backspace

Beitrag von kob »

Könnte sich mal jemand melden der nur ein blassen hauch hat woran das liegen könnte ?
währe echt nett
Wenn sie weich werden bringt Pandora sie um und scheisst sie aus bevor sie irgend etwas merken.
Benutzeravatar
PMV
Beiträge: 2765
Registriert: 29.08.2004 13:59
Wohnort: Baden-Württemberg

Re: Input3dEvent() Backspace

Beitrag von PMV »

http://www.purebasic.fr/english/viewtop ... 16&t=43917

Fals du kein Englisch kannst, Google-Translation :D
Sorry, aktuell keine Zeit und interesse, mich näher mit dem Problem zu befassen.
Bis ich so weit bin, gibs hoffentlich schon ne bessere integration von OGRE3D in PB.
*träum* 8)

MFG PMV
alte Projekte:
TSE, CWL, Chatsystem, GameMaker, AI-Game DLL, Fileparser, usw. -.-
Benutzeravatar
kob
Beiträge: 116
Registriert: 01.01.2008 02:02
Computerausstattung: 2x 2.4 GHz Amd Cpu | Geforce N9600GT OC |2.5GB Ram |Windows 7 Ultimate
Wohnort: Fulda

Re: Input3dEvent() Backspace

Beitrag von kob »

danke das endlich einer was geschrieben hat THX :allright:

problem ist halt das man den scancode in ein string umwandeln muss
und das gestaltet sich doch etwas schwierig ^^ "[BS]" (kann Alt+08) nicht hier verwenden
geht nicht und das ist ja auch kein scan code oder ?
Wenn sie weich werden bringt Pandora sie um und scheisst sie aus bevor sie irgend etwas merken.
Benutzeravatar
#NULL
Beiträge: 2237
Registriert: 20.04.2006 09:50

Re: Input3dEvent() Backspace

Beitrag von #NULL »

du könntest den text bei entsprechendem tastendruck doch direkt modifizieren (get/setText..), also z.b. bei backspace das letzte zeichen entfernen. das problem ist nur das du die aktuelle cursorposition nicht kennst. du könntest aber mit InputEvent3d() eine art tag einfügen und dann wieder auslesen an welcher position es eingefügt wurde, dann hast du auch die nötige cursor position. fragt sich nur ob dieser aufwand lohnt.

<edit>
hab's gerade probiert. funktioniert aber auch nicht so einfach. wenn man den modifizierten text einsetzt, also den ganzen gadgettext ersetzt, dann wird der cursor damit ans textende gesetzt und die vorherige position geht verloren :cry: . mam müsste also auch noch den cursor wieder zurücksetzen. geht wahrscheinlich nur mit einem simulierten mausclick (cursortasten gehen ja auch nicht) und da wirds dann langsam albern.
my pb stuff..
Bild..jedenfalls war das mal so.
Benutzeravatar
kob
Beiträge: 116
Registriert: 01.01.2008 02:02
Computerausstattung: 2x 2.4 GHz Amd Cpu | Geforce N9600GT OC |2.5GB Ram |Windows 7 Ultimate
Wohnort: Fulda

Re: Input3dEvent() Backspace

Beitrag von kob »

Wird auserdem ziemlich doof wenn man sehr viele gadgets hat die nicht fortlaufend nummeriert sind.
kennt vieleicht einer von euch net funktionsfähige und gute GUI die man als alternative nehmen könte ?
Wenn sie weich werden bringt Pandora sie um und scheisst sie aus bevor sie irgend etwas merken.
Benutzeravatar
PMV
Beiträge: 2765
Registriert: 29.08.2004 13:59
Wohnort: Baden-Württemberg

Re: Input3dEvent() Backspace

Beitrag von PMV »

Es existieren einige neben CEGUI, sogar bereits mit OGRE3D, doch mal
davon abgesehen, das ich CEGUI allen anderen mir bekannten bevorzuge,
wirds wohl kaum möglich sein, ohne einen kompletten OGRE3D-Wrapper
diese zu verwenden. (was im übrigen auch für CEGUI gilt)

So lange es keine bessere implementierung von OGRE3D gibt, gibt es nur
die Alternative: eine andere 3D-Engine. Viel Auswahl bleibt da auch nicht,
wenn man nicht selber nen Wrapper schreiben will/ kann. Und in dem Fall
wäre OGRE3D mit CEGUI dann doch wieder eine Wahl. :|

MFG PMV
alte Projekte:
TSE, CWL, Chatsystem, GameMaker, AI-Game DLL, Fileparser, usw. -.-
Benutzeravatar
kob
Beiträge: 116
Registriert: 01.01.2008 02:02
Computerausstattung: 2x 2.4 GHz Amd Cpu | Geforce N9600GT OC |2.5GB Ram |Windows 7 Ultimate
Wohnort: Fulda

Re: Input3dEvent() Backspace

Beitrag von kob »

mhh schade :cry:

ich habe ein weg gefunden geschriebenen text rückgängig zu machen :
man muss ihn mit der maus makieren und was anderes schreiben ^^
jetzt fält mir aber schon wieder der nächste bug auf :
wenn ich auf das hintergrundfenster klicke verschwinden alle buttons :freak:
war ja klar das sowas nochmal kommt /:->

gibt's da eine bekante lösung
wenn es nötig ist poste ich mal das
gesamte projekt ^^
Wenn sie weich werden bringt Pandora sie um und scheisst sie aus bevor sie irgend etwas merken.
Benutzeravatar
#NULL
Beiträge: 2237
Registriert: 20.04.2006 09:50

Re: Input3dEvent() Backspace

Beitrag von #NULL »

kob hat geschrieben:wenn ich auf das hintergrundfenster klicke verschwinden alle buttons
ich hab keine erfahrung mit cegui, aber das klingt eher danach, als hättest du die buttons nicht als childs des window erstellt. wenn du das fenster weg bewegst, kannst du die buttons dann sehen?

noch ne idee zum stringgadget: vielleicht reicht es dir den cursor immer nur am text ende zu haben (also ans ende setzen bei jedem ändern des textes), dann hast du nicht mehr das problem mit der cursor position und kannst zumindest backspace benutzen. sieht nur unschön aus, weil das setzten und markieren mit der maus wirst du wohl nicht los werden (du bekommst in den fällen leider auch kein event_change oder _focus).
my pb stuff..
Bild..jedenfalls war das mal so.
Benutzeravatar
PMV
Beiträge: 2765
Registriert: 29.08.2004 13:59
Wohnort: Baden-Württemberg

Re: Input3dEvent() Backspace

Beitrag von PMV »

Also bei mir is bis jetzt auch nix verschwunden, wenn ich nen Fenster verschoben hab oder darein geklickt hab.

MFG PMV
alte Projekte:
TSE, CWL, Chatsystem, GameMaker, AI-Game DLL, Fileparser, usw. -.-
Antworten