So, ich zeige euch mal meine Lösung für meinen Zeilenumbruch. Vielleicht habt ihr einen bessere Lösung bwz. Verbesserungen. Weiß nicht, wie gut ich meinen Code programmiert habe wink

So, i show you now my solution for my wraptext. Maybe you have a better solution or improvements. I don't know, how good i progged my code wink sorry, that i made no english comments

Code:
#include <acknex.h>
#include <default.c>

STRING* strTest1 = "Hinz und Kunz gingen durch die Stadt. Sie bemerkten nicht, dass es schon abend wurde und wie dunkel es draußen schon war.";
STRING* strTest2 = "i am a short one";
STRING* strTest3 = "so, die Geschichte geht nun weiter. Ich weiß auch nicht, was der Text vorhin sollte? Egal, wo sind wir stehen geblieben?";
STRING* s = "ABC";

FONT* arial_font = "Arial#20";

TEXT* txtOut= {
	pos_x = 20; pos_y = 20;
	font = arial_font;
	strings = 10;
	string(strTest1,strTest2,s,strTest3);
	size_x = 450;
	flags = SHOW;
}

//only for debugging
PANEL* panTest= {
	pos_x = 20; pos_y = 300;
	
	digits(0,0,"Länge: %.f","Arial#16",1,laenge);
	digits(0,20,"Zeichen: %.f","Arial#16",1,zeichen);
//	digits(0,40,"Rückgabe: %.f","Arial#16",1,rueckgabewert);	
	flags = SHOW;
}

var laenge;
var zeichen;
//var rueckgabewert;

function wrapString(STRING* _string) {	
	STRING* strTemp = " ";
	STRING* strOrginal = " ";
	var position; 	        //Speichert die Position des gefundenen Leerzeichens
	var abtrennung = 400;	//Nach wievielen Pixeln soll der Text umgebrochen werden
	
	str_cpy(strOrginal,_string);    //Speichert den Text um ihn im orginal zu erhalten

	zeichen = str_len(_string);	//Liefert die Anzahl der Zeichen im string
	
	var i;
	for(i = 1; i < zeichen; i++) {
		str_cpy(strTemp,strOrginal);                //Kopiert den Orginaltext in einen temporären String
		str_trunc(strTemp,zeichen-i);               //und kürzt diesen temp. String um die Anzahl der Zeichen - i.
		laenge = str_width(strTemp,arial_font);     //dieser gekürzte String wird dann auf seine Länge an Pixeln überprüft
		if(laenge >= abtrennung) {                  //wenn die Länge (in Pixel) des Strings zu lange ist
			position = str_chr(_string,-i,' '); //gehe von der aktuellen Position des Zeichens solange zurück, bis ein Leerzeichen gefunden wird
			str_setchr(_string,position,'\n');  //und ersetze das Leerzeichen mit einem Zeilenumbruch ('\n')
			abtrennung += 400;                  //dann erhöhe die Abtrennung um den gleichen Abstand für die nächste "Überlänge"
		}
	}
}

//only for testing
function changeText() {
	str_cpy(strTest2,"jetzt is er neu");
}

function main() {
	
	level_load(NULL);
	wait(3);
	
//	laenge = str_width(strTest1,arial_font);
//	zeichen = str_len(strTest1);

	wrapString(strTest1);
	wrapString(strTest3);
	
	on_p = changeText;
	//on_o = wrapString;
}



my webside : www.ascalon.jimdo.de