Q&A

  • DbGrid Editor모드에서요. 데이터수정후 엔터키로 DB 업데이트 어떻게해요?
Gb그리드상에서 Option속에 dgEditing 과 dgAlwaysShowEditor 를 True로 해주고

실행시 곧바로 Editor모드로 들어가서 키입력을 통해 수정하면

DB를 Update하는 것과 같은 효과를 가지잖아요? (select 옵션은 false로 해줘야하고요)

그런데 그 에디터모드에서 데이터를 수정하고 'Enter'키를 눌러주면 DB 업데이트가

안되더라구요.



단지 마우스로 그 데이터의 위쪽이나 아래쪽 데이터를 한번 클릭해줘야 DB수정이 되니

넘 불편합니다.

(같은 레코드상에서 클릭해줘도 안되고..꼭 다른 레코드를 클릭해야됩니다.)

어쩌면 델파이 버그인지도..

이 불편한 점을 엔터키 하나를 누르면 DB가 업데이트 되도록 어떻게 할 수 없을까요?



고수님들의 친절한 답변 부탁드립니다~!!!





PS: 영화 파이란 넘넘 재밌게 봤어요~!! 2번이나 봤네요. 안보신분 꼭 보시길..







1  COMMENTS
  • Profile
    블랙봉 2001.05.15 19:01
    회웅 wrote:

    > Gb그리드상에서 Option속에 dgEditing 과 dgAlwaysShowEditor 를 True로 해주고

    > 실행시 곧바로 Editor모드로 들어가서 키입력을 통해 수정하면

    > DB를 Update하는 것과 같은 효과를 가지잖아요? (select 옵션은 false로 해줘야하고요)

    > 그런데 그 에디터모드에서 데이터를 수정하고 'Enter'키를 눌러주면 DB 업데이트가

    > 안되더라구요.

    >

    > 단지 마우스로 그 데이터의 위쪽이나 아래쪽 데이터를 한번 클릭해줘야 DB수정이 되니

    > 넘 불편합니다.

    > (같은 레코드상에서 클릭해줘도 안되고..꼭 다른 레코드를 클릭해야됩니다.)

    > 어쩌면 델파이 버그인지도..

    > 이 불편한 점을 엔터키 하나를 누르면 DB가 업데이트 되도록 어떻게 할 수 없을까요?

    >

    > 고수님들의 친절한 답변 부탁드립니다~!!!

    >

    >

    > PS: 영화 파이란 넘넘 재밌게 봤어요~!! 2번이나 봤네요. 안보신분 꼭 보시길..

    >

    >

    >



    델파이 버그는 아닙니다.

    그 상태에서 ESC를 누르면 현재 레코드의 수정내용이 모두 취소가 되죠...

    그런 기능이 있기 때문인데요....



    어쨌든 엔터키가 들어왔을 때 바로 DB에 저장을 하실려면 Post를 해줄수 밖에 없는 것 같네요.



    procedure TForm1.DBGrid1KeyDown(Sender: TObject; var Key: Word;

    Shift: TShiftState);

    begin

    if Key = VK_RETURN (VK_ENTER인가? 모르겠네요...) then

    if DataSet.State in [dsEdit] then

    DataSet.Post;

    end;



    위와 같이 하면 될 것 같네요.