Содержание материала

У чисел с плавающей точкой также есть особенный тип данных TDateTime. Его надо обрабатывать не так, как остальные числа с плавающей точкой, поскольку него в OLE есть отдельный тип данных OleDate.

 

Code:

   tkFloat:

     begin

       if (PropInfo^.PropType^ = System.TypeInfo(TDateTime)) or

          (PropInfo^.PropType^ = System.TypeInfo(TDate)) then

       begin

         // Помещаем значение свойства в промежуточную

         // переменную типа TDateTime

         DT := GetFloatProp(FOwner, PropInfo);

         Value := DT;

       end else

         Value := GetFloatProp(FOwner, PropInfo);

     end;

 

 

В случае свойства типа «набор» (Set), не имеющего аналогов в OLE будем возвращать строку с установленными значениями набора, перечисленными через запятую

 

Code:

   tkSet:

     begin

       // Получаем значение свойства (битовая маска)

       I := GetOrdProp(FOwner, PropInfo);

       // Получаем информацию RTTI

       Data := GetTypeData(PropInfo^.PropType^);

       TypeInfo := Data^.CompType^;

       // Формируем строку с набором значений

       S := '';

       if I <> 0 then begin

         for K := 0 to 31 do begin

           J := 1 shl K;

           if (J and I) = J then

             S := S + GetEnumName(TypeInfo, K) + ',';

         end;

         // Удаляем запятую в конце

         System.Delete(S, Length(S), 1);

       end;

       Value := S;

     end;

 

 

И, наконец, тип Variant не вызывает никаких сложностей.

 

Code:

   tkVariant:

     Value := GetVariantProp(FOwner, PropInfo);

else

   // Остальные типы не поддерживаются

   Result := DISP_E_MEMBERNOTFOUND;

end;

end;

 

Добавить комментарий

Не использовать не нормативную лексику.

Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.

ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!


Защитный код
Обновить