TypeInfo, функция
Синтаксис
function TypeInfo(Имя типа): Pointer;
Описание
Функция TypeInfo возвращает указатель на информацию о типе времени выполнения
для данного типа. Указатель фактически является указателем PTypeInfo на запись
TTypeInfo. Эти типы объявляются в модуле TypInfo.
Ошибки
Советы и приемы
Пример
// Преобразование множества в строковое представление,
//например '[fsBold,fsItalic]'.
function SetToString(Info: PTypeInfo; const Value): string;
var
I: Integer;
Data: PTypeData; // данные о типе множества
EnumInfo: PTypeInfo; // данные о базовом типе множества
EnumData: PTypeData; // данные о базовом типе множества
begin
if Info.Kind <> tkSet then
Result := ''
else
begin
Data := GetTypeData(Info);
EnumInfo := Data^.CompType^;
EnumData := GetTypeData(EnumInfo);
Assert(EnumInfo.Kind in [tkEnumeration,tkInteger]);
Result := '[';
for I := EnumData.MinValue to EnumData.MaxValue do
if I in TIntegerSet(Value) then
begin
// Элемент присутствует во множестве, поэтому добавляем его
// имя к строке.
if Length(Result) > 1 then Result := Result + ','; // Разделяем элементы множества
// запятыми.
Result := Result + GetEnumName(EnumInfo, I);
end;
Result := Result + ']';
end;
end;
...
S := SetToString(TypeInfo(TFontStyles).Control.Font.Style);
Смотрите также
Нет комментариев.
Оставить комментарий:
|
|