循环cxGrid时如何访问TcxEditRepositoryComboBoxItem中的选定项?

时间:2016-12-09 17:14:06

标签: delphi vcl tcxgrid

我的表单上有一个保存按钮,它循环遍历tcxgrid的所有行并读取其值。我试图读取其中一个列中的组合框的值,但是我需要读取Key值而不是它的文本。

for I := 0 to tv.DataController.RecordCount - 1 do
begin
  Location := tv.DataController.Values[I, colLocation.Index];
end;

colLocation是组合框,但这样做会使我选择的文本不是ItemIndex值。有线索吗?

感谢

1 个答案:

答案 0 :(得分:2)

如果您询问如何在当前网格行的ComboBox Items属性中获取数字索引,则可以使用此类代码执行此操作

procedure TForm1.ProcessComboBox;
var
  I,
  Index : Integer;
  S : String;
  V : OleVariant;
begin
  for I := 0 to tv.DataController.RecordCount - 1 do
  begin
    V := tv.DataController.Values[I, colLocation.Index];
    S := V;
    //  if the RepositoryItem of colLocation is set to cxEditRepository1ComboBoxItem1
    //  you can do
    Index := cxEditRepository1ComboBoxItem1.Properties.Items.IndexOf(S);

    //  OR, if the Properties property of colLocation is set to ComboBox you could do
    //  Index := TcxComboBoxProperties(colLocation.Properties).Items.IndexOf(S);

    S := IntToStr(Index);
    Caption := S;
  end;
end;

如果这不能回答您的问题,那么您最好能够准确地解释您想要的内容。