Как отобразить выбранный элемент в списке без клика пользователя (C ++ FMX, C ++ Builder)? - PullRequest
0 голосов
/ 21 марта 2020

Я пытаюсь использовать метод SetItemIndex для программного выбора элемента списка. Это виртуальный метод, поэтому я понимаю, что мне нужно его переопределить, но я не уверен, как это будет выглядеть или где я буду помещать код.

В качестве альтернативы, есть другой метод, который я должен использовать, чтобы показать что элемент в списке выбран?

-

Как выглядит мое приложение сейчас: current view

Как я хочу, чтобы оно выглядело (без пользователя щелчок): desired view

Я создаю приложение, использующее C ++ FireMonkey (FMX, используя C ++ Builder), чтобы получать пользовательский ввод со многих экранов. Список должен показать пользователю, где он находится в процессе ввода, и предоставить возможность вернуться назад на несколько экранов.

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

-

Вот соответствующие выдержки из моего кода:

class TFormMain : public TForm
{
__published:     // IDE-managed Components
    TListBox     *leftSideBar_listbox;

}

__fastcall TFormMain::TFormMain(TComponent* Owner)
    : TForm(Owner)
{
    leftSideBar_listbox->SetItemIndex(0);
    initializeApp();
}

И ошибка, которую я получаю:

[bcc32c Error] TFormMain.cpp(29): 'SetItemIndex' is a protected member of 'Fmx::Listbox::TCustomListBox'
  FMX.ListBox.hpp(493): declared protected here

В строке FMX.ListBox.hpp 493:

protected:
...
virtual void __fastcall SetItemIndex(const int Value);

соответствующая документация: http://docwiki.embarcadero.com/Libraries/Rio/en/FMX.ListBox.TCustomListBox.ItemIndex

(этот пост о C# вместо C ++)

Программный выбор элемента в ListBox

1 Ответ

1 голос
/ 21 марта 2020

Только что понял, что могу установить индекс предмета так:

leftSideBar_listbox->ItemIndex=0;
...