问题标签 [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.
c++ - C++ builder TstringGrid 从特定单元格获取字符串
大家好,我有 C++ tStringGrid
我想从具有坐标的特定单元格中获取字符串
我试过这个但没有运气:
错误:
请帮忙。
delphi - 更改 Firemonkey StringGrid 中的文本大小
如何更改字符串网格标题中的文本大小?
delphi - 使用delphi列出字符串网格中目录中的所有文件
我正在使用 Delphi 7,我想在字符串网格中列出给定目录中的所有文件(每行一个文件,全部在 1 列中)。我已经搜索了大约一个小时,但找不到任何有关如何执行此操作的示例,因此您可以提供任何帮助将不胜感激。
delphi - 对 Firemonkey StringGrid 进行排序的示例
我对 Firemonkey Stringgrid 进行排序的基本尝试,因为找不到任何其他示例。我欢迎任何关于最好地实现这一目标的优化或其他建议。我的代码基本上获得了选择要排序的列,并使用该排序顺序完成其他列:
提前感谢保罗
delphi - 为什么 TStringGrid 的子控件不能正常工作?
我将复选框 ( ) 放在第一列TCheckBox
的字符串网格 ( ) 中。TStringGrid
复选框显示良好,位置正确,鼠标悬停时会发光以响应鼠标。但是,当我单击它们时,它们不会切换。他们对点击做出反应,并突出显示,但最终,实际Checked
属性没有改变。更令人费解的是,一旦它们存在,我没有任何代码更改这些值,我什至没有OnClick
为这些复选框分配事件。另外,我将这些复选框默认为unchecked,但是当显示时,它们被选中。
复选框与添加到列表中的每条记录一起创建,并在记录指针内引用,该记录指针分配给要放置复选框的单元格中的对象。
用于单元格突出显示的字符串网格破解:
包含复选框的记录:
复选框的创建/销毁:
将行添加到网格:
Grid 的 OnDrawCell 事件处理程序:
这是单击时的外观...
这可能是什么原因造成的?它绝对不会改变Checked
我代码中任何地方的属性。当放置在网格中时,复选框本身会出现一些奇怪的行为。
编辑
我做了一个简短的测试,我TCheckBox
在表格上放了一个常规。检查/取消检查很好。然后,在我的表单OnShow
事件中,我将复选框更改Parent
为这个网格。这一次,我得到了相同的行为,单击时不切换。TCheckBox
因此,当 a有另一个控件作为其父控件时,它似乎没有正确反应。如何克服这一点?
delphi - 以excel格式将多个单元格从网格复制到剪贴板?
我正在开发一个连接到 SQL 数据库、取回数据集并在网格中显示该数据的工具。用户必须能够选择一个单元格块(只是矩形)并按CTRL+C将其复制到剪贴板。
我该怎么做呢:
以可以粘贴到 Excel 中的格式?我希望已经为此做好了准备。它不需要 Excel 等所有剪贴板功能,只需突出显示一组矩形单元格并将其复制到剪贴板即可。
如果可以在其中完成,
TStringGrid
我希望将我的功能保留在其中,但也可以与支持此功能的组件一起使用。
delphi - 平滑滚动字符串网格
我需要一个可以平滑滚动的字符串网格,而不是锁定在顶行/左列位置。当您滚动 aTStringGrid
时,左侧可见列和顶部可见行沿顶部/左侧边缘对齐到位。我需要用户能够平滑滚动,而不是将这些边缘锁定到位。
我认为这不可能在 VCL 中修改TStringGrid
(或TCustomGrid
就此而言),因为它依赖于诸如TopRow
、LeftCol
、VisibleRowCount
等属性。我很确定我需要第三方控件,但我会如果可能的话,我喜欢使用TStringGrid
,因为我已经有很多代码围绕着它。如果我确实需要第三方网格,那么我希望它能够像TStringGrid
.
delphi - 如何防止滚轮选择 TStringGrid 的最后一行?
我有一个 TStringGrid 有几行,我在其中实现了某种“只读”行。更准确地说,我不允许用户单击倒数第二行。如果用户单击最后一行,则没有任何反应;焦点不会移动到该行的单元格。
我有代码(在 KeyDown 中),一切都很顺利。但是,如果用户单击最上面一行,然后使用鼠标滚轮向下滚动,最终焦点将移动到倒数第二行。知道如何防止这种情况吗?
delphi - 从外部应用程序将数据写入 Delphi TStringGrid
我有一个用 Delphi 编写的遗留应用程序,需要建立一个机制
- 阅读和
- 写作
来自/到 TStringGrid 的数据。
我没有应用程序的源代码,没有自动化接口,供应商不太可能提供。
因此我创建了
- 一个 C++ DLL,它注入
- 一个 Delphi DLL(由我编写)到
- 遗留应用程序的地址空间。
DLL 2 可以访问遗留应用程序内的 TStringGrid 实例,读取单元格值并将它们写入调试日志。
阅读效果很好。但是,当我尝试使用类似的调用将数据写入网格单元格时
发生访问冲突。
这是代码:
如何在不出现访问冲突问题的情况下将数据写入 TStringGrid?
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。
顺便说一句,数据是只读的,仅用于显示。
当然这是一个非常常见的问题?