Поиск сообщества
Показаны результаты для тегов 'tcheckstyleobject'.
Найдено: 2 результата
-
Пытаюсь реализовать CheckBox с дополнительными визуальными представлениями, которые можно задавать в редакторе стилей. Реализация: компонент созданный наследованием от TCheckBox и элемент стиля через наследование TCheckStyleObject. Пока написал класс поражденный от TCheckStyleObject (код ниже). Тестирую поместив на форму компонент TCheckBox и указываю ему в StyleLookup, стиль создванный с испозольванием класса поражденного от TCheckStyleObject, компонент успешно применяет Стиль, что я визуально наблюдаю. Т.е. в дизайнере все состовляющие стиля видны(зарегистрированы) и доступны. Но при запуске приложения ошибка: First chance exception at $77079962. Exception class EClassNotFound with message 'Class TCheckDUStyleObject not found'. Process TestCheckBox.exe (20216). Ошибка при загрузке StyleBooka. В чем может быть проблема? Подозреваю, что проблема окажеться из разряда базовых "детских", поэтому описываю более подробно свои дейсвия. Возможно проблема в одном из этий действий. По тестирование. На форму кидаю TCheckBox . На нем "Edit Custom Style...". В редакторе стилей появившемся стиле удаляю background(TCheckStyleObject) и заменяю его своим background(TCheckDUStyleObject) перетаскиванием из палитры и меняю часть свойств в т.ч. SourceLink и другие *Link, что бы в дальнейшем увидеть нужные визуальное предстваление. Закрываю редактор стилей. Меняю StyleLookup чекбокса на "CheckBoxNew". И его визуальное представление меняется, т.е. стиль УСПЕШНО применен. Про TCheckDUStyleObject. Файл UCheckDUStyleObject содержащий класс, добавлен в пакет. Пакет собирается, компилируется инсталируется. Пути(Library Path) к нему пропысаны. Класс в палитре отображается. unit UCheckDUStyleObject; interface uses FMX.Styles.Objects,System.Classes,FMX.Ani,FMX.Types; type TCheckDUStyleObject=class(TCheckStyleObject) protected type TLinkEx = (Pressed,ActivePressed,WaitingResponse,ActiveWaitingResponse,Disabled,ActiveDisabled); {$SCOPEDENUMS ON} TStateEx = (Active,Pressed, WaitingResponse, Disabled); {$SCOPEDENUMS OFF} TTransitionRec = record Animation: TAnimation; Event: TNotifyEvent; end; private protected FBitmapLinksEx: array [TLinkEx] of TBitmapLinks; FTransitionsEx: array [TStateEx] of TTransitionRec; FStateEx: set of TStateEx; procedure DefineProperties(Filer: TFiler); override; procedure SetupAnimations; override; function GetCurrentLink: TBitmapLinks; override; function GetLinkEx(Index: TLinkEx): TBitmapLinks; procedure SetLinkEx(Index: TLinkEx; const Value: TBitmapLinks); procedure ActiveTriggeredEx(Sender: TObject); procedure PressedTriggered(Sender: TObject); procedure WaitingResponseTriggered(Sender: TObject); procedure DisabledTriggered(Sender: TObject); public constructor Create(AOwner: TComponent); override; destructor Destroy; override; procedure StartTriggerAnimation(const AInstance: TFmxObject; const ATrigger: string); override; published property PressedLink: TBitmapLinks index TLinkEx.Pressed read GetLinkEx write SetLinkEx; property ActivePressedLink: TBitmapLinks index TLinkEx.ActivePressed read GetLinkEx write SetLinkEx; property WaitingResponseLink: TBitmapLinks index TLinkEx.WaitingResponse read GetLinkEx write SetLinkEx; property ActiveWaitingResponseLink: TBitmapLinks index TLinkEx.ActiveWaitingResponse read GetLinkEx write SetLinkEx; property DisabledLink: TBitmapLinks index TLinkEx.Disabled read GetLinkEx write SetLinkEx; property ActiveDisabledLink: TBitmapLinks index TLinkEx.ActiveDisabled read GetLinkEx write SetLinkEx; end; procedure Register; implementation procedure Register; begin RegisterComponents('Мои компоненты', [TCheckDUStyleObject]); end; // и т.д. Далее реализация TCheckDUStyleObject
-
Если открыть стандартный файл стиля, то можно заметить такие элементы/компоненты как "TStyleObject", "TActiveStyleObject", "TBrushObject". Интересует вопрос: Как добавлять такие элементы в стиль?
- 1 ответ
-
- TSubImage
- TActiveStyleObject
- (и ещё 7 )