问题标签 [tgrid]

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.

0 投票
6 回答
4609 浏览

delphi - 最有用的 Delphi TStringGrid (Grid) 替换建议

Delphi 的薄弱环节之一是网格(例如 TStringGrid),虽然它的基本工作很好,但当您需要打印它或自定义它的外观时,它变得更加困难。我已经使用它大约 15 年了,因此它非常嵌入我的应用程序中,随着时间的推移,我已经为 TGrid 到 RTF 转换(通过 MSWord 打印)提供了家庭推出的解决方案,并使用 TDrawGrid 进行了更多的定制。我的解决方案(仍然)必须在 Delphi 7 和 Delphi XE 中工作。碰巧的是,我的网格都不是数据库绑定的,它们都是在代码中填充单元格的。

现在我计划整理我的报告并“美化”我的表格,这意味着用更强大的实现替换网格。那里有很多负载,我有两个Developer Express Quantum GridTMS Grid Pack。尽管体验字体、颜色和打印​​的时间非常有限,但我希望能就我应该采用的许多网格/打印显示报告组合中的哪一种提出建议。我目前没有报告生成器,正在考虑使用 FastReports,但我愿意接受建议。

0 投票
2 回答
5045 浏览

delphi - Delphi Firemonkey TGrid如何更新

我有一个混合列(ImageColumn 和 StringColumn)的 TGrid。我可以使用工作正常的 onGetValue 事件填充它。我的问题是:

  1. 如何强制整个网格重建并引发 onGetValue 事件?我目前正在使用 UpdateStyle。

  2. 如何更新网格中的单个单元格?

0 投票
1 回答
2239 浏览

delphi - Firemonkey:样式化 tGrid 或替代 Grid/List 组件(虚拟)

我正在尝试基于 FireMonkey 创建我的第一个应用程序,但我碰壁了。我能找到的唯一虚拟列表控件是 tGrid。

这个组件很不错,但我不知道如何扩展或自定义它。我知道有 tCheckbox 列、tImage 列等,但是如果我需要 ButtonColumn 或类似的东西怎么办?

我还想根据它所代表的数据状态来设置一行的样式。

示例:如果行中表示的数据具有“Error=True”,则应显示为红色。

有没有人遇到过类似的问题?或者找到替代的虚拟列表/网格组件?甚至只是一些关于使用 tGrid 组件的提示。这些组件在所有数据库应用程序中都非常重要,因此它应该是一个非常常见的请求。

另外请注意,我认为 TGrid 不支持拖放行吗?

我查看 了 VirtualTreeViewFiremonkey 的 Firemonkey 版本以及大量数据

0 投票
3 回答
4040 浏览

c++builder - Firemonkey:在 Embarcadero C++ Builder XE3 上使用 TGrid

我正在尝试构建一个从数据库读取数据并使用 Firemonkey 中的 TGrid 将其显示为表的工具。我需要使用不同类型的列,例如 TCheckColumn 和 TPopupColumn,但找不到任何关于如何在 C++ Builder 中使用它们的好的指南或示例。

无论如何,我设法了解了 TStringColumn、TProgressColumn 的用法,用于在 TGrid 的事件 onGetValue 中设置单元格的值。

你们中有人知道如何为 TCheckColumn、TImageColumn 和 TPopupColumn 类型的列设置值吗?

谢谢丹尼尔

- -更新 - -

我设法使用了 TProgressColumn。这就是我在表单的构造函数中所做的:

这是 Grid1GetValue 方法:

- -更新 - -

如果我使用 OnSetValue 方法保存列的值

然后用 OnGetValue 方法设置它:

在我单击一个复选框后,所有其他复选框都会更改状态。所以组件可以正常工作......现在的重点是如何以正确的方式将 Value 设置为 true 或 false。

0 投票
1 回答
2404 浏览

delphi - Delphi XE4 Firemonkey Grid Control - 单独设置单元格样式

我们刚刚从 Delphi 2010 升级到 XE4 并第一次使用 FireMonkey,所以在黑暗中跌跌撞撞地试图弄清楚它是如何工作的。

