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

Где (и как) регистрируется класс TListView?


Alex Bozhko

Вопрос

Вопрос из серии "чего-то странного хочется".
Предположим, я хочу написать собственный ListView. Если я наследую от TListView, то всё нормально. Я его регистрирую с помощью процедуры Register

Примерно так:

procedure Register;
begin
  RegisterComponents('<Моя вкладка>', [TМойListView]);
end;

И всё работает.

Но, как показывает практика, в том числе пример Равиля Зарипова (https://github.com/rzaripov1990/ModernListView) для того, что бы написать полноценный ListView, наследоваться надо от предков TListView, едва ли не от TStyledControl.

Дальше возникает вопрос. Где и как правильно регистрировать вновь созданный компонент?

Если зарегистрировать компонент с помощью процедуры Register, то при размещении компонента на форме в окне Structure к вновь созданному компоненту не привязывается ItemAppearence.
00.jpg.b839b4e134e8e41ff72d9f16d1aba5eb.jpg

 

Да и IDE падает.

Прилагаю файл с кастомным ListView. Сделан по аналогии с оригинальным, изменены только названия.

 

 

My.FMX.ListView.zip

Ссылка на комментарий

Рекомендуемые сообщения

  • 0
  • Администраторы

Помимо регистрации компонента на палитре компонентов через ComponentRegister, нужно как минимум зарегистрировать класс в RTL. Чтобы при десерилизации класса нового компонента из строкового названия можно было найти сам класс. Для этого в FMX есть в секции инициализации вызов метода регистрации классов. Иначе в противном случае, при открытии формы с вашим компонентом, форма просто не откроется.

На счет дизайнера сложнее. Так как эти итем аппирансы появляются не сами по себе, а именно при помощи кастомного дизайнера, который зарегистрирован для класса TListView. Поэтому для своего класса естественно этого дизайнера нет.

Ссылка на комментарий

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...