안녕하세요 메르세데스입니다. 이번시간에 알아볼 것은 델파이의 tms-grid 범위선택과 선택한 Cell의 내용 수정하는 방법입니다.
뭐.. 내용은 정말 별 것 아닙니다. TMS그리드를 기본설정으로 사용 하였을 때 발생하는 기초적인 문제입니다.
범위선택옵션과 선택한 셀의 수정이 동시에 작동하지 않는다는 것 입니다.
다시 이야기하면.. 글편집이 가능한 상태에서는 그리드의 영역선택이 안되고.. 반대로 선택이 가능한 상태에서는 셀의 글쓰기가 안된다는 것이죠..
정말 별것 아닌 것 같지만 이거 진짜 불편합니다. 이런 문제가 해결되지 않은 상태에서 프로그램이 배포된다면 그리고 사람들이 사용한다면.. 어떻게 될까요..
사람들은 엑셀과 같은 Grid를 원하잖아요.. 당장 제가 봐도 이렇게 불편한데 말이죠!
일단 Option->goRangeSelect-> True 로 설정해 주셔야 영역선택이 기능이 작동합니다. 이렇게 변경해주세요..
그 다음이 문제인데요..
혹시 코딩으로 이런 문제를 해결 할 수 있지 않을까 해서 아래처럼 작성해 봤습니다.
MouseMove 이벤트에 위 처럼 꼼수로 처음 선택한 셀과 위치 정보를 저장해뒀다가 비교해 가면서 편집이 되고 안되고.. 이렇게요.
작동은 하지만 또 다른 문제가 발생합니다. 꼭 마우스가 편집하려는 Cell 내에 있어야만 글 입력이 됩니다.
하지만 저 이벤트를 사용하지 않는다면, 좌표의 위치를 실시간으로 받아오는게 쉽지 않습니다.
키 입력쪽에 처리를 잘 해 놓아도..또한 마우스가 살짝만 움직여도 편집이 안되고요..
역시..반쪽자리 해결책이었습니다.
그래서.. 프로퍼티의 옵션들을 쭉 훑어보았습니다. 혹시 유용한 기능이 있지 않을까 하고요..
MouseActions -> RangeSelectAndEdit 라는 녀석이 보입니다. 범위선택과 동시에 Edit가 가능하다는 옵션입니다. 제가 찾고자 하는 기능이 맞을 것 같습니다. 비슷한 고민을 하고 컴포넌트를 만들어 놓은게 아닐까 생각합니다.
Grid의 Option중 goEditing 의 값을 true로 설정하지 않아도 적용됩니다. 확인해보니 제가 원하는 의도로 잘 작동합니다.
매우 유용한 기능입니다. 코딩으로 어떻게 해보려고..시간을 좀 허비하긴 했지만..어찌되었든 원하는 결과를 얻어서 다행입니다.
우리나라에 델파이 유저가 많은 편은 아니지만.. 혹시 찾으시는 분이 있으시다면 도움이 될 것 같아 정리 해봤습니다. 감사합니다.
'프로그래밍 > delphi' 카테고리의 다른 글
delphi Frame을 이용하여 효율적인 코딩하기.. (2) | 2015.10.07 |
---|---|
델파이 화면캡처 및 클립보드 복사 프로그램에 관해.. (0) | 2015.09.18 |
Delphi QuickReport를 이용 페이지 하단부에 로고표시하기 (0) | 2015.08.09 |
delphi CheckGroup을 활용한 동적 체크박스 테스트 (0) | 2015.07.29 |
delphi RadioGroup을 활용한 동적 버튼 테스트 (0) | 2015.07.28 |
댓글