You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C++ Rad Studio中如何通过代码为FMX表单的TListBox添加TListBoxGroupHeader

在C++ RAD Studio中通过代码给FMX TListBox添加GroupHeader

嗨Russ,当然可以通过代码实现给FMX的TListBox添加GroupHeader,完全不用只依赖设计阶段的Items Editor!下面给你详细的实现方法和代码示例:

核心思路

FMX的TListBoxGroupHeader是一个可视化控件,你只需要在代码中创建它的实例,设置好属性并关联到目标ListBox即可,和设计阶段添加的效果完全一致。

代码示例(C++)

比如你可以在Form的OnCreate事件中编写以下代码,动态创建分组头并添加列表项:

void __fastcall TForm1::FormCreate(TObject *Sender)
{
    // 创建第一个分组头
    TListBoxGroupHeader* firstGroup = new TListBoxGroupHeader(this);
    firstGroup->Parent = ListBox1; // 必须设置Parent为目标ListBox才能显示
    firstGroup->Text = "基础设置";
    // 可以自定义样式,比如背景色
    firstGroup->StyleLookup = "listboxgroupheaderstyle";
    firstGroup->Fill->Color = TAlphaColorRec::Lightblue;

    // 给第一组添加普通列表项
    ListBox1->Items->Add("显示设置");
    ListBox1->Items->Add("声音设置");

    // 创建第二个分组头,并插入到指定位置
    TListBoxGroupHeader* secondGroup = new TListBoxGroupHeader(this);
    secondGroup->Parent = ListBox1;
    secondGroup->Text = "高级选项";
    // 插入到第3个位置(索引从0开始,前面已有3个元素:firstGroup、显示设置、声音设置)
    ListBox1->Controls->Insert(3, secondGroup);

    // 给第二组添加列表项
    ListBox1->Items->Add("开发者模式");
    ListBox1->Items->Add("数据备份");
}

注意事项

  • 内存管理:上面的代码中,创建TListBoxGroupHeader时把this(Form实例)作为Owner,这样Form销毁时会自动释放这些分组头控件,避免内存泄漏。如果没有设置Owner,记得在不需要时手动delete控件。
  • 位置控制:如果需要调整分组头的位置,可以通过ListBox1->Controls集合的Insert方法来指定索引,而普通列表项可以用Items->Add或Items->Insert来添加。
  • 样式自定义:通过StyleLookup属性可以应用FMX内置的样式,也可以自己修改样式来匹配你的UI设计。

内容的提问来源于stack exchange,提问作者relayman357

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 06:23:15