Как добавить изображение в растровое изображение ListView в студии RAD

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

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

{

ListView1->Начать обновление();

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"); но ничего не работает. Пожалуйста, помогите мне решить эту проблему.

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


person Sarthak mirajkar    schedule 29.04.2018    source источник
comment
Хорошо, что вы использовали тег firemonkey. Сначала я не понял, что ты имеешь в виду. TListView VCL работает по-другому и, IIRC, использует TImageList для хранения изображений.   -  person Rudy Velthuis    schedule 29.04.2018
comment
Хммм.. AFAICT, TListViewItem имеет свойство ImageIndex. Итак, попробуйте следующее: поместите свои изображения в TImageList, свяжите их с TListView и установите для ImageIndex TListViewItem индекс изображения в ImageList. Меня бы не удивило, если бы в ListView было несколько ссылок на списки изображений разного размера.   -  person Rudy Velthuis    schedule 29.04.2018
comment
Также загляните сюда: fmxdemos.com . В основном в Delphi, но все же легко следовать.   -  person Rudy Velthuis    schedule 29.04.2018


Ответы (1)


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

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

Убедитесь, что вы установили для свойства ListView «Изображения» имя вашего 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();

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

русь

person relayman357    schedule 29.04.2018