Как описать поле класса типа множества
Как описать поле класса типа множества, делаю так:
Возникает ошибка преобразования в тип вариант, тип вариант не поддерживает множества.
Как же тогда быть?
fsGlobalUnit.AddEnumSet('TGridOptions','goFixedVertLine, goFixedHorzLine, goVertLine, goHorzLine, goRangeSelect, goDrawFocusSelected, goRowSizing, goColSizing, goRowMoving, goColMoving, goEditing, goTabs, goRowSelect, goAlwaysShowEditor, goThumbTracking');
with fsGlobalUnit.AddClass(TDrawGrid,'TWinControl') do
begin
AddProperty('Options', 'TGridOptions', TDrawGrid__GetProp, TDrawGrid__SetProp);
end;
function TDrawGrid__GetProp(Instance: TObject; ClassType: TClass;
const PropName: String): Variant;
begin
if PropName = UpperCase('Options') then
Result := TDrawGrid(Instance).Options
end;
Возникает ошибка преобразования в тип вариант, тип вариант не поддерживает множества.
Как же тогда быть?
Комментарии
А на будущее очень рекомендую, перед тем как задать подобный вопрос по FS&RTTi смотреть исходники FS и FR. В них есть ответы на многие подобные вопросы (сам туда весьма часто заглядываю) да и доку по FS и FR (мануал разработчика) тоже весьма полезно почитать.
Посмотрел, извращение какое. Сам вначале об этом подумал, но не решился. Ну раз так делает разработчик...
TDrawGrid(Instance).Options:=IntToTGridOptions(Value);
возникает ошибка EVariantTypeCastError Could not convert Variant of Type (Array Variant) into type Integer