@NIKROTOS
Начинающий программист.

Как приравнять переменную string к значению свойства?

код
text:=RichEdit1.SelAttributes.Style;
выводи ошибку:
[dcc32 Error] Unit4.pas(124): E2010 Incompatible types: 'string' and 'TFontStyles'
как исправить?
  • Вопрос задан
  • 302 просмотра
Решения вопроса 1
@n-fom
uses System.TypInfo;

type TEnumConverter = class
public
  class function EnumToInt<T>(const EnumValue: T): Integer;
  class function EnumToString<T>(EnumValue: T): string;
  class function GetAs<T>(pValor: String): T;
end;

implementation

class function TEnumConverter.EnumToInt<T>(const EnumValue: T): Integer;
begin
  Result := 0;
  Move(EnumValue, Result, sizeOf(EnumValue));
end;

class function TEnumConverter.EnumToString<T>(EnumValue: T): string;
begin
  Result := GetEnumName(TypeInfo(T), EnumToInt(EnumValue));
end;

class function TEnumConverter.GetAs<T>(pValor: String): T;
var
  Tipo: PTypeInfo;
  Temp: Integer;
  PTemp: Pointer;
begin
   Tipo := TypeInfo(T);
   Temp := GetEnumValue(Tipo, pValor);
   PTemp := @Temp;
   Result := T(PTemp^);
end;
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@AlexSku
не буду отвечать из-за модератора
Style это множество (set) перечислений (enum). Этот тип не совместим со string.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы