Вниз
Скачать: 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.01 c
1-14488
skiph
2002-11-26 06:44
2002.12.05
SetLength


1-14628
Kurt
2002-11-23 18:28
2002.12.05
Не подскажите как сделать чтоб в GroupBox-e фонт Caption-а сделат


4-14864
dimod
2002-10-21 12:49
2002.12.05
WindowProc - обработка сообщений окна


1-14637
UserL
2002-11-25 11:30
2002.12.05
TStack


1-14596
aterm
2002-11-27 14:55
2002.12.05
Help!




   Наверх