Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.11.14;
Скачать: CL | DM;

Вниз

Использвание CharSet   Найти похожие ветки 

 
Мефодий   (2002-11-05 09:58) [0]

Каким образом можно в RunTime загрузить перечень CharSet в ListBox и потом выбирать из него и присваивать свойству Font.CharSet ? Читал в хелпе про GetCharSetValues, но не смог использовать.
Спасибо.


 
Skier ©   (2002-11-05 10:03) [1]

>Мефодий
посмотри реализацию редактора св-ва TFontCharsetProperty


 
Рыжик ©   (2002-11-05 11:59) [2]


> Читал в хелпе про GetCharSetValues, но не смог использовать

А там даже пример есть, между прочим!

procedure TForm1.AddCharacterSet(const S: string);
begin
ListBox1.Items.Add(S);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
GetCharsetValues(AddCharacterSet);
end;


 
Marcus   (2002-11-05 12:46) [3]

На самом деле в windows.pas описаны константы от ANSI_CHARSET до RUSSIAN_CHARSET. Собственно они же есть и в массиве FontCharsets в Graphics.pas и GetCharsetValues именно их и перебирает. Но поскольку он спрятан в implementation, можно его просто выдрать оттуда в свой юнит и засунуть в ListBox в цикле.


 
Мефодий   (2002-11-05 14:57) [4]

С помощью кода от <Рыжик ©> благополучно загрузил CharSet в ListBox. Но как же сделать обратное ?
Label1.Font.Charset := ListBox1.Items[ListBox1.ItemIndex],
естественно, не срабатывает, так как тут разные типы: TFontCharset и String. Брать в качестве значения константы ItemIndex тоже нельзя так как в Graphics.pas они идут не подряд (0,1,2,77,128...).
Пришлось создать свой массив констант (используя данные из Graphics.pas)
const aConst: array[0..17] of integer = (0,1,2,77,128,129,130,134,136,161,162,177,178,186,204,222,238,255);
и изменить предыдущий код на
Label1.Font.Charset := aConst[ListBox1.ItemIndex];

В общем, нормально работает, но как то некрасиво все это. Может есть код попроще ?


 
Skier ©   (2002-11-05 15:02) [5]

>Мефодий
см. CharsetToIdent(...) и IdentToCharset(...)


 
Мефодий   (2002-11-05 16:48) [6]

Все сработало !
Спасибо всем.



Страницы: 1 вся ветка

Текущий архив: 2002.11.14;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.018 c
14-46087
Sapersky_
2002-10-26 00:18
2002.11.14
Вопрос по Си... Только ногами не бейте, ладно? :)


1-45863
mikl2002
2002-11-05 15:05
2002.11.14
Путь и Dll


3-45735
ilya1974
2002-10-22 16:48
2002.11.14
Представление данных


3-45695
DDS
2002-10-28 10:37
2002.11.14
Как програмно установить BDE


6-46030
BoxTer
2002-09-18 20:41
2002.11.14
Список компов в сетке