根据不久前的查询,我试图让 TGrid 组件中的单个单元格根据某些规则以不同方式显示。我已经完成了 Mike Sutton 发布的有用代码:

Firemonkey Grid Control - 根据值设置单元格样式(通过 OnGetValue 函数调用)

我必须进行一些更改才能使其在 XE4 中编译;运行代码时一切正常,除了:

  1. FontFill 无法识别,因此暂时将其删除。
  2. 字体样式根本没有改变,无论如何它都显示为默认样式。

相关代码(其余的几乎与上面的链接相同):

IsImportant 标志设置正确,因此这似乎不是问题。

对此的任何帮助将不胜感激。提前为我可能遗漏的任何愚蠢行为道歉。

0 投票
2 回答
737 浏览

header - Tapestry如何设置网格组件的Headers?

我开始用挂毯开发,我有一个问题。实际上,我对挂毯中的表格和表格标题有疑问。我知道,如果您有一个用户类网格:

Tapestry 将生成类似于以下内容的 HTML:

我的问题是 Tapestry 是如何设置标题的值的?

我的意思是挂毯如何从“firstName”类中设置值“First Name”?

我希望我的问题很清楚。

谢谢你。

0 投票
1 回答
566 浏览

delphi - FireMonkey - workaround for the missing OnSetValue event in TPopupColumn

Changes in the TPopupColumn (TGrid) do not trigger the OnSetValue event so I cant get the value from it set by the user (GetValue works fine). The problem was already reported in the QualityCentral: http://qc.embarcadero.com/wc/qcmain.aspx/qcmain.aspx?d=113448

Have any of you found a workaround? Is there any other way to get the value from TPopupColumn in order to combine it with for example OnMouseDown event? I tried with numerous properties of TPopupColumn but with no effect.

I will appreciate any suggestions since I would really like to keep the TPopupColumn in my project.

I'm using Delphi XE5 with Update 1.

========================SOLUTION===========================

Based on the guide posted by Mike Sutton I end up adding the following line to the TPopupColumn.CreateCellControl function in FMX.Grid.pas file.

Than I saved a copy of the file and added it to my project which fixed the problem.

0 投票
1 回答
2117 浏览

delphi - 如何更改 FMX.TGrid 行的背景颜色取决于 XE4 中的值

我想知道如何在 Firemonkey TGrid/中更改整行的背景颜色TColumn。看到一堆类似的问题,但没有一个对我有帮助。我正在使用德尔福 XE4。TGrid可能包含TCheckColumnTStringColumn

0 投票
2 回答
639 浏览

ipad - 删除对象,禁用 TGrid 上的水平滚动(Delphi XE5 + iPad)

我目前正在开发一个 iPad 应用程序,该应用程序使用具有动态创建内容的 TGrid。

但这给了我一些问题:出于某种原因,我无法释放和释放添加到 TGrid 的对象(再次删除它们)。在 Windows 中,FreeAndNil 解决了这个问题,但显然 FreeAndNil 在 Mac Simulator 或 iPad 设备上什么也没做。我能想出的唯一解决方案是将 RowCount 设置为适当的数量,但控件仍然存在并且被覆盖。

还有可能以某种方式禁用 TGrid 中的水平滚动,还是我需要为此实现自定义控件?

0 投票
1 回答
3156 浏览

delphi - FireMonkey XE5 - Livebinding - TGrid - 单元格文本对齐

我有一个适用于 Windows 的 Firemonkey 桌面应用程序。我有一个TGrid通过可视化实时绑定TBindSourceDB组件填充的。我希望某些列的文本向右对齐,因为它们是数值。我已经尝试过:

  • onPainting事件
  • TTextCell通过数量获得控制权ColumnxRow
  • 对其进行类型转换并将TextAlignt属性设置为右侧

这些措施都没有使文本向右对齐。我试图在运行时设置它,但没有成功,TStyledControl将过程分配onApplyStyleLookupTTextCell.

有什么想法吗?应用程序运行,但没有任何反应。单元格文本仍然左对齐。