Here you are...

Inkey with true type and WWRap and NO cursor wink

I added a void. This void checks the inkey-string every frame and feeds string2. String2 is displayed, no cursor.
The trick is to "inkey" into a invisible string, copy that string and display it, done in check_inkey-void. You need this void because inkey blocks.
And using inchar in a while works, but then you cant (without extra work) edit the string like you can with this inkey example below.

So finally:
Code
STRING* name_str = "Write Here!"; // still your main string, but not displayed anymore
STRING* string2  = "";            // inkey string buffer to display ( copy of name_str / frame )


function input_name(); 

TEXT* name_txt = 
{
       pos_x = 320;
       pos_y = 70;
       layer = 11;
       font = "Calibri#52";   
       string (string2);          // display the buffer string
       flags = SHOW;
}
PANEL* input_pan = 
{
       bmap = "textbox.png";
       pos_x = 280;
       pos_y = 40;
       layer = 10;
       on_click = input_name;
       flags = SHOW ;
}
// ---------------------------------------------------------------------------------------------
// ---------------------------------------------------------------------------------------------
void check_inkey(){
	wait (1); // cause when called inkey is not active already (or while(!inkey_active)wait(1);)
	while (inkey_active){		
	   str_cpy (string2, name_str);	// copy inkey-string to display-string
           wait (1);
	}
}
// ---------------------------------------------------------------------------------------------
// ---------------------------------------------------------------------------------------------
function input_name()
{
       while (mouse_left) wait (1);
       var filehandle;
       
    
       str_cpy(name_str, "   "); 
       check_inkey();
       inkey(name_str); 
       
       while(key_enter)
       {
          wait(1);
       	   filehandle = file_open_write("save_log.txt"); 
           if (filehandle){ // only use the handle if it is valid
	      file_str_write(filehandle, name_str); 
	      file_close(filehandle);
          }
       }
	       
	       
	    
}

BMAP* pointer_tga = "fareORJ.tga";
function mouse_startup()
{  
	mouse_mode = 2;
	mouse_map = pointer_tga;
	while (1)
	{  
	   vec_set(mouse_pos, mouse_cursor);
	   wait(1);
	}
}

Also added check for a valid file handle, btw. Always check handles before using them, if you dont like crashes.

greets


Acknex umgibt uns...zwischen Dir, mir, dem Stein dort...
"Hey Griswold ... where u gonna put a tree that big ?"
1998 i married my loved wife ... Sheeva from Mortal Kombat, not Evil-Lyn as might have been expected
rayp.flags |= UNTOUCHABLE;