问题标签 [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 回答
14859 浏览

delphi - 带按钮的字符串网格

第一个问题:

如何调用 stringgrid 中不可见的部分?您需要滚动才能看到它。
例如:
一个字符串网格中有 20 行,但一次只能看到 10 行。您需要滚动才能看到其他 10 个。“隐藏”的如何称呼?

第二个问题:

我知道这可能不是正确的方法,所以一些指针将不胜感激。
我有一个带有 1 个固定行的字符串网格。我在运行时添加 ColorButtons。所以我用按钮填充 1 列。我使用这个按钮来“插入/删除”行。只要所有网格都在“可见”部分中,它就可以很好地工作。当我“插入”新行并将按钮移动到“隐藏”部分时会出现问题。然后将最后一个按钮绘制到 Cell[0,0]。“隐藏”部分的其他按钮绘制正确。知道为什么会这样吗?我应该在 OnDraw 方法中找到一种方法来管理这个问题,还是有更好(正确)的方法来做到这一点?

代码:

0 投票
1 回答
930 浏览

delphi - ListView 和着色单元格

我有 ListView (vsReport) 和 StringGrid,我想要的是如果我单击 ListView 中的某个元素,StringGrid 中的特定单元格必须更改颜色。我该怎么做?

路径填充有 1(上移)和 0(右移),它从左下角开始,到右上角结束,我必须为这些单元格着色。


感谢您的回答,我解决了我的问题,但还有另一个小问题,我怎样才能让单元格中的文本可见?FillRect 填充整个单元格。

0 投票
1 回答
4025 浏览

lazarus - 如何在 Delphi TStringGrid 的固定行中更改单元格中的文本方向

我在表单上有一个标准的 TStringGrid。我在网格中有一个固定行,其中包含许多列,这些列都是 TGridColumns 对象。我已经使用对象检查器设置了列标题,默认方向是水平的。有什么方法可以使方向垂直(就像在 Excel 中的单元格中一样)?

0 投票
3 回答
14805 浏览

delphi - 从文本文件加载 StringGrid

如何将整数与空格分隔的文本文件加载到StringGrid?每个单元格的每个数字。网格必须是一个矩形,所以如果缺少某个数字,它应该用 0 填充。

这是我到目前为止所做的,但它需要已经设置了行数和列数。

0 投票
1 回答
1898 浏览

lazarus - 您如何在 TStringGrid 列标题(固定)上设置单击事件,以便在视觉上看起来像您正在按下按钮

我正在使用 Lazarus v0.9.30。我有一个带有 TStringGrid 的 TForm。我在网格中有一个固定的行,这是我所有列标题的位置。每列是一个 TGridColumn 对象,每列标题是一个 TGridColumnTitleObject。在对象检查器中查看时,没有可用于 TGridColumnTitle 的事件。我想要做的是能够单击列标题,并且在视觉上我希望它看起来像你正在按下一个按钮。我想拦截单击事件,然后对其执行操作(例如,按列文本排序,或者可能显示帮助屏幕)。有没有办法做到这一点?

0 投票
2 回答
2039 浏览

delphi - 在 Delphi XE2 中使用样式的字符串网格 - 滚动条不更新

我正在 Delphi XE2 中制作一个简单的应用程序,它专门使用“Carbon”样式。有一个包含数千行的大型字符串网格。我有一个循环遍历这个网格的记录的过程,做一些工作,并在网格中进行一些更改。随着流程循环,当前正在处理的行被突出显示(通过设置TStringGrid.Row)。

问题是当我将样式应用于此网格时,滚动条不会随着行的更改而改变位置。循环确实在处理每一行时正确突出显示它,但是当它接近列表末尾时,右侧的滚动条仍然一直位于顶部。

如何使网格的滚动条随之移动?

这是我如何循环的示例:

当我不使用任何样式时,一切正常。

0 投票
2 回答
4359 浏览

delphi - 如何获得 TStringGrid 中的单元格的提示,使其更流畅地出现?

我正在运行 Lazarus 0.9.30。

TStringGrid在表单上有一个标准,并希望在将鼠标指针移到列标题上时显示不同的提示。我正在使用此代码来执行此操作,并且它有点工作,但是当我实际上希望它随着鼠标指针移过它而更改时,您通常必须单击单元格以获取更改的提示。我将所有提示存储在一个集合中,我使用列索引作为键进行搜索。有没有办法更流畅地显示提示?

0 投票
1 回答
1246 浏览

lazarus - 如何将对象关联到 TGridColumns 对象

我正在运行 Lazarus 0.9.30。

我在表单上有一个标准的 TStringGrid,并且有一个在运行时动态添加 TGridColumns 对象的函数。我有一个对象集合,其中包含每列的所有属性(我在运行时从文件中读出),并且我想将每个对象与其对应的列标题相关联。

我已经尝试了下面的代码,但是在运行时,当我尝试访问列标题对象后面的对象时,我得到了一个返回的 'nil 对象。我怀疑发生这种情况的原因是网格单元(包含列标题)是空白的,并且您无法将对象与空的网格单元相关联。

0 投票
1 回答
2168 浏览

fixed - 在运行时将列动态添加到 TStringGrid 时如何避免固定列?

我正在使用 Lazarus 0.9.30.2。我有一个标准的 TForm,上面有一个标准的 TStringGrid。字符串网格在设计时没有列或行。在 Object Inspector 中设置了以下值。

我想在运行时添加一些 TGridColumns,并且能够这样做,但总是得到一个固定的列,这是我不想要的。为此,我编写了与下面的示例非常相似的代码。当我编译并运行它时,我得到以下信息。

在此处输入图像描述

如何在运行时去除固定列并留下剩余的列?

0 投票
1 回答
1010 浏览

background-color - 如何为 TStringGrid 的所有列标题单元格绘制不同颜色?

我正在运行 Lazarus 0.9.30.2。

我有一个 TForm,上面有一个 TStringGrid。每个列标题都是我在运行时动态添加到网格的 TGridColumns 对象。每个列标题都有一个与之关联的对象(我创建并存储在 TList 中)。我想绘制字符串网格的列标题单元格的背景,但我不希望所有单元格都是相同的颜色。根据与列标题关联的对象中属性之一的值,颜色会有所不同。

我知道有关于如何在 Stackoverflow 中绘制 TStringGrid 单元格的答案(示例),其中谈到了使用字符串网格 DrawCell 事件来绘制单元格,但我不确定如何调用此过程。

是否有另一个过程来识别感兴趣的单元格(即识别单元格的“矩形”属性),设置我想要的颜色,然后调用网格的通用 DrawCell 过程来进行实际着色?