Eingabefeld wie get_string ohne pop-up

  • Eingabefeld wie get_string ohne pop-up

    Hallo,
    kann man mit GameMaker ein Eingabefeld ohne Pop-up machen das wie bei get_string ist?
    (Nicht keyboard_string, weil man da nicht diesen blinkenden Strich steuern kann, welcher anzeigt wo man gerade schreibt)
    mfg,
    maxda

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von maxda ()

  • Dann kann man aber, wenn man was geschrieben hat, nicht mehr vorne was ändern!
    Edit: Zu dem vo Copyboy: Mir ist noch was Aufgefallen, was mich stört: Es ist nicht wirklich so dass du dann da schreiben kannst wo der Strich ist, denn du kannst den Strich nach vorne steuern, aber wenn du dann schreibst, erscheint das geschriebene hinten!!!!! X(

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von maxda ()

  • Also ich mache es wie folgt:

    In deinem Controller Create Event:

    GML-Quellcode

    1. blink=""
    2. blinkalarm=room_speed*0.5


    Im Alarm Event deines Controllers:

    GML-Quellcode

    1. if blink="" {blink="|" alarm[0]=blinkalarm exit}else {blink="" alarm[0]=blinkalarm}



    Beim Anklicken sämtlicher Eingabefelder (optional):

    GML-Quellcode

    1. login_controller.alarm[0]=login_controller.blinkalarm



    Im Draw Event sämtlicher Eingabefelder:

    GML-Quellcode

    1. if selected=true draw_text(x,y,deinevariable+string(controller.blink))





    Hoffe ihr konntet was damit anfangen :D. Klappt bei mir wunderbar^^.
  • Danke für deine schnelle Antwort lordwanzed :D
    Ich habe aber leider immernoch nicht alles verstanden. z.B. was "Beim Anklicken sämtlicher Eingabefelder " bedeuten soll? (Ich habe ins left Button Event vom controller den Code geschrieben)

    Um mal zu erklären, was genau ich vor habe:

    Ich möchte mehrere Felder haben, in die man zahlen(aber auch Buchstaben) eintragen kann. Mit Buttons die daneben sind soll man diese "Verrechen "können.



    * = Hier kann man eine Zahl eingeben.
    ²und ³ werden Verrechnet, sobald man auf den Button "Rechnen " klickt.

    sorry aber ich konnte es nicht besser darstellen

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von franky180 ()

  • Also.. entweder du versuchst dies weiterhin selbst zu lösen oder du wartest auf Copyboys Exemplar (keine Ahnung wie gut er alte Dateien sichert :D ). Oder du benutzt ein anderes System wie dieses hier:
    gmc.yoyogames.com/index.php?showtopic=144054
    Es ermöglicht auch das Markieren und Kopieren von Texten und diverse Tastenkürzel -->-beinahe wie ein Feld von Windows selbst.

    Hab auch eine verbesserte Variante draus gemacht die unteranderem mehrere Textfelder in der selben Instanz ermöglicht sowie einige Bugs behoben (Markierung brach sofort beim Verlassen des Feldes ab) und auch die Farben sowie transparenz anpassbar gemacht. Datei befindet sich im Anhang.

    Credits für meine Änderungen musst du nicht geben, höchstens für den ersten Entwickler davon.
    Auch wenn der nach 7 Jahren wohl kaum dies sehen wird..


    Sorry dass ich schon wieder praktsich fertigen Code poste (was nicht so emfohlen wird), aber genau für sowas wurden solche Projekte doch erstellt, oder?


    EDIT: wofür willst du nen Taschenrechner programmieren?
    Dateien
    • texfield.zip

      (11,14 kB, 97 mal heruntergeladen, zuletzt: )

    Willst du auf diese Drachen und -eier klicken?
    Sie werden sich freuen ;)

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von DragonGamer ()

  • franky180 schrieb:

    Ich habe aber leider immernoch nicht alles verstanden. z.B. was "Beim Anklicken sämtlicher Eingabefelder " bedeuten soll? (Ich habe ins left Button Event vom controller den Code geschrieben)
    Genau das meinte ich damit^^. Hast du es schon hinbekommen, dass du dort Zahlen/Buchstaben eintragen kannst, die angezeigt werden und abgespeichert werden in einer Variable?
    Danach müsstest du im Left Mouse Event des Verrechnen-Buttons nur noch eintragen:

    GML-Quellcode

    1. ergebnis=o_eingabefeld1.value + o_eingabefeld2.value


    Das geht dann auch mit anderen Rechenzeichen. Die Variable ergebnis (oder wie du sie nennst) müsstest du dann noch drawen lassen.
  • Danke
    DragonGamer es geht genau das meinte Ich :thumbsup:

    Das einzige was nicht geht ist das mit dem Rechnen ;(

    @lordvanzed irgendwie geht es immer noch nicht :(

    Ich habe jetzt 2 Buttons:
    controller
    button

    im controller habe ich:
    ein Create Event (mit deinem Code)
    ein Alarm0 Event mit

    GML-Quellcode

    1. if blink="" {blink="|" alarm[0]=blinkalarm exit}else {blink="" alarm[0]=blinkalarm
    }
    ein Left Button

    GML-Quellcode

    1. login_controller.alarm[0]=login_controller.blinkalarm


    und ein Draw Event

    GML-Quellcode

    1. if selected=true draw_text(x,y,deinevariable+string(controller.blink))


    //////////////////////////////////////////////////////////////////////////
    im Object Button habe ich nur ein left button

    GML-Quellcode

    1. ergebnis=o_eingabefeld1.value + o_eingabefeld2.value



    was genau ist falsch?

    Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von franky180 ()

  • Ich hab dir mal schnell ein Beispiel zusammengebastelt :D.
    Zurzeit kann man damit addieren. Wenn du dir die einzelnen Objekte näher ansiehst, dann müsstest du aber auch darauf kommen, wie man damit einen Taschenrechner machen kann. Den Controller musst du eigentlich nicht als "=" verwenden, so wie ich es gemacht habe. Wollte nur Objekte sparen^^.
    Dateien
    • beispiel.rar

      (10,57 kB, 55 mal heruntergeladen, zuletzt: )
  • Es geht ;D


    Volgender Code geht nicht

    GML-Quellcode

    1. if keyboard_check_pressed(vk_left) {select-=1 if select<1 select=2}if keyboard_check_pressed(vk_right) {select+=1 if select>2 select=1}

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von franky180 ()

  • franky180 schrieb:

    at position 53: Wrong type of arguments to +.
    Das heißt eigentlich, dass er zB versucht einen String mit einem Real zu addieren. Du hast bestimmt vergessen im Step event des Controllers alles auf das 3. Objekt zu erweitern :).

    Edit:
    Ich meine, diese Stelle fehlt:

    GML-Quellcode

    1. if select=3{value[3]=keyboard_string if string_length(value[3])>9 {keyboard_key_press(vk_backspace)}}
  • Benutzer online 1

    1 Besucher