Да, вы правы на месте.Тем не менее, я бы порекомендовал вам перейти на Delphi 2009 или более позднюю версию, в которой VCL имеет полную поддержку Unicode и все намного проще.
В любом случае, вы можете сделать
procedure TMyControl.Paint;
var
S: WideString;
r: TRect;
begin
inherited;
r := ClientRect;
S := 'This is the integral sign: '#$222b;
DrawTextW(Canvas.Handle, PWideChar(S), length(S), r, DT_SINGLELINE or
DT_CENTER or DT_VCENTER or DT_END_ELLIPSIS);
end;
в старых версияхDelphi (я думаю. Код компилируется в Delphi 7 на моей виртуальной машине с Windows 95, но я не вижу текста. Это потому, что Windows 95 слишком старая, я думаю.)
Обновление
Если вы хотите поддерживать очень старые операционные системы, такие как Windows 95 и Windows 98, вам нужно использовать TextOutW
вместо DrawTextW
, поскольку последняя не реализована (источник).TextOut
менее мощный, чем DrawText
, поэтому вам нужно вычислить позицию вручную, если вы хотите, например, центрировать текст внутри прямоугольника.
procedure TMyControl.Paint;
var
S: WideString;
begin
inherited;
S := 'This is the integral sign: '#$222b;
TextOutW(Canvas.Handle, 0, 0, PWideChar(S), length(S));
end;