Вы ищете ExtTextOut
функция.
Образец:
procedure TForm4.FormPaint(Sender: TObject);
const
S = 'This is a sample text';
begin
ExtTextOut(Canvas.Handle, 10, 10, ETO_CLIPPED,
Rect(40, 10, 100, 100), PChar(S), length(S), nil)
end;
Но я думаю, что вы действительно хотите сделать, это нарисовать 'NOT-colored текст':
procedure DrawTextNOT(const hDC: HDC; const Font: TFont; const Text: string; const X, Y: integer);
begin
with TBitmap.Create do
try
Canvas.Font.Assign(Font);
with Canvas.TextExtent(Text) do
SetSize(cx, cy);
Canvas.Brush.Color := clBlack;
Canvas.FillRect(Rect(0, 0, Width, Height));
Canvas.Font.Color := clWhite;
Canvas.TextOut(0, 0, Text);
BitBlt(hDC, X, Y, Width, Height, Canvas.Handle, 0, 0, SRCINVERT);
finally
Free;
end;
end;
procedure TForm4.FormPaint(Sender: TObject);
const
S = 'This is a sample text';
var
ext: TSize;
begin
Canvas.Brush.Color := clBlack;
Canvas.FillRect(Rect(0, 0, Width div 2, Height));
Canvas.Brush.Color := clWhite;
Canvas.FillRect(Rect(Width div 2, 0, Width, Height));
ext := Canvas.TextExtent(S);
DrawTextNOT(Canvas.Handle, Canvas.Font, S, (Width - ext.cx) div 2,
(Height - ext.cy) div 2);
end;
![Screenshot](https://i.stack.imgur.com/ss0MN.png)
(источник: rejbrand.se)
person
Andreas Rejbrand
schedule
28.08.2011
TextOut
иDrawText
(DrawTextEx
). Они содержат больше возможностей, чем функции Delphi. Какую именно функцию вы ищете? Как выглядит ваш кодTCanvas
? Почему вы считаете, что вам нужно отказаться отTCanvas
? - person Andreas Rejbrand   schedule 28.08.2011