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
[6991] Re:DBGrid에서 임의로 포커스를 주는 방법
홍성진 [heaven] 3699 읽음    2001-04-24 21:14
인디오 님이 쓰신 글 :
: 안녕하세요.. 수고가 많으십니다...
: 다름이 아니라.. DBGrid 가 있구요.. 여기에 DB에서 검색한 결과가 쭉~~ 있습니다..
: 하려고 하는 기능은 검색 결과가 나와 있는 것 중에서 하나를 찍으면 다른 곳에서 그 내용을 볼 수 있도록 되어 있구요.. 여기서 수정을 한 뒤에 저장 버튼을 누르면 수정이 되는 것입니다..
:
: 수정이 되는 것 까지는 상관이 없는데... 여기서 수정이 되었으면 수정이 된 데이타가 있는 Row에 Focus를 주려고 하는 거거든요... DBGrid를 아무리 뒤져봐도 포커스에 관한 내용을 찾기가 힘드네요...
:
: 아시는 고수분들 계시면 답변좀 해주세요... 미리 감사합니다...

안녕하세요.
DBGrid는 레코드셋과 연결되어 있습니다.

따라서 레코드셋의 커서를 이동시키면, DBGrid의 커서도 자동으로 이동됩니다.
레코드커서 이동시키는 방법 아시죠?

만약 TTable과 연결되어 있으면...
Table1->Next();  // 다음으로
Table1->Prior(); // 이전으로
Table1->First(); // 처음으로
Table1->Last();  // 마지막으로
Table1->MoveBy(2); // 현재위치에서 2 다음으로(상대적위치)
Table1->MoveBy(-2); //현재위치에서 2 이전으로(상대적위치)

이것으로 데이터커서를 이동시킬 수 있습니다.

그리고, 제가 질문을 잘못 이해할 수도 있는데, 님께서 원하시는것이 단지, 화면상에서의 포커스라면
이렇게 해보세요.

저장버튼을 누르면 포커스가 버튼으로 이동하겠죠.
그럼 DBGrid가 포커스를 잃을겁니다. 버튼Click 마지막에 DBGrid1->SetFocus()를 주세요.
수정버튼을 누른후 포커스가 DBGrid로 이동할겁니다

또는 DBGrid의 Option프로퍼터중에 dgRowSelect, dgAlwaysShowSelection이 있습니다.
dgRowSelect는 선택된 레코드가 파란라인으로 보이도록 하는것이구요,
dgAlwaysShowSelection은 DBGrid가 포커스를 잃더라도 선택라인이 계속 보이도록 하는겁니다.

두 옵션을 true로 하면 버튼Click시 DBGrid1->SetFocus()를 하지 않아도 되겠죠..

사용한지가 하두 오래되서, 가물가물 하네요...
참고하세요..

+ -

관련 글 리스트
6989 DBGrid에서 임의로 포커스를 주는 방법 인디오 2220 2001/04/24
6991     Re:DBGrid에서 임의로 포커스를 주는 방법 홍성진 3699 2001/04/24
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.