안녕하세요..Heaven입니다.
스트링그리드에서 문제가 있어 이렇게 질문을 또 드리는군요.
스트링그리드에서 행의 색상을 변경하려고 합니다.
그래서 OnDrawCell이벤트에서 처리를 해줘었습니다.
그런데, 제가 원하는 것은 스트링그리드에 포커스가 있을때와
없을때의 행의 색상을 지정하고 싶습니다.
옵션의 goRowSelect는 조금 불편해서요.
화면이 제일 처음 그려질땐 잘 그려지는데, 문제는 실행되고 나서
스트링 그리드에 포커스가 있을때와 포커스가 빠져나갈때 정확히
색상이 칠해지지 않습니다.
포커스를 잡으려고 State가 gdFocused일때 색상을 지정하고 아닐때
색상을 따로 지정하였는데, 스트링그리드가 포커스를 받으면 선택된
행 전부가 칠해지는것이 아니라 선택된 셀만 칠해지더군요.
스트링그리드.Focused();로 바꿔서 해봤는데, 결과는 마찬가지
입니다. 그래서 옵션의 goRowSelect를 true로 하니까 그제서야
스트링그리드로 포커스가 가면 선택된 행이 전부 칠해집니다.
goRowSelect를 사용하기 싫어서 임의대로 색상을 칠해주고 싶었는데
결국은 사용하게 되더군요. 이것을 해결하는 방법좀 알려주세요.
그리고, 스트링그리드에서 옵션을 goRowSelect를 설정했다가 스트링그리드로
포커스가 갈때, goRowSelect를 해제하고, goEditing과 goAlwaysShowEditor를 설정했는데, 캐럿이 안보입니다.
그러니까, 에디트박스가 있다고 할때, 에디트박스에서 스트링그리드로
포커스가 넘어갈때,
StringGrid1.Row := 1;
StringGrid1.Col := 1;
StringGrid1.SetFocus();
이런식으로 설정했는데, 캐럿이 안보이고
키보드를 눌러야만 그제서야 보입니다.
억지로 보이게 하는 방법이라도 있으면 부탁드립니다.
스트링그리드로 포커스가 오면 즉각적으로 캐럿이 보이게 하는
방법이 없나요..몇번이나 질문을 올렸는데 적절한 답변이 올라오지 않더군요.
정말 부탁드립니다. 그럼..