Here you are...
Inkey with true type and WWRap and NO cursor

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:
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