1

Date、Time、およびDate/Timeタイプのプロパティを必要とするコンポーネントを作成しています。これらのプロパティをオブジェクトインスペクターに表示し、ポップアッププロパティエディターを使用するオプションを付けたいと思います。

私は公開されたプロパティとして試しTDateましたが、これにより、日付だけで必要な結果が得られます。ただし、同じものが必要ですが、プロパティエディタが付属しTTimeTDateTimeいません。実際、そこに入力した値も受け入れられません。

TDateTimePropertyプロパティエディタとして使用できるものを見つけたので、とにかく理解しました。このコンポーネントを登録するときに必要な実装を行いました。適用する必要のあるこのプロパティは、実際にはTCollectionItem子孫であり、必ずしもコンポーネントの一部ではなく、コンポーネント内にあります。

これが私がそれを登録する方法です...

RegisterComponents('My Page', [TMyComponent]);
RegisterPropertyEditor(TypeInfo(TDateTime), TMyCollectionItem, 'MyPropName', TDateTimeProperty);

これはコンパイルされますが、インストールすると、このプロパティにプロパティエディタがありません。TMyCollectionItem同じ問題の代わりに、コンポーネントのクラス名を使用してみました。

このプロパティエディタを表示するために、ここで何が間違っていますか?

4

1 に答える 1

2

TDateTimeTDateおよびの組み込みプロパティエディタを登録する必要はありませんTTime。それらはすでに登録されています。そのため、それらを登録しようとしても影響はありません。

これらのタイプの組み込みプロパティエディタは、基になる浮動小数点値と文字列表現の間で変換するだけです。日時ピッカーなどは実装していません。

あなたは言う:

ただし、TTimeとTDateTimeにも同じものが必要ですが、プロパティエディターが付属しておらず、実際、そこに入力した値も受け入れられません。

それは実際には正しくありません。彼らはプロパティエディタが付属しています。これらは、質問で名前を付けたものと同じ組み込みのプロパティエディタです。そして、それらは値を受け入れます。無効な値を指定したため、指定した値を受け入れません。

視覚的な日時ピッカーを提供するプロパティエディターを登録する場合は、プロパティエディターを自分で作成する必要があります。

于 2012-12-18T16:48:17.533 に答える