cxGrid에서 원하는 위치에 또는 검색된 위치에 Focus를 옮기고 Editong모드로 만들고자 할때 사용합니다.
아래 예제는 그룹 또는 소트가 되어도 컬럼이 어디에 있던 원하는 위치로 이동해 줍니다.
요기서 중요한것은 GetRowIndexByRecordIndex 함수입니다.
이 넘은 RecordIndex를 RowIndex로 바꿔줍니다.
따라서, RecordIndex를 이용하여 값을 찾다가 찾으면 RowIndex로 Focus를 이동합니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
cxGrid1.SetFocus; with cxGrid1BandedTableView1 do begin Controller.ClearSelection; for I := 0 to DataController.RecordCount - 1 do begin if VarToStr( DataController.Values[ I, cxGrid1BandedTableView1Column9.index ] ) = '' then begin Controller.FocusedRowIndex := DataController.GetRowIndexByRecordIndex( I, True ); Controller.FocusedColumnIndex := cxGrid1BandedTableView1Column9.VisibleIndex; Controller.FocusedColumn.Editing := True; { 이넘은 Select만 합니다. Controller.SelectCells( Controller.FocusedColumn, Controller.FocusedColumn, Controller.FocusedRowIndex , Controller.FocusedRowIndex ); } break; end; end; end; <SPAN id=tx_marker_caret></SPAN> |
프로그램은 논리의 순서대로 일단 작성하고 나중에 천천히 최적화를 시키면 됩니다.
첫 술부터 배부를 수는 없습니다.
즐거운 하루 되십시요.
최신 댓글