Как добавить изображение в растровое изображение ListView в RAD studio - PullRequest
0 голосов
/ 29 апреля 2018

Я взял один ListView. Я изменил itemAppearance на DynamicAppearance. Этот просмотр списка содержит одно растровое изображение в качестве члена. Теперь я хочу заполнить список кодом C ++. В просмотре списка 2 пользователя Text & Image (MyImage). Я могу присвоить значение Text с помощью C ++, и теперь я пытаюсь назначить изображения для растрового изображения listview. но я не могу назначить изображение на просмотр списка. Ниже приведен код, который я написал:

 __fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)

{

ListView1-> BeginUpdate ();

try{
for(int i = 0; i<=10; i++)
{
    TListViewItem* item = ListView1->Items->Add();
    TListItemText *Txt = (TListItemText*)item->Objects->FindObject("Text1");
    Txt->Text = "Sarthak Mirajkar";
    TListItemImage* img = (TListItemImage*)item->Objects->FindObject("MyImage");

    img->Bitmap->LoadFromFile("Images\\123.bmp");

}
}
catch(...)
{}

ListView1->EndUpdate();

}

Этот код не выдает ошибку компилятора, но он не работает. Я попытался указать путь многими способами в выражении img-> Bitmap-> LoadFromFile ("Images \ 123.bmp"); но ничего не работает. Пожалуйста, помогите мне решить эту проблему.

Заранее спасибо.

1 Ответ

0 голосов
/ 30 апреля 2018

Добавьте TImageList к вашей форме и поместите ваши изображения в нее. Затем, когда вы заполняете свой элемент, вы можете назначить ему изображение, например:

item->ImageIndex = 1;  // 1 = the image you want from the TImageList

Убедитесь, что в свойстве ListView «Images» указано имя вашего TImageList (возможно, ImageList1).

Надеюсь, я правильно понял ваш вопрос. Удачи.

ОБНОВЛЕНИЕ: Я думал, что добавлю более полный код - см. Ниже.

// first add a header if you want too - not required
TListViewItem* itemHeader = ListView1->Items->Add();
ListView1->BeginUpdate();
itemHeader->Purpose = TListItemPurpose::Header;
itemHeader->Text = "My Header";  // 
ListView1->EndUpdate();

// now add your item
TListViewItem* item2Add = ListView1->Items->Add();
ListView1->BeginUpdate();
item2Add->Text = "My item text";
item2Add->ImageIndex = 1;  // set it's image to image 1 in the associated TImageList
ListView1->EndUpdate();

Надеюсь, это поможет.

русс

...