问题标签 [dbgrid]
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++builder - 禁用 TDBGrid 上的编辑选项不起作用
在运行时动态创建 TDBGrid 组件时,我不能禁止用户编辑单元格中的值。这就是我试图完成这种行为的方式:
在表单设计器中禁用dgEditing时,一切正常。我找不到这两种情况之间的区别。我应该怎么做才能禁用 DBGrid 单元格的编辑?
delphi - 当 TDBGrid.DefaultDrawing 为 false 时,如何正确绘制全行选定 TDBGrid 的所有者?
当你有一个 TDBGrid,全行选择,并且总是显示选择,即使没有聚焦,并且你想完全拥有它,你可以选择一个不推荐使用的事件OnDrawDataCell
和一个新事件DrawColumnCell
,我选择了后者并尝试这:
让我抓狂的是 DefaultDrawColumnCell 代码没有绘制焦点指示(突出显示颜色和焦点矩形),而且我确定我应该调用 DrawCellHighlight 而不是执行上面所做的 FillRect hack。
如果我打开 DefaultDrawing,我会遇到一组故障(奇怪的字体绘制问题),如果我关闭它,我会遇到另一组故障(即使 gdSelected 也没有突出显示)。
DBGrids.pasDefaultDrawColumnCell
中的代码只是绘制文本。很明显,如果你自己接管所有的绘图代码,你应该做更多的事情。但是,内置在 Grids.pas 中的高亮绘图代码(DBGrids.pas 所依赖的)并非旨在从该上下文中调用。我不知道我是否应该直接调用DrawCellHighlight
(如上所示),并找出 Col 和 Row 值,或者我是否应该编写自己的复杂版本的 TCustomGrid.DrawCellHighlight 来手动处理所有各种情况。
当然,这很简单,很明显,我只是忽略了它。请注意,我必须关闭 DefaultDrawing,因此我必须完全从我的所有者绘制事件中进行绘制,并且我必须能够在主题服务不可用时运行,并且我必须在主题服务可用时使用它们。所以我需要直接调用 TCustomGrid.DrawCellHighlight (我不知道怎么做),或者我需要完全重新实现它。
delphi - dbgrid 自动适应表单
我在 BDS 2006 中使用过 DBGrid。它有 6 列在运行时填充。一列的数据类型是 mysql 数据库中的 char(150)。因为在从数据库检索到 dbgrid 时,它需要长度,并且列通过滚动条变得更宽,并且一些列保持隐藏。所以我的问题是如何将 dbgrid 的这些列适合表格?
delphi - EhLib DBGridEh 滚动问题
我在我的应用程序中
使用EhLib DBGridEh ,当我开始使用 Scrollbar 滚动它时,我遇到了高亮问题。
如果我不选择网格中的单元格,那么突出显示将正常工作。
但是,如果我选择单元格并开始使用ScrollBar 滚动,则只会突出显示一个单元格而不是整个原始单元格,并且之前的原始单元格也会被突出显示。
这些你可以在图片上看到。
就在几周前,当我使用鼠标滚轮滚动网格时,我遇到了同样的情况。我通过添加对应用程序消息的处理解决了这个问题。
有在我的网格中启用的属性的完整列表:
选项
- dg编辑
- dg 标题
- dg指标
- dgColumnResize
- dgColLines
- dgRowLines
- dgTabs
- dgAlwaysShowSelection
- dgMultiSelect
选项Eh
- dghFixed3D
- dghResizeWholeRightPart
- dghHighlightFocus
- dghClearSelection
- dghMultiSortMarking
- dghEnterAsTab
- dghRowHighlight
vb6 - 使用 Visual Basic 6 中的数据控件和数据源从 DBGrid 过滤记录
我遇到了这个问题,当用户在文本字段中输入信息时,我想过滤网格的结果。
实际上我有文本字段、网格(一个 DBGrid 控件)和数据控件,但我不知道如何过滤插入文本字段的网格。
mysql - 组合 DBGrid 列值
我的应用程序中有一个 BDS 2006 的 DBGrid 组件。网格快照如下。
DBGrid 组件连接到 MySQL 数据库,该数据库在运行时被填充。我使用的查询是:
我想显示BILL NO
和Machine id
asBILL NO
并且值应该是 2_1,如果Machine id
是 2 并且BILL NO
是 1。知道该怎么做吗?
编辑1
这个查询给我的结果如下
它给出 machineandbillno=billno+pcid
delphi - 每当显示 DBGrid 时,如何获取要调用的方法?
TMS 的 DBStringGrid 组件有一个自动调整行高的内置方法。我了解该方法工作所需的属性设置,并且在调用它时效果很好。
我希望网格的行在显示网格时自动调整大小,但我不知道在哪里放置方法调用。我认为组件的 OnCustomCellDraw 事件将是正确的选择,但这只会导致与无限循环相关的闪烁和内存使用(即使 grid.doubleBuffering 设置为 true)。
如果我希望在显示网格的任何时候调用 AutoSizeRows,你会建议我在哪里调用它?
更新:Ken 的回答很好,但我也发现将调用放在 DataSource 的 OnDataChange 事件中,每当数据库进入编辑模式时,可能对我的目的同样有效。
delphi - 如何格式化 DBGrid 列以显示两个小数位?
我想格式化特定的单元格以强制保留两位小数。数据来自 ElevateDB 存储过程并连接到 TDataSource。
编辑:SQL 编程注意:
我不确定这是否只是 ElevateDB 问题。在了解Fields Editor之前,我尝试通过在存储过程中使用 CAST (NumericField as varchar(10)) 语句在 SQL 级别格式化数据。通过这样做,它不会在该特定字段的字段编辑器中 公开DisplayFormat属性。
当我从存储过程中删除 CAST() 语句时,DisplayFormat属性出现在Fields Editor中。
delphi - 如何在delphi 2010中显示父类别?
好的,我正在使用 Embarcadero Delphi 2010。目前我正在使用flib.mdb
在该文件中命名的 Access 数据库文件,我创建了一个名为的表MCategory
,其中有 4(四)列命名:codecategory
作为文本和主键,parentcategory
作为文本,category
作为文本,notes
作为文本。
对于数据库连接,我使用 ADOConnection。对于查询,我使用 ADOQuery。对于表,我使用 ADOTable。
因为代码是使用前缀自动生成的,但对于示例,我使用常规数字作为字符串。
只有一个ROOT:codecategory="0" // parentcategory="" // category="ROOT"
不允许添加另一个ROOT(父类别为空的那个)
我的问题是如何重新屏蔽所有父类别,如下图所示?以及如何在 DBGrid 上查看它?
我应该使用递归吗?有什么简单的方法可以做到吗?
还有请在 Delphi 2010 中使用源代码.... ^^
delphi - 在运行时更改 dbgrid 选项
我想更改 DBGrid.Option。我找到了以下代码:
但不能正常工作并报错[dgEditing]。我想启用或禁用 [dgEditing],[dgRowSelect] 模式。
非常感谢,非常感谢。