Gb그리드상에서 Option속에 dgEditing 과 dgAlwaysShowEditor 를 True로 해주고
실행시 곧바로 Editor모드로 들어가서 키입력을 통해 수정하면
DB를 Update하는 것과 같은 효과를 가지잖아요? (select 옵션은 false로 해줘야하고요)
그런데 그 에디터모드에서 데이터를 수정하고 'Enter'키를 눌러주면 DB 업데이트가
안되더라구요.
단지 마우스로 그 데이터의 위쪽이나 아래쪽 데이터를 한번 클릭해줘야 DB수정이 되니
넘 불편합니다.
(같은 레코드상에서 클릭해줘도 안되고..꼭 다른 레코드를 클릭해야됩니다.)
어쩌면 델파이 버그인지도..
이 불편한 점을 엔터키 하나를 누르면 DB가 업데이트 되도록 어떻게 할 수 없을까요?
고수님들의 친절한 답변 부탁드립니다~!!!
PS: 영화 파이란 넘넘 재밌게 봤어요~!! 2번이나 봤네요. 안보신분 꼭 보시길..
> 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;
위와 같이 하면 될 것 같네요.