问题标签 [tlistbox]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
delphi - 如何从 FireMonkey TListBox 控件中删除边框线?
我正在学习 FireMonkey 样式 - 我的主要参考资料在这里。我用简单的标签和形状尝试过的一切都很好,但我现在正在使用 TListBox 并尝试做两件事:
- 设置 TListBox 中项目的字体。
- 移除它的边框(它在 TCalloutPanel 中与客户端对齐)。
我正在使用在表单上创建样书的方法,右键单击控件并选择“编辑自定义样式”。(不过,我同样很乐意进行运行时更改)。
我对字体的唯一成功是创建了多个 TListBoxItem 并使用它们各自的文本设置。他们没有办法像 VCL 那样继承父设置吗?我真的很想像在 VCL 中一样添加列表框项:
但我看不到获取创建的内部 TListBoxItem 数组的运行时方式。
另一个问题是我看不到删除边框矩形的方法。一个普通的矩形很容易——它有一个笔划——但是在样书中挖掘 TListBox 的所有布局选项时,我在任何地方都看不到笔划。
我正在使用 XE7。我错过了什么吗?
谢谢你的帮助。
delphi - 我可以更改 TListBox 选定项的颜色吗?
我正在创建一个多设备 FireMonkey 应用程序,并且我想在选择 TListBox 项时更改它的颜色。
这如何在 Rad Studio XE7 中完成?
delphi - 如何在Delphi中的每个项目上使用按钮制作列表
如图所示,我需要在每个项目上制作一个带有按钮的列表,项目左下角一个按钮,右下角一个按钮。
ListBox
我在上面的面板中使用控件和一些按钮制作演示应用程序ListBox
,但是当ListBox
滚动时,很难使按钮跟随ListItem
。
谁能帮忙,谢谢~~~
delphi - Ownerdraw TListBox 子控件不通过滚动移动
重绘问题仅在使用 ScrollBar 或向我的 ListBox 发送 WM_VSCROLL 消息时存在。当我使用键盘箭头或鼠标单击更改选择时,所有内容通常都会绘制。当所选项目通过滚动可见并且不离开可见区域时,也不存在问题。
我认为 Button.Top 属性在 DrawItem 调用之前仍然具有旧值,并且稍后会更改(例如更改为 -30px)。
delphi - 使用 Livebindings 将多个字段值分配给 FMX MetropolisUI TListBox Item.Text
我正在编写 FMX Metropolis UI 应用程序并尝试通过 LiveBindings 技术(使用表达式引擎)将两个字符串类型的字段值分配给 TListBox 的 Item.Title 成员。
当我以下列方式使用 TBindList 时:
它将“name1 name2”字符串分配给成员Text
,但我无法设置,ListItemStyle := MetropolisUI
因为 TBindList 类中没有这样的属性
如果我使用TLinkFillControlToField
它让我可以分配ListItemStyle
给MetropolisUI
,但是我只能使用FillDisplayFieldName
属性访问一个字段,并且没有SourceExpression
可以分配'FieldByName("name1").Text + " " + FieldByName("name2").Text'
给它的字段。
我试图猜测fromItem.Text
成员的上下文,但我没能做到。我研究了 Delphi 示例,但没有 Metropolis TListBox,而且它的行为方式似乎与常见的方式不同。有没有人知道如何找到这个问题的解决方案?TListBox
TBindList
comctl32 - TListBox OnDrawItem 导致 AV 在 COMCTL32.dll
我已经缩小了我的应用程序生成从 COMCTL32.dll 到 TListBox::OnDrawItem 的访问冲突的原因。TListBox.Style 是 lbOwnerDrawFixed。
应用程序使用 C++ Builder XE4 构建,在 Win7-64 和 Win8-64 上运行。我可以在 Win7 上实现它,但只能从 IDE 内部实现,而且只是偶尔发生;Win7 上的发布版本不会引发错误,但在 Win8 上每次都会引发错误。
这仅在首次创建表单时发生。表单包括移动到下一个/上一个记录的按钮,它调用所有控件填充代码,但这些调用从来没有问题;只有在表单构建后的第一次。
表单构造函数将 TTimer 设置为暂停 100 毫秒。TTimer::OnTimer 调用将数据加载到控件中的函数。加载 TListBox 后,将调用 OnDrawItem 事件。
如果我将 TListBox.Style 设置为 lbStandard 并删除自定义 OnDrawItem,则没有问题。
这是 OnDrawItem 处理程序的示例:
我已经测试以确保 TListBox.Canvas 不为 NULL,但它没有任何区别;显然它总是非空的。
我不知道如何从这里着手,欢迎提出建议。
谢谢,凯瑟琳
delphi - 在列表框画布上绘制 unicode 文本太慢
我正在尝试使用以下格式在列表框中显示来自 RSS 的新闻,如下图所示。屏幕截图上的应用程序是通过设置列表框样式在 firemonkey 中开发的。我需要在我的 VCL 应用程序中显示相同的内容。
这种布局的要求是:
- 新闻标题应为粗体
- 简短描述应位于底部,如果它不适合单行,则应将其换行(如图所示);字体样式应该是正常的
- 每条新闻都应该有一张图片
到目前为止我的代码:
这是我得到的输出:
问题
Unicode 文本绘制速度太慢,并且在滚动列表框或调整窗体大小时闪烁太多。
笔记
- 字体已设置为@Microsoft NeoGothic
- 项目高度 =70;样式 = ownerdrawfixed
- 在第一个屏幕截图中发布的 firemonkey 应用程序中绘制相同的 unicode 文本没有问题。
- 上面发布的代码对于普通的英文文本来说工作得很好,根本没有闪烁。该问题仅存在于 Unicode 文本。
更新: 似乎问题出在DrawText方法的DT_WORDBREAK标志中。每当我删除此标志时,虽然闪烁可见,但在绘制文本时会有显着改进。
示例 Unicode 文本
तिम्रो त्यो बोलि ले मलाई बोलायो मिठो तिम्रो त्यो मुस्कान मा मलाई झुलायो झुलाओ ह्स्द्जिः स ह्स्ध्फद्ज द्श्जड्स हस फग स्द्फ़ ग स्द्फ्ग फस ग्स्द्फ़ ग्दस्फ्ग द्स्फग्द तिम्रो त्यो बोलि ले मलाई बोलायो मिठो तिम्रो त्यो मुस्कान मा मलाई स ह्स्ध्फद्ज द्श्जड्स हस फग स्द्फ़ ग स्द्फ्ग फस ग्स्द्फ़ ग्दस्फ्ग द्स्फग्द
delphi - Delphi中延迟加载列表框项目
我正在尝试解析 RSS 提要并将其数据加载到列表框中。项目内容格式如下:
该列表是自定义绘制的,将显示每个项目中的所有上述字段。由于 Feed 项超过 100 个,因此下载每个 ImageUrl 并将其显示在相应的列表项上需要很长时间。所以我想先获取前 10 个项目。当用户滚动到列表框的末尾时,获取接下来的 10 个项目,依此类推。实际上,我正在尝试实现 Facebook 和许多其他 android 应用程序在滚动到结束事件时显示更多数据项的方式。
谷歌搜索提供了大多数用于 android 实现或 Windows 手机的结果。
delphi - TListbox - OnChangeEvent 在多选时不会可靠触发
我正在使用 XE7 和 FMX。
我的问题是 TListbox 的 OnChange-Event 不能与多选一起正常工作(每次发生更改时它都不会触发)。
重现步骤:
- 创建一个 FMX 应用程序并将一个 TListbox 添加到他的表单中。
- 将项目添加到此列表框。
- 将列表框的“MultiSelectStyle”设置为“默认”。
- 处理 OnChangeEvent(设置断点或做某事......)。
- 现在运行项目并单击第一个 Item -> OnChange 已执行。
- 但如果再次单击第一项,则不会执行OnChange 。
可以告诉我如何解决此问题,以便每次选择更改时我都会收到一个事件。
delphi - 使用编辑框过滤列表框
我正在尝试使用编辑框过滤 Delphi 中的列表框,但它不起作用。这是我基于编辑框的 OnChange 事件的代码。
我希望当我在我的编辑框中键入时,列表框项目将被过滤。