Перейти к содержанию
Fire Monkey от А до Я

Zyablik3000

Пользователи
  • Постов

    22
  • Зарегистрирован

  • Посещение

  • Победитель дней

    1

Активность репутации

  1. Like
    Zyablik3000 получил реакцию от ENERGY в Компонент - наследник TPresentedScrollBox   
    Всем спасибо) Решение нашел сам.
    Прочитав http://yaroslavbrovin.ru/new-approach-of-development-of-firemonkey-control-control-model-presentation-part-1-ru/  и другие материалы с этой странички (к слову: жутко полезная информация) перекрыл в своем компоненте функцию
    function DefinePresentationName: string; override;
    function TScrBox.DefinePresentationName: string; begin Result:='PresentedScrollBox-style'; end; Дело оказалось в том, что не загружалась презентация для моего компонента (а модель создавалась), точнее пыталась загрузиться презентация 'ScrBox-style', прокси для которой не зарегистрирован. Ведь имя презентации формировалось как 'Имя класса' + '-style'
    Но этого оказалось недостаточно. Еще понадобилось задать свойство StyleLookup:='scrollboxstyle'; т.к. скроллбары и прочие контролы берутся из стиля TStyledCustomScrollBox'а, который описан в FMX.ScrollBox.Style.
    Надеюсь кому-то поможет, и этот кто-то не будет как я тратить на решение этой задачи три дня жизни.
     
    Test.7z
  2. Like
    Zyablik3000 получил реакцию от Brovin Yaroslav в Компонент - наследник TPresentedScrollBox   
    Всем спасибо) Решение нашел сам.
    Прочитав http://yaroslavbrovin.ru/new-approach-of-development-of-firemonkey-control-control-model-presentation-part-1-ru/  и другие материалы с этой странички (к слову: жутко полезная информация) перекрыл в своем компоненте функцию
    function DefinePresentationName: string; override;
    function TScrBox.DefinePresentationName: string; begin Result:='PresentedScrollBox-style'; end; Дело оказалось в том, что не загружалась презентация для моего компонента (а модель создавалась), точнее пыталась загрузиться презентация 'ScrBox-style', прокси для которой не зарегистрирован. Ведь имя презентации формировалось как 'Имя класса' + '-style'
    Но этого оказалось недостаточно. Еще понадобилось задать свойство StyleLookup:='scrollboxstyle'; т.к. скроллбары и прочие контролы берутся из стиля TStyledCustomScrollBox'а, который описан в FMX.ScrollBox.Style.
    Надеюсь кому-то поможет, и этот кто-то не будет как я тратить на решение этой задачи три дня жизни.
     
    Test.7z
  3. Thanks
    Zyablik3000 отреагировална Brovin Yaroslav в Как отловить изменение положения контрола   
    Если это свой компонент, то перекройте метод TControl.DoAbsoluteChanged и не забудьте вызывать базовый метод через inherited;
  4. Like
    Zyablik3000 получил реакцию от Brovin Yaroslav в Как отловить изменение положения контрола   
    Так мне и нужно событие изменения позиции (если оно существует). И в нем считать все что нужно.
    Если, скажем я напишу
    MyComponent.Height:=Random(1000); то отработает
    procedure Resize; override; моего компонента. И тут можно отреагировать на измнение размера.
    Вопрос в том, есть ли аналогичная процедура для реакции на
    MyComponent.Position.X:=Random(1000);
×
×
  • Создать...