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);
 
Смотрите также
 
 
 Нет комментариев. 
  
 
Оставить комментарий:
 |   
 |