C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[52411] [급함...]특정버튼을 누르면 dbgrid의 locate를 고정시키기?
수수께끼 [] 1004 읽음    2008-02-25 13:26
특정버튼을 눌러서 데이터를 편집할때 dbgrid의 locate를 고정시키려고 합니다.

지금 현재는 편집버튼을 눌러서 데이터를 편집할때 dbgrid의 편집하고 있는 레코드가 아닌 다른 레코드를 클릭하면

그쪽 레코드로 레코드포인터가 움직입니다. 오랜시간동안 검색을 통해서 grid에서 레코드포인터의 위치를 갖고있는게

locate라는 메소드 라는걸 알았습니다.

근데 여기까지네요 ㅡ,.ㅡ

어떻게 응용을 해야할지 모르겠습니다.

query를 사용하여 ms access mdb 파일의 테이블을 불러서 dbgrid에 뿌리고 있구요.

dbnavigator를 사용하여 dbgrid 안에 있는 데이터를 수정, 편집하고 있습니다.

"편집" 이라고 이름붙인 버튼을 누르면 dbgrid->readonly = false;가 되서 dbgrid의 내용을 바꿀수 있구요.

내용을 바꾼후에 dbnavigator의 편집적용 버튼을 눌러서 편집을 종료하는 코드를 짰습니다.

편집이 종료되면 dbgrid->readonly = true; 가 되서 dbgrid안에 내용을 바꿀수 없구요.

문제는 편집모드가 되서 dbgrid의 내용을 수정할때 레코드포인터의 모양이 세모 모양에서 ][ <-- 이런 모양으로

바뀌는데 여기서 다른 레코드를 클릭하면 레코드포인터의 모양이 다시 세모로 바뀐다는거죠.

즉, 이게 무슨말이냐 하면요

편집모드가 끝나지도 않았는데 다른 레코드를 클릭하면 강제로 편집모드가 끝난다는거죠.

지금 제가 짠 코드가 이런상황이 되면 엄청 꼬이는 상황이거든요.

그래서 생각한게 편집모드에선 마우스로 클릭을 하던 키보드 방향키로 이동을 하던 레코드포인터의 위치를 고정시키는겁니다.

그러려면 현재의 레코드포인터의 위치를 기억했다가 편집모드일땐 그 위치로 고정을 시켜야겠죠?

거기에 관련된 메소드가 locate라는걸 검색을 통해 알아냈다 이겁니다.

근데 사용법을 몰라서...ㅡ,.ㅡ

아래에도 같은질문을 올렸는데 답변주신 김문제님이 질문의 요지를 잘 모르겠다고 하시더라구요.

저 이거 시간이 없어서 빨리 해야되는 상황이라 이렇게 똑같은 질문을 다시 올리면서 답변을 구하고 있습니다.

아시는분들은 간단하게라도 답변좀 부탁드리겠습니다......

+ -

관련 글 리스트
52411 [급함...]특정버튼을 누르면 dbgrid의 locate를 고정시키기? 수수께끼 1004 2008/02/25
52412     Re:[급함...]특정버튼을 누르면 dbgrid의 locate를 고정시키기? danga80 1229 2008/02/25
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.