안녕하세요. 이주선입니다.
DBGrid를 이용하여 사용하고 있는데 마지막레코드에서 다운키나 마지막레코드의 마지막 필드에서 TAB키를 눌렸을 경우에 자동적으로 레코드가 삽입이 됩니다.
저는 위와 같은 처리를 하지 못하게 막고 싶어서 여러 곳으로 찾아 다녔지만, 현재 찾은 내용이 있는데 아래와 같습니다.
DBGrid에 자동 추가 기능 없애기
그리드에서 키를 아래로 누러서 맨 마지막 자료일땐.. 자동으로
레코드가 하나 추가되는데.. 그걸 막는 팁입니다.
//Table1에 BeforInsert이벤트에 추가
procedure TForm1.Tbable1BeforeInsert(DataSet: TDataset);
begin
Abort;
end;
이것은 삽입처리전에 삽입기능을 하지못하게 하는 기능인데, 위의 기능을 사용할 경우는 삽입처리가 전혀 되지 않습니다. 삽입기능은 되면서 마지막레코드에서 자동삽입기능만을 막을려면 어떻게 하면 되는지요.
델파이 전문가님 도움을 부탁드립니다.
그럼 이만, 항상건강하시고 행복한 하루보내세요.
이주선 올림.
> 안녕하세요. 이주선입니다.
>
> DBGrid를 이용하여 사용하고 있는데 마지막레코드에서 다운키나 마지막레코드의 마지막 필드에서 TAB키를 눌렸을 경우에 자동적으로 레코드가 삽입이 됩니다.
> 저는 위와 같은 처리를 하지 못하게 막고 싶어서 여러 곳으로 찾아 다녔지만, 현재 찾은 내용이 있는데 아래와 같습니다.
>
> DBGrid에 자동 추가 기능 없애기
>
> 그리드에서 키를 아래로 누러서 맨 마지막 자료일땐.. 자동으로
> 레코드가 하나 추가되는데.. 그걸 막는 팁입니다.
>
> //Table1에 BeforInsert이벤트에 추가
> procedure TForm1.Tbable1BeforeInsert(DataSet: TDataset);
> begin
> Abort;
> end;
>
> 이것은 삽입처리전에 삽입기능을 하지못하게 하는 기능인데, 위의 기능을 사용할 경우는 삽입처리가 전혀 되지 않습니다. 삽입기능은 되면서 마지막레코드에서 자동삽입기능만을 막을려면 어떻게 하면 되는지요.
>
> 델파이 전문가님 도움을 부탁드립니다.
>
> 그럼 이만, 항상건강하시고 행복한 하루보내세요.
>
> 이주선 올림.
흘흘.... 이건 편법인데여..
그리드의 OnKeyDown Event에서 기냥 막아 버리세여..
procedure TForm1.DBGrid1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if Key = 40 then // 즉 아래쪽 방향키를 누르면..
begin
if DBGrid1.DataSource.DataSet.Eof then
begin
ShowMessage(' 마지막 ');
Abort;
end;
end;
end;
도움이 되셨기를...