Q&A

  • DBGrid에서 '(memo)'라고 나타나는 문제 입니다. (일반적인 '(memo)' 문제가 아닙니다)
안녕하세요.

DBGrid에서 varchar2(500) 정도되는 길이의 Field 값을 불려오면
아시는 것 처럼 화면상에 (memo)라고 나타납니다.
이것은 팁에서 얘기한 방식대로 DrawColumnCell 에서 Canvas.TextRect(...) 을 이용해 실제 문자들이 나타나게 해서 문제를 해결했는데요.

문제는 dbgrid의 셀을 클릭해서 그 내용을 수정할려고 하면
즉, editor 모드로 들어가면 내용이 다시 (memo)라고 나타나는데
있습니다.

원인을 곰곰히 생각해보니 editor 모드로 들어가면 DrawColumnCell
이 실행안되기 때문인것 같습니다.
그렇다면 editor 모드로 들어 갈때 뭔가 해야 된다는데 도대체
editor 모드로 들어갈때 어떤 이벤트가 발생하는지 모르겠습니다.

고수님 이런 memo로 나타나는 문제는 어떻게 해결해야 할까요?
  
전 델파이 6에서 개발하고 있고요, Dbgrid 옵션은 다음과 같이 주었습니다.
[dgEditing,dgTitles,dgIndicator,dgColumnResize,dgColLines,dgRowLines,dgTabs,dgAlwaysShowSelection,dgConfirmDelete,dgCancelOnExit,dgMultiSelect]


4  COMMENTS
  • Profile
    장태원 2003.08.15 03:03
    DrawColumnCell  을 실행하면 되겠죠.

  • Profile
    장영철 2003.08.15 03:12
    DrawColumnCell을 사용해도 안된다고 했는데
    DrawColumnCell을 사용하라니.... 환장 하겠네요.

    DrawColumnCell을 사용하는 다른 기술이 있나요?
    아님 제가 적은 내용을 안 보신건지?




  • Profile
    장태원 2003.08.15 03:38
    ㅡㅡ;
    제 이론은 이렀습니다.
    어짜피 DrawColumnCell 는 이벤튼데 이벤트를 안탄다면
    다른 이벤트에서 DrawColumnCell를 실행하면 되겠지요.
    예를 들어.
    editor 로 들어갈려면 보통 마우스를 누르겠죠.
    OnmouseDown 에 넣어주거나.
    OnEnter 등등..
    OnExit 도 되겠고..
    이런 이벤트에서 DrawColumnCell를 호출해 보셨는지?
    꼭 이런걸 설명해야 하나...ㅡㅡ;
    테스트는 안해봐서 모르겠네요.
    제생각엔 이렇게 하면 해결될듯 한데.

  • Profile
    장영철 2003.08.18 23:24
    답변 고맙습니다.

    말씀하신대로 마우스이벤트로 처리하는게 나을것 같네요.