DBGrid 组件如何确定要显示的初始列宽?

发布于 2024-10-27 03:04:53 字数 180 浏览 2 评论 0原文

我在 DBGrid(实际上是 TMS 的 DBGrid)中保存/重新加载列宽度时遇到了困难。 TMS 包括保存/重新加载列宽度的内置方法,这些方法工作正常(我可以读取 ini 文件中的值)。然而,我的代码中的某个地方正在覆盖存储的值。我不太了解如何确定 col 宽度来调试问题。

网格最终连接到 ClientDataSet 文件。

I'm having a difficult time saving/reloading col widths in a DBGrid (actually TMS's DBGrid). TMS includes built-in methods to save/reload col widths, which are working correctly (I can read the values in an ini file). Something, somewhere in my code is overriding the stored values, however. I don't know enough about how col widths are determined to be able to debug the issue.

The grid is ultimately connected to a ClientDataSet file.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

菩提树下叶撕阳。 2024-11-03 03:04:53

TColumn 有一个名为 DefaultWidth 的方法,特别是当宽度尚未显式分配给列时(对于动态创建的网格列来说是这样),会调用该方法。

基本上,它使用相应的字体,获取列的关联字段的显示宽度(以字符为单位),并将其乘以 0 字符的宽度(以像素为单位)。

然后,它将结果与标题的宽度(以像素为单位)进行比较并返回较大的值。

TColumn has a method named DefaultWidth, which is called in particular when the width hasn't been explicitly assigned to the column (which is true for the dynamically created grid columns).

Basically, it takes the column's associated field's display width (in chars) and multiplies it by the width of the 0 character (in pixels), using the corresponding font.

It then compares the result to the width of the title (in pixels) and returns the greater value.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文