안녕하세요? Heaven입니다.
아래에 질문을 드렸는데 답변이 없어 다시 올립니다.
스트링 그리드에 관한것 인데요.
스트링 그리드에서 특정셀로 포커스를 이동할 수 있는지 궁금합니다.
제가 지금 편법으로 스트링그리드의 Selection이라는 메쏘드를 사용하는데
올바른 방법인지 모르겠네요. Selection메쏘드는 일정 영역을 선택하는
함수 같던데, 한 셀을 영역으로 잡아주니까 이동이 됩니다. 그런데 올바른
방법같지 않네요.
일반적으로 많이 쓰는 방법좀 알려주세요.
그리고 스트링그리드의 옵션중에 goRowSelect를 true해주면 포커스가 있는
행이 파란색으로 바뀌는데, 이것을 실행중에 false로 해준다음, 그 행으로
포커스를 옮기면 그 행의 첫번째 cell만 바탕색으로 바뀌고 그 행의 나머지
cell은 여전히 파란색으로 남아있네요. 그 행의 다음 셀로 이동해야만 그 행의
전체색상이 본래 색으로 돌아옵니다. 이것을 해결하는 방법 좀 알려주세요.
다시말하면, goRowSelect를 설정했다가 해제한다음 스트링그리드에 포커스를
주었을 때, 그 행이 전부 본래의 색(흰색)으로 바뀔 수 있는 방법을 부탁
드립니다.
또 하나, 스트링그리드에서 특정 셀에 마우스 포커스가 가지 못하도록 하는
방법이 있는지 궁금합니다. 만약에, 한열만을 readonly상태로 만들 수 있는지요.
마지막으로, 스트링그리드의 옵션이 goEditing상태에서 셀에 포커스가 있을때
셀의 상태가 두가지가 되더군요. 하나는 셀에 포커스가 있는것을 알려주는
점선박스 상태와, 글자를 고칠수 있는 셀 편집상태 말입니다.
여기서 셀에 포커스가 가면 점선모양이 없이 직접적으로 셀 편집상태로 바꿔주는
방법이 없는지요. 그러니까, 아예 셀에 포커스가 있을때 점선모양을 없애주고
싶습니다. 항상 커서가 모이는 깜박임상태가 필요합니다.
위의 질문중에 부분적으로 답변해 주실 수 있어도 답변 부탁드립니다.
답변 기다리겠습니다.
그럼...
> 스트링 그리드에서 특정셀로 포커스를 이동할 수 있는지 궁금합니다.
있습니다.
StringGrid1.Col := 2; //두번째 컬럼으로 이동
StringGrid1.Row := 2; //두번째 로우로 이동
> 그리고 스트링그리드의 옵션중에 goRowSelect를 true해주면 포커스가 있는
> 행이 파란색으로 바뀌는데, 이것을 실행중에 false로 해준다음, 그 행으로
> 포커스를 옮기면 그 행의 첫번째 cell만 바탕색으로 바뀌고 그 행의 나머지
> cell은 여전히 파란색으로 남아있네요. 그 행의 다음 셀로 이동해야만 그 행의
> 전체색상이 본래 색으로 돌아옵니다. 이것을 해결하는 방법 좀 알려주세요.
옵션을 끄신 후 위에서 알려준데로 원하는 셀로 이동해보세요. ^^;
너무 쉬웠죠?
> 마지막으로, 스트링그리드의 옵션이 goEditing상태에서 셀에 포커스가 있을때
> 셀의 상태가 두가지가 되더군요. 하나는 셀에 포커스가 있는것을 알려주는
> 점선박스 상태와, 글자를 고칠수 있는 셀 편집상태 말입니다.
> 여기서 셀에 포커스가 가면 점선모양이 없이 직접적으로 셀 편집상태로 바꿔주는
> 방법이 없는지요. 그러니까, 아예 셀에 포커스가 있을때 점선모양을 없애주고
> 싶습니다. 항상 커서가 모이는 깜박임상태가 필요합니다.
Option중에 goAlwaysShowEditor 를 True로 주세요.
너무 쉬웠나요? ^^;