Поскольку вы не используете версию Delphi с поддержкой Юникода, вы ограничены рисованием владельца или набором символов «ANSI», как указал Дэвид. (Я предлагаю вам перейти на Delphi 2009+. Юникод - это лучшее, что когда-либо случалось с цифровым миром. С Юникодом вы получаете десятки тысяч символов (теоретически, на шрифт!) Вместо 127 или 255. Это включает в себя все виды языков, а также технические и математические символы и различные дингбаты.Есть даже бензольное кольцо: U + 232C БЕНЗОЛЬНОЕ КОЛЬЦО: ⌬)
Теперь давайте предположим, что обновление невозможно. Тогда на вашем месте я бы использовал для этой цели исторический «стандартный символ», а именно звездочку (*). Я очень рекомендую это в вашем случае.
Если вы действительно полагаетесь, хотите черный квадрат, то вы должны рисовать владельца. Вы можете сделать это так:
// Please don't do this -- see comments below
procedure TForm1.PageControl1DrawTab(Control: TCustomTabControl;
TabIndex: Integer; const Rect: TRect; Active: Boolean);
const
Padding = 8;
SqSize = 6;
var
capt: string;
r: TRect;
begin
capt := TTabControl(Control).Tabs[TabIndex];
r := Rect;
r.Left := r.Left + Padding;
DrawText(Control.Canvas.Handle, capt, length(capt), r, DT_SINGLELINE or DT_LEFT or DT_VCENTER or DT_END_ELLIPSIS);
r.Left := r.Right - Padding - SqSize;
r.Right := r.Left + SqSize;
r.Top := (r.Bottom - r.Top - SqSize) div 2;
r.Bottom := r.Top + SqSize;
FillRect(Control.Canvas.Handle, r, GetStockObject(BLACK_BRUSH));
end;
Обратите внимание, однако, что это отключит визуальные темы! Это будет выглядеть ужасно! Пожалуйста, не делайте этого!