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

Куда пропали методы DoChangeTracking и Change?


rareMax

Вопрос

Добрый вечер!

 

Суть проблемы: Есть компонент у меня на базе TEdit - TSearchEdit = class(TEdit). Вот в нем используются методы предка(TEdit) - procedure DoChangeTracking; override;  и procedure Change; которые в XE6 работали. Попробовал установить компонент для XE7 - пишет что нет этих методов. 

 

Их куда то перенесли или переименовали? Как привести класс в рабочее состояние?

 

Спасибо.

 

 

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

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

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

Начиная с XE7 TEdit построен с использованием представлений. Частично общая идея описана тут: Нативные элементы управления

 

Что это означает теперь для разработчиков компонентов?

Что в вашем ситуации, старая реализация перенесена полностью в представление FMX.Edit.Style.TStyledEdit. Варианта два:

 

1. Создание своей модели данных

Все данные TEdit теперь хранятся в отдельном классе - моделе. Вы можете создать свою модель данных для, отнаследовавшись от TCustomEditModel и перекрыв требуемые методы DoChangeTracking и DoChange

  • В этом случае ваш код будет работать и с нативным представление TEdit для iOS так же.
  • Если требуется внести только доп. действия для обработки данных. То вам не потребуется создавать свой компонент. Поскольку вы просто подмените модель TEdit своим классом в событии OnModelChoosing

2. Создание своего представления

В этом случае вы должны создать свою представление на базе представления TEdit (TStyledEdit) или свое с нуля. В этом случае будут доступны все старые методы, которые были ранее.

Ссылка на комментарий
Гость
Эта тема закрыта для публикации ответов.
×
×
  • Создать...