procedure TForm1.DrawText;
var
i,x,y:Integer;
begin
x:=0; y:=0;
for i:=1 to obj.Count-1 do begin
if tCharItem(obj.items[i]).Char = #10 then
y:=y+Paintbox1.Canvas.TextHeight(tCharItem(obj.items[i]).Char)
else
Paintbox1.Canvas.TextOut(x,y,tCharItem(obj.items[i]).Char);
x:=x+Paintbox1.Canvas.TextWidth(tCharItem(obj.items[i]).Char);
end;
end;
und egel wie ich es schreibe:
#13#10
oder
#10#13
es wird einfach nicht gemacht !
ich möchte gerne prüfen ob die forschleife das zeieln ände erreicht hat oder nicht !
pluto hat geschrieben: ich möchte gerne prüfen ob die forschleife das zeieln ände erreicht hat oder nicht !
Auf #10 prüfen müsste eigentlich schon gehen.
Ich weiss allerdings nicht was Dein tCharItem(obj.items) tut oder wie die Daten da reinkommen. Ich tippe mal drauf dass die LF Zeichen gar nicht in den Chars enthalten sind. Ausserdem verstehe ich nicht, weshalb du bei der Liste bei 1 beginnst?
Nochmal: Stelle zunächst sicher, dass
deine Liste (CharItem(obj.items).Char) überhaupt LF (#10) Zeichen enthält. Zur Not gibst Du mal mit write(..) alle Zeichen auf der Konsole aus.
pluto hat geschrieben:ich habe mit ord raußgefunden das 0 der zeielnumbruch ist !
Das ist natürlich nicht das Zeilenumbruchzeichen sondern #0.
Deshalb wäre es auch wichtiger gewesen zu erfahren wie die Chars in die Liste kommen, dort liegt nämlich der Hund begraben.