|
인디오 님이 쓰신 글 :
: 안녕하세요.. 수고가 많으십니다...
: 다름이 아니라.. 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()를 하지 않아도 되겠죠..
사용한지가 하두 오래되서, 가물가물 하네요...
참고하세요..
|