Auswahl von Textfeld neues Problem

  • GM 8

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Auswahl von Textfeld neues Problem

    Es Ist mir zwar unangenehm zu fragen aber alleine schaffe ich es wohl noch nicht. Ich habe Text Felder, wo man etwas eingeben kann, die man mit der linken Maustaste auswählt, nur leider erkennt das Programm mein gezeichnetes Feld nicht als obj, kann mir wer helfen bin ratlos.
    Hier der Code
    Craete: selected=false;
    Mouse left: if selected=false
    {
    selected=true;
    }
    else
    {
    selected=false;
    }
    Mouse Right: selected=false;
    Draw: draw_set_color(c_white)
    draw_rectangle(x-5,y-5,x+210,y+210,false)



    if selected=true
    {
    draw_set_color(c_black)
    draw_text_ext(x,y,keyboard_string,-1,200)
    }

    if selected=false
    {
    }
    Enter: keyboard_string+='#'

    Freue mich wie immer über jeden noch so kleinen Tipp

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Bin Doch Neu ()

  • Zuerst einmal, GML Code bitte in die dafür vorgesehen Felder tun (in der Toolbar steht GML).

    Das Problem ist das die Mouse Events nur auf die Mask achten und nicht auf das was gezeichnet wird, du musst selber prüfen ob die Maus im Feld ist:

    Mouse Left Pressed Global:

    GML-Quellcode

    1. selected=mouse_x>x-5 && mouse_x<x+210 && mouse_y>y-5 && mouse_y<y+210;


    Das sorgt dafür das wenn man auf das Feld klickt es markiert ist und wenn man wo anders hinklickt es nicht mehr markiert ist.
    wupto.net/ Nicht meine Seite!
    We love Koalas.

    GM-D-Spam-o-Meter: 32%
  • Setze das mal im den global_Mouse_left_release rein:

    GML-Quellcode

    1. selected = !selected


    und das Mouse_left entfernst du

    Edit: und das von Heinrik zur Auswahl des Textfeldes, als if-Abfrage ohne "selected=",
    sorry zu spät gelesen das es gedrawt wird.
  • ja traurig aber war ich hab es doch noch nicht geschafft und da es immer noch das selbe Thema ist frage ich hier noch mal. Nun da mein Spiel sehr viele Textfelder hat habe ich mich mit den Code in eine Sackgasse gebracht. Wähle ich ein Zweites Feld aus springt der Text nur und wähle ich keinen aus wird der Text natürlich nicht gezeichnet.
    Da ich mir nicht sicher war habe ich versucht es so zu machen

    GML-Quellcode

    1. //Creat
    2. selected2=false;
    3. var S2;
    4. S2=keyboard_string;
    5. //Draw
    6. draw_set_color(c_white)
    7. draw_rectangle(x-5,y-5,x+210,y+210,false)
    8. draw_set_color(c_black)
    9. draw_text_ext(x,y,string (S2),-1,200)
    Alles anzeigen

    so habe ich gehoft das der Text wenn nicht ausgwählt ist dennoch gezeichnet wird
    hilfe wer echt toll ?(

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von Bin Doch Neu ()

  • Hallo leider bin ich mit dem Problem immer noch nicht weiter gekommen.

    Ich möchte eigentlich nur Textfelder haben die man anklickt so das man dann in das Feld schreiben und die eingeben werte sollen gespeichert werden in Variablen, nur habe ich keine Ahnung mehr wie. Kann mir wer von den Profis einen Tipp geben. Das wer sehr lieb.
  • vlt hilft dir das ja weiter ich balstel seit 2 tagen auch an einem kleinem textfeld, allerdings nur für die eingabe von zahlen, aber das solltest du evl leicht auf deins anpassen können..

    Create event
    Spoiler anzeigen

    GML-Quellcode

    1. //Definieren der textfeldvariablen--------------------------------------------------
    2. str = "0" //string der eingegeben wird
    3. str_var = 0 //str wird im draw evend als real zu str_var umgewandelt
    4. chk = 0 //überprüft ob die bedingungen des Eingabefeldes stimmen
    5. maker = 0 //blinkendes Courserzeichen
    6. count = 0 //sorgt für die blinkdauer
    7. c = 0 //numer der tasteningaben
    8. activ = 0 //gibt an ob textfeld ausgewählt ist oder nicht
    9. c_count = 0 //zählt die anzahl der "." in einem string
    10. pos = 0 //sorgt für die anzahl der nachkommastellen
    11. //----------------------------------------------------------------------------------
    Alles anzeigen

    step
    Spoiler anzeigen

    GML-Quellcode

    1. //eingabeüberprüfung----------------------------------------------------------------
    2. //übergabe von strings bei auswahl--------------------------------------------------
    3. if activ = 1 // auswählen
    4. {
    5. keyboard_string = str
    6. activ = 2
    7. }
    8. else if activ = 2 // wenn ausgewählt
    9. {
    10. if string_length(keyboard_string) > 9
    11. {
    12. keyboard_string = str
    13. }
    14. else str = keyboard_string
    15. }
    16. //----------------------------------------------------------------------------------
    17. //überprüfung des strings-----------------------------------------------------------
    18. //string darf nur zahlen oder . beinhalten ansonsten wird chk = false---------------
    19. chk = true;
    20. if (string_length(str) == 0)
    21. chk = false;
    22. else
    23. for (i = 0; i < string_length(str); i += 1)
    24. {
    25. c = ord(string_char_at(str,i+1));
    26. if (c < 48 or c > 57)
    27. if c != 46
    28. {
    29. chk = false;
    30. break;
    31. }
    32. c_count = string_count(".",str)
    33. if c_count > 1
    34. {
    35. chk = false;
    36. break;
    37. }
    38. }
    39. //----------------------------------------------------------------------------------
    40. //Auswahl des textfeldes------------------------------------------------------------
    41. if mouse_x > x and mouse_x < x + 90 and mouse_y > y and mouse_y < y + 20
    42. if mouse_check_button(mb_left)
    43. {
    44. maker = 1
    45. activ = 1
    46. }
    47. //-----------------------------------------------------------------------------------
    48. //blinken des coursers---------------------------------------------------------------
    49. if activ > 0
    50. if count = 12
    51. {
    52. if maker = 1
    53. {
    54. maker = 2
    55. }
    56. else if maker = 2
    57. {
    58. maker = 1
    59. }
    60. count = 0
    61. }
    62. else count += 1
    63. //----------------------------------------------------------------------------------
    Alles anzeigen

    Glob Left Pressed
    Spoiler anzeigen

    GML-Quellcode

    1. //variablen reset-------------------------------------------------------------------
    2. maker = 0
    3. activ = 0
    4. //----------------------------------------------------------------------------------


    Draw
    Spoiler anzeigen

    GML-Quellcode

    1. //rahmen zeichnen-------------------------------------------------------------------
    2. draw_set_color(make_color_rgb(213,208,161))
    3. draw_set_font(fo_standart)
    4. draw_roundrect(x,y,x+90,y+20,1)
    5. //hintergrundfarbe des textfeldes
    6. //farbe des texteldes
    7. if (activ = 0 and chk = 1) draw_set_color(c_dkgray) //feld ist nicht ausgewähl eingabe korrekt
    8. if (activ > 0 and chk = 1) draw_set_color(c_gray) //feld ist ausgewählt eingabe korrekt
    9. if (activ = 0 and chk = 0) draw_set_color(c_red) //feld ist nicht ausgewählt eingabe falsch
    10. if (activ > 0 and chk = 0) draw_set_color(c_red) //feld ist ausgewählt eingabe falsch
    11. draw_set_alpha(0.3)
    12. draw_roundrect(x,y,x+90,y+20,0)
    13. //----------------------------------------------------------------------------------
    14. //ausgabe des strings(inhalt des textfeldes-----------------------------------------
    15. draw_set_alpha(1)
    16. draw_set_color(make_color_rgb(213,208,161))
    17. draw_text(x+5,y+2,string(str))
    18. //----------------------------------------------------------------------------------
    19. //anzeigen des blinkenden makers----------------------------------------------------
    20. if maker > 1 draw_text(x+4+string_width(str),y,"|")
    21. //----------------------------------------------------------------------------------
    22. //Ausgabe des reals aus der eingabe, mit der bedingung das die eingabe korrekt ist--
    23. if chk = 1
    24. {
    25. pos = string_pos('.',str)
    26. str_var = real(str)
    27. if pos != 0 draw_text(x+5,y+29,string_format(str_var,0,string_length(str) - pos))
    28. if pos = 0 draw_text(x+5,y+29,string_format(str_var,0,0))
    29. }
    30. //----------------------------------------------------------------------------------
    Alles anzeigen


    wenn dus benutzt musst dus noch anpassen, aber ich denk mal das bekommst du hin:)
    Mein aktuelles Projekt: Twiggels Tower Defence :para: :shifty:
    Mittlerweile: Green and Grey