IPB
ЛогинПароль:

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

> String в TFontStyles
Unconnected
сообщение 24.05.2009 20:46
Сообщение #1


mea culpa
*****

Группа: Пользователи
Сообщений: 1 372
Пол: Мужской
Реальное имя: Николай

Репутация: -  24  +


Привет всем.
Вопрос такой, читаю из файла конфигурации параметры шрифта TRichEdit, итого параметры в строковых переменных. Параметры - шрифт, стиль шрифта, размер. Когда доходит до присваивания этих параметров РичЭдиту, то происходит несовпадение типов String и TFontStyles. Так вот, как можно "конвертировать" строку строкового типа, в которой будет [fsBold] или [fsBold,fsUnderline], например, в тип TFontStyles, чтобы можно было это присвоить свойству стиля текста RichEdit?


--------------------
"Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
volvo
сообщение 24.05.2009 21:10
Сообщение #2


Гость






RTTI в чистом виде:

Uses {..., } TypInfo;

procedure TForm1.Button1Click(Sender: TObject);
var
s, st: string;
ifs: TFontStyle;

ATypeInfo: PTypeInfo;
f: TFontStyles;

begin
s := '[fsBold,fsUnderline]'; // Это - твоя строка
ATypeInfo := TypeInfo(TFontStyle);

f := []; // Совсем забыл, это тоже надо, мало ли что...
for ifs := Low(TFontStyle) to High(TFontStyle) do begin
if pos(GetEnumName(ATypeInfo, ord(ifs)), s) > 0 then include(f, ifs);
end;
Memo1.Font.Style := f; // F содержит нужные стили. Для теста проверял на TMemo
end;
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 12.07.2025 3:52
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"