如何在 Delphi 的 devexpress VCL 中转换此代码

How to convert this code in devexpress VCL for Delphi

您好,我想将此代码转换为 VCL Delphi:

    // Create an empty list.
ArrayList rows = new ArrayList();
// Add the selected rows to the list.
for (int i = 0; i < gridView1.SelectedRowsCount; i++) {
   if (gridView1.GetSelectedRows()[i] >= 0)
      rows.Add(gridView1.GetDataRow(gridView1.GetSelectedRows()[i]));
}
try {
   gridView1.BeginUpdate();
   for (int i = 0; i < rows.Count; i++) {
      DataRow row = rows[i] as DataRow;
      // Change the field value.
      row["Discontinued"] = true;                             
   }
}
finally {
   gridView1.EndUpdate();
} 

我正在尝试做同样的事情,但在 VCL 中没有 SelectedRowsCount 或 GetSelectedRows 我在哪里可以找到想法?

只是执行您要查找的内容的程序: 发件人是您的 gridView1,isConnected 是您列的值。

procedure TForm1.ChangeColumn(Sender: TcxCustomGridTableView; isConnected: boolean);
var i: integer; AColumn: TcxCustomGridTableItem;
begin
  if ((TcxGridDBTableView(Sender).Controller.SelectedRecordCount=0)
    or (TcxGridDBTableView(Sender).Controller.SelectedRecords[0] = nil))
  then exit;

  AColumn:= TcxGridDBTableView(Sender).GetColumnByFieldName('Discontinued');
  if AColumn = nil then exit;

  TcxGridDBTableView(Sender).DataController.BeginFullUpdate;
  try
    for i:= 0 to TcxGridDBTableView(Sender).Controller.SelectedRecordCount-1 do
    begin
        TcxGridDBTableView(Sender).Controller.SelectedRecords[i].Values[AColumn.index] := isConnected;
    end;

  finally
    TcxCustomGridTableView(Sender).DataController.EndFullUpdate;
  end;
end;