プロパティを作成するには?


ユニコーン  2006-07-14 18:47:55  No: 22507

コンポーネントを作成しようとしているのですが、
次のようなことはできるのでしょうか?

パネルから派生したコンポーネントを作成します。
このなかに、複数のラベルを作成しています。
それぞれのラベルに表示するキャプションを
プロパティであたえることにします。
ここからが問題なのですが、
このラベルの表示をラベル表示制御プロパティによって
管理する場合に
このラベル表示制御プロパティを変更することで、
表示されるラベルのキャプションプロパティのみ
オブジェクトインスペクタに表示でき、変更できるように
するにはどうすればよいのでしょうか?

現状では、全てのラベルのキャプション設定プロパティを
表示しています。
それから、もうひとつ、プロパティに  TPoint 型を
作ったのですが、オブジェクトインスペクタに表示されません。
表示させるにはどうすればよいのでしょうか?


さどやま  URL  2006-07-15 18:57:49  No: 22508

> オブジェクトインスペクタに表示されません。
published 部を設け、そこで宣言すると表示されます。

> 表ラベル表示制御プロパティで示されるラベルのキャプションプロパティのみ
> オブジェクトインスペクタに表示でき、
> 変更できるようにするには?

TLabel では、Caption は published で宣言し直しています。
これをオブジェクトインスペクタからはずすことは原則できません。
TCustomLabel より継承した TLabel を作成して使用する方法があります。
内容は、TLabel のコードをそのまま使用し、
published 部で宣言されている Caption のみ public 部に変更するか削除します。
削除した場合には(TControl で宣言されている) protected 扱いになります。
コンポーネントとしては、ユーザに直接アクセスさせないよう protected のままがよいでしょう。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加