Habs rausgefunden:
Delphi-Quellcode:
i := 0;
s := TEXT;
w := (PageW * 10) - 200;
repeat
GetTextExtentExPoint(
dc, PChar(s), length(s), w, @cntChars,
nil, size);
TextOut(
dc, 100, -100 + -i * (Size.cy + 8), PChar(s), cntChars);
Delete(s, 1, cntChars);
Inc(i);
until length(s) < 1;
Hehe. Genau das gleiche habe ich auch gerade gefunden.
Jetzt müsste man das nur noch so hinbekommen, dass er nicht mitten im Wort umbricht.
Und Zeilenumbruche im Text (#13#10) berücksichtig werden.
Leerzeichen hat sich erledigt:
Delphi-Quellcode:
repeat
GetTextExtentExPoint(
dc, PChar(s), length(s), (PageW * 10) - BORDERLEFT - BORDERRIGHT, @cntChars,
nil, size);
while (s[cntChars] <> '
')
do
Dec(cntChars);
TextOut(
dc, BORDERLEFT, -BORDERTOP + -i * (Size.cy + 8), PChar(s), cntChars);
Delete(s, 1, cntChars);
Inc(i);
until cntChars < 1;
Nur wie mache ich das mit dem Zeilenumbruch?