を の子コントロールとしてTComboBox実際に設定していないため、 は表示されません。ポインタを に関連付けられたユーザー定義の値として保存しただけです。これは UI に影響を与えないため、削除します。TComboBoxTListViewTComboBoxTListItem
for (int i = 0; i < 10; i++)
{
TListItem *items = ListView1->Items->Add();
items->Caption = IntToStr(i);
items->SubItems->Add("combo"+IntToStr(i));
}
TComboBoxの内部を実際に表示するには、 をのとしてTListView割り当て、表示する必要があるときはいつでもメソッドを使用して の位置とサイズを調整する必要があります。TListViewParentTComboBoxSetBounds()TComboBox
ComboBox1->Parent = ListView1;
...
RECT rect = {0};
ListView_GetSubItemRect(ListView1->Handle, SomeListItem->Index, 1, LVIR_BOUNDS, &rect);
ComboBox1->SetBounds(rect.left, rect.top, rect.right-rect.left, rect.bottom-rect.top);
// update ComboBox1->Items as needed...
ComboBox1->Visible = true;
...
ComboBox1->Visible = false;
そうは言っても、あなたがやろうとしていることは、TValueListEditor代わりにコンポーネントを使用して処理する方が適切です。必要に応じて項目を追加し、そのItemPropsプロパティを使用して各項目のTItemProp.EditStyleプロパティをに設定し、必要に応じてイベントまたはプロパティをesPickList使用して ComboBox 文字列を管理します。TValueListEditor.OnGetPickListTItemProp.PickList