The only way to output text with word wrap to to create a function to do so. Here is the type I created to do word wrapping. Sorry, but I have no time to document it, but it is simple enough so hopefully you can grasp how to use it.
Also, it has not been optimized, so it might be a little slow.
Also, it has not been optimized, so it might be a little slow.
Type SString Field word_list:TList = New TList Field datastring:String Field x:Int Field y:Int Field width:Int Method Print(in_string:String, in_x:Int, in_y:Int, in_width:Int = 600) datastring = in_string.trim() x = in_x y = in_y width = in_width wrap() End Method Method wrap() Local current_word:String Local x:Int word_list = New TList For x = 0 To (datastring.length - 1) If datastring[x] = 32 ListAddLast(word_list, current_word) current_word = "" ElseIf datastring[x] = 13 ListAddLast(word_list, current_word) current_word = "" ListAddLast(word_list, "[br]") Else current_word = current_word + Chr$(datastring[x]) EndIf Next ListAddLast(word_list, current_word) End Method Method draw() Local current_word:String Local current_line:String Local current_y:Int = y Local lineheight:Int = TextHeight("THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG") + (TextHeight("THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG") / 4) For current_word = EachIn word_list If current_word = "[br]" DrawText(current_line, x, current_y) current_y = current_y + lineheight current_line = "" ElseIf ( TextWidth(current_line) + TextWidth(" ") + TextWidth(current_word) ) > width DrawText(current_line, x, current_y) current_y = current_y + lineheight current_line = current_word Else If current_line <> "" current_line = current_line + " " + current_word Else current_line = current_word EndIf EndIf Next DrawText(current_line, x, current_y) End Method End Type