Graphics 800,600,1
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
Global t:SString = New SSTRING
Global LongTextmsg$="Der neueste Auftrag an die drei Detektive hört sich recht harmlos an: sie sollen einen entflogenen Papagei suchen. Doch kaum beginnen sie mit ihren Nachforschungen, da scheinen sich plötzlich noch einige andere Leute sehr für diesen Papagei zu interessieren.Vielleicht deshalb, weil er lateinische Sprüche zitieren kann? Aber bald geht es nicht mehr nur um einen, sondern um sieben Papageien - und alle sieben führen höchst seltsame Reden. Ob da nicht eine geheime Botschaft hintersteckt? Jedenfalls sind auch ein jähzorniger Kunsthändler und ein berüchtigter Meisterdieb hinter den Vögeln her. Die drei ??? müssen sich ganz schön die hellen Köpfe zerbrechen, ehe sie auch diesen abenteuerlichen Fall aufklären und eine wohlverdiente Belohnung einheimsen..."
SetColor 255,255,255
DrawText "Wordwarp example: ",20,20
T.Print(LongTextmsg$,20,60,300)
T.Draw()
Flip
WaitKey
End
Here u go!