2016-02-17 43 views
-3

你好,我想这个代码转换成VCL德尔福:如何将此代码转换成的DevExpress 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在哪里可以发现虽然?

+5

堆栈溢出不是一个代码转换服务.. – stuartd

+0

如果有人到VCL会知道如何把这段代码转换。我无法在gridview中找到这些方法 – ververicka

+0

该组件是否不附带文档? – stuartd

回答

2

只要你做什么程序,你在找什么: 发件人是你的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; 
+0

非常感谢 – ververicka