将TListBox的选定行的内容存储在变量上

Nat*_*pos 2 delphi variables listview list lazarus

我正在为Lazarus开发一个电子书管理器,但是我遇到了一些我从未使用过的组件的麻烦(TListBox).在TListBox命名CategoryList,我有这些项目:

文学和小说
浪漫
电脑和互联网
诗歌
专业和技术
科学小说和幻想
传记和回忆录
商业和金融
儿童书籍
娱乐
历史
科学
自助
教科书和教育材料
旅行
西部片

当用户选择一个项目时CategoryList,我想将它存储在一个变量中,但我该怎么做呢?

Kor*_*icz 9

如果你想要索引:

index := CategoryList.ItemIndex;
Run Code Online (Sandbox Code Playgroud)

如果你想要字符串:

str := CategoryList.Items[CategoryList.ItemIndex];
Run Code Online (Sandbox Code Playgroud)

要捕获用户选择内容的那一刻,您需要注册一个OnChange事件:

CategoryList.OnChange := CategoryListChange;
Run Code Online (Sandbox Code Playgroud)

CategoryListChange是一个事件监听器:

procedure TMyForm.CategoryListChange(Sender: TObject);
begin
  // do something with CategoryList.Items[CategoryList.ItemIndex]
end; 
Run Code Online (Sandbox Code Playgroud)

您可能也希望查看此网页上的一些帖子!

  • +1并在将它用作Items属性的索引之前测试`if(CategoryList.ItemIndex> -1)`. (5认同)