1

実行時にコントロールにTEditコントロールを追加しようとしています。コントロールを自分の選択しTListViewたコントロールの親にしたいのですが、これを行う方法が見つかりません。 TEditTListViewItemTListView

もともと、私はこれを試しました:

TEdit * MyEdit = new TEdit( this );
MyEdit->Parent = MyListView->Selected;

ただし、これにより次のエラーが発生します。

[bcc32 エラー] E2034 'TListViewItem *' を 'TFmxObject *' に変換できません

気まぐれで、リストビューで選択したアイテムを次のように型キャストしようとしましたTFmxObject:

MyEdit->Parent = (TFmxObject *)MyListView->Selected;

これをコンパイルすると、実行時にアクセス違反が発生しました。

多くのドキュメントとフォーラムの投稿を検索しましたが、コード内のリスト ビュー項目にコントロールを動的に追加することに関する多くの情報を見つけることができません。スタイル エディターの使用を提案するソリューションを見てきましたが、可能であればそれを避けたいと考えています。

コントロールの親を my の項目に設定するにはどうすればよいTListViewですか? TListViewItem実行時にコントロールを追加するより適切な方法はありますか?

4

1 に答える 1

1

Embarcaderoのドキュメントに よると、 は子孫でTListViewItemはないため、目的のインスタンスにTFmxObjectとして設定することはできません。プロパティもありません。など ( に含まれる子孫)も から上昇しません。以下の方法があるようです。ParentTEditChildrenTextObjectDetailObjectTListItemObjectTListViewItem TFmxObject

  1. ListViewItem別のクラスを作成して登録し、それをListViews または
  2. thisおよびthis SO リンクを参照してください。おそらく、それらは役に立つかもしれません。
  3. TListBox代わりに使用することを検討してください。TListBoxItems は、他のコントロールを親にすることができます。
于 2015-11-06T11:50:23.777 に答える