问题标签 [tstringgrid]

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 投票
1 回答
1919 浏览

c++ - C++ builder TstringGrid 从特定单元格获取字符串

大家好,我有 C++ tStringGrid

我想从具有坐标的特定单元格中获取字符串

我试过这个但没有运气:

错误:

请帮忙。

0 投票
1 回答
4595 浏览

delphi - 更改 Firemonkey StringGrid 中的文本大小

如何更改字符串网格标题中的文本大小?

0 投票
2 回答
15010 浏览

delphi - 使用delphi列出字符串网格中目录中的所有文件

我正在使用 Delphi 7,我想在字符串网格中列出给定目录中的所有文件(每行一个文件,全部在 1 列中)。我已经搜索了大约一个小时,但找不到任何有关如何执行此操作的示例,因此您可以提供任何帮助将不胜感激。

0 投票
0 回答
4112 浏览

delphi - 对 Firemonkey StringGrid 进行排序的示例

我对 Firemonkey Stringgrid 进行排序的基本尝试,因为找不到任何其他示例。我欢迎任何关于最好地实现这一目标的优化或其他建议。我的代码基本上获得了选择要排序的列,并使用该排序顺序完成其他列:

提前感谢保罗

0 投票
3 回答
4423 浏览

delphi - 为什么 TStringGrid 的子控件不能正常工作?

我将复选框 ( ) 放在第一列TCheckBox的字符串网格 ( ) 中。TStringGrid复选框显示良好,位置正确,鼠标悬停时会发光以响应鼠标。但是,当我单击它们时,它们不会切换。他们对点击做出反应,并突出显示,但最终,实际Checked属性没有改变。更令人费解的是,一旦它们存在,我没有任何代码更改这些值,我什至没有OnClick为这些复选框分配事件。另外,我将这些复选框默认为unchecked,但是当显示时,它们被选中

复选框与添加到列表中的每条记录一起创建,并在记录指针内引用,该记录指针分配给要放置复选框的单元格中的对象。

用于单元格突出显示的字符串网格破解:

包含复选框的记录:

复选框的创建/销毁:

将行添加到网格:

Grid 的 OnDrawCell 事件处理程序:

这是单击时的外观...

对鼠标点击有反应但不改变

这可能是什么原因造成的?它绝对不会改变Checked我代码中任何地方的属性。当放置在网格中时,复选框本身会出现一些奇怪的行为。

编辑

我做了一个简短的测试,我TCheckBox在表格上放了一个常规。检查/取消检查很好。然后,在我的表单OnShow事件中,我将复选框更改Parent为这个网格。这一次,我得到了相同的行为,单击时不切换。TCheckBox因此,当 a有另一个控件作为其父控件时,它似乎没有正确反应。如何克服这一点?

0 投票
1 回答
6939 浏览

delphi - 以excel格式将多个单元格从网格复制到剪贴板?

我正在开发一个连接到 SQL 数据库、取回数据集并在网格中显示该数据的工具。用户必须能够选择一个单元格块(只是矩形)并按CTRL+C将其复制到剪贴板。

我该怎么做呢:

  • 以可以粘贴到 Excel 中的格式?我希望已经为此做好了准备。它不需要 Excel 等所有剪贴板功能,只需突出显示一组矩形单元格并将其复制到剪贴板即可。

  • 如果可以在其中完成,TStringGrid我希望将我的功能保留在其中,但也可以与支持此功能的组件一起使用。

0 投票
2 回答
4023 浏览

delphi - 平滑滚动字符串网格

我需要一个可以平滑滚动的字符串网格,而不是锁定在顶行/左列位置。当您滚动 aTStringGrid时,左侧可见列和顶部可见行沿顶部/左侧边缘对齐到位。我需要用户能够平滑滚动,而不是将这些边缘锁定到位。

我认为这不可能在 VCL 中修改TStringGrid(或TCustomGrid就此而言),因为它依赖于诸如TopRowLeftColVisibleRowCount等属性。我很确定我需要第三方控件,但我会如果可能的话,我喜欢使用TStringGrid,因为我已经有很多代码围绕着它。如果我确实需要第三方网格,那么我希望它能够像TStringGrid.

0 投票
2 回答
4135 浏览

delphi - 如何防止滚轮选择 TStringGrid 的最后一行?

我有一个 TStringGrid 有几行,我在其中实现了某种“只读”行。更准确地说,我不允许用户单击倒数第二行。如果用户单击最后一行,则没有任何反应;焦点不会移动到该行的单元格。

我有代码(在 KeyDown 中),一切都很顺利。但是,如果用户单击最上面一行,然后使用鼠标滚轮向下滚动,最终焦点将移动到倒数第二行。知道如何防止这种情况吗?

0 投票
2 回答
2400 浏览

delphi - 从外部应用程序将数据写入 Delphi TStringGrid

我有一个用 Delphi 编写的遗留应用程序,需要建立一个机制

  1. 阅读和
  2. 写作

来自/到 TStringGrid 的数据。

我没有应用程序的源代码,没有自动化接口,供应商不太可能提供。

因此我创建了

  1. 一个 C++ DLL,它注入
  2. 一个 Delphi DLL(由我编写)到
  3. 遗留应用程序的地址空间。

DLL 2 可以访问遗留应用程序内的 TStringGrid 实例,读取单元格值并将它们写入调试日志。

阅读效果很好。但是,当我尝试使用类似的调用将数据写入网格单元格时

发生访问冲突。

这是代码:

如何在不出现访问冲突问题的情况下将数据写入 TStringGrid?

0 投票
3 回答
8033 浏览

delphi - 如何快速将多行添加到 TStringGrid?

我在谷歌上搜索并找到了很多建议,但这一切似乎都是几年前的事情,而且没有任何帮助。

我有一个包含 8 列的字符串网格,一旦我得到超过几百行,就需要 2 秒以上的时间来填充(我使用 GetTickCount 进行了比较)。

我试过了StringGrid.Perform(WM_SETREDRAW, 0, 0)0, 1最后)。 Visible := False我在更新时尝试设置。两个都没用。

没有BeginUpdate()方法。

有什么建议吗?德尔福 XE2 启动器。如果经过试用和测试,我愿意使用 FOSS 3rd 方 VCL 字符串网格。


[更新] 使用 TDrawGrid ...“TDrawGrid 没有属性“单元格”,就像它的兄弟 TStringGrid 一样。您的代码必须计算显示数据的位置,然后它必须在“画布”上绘制数据表示“的网格。”

这对我来说听起来像是很多工作:-(

使用 VirtualTreeView - 如果速度足够快,听起来还可以。我只是没有任何子节点。(update++我刚刚在主页上读到这个“虚拟树视图非常快。添加一百万个节点只需要700毫秒”)。那么速度上没有问题。但是只使用字符串网格会很好。尤其是用户可以单击和排序的地方。

或者,字符串网格只有 20 行高。也许我可以在用户滚动时处理滚动条点击并清除并重新填充这 20 行?

[进一步更新] 我将代码从 TStringGrid 更改为 TListView Beginupdate()),但这产生的差异可以忽略不计。操作,我忘记了“虚拟模式”-brb。

顺便说一句,数据是只读的,仅用于显示。

当然这是一个非常常见的问题?