Выбор даты / времени в качестве редактора свойств в потомке TCollectionItem
Я пишу компонент, который требует свойства типа Date, Time и Date/Time. Я хотел бы, чтобы эти свойства были видны в Инспекторе объектов, с возможностью использовать всплывающий редактор свойств.
я пытался TDate
как опубликованная собственность, и это дает мне результаты, которые мне нужны только для одной даты. Однако мне нужно то же самое для TTime
а также TDateTime
но они не поставляются с редактором свойств, и на самом деле он даже не примет значения, которые я там ввожу.
Я нашел TDateTimeProperty
который может быть использован как редактор свойств, или я так понимаю. Я сделал необходимую реализацию при регистрации этого компонента. Это свойство мне нужно применить это на самом деле TCollectionItem
потомок, не обязательно часть компонента, но внутри него.
Вот как я это регистрирую...
RegisterComponents('My Page', [TMyComponent]);
RegisterPropertyEditor(TypeInfo(TDateTime), TMyCollectionItem, 'MyPropName', TDateTimeProperty);
Хотя это компилируется, когда я его устанавливаю, в этом свойстве нет редактора свойств. Я попытался использовать имя класса моего компонента вместо TMyCollectionItem
но та же проблема.
Что я делаю не так, чтобы показать этот редактор свойств?
1 ответ
Вам не нужно регистрировать встроенные редакторы свойств для TDateTime
, TDate
а также TTime
, Они уже зарегистрированы. Вот почему ваши попытки зарегистрировать их не имеют никакого эффекта.
Встроенные редакторы свойств для этих типов просто преобразуют между базовым значением с плавающей запятой и строковым представлением. Они не используют средства выбора даты или что-то в этом роде.
Ты говоришь:
Однако мне нужно то же самое для TTime и TDateTime, но они не поставляются с редактором свойств, и на самом деле он даже не примет никакого значения, которое я там ввожу.
Это на самом деле неверно. Они приходят с редакторами собственности. Это те же встроенные редакторы свойств, которые вы назвали в своем вопросе. И они принимают ценности. Они не принимают указанные вами значения, потому что вы указали недопустимые значения.
Если вы хотите зарегистрировать редактор свойств, который предоставляет визуальный инструмент выбора времени, то вам придется написать редактор свойств самостоятельно.