Форум: "Основная";
Текущий архив: 2002.12.05;
Скачать: [xml.tar.bz2];
ВнизПомогите вытащить символ Найти похожие ветки
← →
Daken (2002-11-26 07:15) [0]Вообщем есть буквы казахского алфавита которых нет в латинице
или кирилице. Но в стандартном Times Roman они присутствуют
(коды Unicod"а от 0492 до 04E9) Неподскажите как можно их
использовать хотя бы в лэйбле
← →
Alx2 (2002-11-26 08:52) [1]Использовать Функции прорисовки с UniCode (суффикс W)
В реализации TLabel сего нет. Там используется Ansi вариант.
procedure TCustomLabel.DoDrawText(var Rect: TRect; Flags: Longint);
var
Text: string;
begin
Text := GetLabelText;
if (Flags and DT_CALCRECT <> 0) and ((Text = "") or FShowAccelChar and
(Text[1] = "&") and (Text[2] = #0)) then Text := Text + " ";
if not FShowAccelChar then Flags := Flags or DT_NOPREFIX;
Flags := DrawTextBiDiModeFlags(Flags);
Canvas.Font := Font;
if not Enabled then
begin
OffsetRect(Rect, 1, 1);
Canvas.Font.Color := clBtnHighlight;
DrawText(Canvas.Handle, PChar(Text), Length(Text), Rect, Flags);
OffsetRect(Rect, -1, -1);
Canvas.Font.Color := clBtnShadow;
DrawText(Canvas.Handle, PChar(Text), Length(Text), Rect, Flags);
end
else
DrawText(Canvas.Handle, PChar(Text), Length(Text), Rect, Flags);
end;
где
function DrawText; external user32 name "DrawTextA"; // модуль Windows.
Несколько кривой путь к решению - заменить с помощью "разрешенных" приемов в отдельно взятом государстве
function DrawText; external user32 name "DrawTextW";
То есть написать умного и доброго наследника к TLabel с нужной спецификой. И работать с unicode. (WideString)
PS
Наверняка решение не единственно и не оптимально.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.12.05;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.013 c