- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如何让cxGrid执行排序Latin-2 (ISO-8859-2) 编码?
我不希望网格依赖于 Windows 的区域设置。问题是我在斯洛文尼亚,但我需要用克罗地亚语进行排序。(目前 Ć,Č,Š 未正确排序)
可以吗?
最佳答案
您可以 Hook DBTableView 的 DataController 为 cxGrid 公开的 OnCompare 事件,并实现如下处理程序:
procedure TMyForm.cxGrid1DBTableView1DataControllerCompare(
ADataController: TcxCustomDataController;
ARecordIndex1, ARecordIndex2, AItemIndex: Integer;
const V1, V2: Variant;
var Compare: Integer );
var
S1, S2 : String;
CompareResult: Integer;
begin
S1 := V1;
S2 := V2;
CompareResult := CompareStringW( LANG_CROATIAN, 0, pWideChar( S1 ), -1,
pWideChar( S2 ), -1 );
case CompareResult of
CSTR_LESS_THAN : Compare := -1;
CSTR_EQUAL : Compare := 0;
CSTR_GREATER_THAN : Compare := 1;
end;
end;
如果 S1 = 'Ć,Č,Š' 并且 S2 = 'Ć,Ć,Š' 则 S1 > S2,我认为这是预期的。如果切换到 LOCALE_NEUTRAL,您会得到相反的结果。
将 V1 和 V2 转换为字符串时应小心,因为并非所有列都可以按所需方式转换。例如,日期可能需要特殊处理。
另请注意,如果函数失败,CompareStringW 将返回 0。完整的实现可能必须解决这个问题。
关于delphi - cxGrid Unicode 排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42005756/
我们正在 Delphi 2006 中与 devexpress 合作。 我们有一个 cxGrid。我们想要限制数字列的值输入,即 0 到 999 之间的整数。如果我将属性类型设置为 SpinEdit,则
有没有办法让 cxGrid (devexpress) 只接受大写字母?或者它只接受某些字段的大写字母?我在网格中找不到任何可以实现此目的的设置... 最佳答案 将Column.Properties设置
在cxGrid中,我有一列 bool 值(属性:复选框)。如何对此类列进行页脚摘要 (SUM),即对检查的记录数进行求和。 现在,如果我将其设置为 SUM,我的页脚摘要将显示所检查项目的负数。如何避免
我需要根据 Delphi 中的查询向 Tableview 添加一个简单的样式。我需要它看起来像这样: 我知道有一种按字段分组的方法,但我似乎不知道如何将 2 个主要标题字段添加到表的标题中。 最佳答案
我希望所有存在特定字段名称“hello”的行都被着色绿色的。我在 customdrawcell 上尝试过: if abstable1.fieldbyname('somename').asstring
我有一些网格,用户可以在其中输入从-到日期,并且希望在日期间隔与其他行日期间隔重叠的行上设置背景颜色。 现在我在数据集上使用 oncalc 事件来设置重叠标志,但这是一个缓慢的解决方案,我想知道它是否
如何更改 cxGrid 中当前选择的颜色? 谢谢。 最佳答案 您可以通过扩展 GridView 的“样式”属性并在“选择”样式的(新)样式存储库中创建新样式来为选择分配样式。双击在表单上创建的样式存储
如何让cxGrid执行排序Latin-2 (ISO-8859-2) 编码? 我不希望网格依赖于 Windows 的区域设置。问题是我在斯洛文尼亚,但我需要用克罗地亚语进行排序。(目前 Ć,Č,Š 未正
我运行此查询: procedure TForm1.cxButton1Click(Sender: TObject); begin cxGrid1DBTableView1.ClearItems; Data
我有一个 cxGrid,我可以根据某些字段中的值更改某些字段的背景颜色。这一切都工作得很好。但是,如果我更改网格数据中的某些内容,则在关闭并重新打开表单之前,颜色不会更新。 如果记录发生变化,调用什么
我对 DevExpress 完全陌生,属性和对象的数量让我感到毛骨悚然。 我创建了带有主详细信息 View 的 cxGrid。我只是不知道如何控制在详细信息 View 中选择记录。我想以编程方式选择特
我正在努力让 TcxGrid 每当用户在当前记录的最后一个字段上按 Enter 键时附加新记录,但是我没有找到任何可以帮助我实现此目的的属性。 我尝试使用以下代码设置 GridView (TcxGri
我知道执行以下操作会刷新查询。 query.Close; query.Open; 但是执行此操作后,它将焦点设置回 cxGrid 上的第一条记录。 有没有办法让当前记录在刷新查询后保持选中状态? 谢谢
我不想在实际数据库中添加数据库字段以用于选择目的,因此我想使用 cxGrid 的功能在网格中添加单独的字段。我添加了该字段,将其命名(选择),将其属性更改为“复选框”的属性,但似乎我无法使用它,因为它
这有点难以解释,请耐心等待。当我在其中一列中编辑文本字段时,当我按回车键时,转到编辑文本下的新行,以便网格基本上扩展。选项-View-CellAutoHeight 设置为 true 会展开单元格,但编
我正在将现有数据库驱动的应用程序从 D7 转换为 D2009,因此我将无法再使用 dxGrids。有没有自动方法将 dxGrid 组件转换为 cxGrid?如果没有,您会建议我怎样才能腾出时间手动转换
我有一个 cxGrid,我在其中应用过滤器来选择某些记录。完成后,我希望能够更新网格中的字段/列来标记要用于下一个操作的每条记录。我一直没能弄清楚这个问题 也许我在描述我的问题时不够具体。我有 cxG
Delphi-7,DevExpress ExpressQuantumGrid Suite For Delphi.BCB v5.8 Fianl 我在 cxGrid 中有一个名为 emaillist_id
除了通过下面给出的方法在单元格上获取 LookupComboBox 之外,还有其他方法吗? - 选择一列 - 从属性中选择 LookupComboBox -填写所需数据,例如listsource、li
我正在尝试使用 TcxGrid 中的 TFDQuery 添加的一些 ADT 子字段。当我使用 ADT 字段中的子字段添加列时,该列不显示字段值,并且该字段为“Ready Only”。如何在 cxgri
我是一名优秀的程序员,十分优秀!