Вниз
Скачать: CL | DM;

Помогите вытащить символ   Найти похожие ветки 

← →
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 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.011 c
1-14594
РоманВитов
2002-11-26 22:06
2002.12.05
строки


6-14715
Hirara
2002-10-08 19:53
2002.12.05
Передача файлов


14-14738
Anatoly Podgoretsky
2002-11-14 00:56
2002.12.05
Именинники 14 ноября


1-14581
Sewix
2002-11-24 08:39
2002.12.05
Написание компонента


1-14511
MaXie
2002-11-26 12:02
2002.12.05
Как правильно закрыть Excel?




   Наверх