Anstatt Textout probiere die Windows Routine
DrawText.
Du findest näheres in der Windows API Hilfe oder falls Du die Sources besitzt ein schönes Beispiel in der Unit StdCtrls.pas in der Prozedur procedure TCustomLabel.DoDrawText(var Rect: TRect; Flags: Longint).
Der Aufruf müsste dann wie folgt lauten:
Quelltext
1: 2:
| Flags:=DT_EXPANDTABS or DT_WORDBREAK; DrawText (Canvas.Handle, PChar (DeinText), Length(DeinText), Rect, Flags); |
Wenn Du mit den Flags spielst kannst Du auch z.B. die Ausrichtung steuern. Dazu mehr aber in der Windows SDK Hilfe zu DrawText.
Rect gibt den Bereich an, in dem Dein Text gezeichnet werden soll.
Falls Du die Ausmaße eines Textes ermitteln möchtest verwende zusätzlich das Flag
DT_CALCRECT. Damit wird nichts gezeichnet - aber die Ausmaße in der Struktur Rect (vom Typ TRect) gespeichert.
MfG
GPF