私はデザイナーシステムの一部であるいくつかのバーチャルコントロールを持っています。彼らは完全に所有者が描かれていることを除いて、デルファイ自身のコンポーネントを模倣しています。私が直面している問題は、私の不動産システムが通常のDelphiとは多少異なるため、プロパティを編集するためにRTTIインスペクタを使用することはできません。Delphi non-rtti inspector
通常のデルファイインスペクタのように見え、動作するインスペクタについて知っていますが、コードでプロパティを定義することはできますか?
し、可能な場合、私は列挙型を定義することを可能にする1:
with edInspector.Items.add('align') do
Begin
Options.add('alLeft',ftord(TMyAlign.azLeft));
Options.add('alTop',ord(TMyAlign.azTop));
Options.add('alRight',ord(TMyAlign.azRight));
Options.add('alBottom',ord(TMyAlign.azBottom));
Options.add('alClient',ord(TMyAlign.azClient));
end;
と複合型を:
with edInspector.Items.add('font') do
Begin
subitems.add('name',dtString).value:=def_FontName;
subitems.add('size',dtInteger).value:=def_fontSize;
subitems.add('color',dtColor).Value:=def_fontColor;
end;
「私の不動産システムは通常のデルファイとは多少異なる」とはどういう意味ですか?公開されたプロパティと公開されたプロパティの違いを認識していますか? –
彼はそうです。外部システムからプロパティをポーリングする。つまり、カスタムオブジェクトの名前と値のペアに格納されます。したがって、通常のRTTIからは表示されません。手作業で取得/設定する必要があります。 –
他のものがパーシステンスメカニズムである場合は、「stored False」と宣言された公開プロパティを使用し、オブジェクトインスペクタでビルドを行います。永続化メカニズムの助けが必要な場合(通常の型付きプロパティに割り当てることができる値にテキストを変換するなど)、TReaderとTFilerがそのジョブをどのように処理するかを見てください。 –