Как получить значения выбранного элемента TListView в Firemonkey Delphi Rio

У меня есть TListView, заполненный данными из TFDQuery с использованием Livebindings.

Я хотел бы получить значения выбранного элемента, такие как item.text, itemheader.text и т. д. Я уже выяснил выбранный элемент через listview1.itemindex, но получить значения для меня сложно. Я новичок в TListView и livebindings. Я потратил более дня на поиск ответов в Интернете, но выглядит слишком сложным для очень простой задачи. Я знаю, что для этого есть прямой метод.

Кто-нибудь хочет поделиться некоторыми подсказками (кодами) о том, как получить значения выбранного элемента списка?

ПОДРОБНЕЕ:

Я использую динамический внешний вид Livebindings. Я создал элементы для своих полей запроса и соответствующим образом сопоставил их с моим TListView.

Так получилось, что я не использовал item.text по умолчанию, а вместо этого сопоставил поля с моими созданными элементами, такими как item.text1, item.text2, item.item3.

Следовательно, это причина, по которой я не получаю заголовок из формулы, приведенной MartynA ниже.


person Juke    schedule 11.05.2020    source источник
comment
@LURD Я пытался получить доступ к элементам, используя сообщение show, но безрезультатно. Я думаю, что это массив. Можете дать краткий код хотя бы для генерации предметов? переменная: образец: строка; пример: = lsvSize.Items[lsvSize.ItemIndex].ToString; ПоказатьСообщение (образец);   -  person Juke    schedule 11.05.2020
comment
sample := lsvSize.Items[lsvSize.ItemIndex].Caption; даст вам свойство Caption. Другое свойство — SubItems. См. Свойства Vcl.ComCtrls.TListItem.   -  person LU RD    schedule 11.05.2020
comment
Вы упустили самую важную деталь: вы спрашиваете о TListView VCL или FireMonkey?   -  person MartynA    schedule 11.05.2020
comment
@MartynA Приятно, что ты спросил! Я спрашиваю об огненной обезьяне. Виноват! извините, что не так ясно об этом.   -  person Juke    schedule 11.05.2020
comment
Это причина, по которой я не могу подтолкнуть предложение @LURD, поскольку он указывает свойства vcl.   -  person Juke    schedule 11.05.2020
comment
Я удивлен, что не так много документации о выбранном элементе списка. Все, что я могу найти, это базовая информация embarcadero, которую трудно понять в действии. Я обновлю свой вопрос здесь, чтобы дать вам полную информацию о том, что я пытаюсь сделать с элементом listview.selected.   -  person Juke    schedule 11.05.2020
comment
Боюсь, добавленные вами детали не очень помогают - нам нужно увидеть код, который вы используете для создания и заполнения списков.   -  person MartynA    schedule 11.05.2020
comment
Ага! Я знаю. Я понял, что. Впрочем, я уже разобрался, делая MRE. Это было в livebinding. Ваш ответ ниже действительно работает, и это помогает. Я ошибочно сопоставляю заголовок с моим созданным элементом, который должен быть item.text. Я отмечу ваш ответ ниже как окончательный и предоставлю более подробную информацию о нем. Большое спасибо @MartynA   -  person Juke    schedule 11.05.2020


Ответы (1)


Возможно, я упускаю из виду вашу мысль (в этом случае я удалю это), но следующий FMXcode отлично работает для меня:

procedure TForm1.Button2Click(Sender: TObject);
var
  Index : Integer;
begin
  Index := ListView1.ItemIndex;
  if Index >= 0 then
    Caption := ListView1.Items[Index].Text;
//  OR  ShowMessage(ListView1.Items[Index].Text);
//  OR  Label1.Text := ListView1.Items[Index].Text;

end;
person MartynA    schedule 11.05.2020
comment
Я попробовал вашу процедуру с ShowMessage. Я получаю правильный ItemIndex, но заголовок ничего не показывает. Пусто. - person Juke; 11.05.2020
comment
Извините, не видя вашего файла .FMX, я понятия не имею, почему это может быть, но альтернативы, которые я добавил к моему ответу, оба действуют также работают, так что разве это не ответило на ваш вопрос? - person MartynA; 11.05.2020
comment
Я придумаю MRE. Дай мне минуту. - person Juke; 11.05.2020
comment
Я больше не буду давать вам MRE, так как я уже нашел то, что мне не хватало. Я ошибочно сопоставляю подпись с моим созданным элементом в livebindings вместо элемента item.text по умолчанию. Теперь я правильно понял заголовок. Ваш ответ действительно помогает. Я улучшу свой вопрос и удалю ненужные детали. - person Juke; 11.05.2020