Shepot
![](http://forum.ru-board.com/board/avatars/KillerGoldfish.gif)
Junior Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Bill_PHO Цитата: Имеется cxGrid (ver.6.47), в котором отмечено несколько строк. Требуется: 1. узнать количество отмеченных строк 2. записать в нужную колонку отмеченных строк некое значение | У меня в проекте используется такой код, чтобы, когда редактируешь одну ячейку, значение менялось во всех отмеченных строках: Код: procedure TMyForm.View0EditValueChanged(Sender: TcxCustomGridTableView; AItem: TcxCustomGridTableItem); var I, AColIndex: Integer; Value: Variant; AFocusedRecordIndex: Integer; begin View0.OnEditValueChanged := nil; // чтобы не порождать рекурсию AColIndex := View0.Controller.FocusedColumn.Index; // запомним индекс колонки Value := View0.Controller.EditingController.Edit.EditValue; // получим новое значение ячейки View0.DataController.BeginFullUpdate; View0.Controller.EditingController.Edit.LockChangeEvents(True,False); View0.Controller.EditingController.Edit.PostEditValue; // заменим значение в ячейке AFocusedRecordIndex := View0.DataController.FocusedRecordIndex; // запомним, в какой мы строке try for I := 0 to View0.Controller.SelectedRowCount - 1 do // перебираем все отмеченные строки begin View0.DataController.FocusedRecordIndex := View0.Controller.SelectedRows[ I ].RecordIndex; // фокусируем очередную строку View0.DataController.SetEditValue(AColIndex, Value, evsValue); // заменяем в ней значение end; finally View0.DataController.FocusedRecordIndex := AFocusedRecordIndex; View0.Controller.EditingController.Edit.LockChangeEvents(False,False); View0.DataController.EndFullUpdate; View0.OnEditValueChanged := View0EditValueChanged; end; end; | |