- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在 Delphi 2010 中,我需要显示一个网格,该网格具有大约 15 列 x 5 行的水平滚动条。
我选择使用 StringGrid。
但是,当鼠标按钮向下拖动水平滚动条时,我希望网格实时滚动。
StringGrid 组件似乎不会实时滚动。它会等到鼠标按钮释放后再更新列并在必要时滚动。
此外,水平滚动条按钮(就是它的名字)与列数不成正比。对于位于底行的向下箭头,移动到右侧下一列的顶部...
这些看起来像是常见的需求,所以我很惊讶没有在 TStringGrid 中找到它们。
关于解决这两个问题的方法有什么建议吗?我可以使用 DbGrid 或其他标准组件,但我的偏好是如果可以避免的话不使用商业网格。我不会使用共享软件或免费软件...
TIA
最佳答案
对于第一个问题,您可以在StringGrid的Options
中设置goThumbTracking
在设计时或运行时:
StringGrid1.Options := StringGrid1.Options + [goThumbTracking];
对于第三个问题,您可以通过使用控件的键盘事件处理程序来提供所需的功能。一个例子;
procedure TForm1.StringGrid1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
var
StringGrid: TStringGrid;
begin
StringGrid := Sender as TStringGrid;
case Key of
VK_DOWN:
if StringGrid.Row = StringGrid.RowCount - 1 then begin
Key := 0;
StringGrid.Row := StringGrid.FixedRows;
if StringGrid.Col = StringGrid.ColCount - 1 then
StringGrid.Col := StringGrid.FixedCols
else
StringGrid.Col := StringGrid.Col + 1;
end;
VK_UP: //...;
VK_RIGHT: //;
VK_LEFT: //;
end;
end;
对于第二个问题,滚动代码似乎隐藏在TCustomGrid
的私有(private)方法中。我不知道如何实现这一目标..
关于delphi - 当水平滚动条移动时 StringGrid 实时更新?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4111553/
我在使用 TStringGrid 和弹出菜单时遇到问题 我想知道从弹出菜单中选择一个项目时上次处于事件状态的单元格的行/列。但是,当我单击弹出菜单时,StringGrid.Row 返回为 -1。 我试
如何获取 stringgrid 中选定单元格或范围的总和值?请注意,有时这些单元格包含字符串值! 我尝试了GridCoord,但它效果不佳,因为有时会有“隐藏列”。 procedure TMainSh
我想将备忘录的内容复制到 TStringGrid。 如果字符串之间有空格或间隙,则应将该单词添加到 StringGrid 中其自己的单元格中。 因此,假设我的自动换行备忘录包含如下信息: 如何将该信息
我想以自动换行格式在字符串网格单元格中显示一个长字符串,并找到了以下代码来执行此操作: procedure TForm1.StringGrid1DrawCell(Sender: TObject; AC
我正在这样做: procedure TForm1.Button1Click(Sender: TObject); var dtStart: TDateTime; I: Integer; begin
我在网上找到了很多解决方案,但它们都不起作用,因为 StringGrid1.ColumnCount 属性是只读的。我正在使用 Delphi 10 Seattle。 我有一个 StringGrid1,我
我想知道如何以编程方式确定字符串网格的单元格中的数据已被修改? 我在表单中有一个字符串网格。 stringgrid 的数据是从数据库加载的。如果用户修改了数据,我想更改数据库中的数据。 请分享代码。
我在我的应用程序中使用stringgrid。数据从数据库(后端mysql)获取并显示在stringgrid中。 我想在每行的状态单元格中插入图像。即 if status =online t
嗨,有谁知道是否可以将图片显示为字符串网格的背景,或者是否有人知道任何可以执行此操作的免费网格组件。 谢谢 科林 最佳答案 您可以使用支持所有者绘制的TDrawGrid(或TStringGrid),并
我尝试将数据从 StringGrid 插入到 Oracle DB 表中,我尝试如下。 function TfrmMapping.LoadtoTable: Boolean; var I, J: In
我必须将 StringGrid(其单元格)中的文本居中对齐,并且我正在使用您在此处看到的代码。我在另一个答案中找到了它,并编辑了一些内容。 procedure TForm1.StringGrid1Dr
我在 Delphi 7 中有一个字符串网格,有 0..N 行。有一个列表框,其中包含从 0..N 开始的数字如果用户单击列表框 number 中的任何数字,则应在字符串网格上选择该行号。 所以我有这个
在 Delphi 2010 中,我需要显示一个网格,该网格具有大约 15 列 x 5 行的水平滚动条。 我选择使用 StringGrid。 但是,当鼠标按钮向下拖动水平滚动条时,我希望网格实时滚动。
我一直在寻找解决方案,但没有任何运气。有谁知道一个简单的方法来做到这一点?例如,我想拉伸(stretch)网格的第二列以适应网格的宽度! 最佳答案 使用 ColWidths 属性,如下所示: with
任何人都可以为 Delphi 推荐一个好的 stringgrid 组件,它可以像 Microsoft Excel 一样处理每个单元格上的注释吗?我正在网上搜索,但还没有找到太多,如果这里有人使用过类似
我正在重写字符串网格的OnDrawCell。在某些情况下,我想在系统进行绘图时使用用于所选行的常规 TColor(无 OnDrawCell)。 那是什么颜色? clXXX ? 最佳答案 在 Delph
使用 Delphi 2010 和 TStringGrid 组件,我当前显示数据库查询中的五个字段。 这是我正在做的事情的简单示例 //设置网格 procedure TGriddata.FormCrea
我的表单中有一个 StringGrid,当我按下 Button1 时,我会在该网格内移动一些单元格。这是一个例子: 当我按下Button1时,我从情况A转到情况B。但我也希望能够做相反的事情:我的意思
我有一个 StringGrid,它能够使用 OnDraw 方法绘制新线。 它工作正常,但现在我希望用户可以使用键盘输入新行。目前,必须将多行文本复制粘贴到 StringGrid 中。 每次按下 VK_
在 StringGrid 组件后代中,我想根据单元格的值更改弹出提示消息。我的编码: procedure TForm.GridMouseEnterCell(Sender: TObject; ACol,
我是一名优秀的程序员,十分优秀!