|
잘은 모르겠습니다 ㅎ
기대 하지 마시길.. ㅎ
insert 키를 3-4초 이상 누르고 있는것은 크게 문제가 된다고 생각되지 않습니다
누르고 있는것은 키다운이나 따른곳에서 처리가 되겠죠, 키업 이벤트에 들어가지는 않을거구요
누른후에 디비그리드가 랙(?) 현상이 발생되는것은..
님께서 치신 소스를 보면 디비그리드에 직접 추가 하는 방식인듯 보이는군요;;
원래는 SQL문을 이용해야 정상이 아닌가요??
SQL문으로 처리를 해 보시고.. 으흠
그 이후에 처음 등록 했을땐 안보이고, 다음 등록을 하면 처음 등록 한게 보이는 현상은..
원래 그런게 아닌가 싶네요;; (SQL문을 사용 하지 않은 이유로 보이네요;;)
그럼.. SQL문을 한번 사용 해보시는걸 권장 합니다.. ㅎ (이상 허접답변 ㅎ)
이성희 님이 쓰신 글 :
: 디비그리드에서 키 이벤트 제어하는 방법을 알고 싶습니다.
: 아래 소스를 보시면 아시겠지만 키 다운 이벤트의 INSERT키 이벤트 때문에 제가 원하지 않는곳에 레코드가
: 추가 되는것을 화면에 않나타나게 막았습니다.
:
: 그런데 문제가 생겼습니다.
: INSERT키를 3-4초가량 누르고 있다가 작업을 진행하면 그이후로 그리드가 제대로 작동하지 않습니다.
: 새로운 레코드가 추가 되어도 바로 나타나지 않고 다음 레코드가 추가 되어야 비로소 화면에 뿌려집니다.
:
: 도대체 정확한 원인을 모르겠습니다.
: 여러 고수님들의 많은 조언 부탁드리겠습니다.
:
: void __fastcall TWrkForm2::DBCtrlGrid1KeyDown(TObject *Sender, WORD &Key,
: TShiftState Shift)
: {
: switch(Key)
: {
: case VK_RETURN:
: break;
: case VK_DELETE:
: break;
: case VK_ESCAPE:
: break;
: case VK_INSERT:
: Table1->DisableControls();
: break;
: }
: }
: //---------------------------------------------------------------------------
:
: void __fastcall TWrkForm2::DBCtrlGrid1KeyUp(TObject *Sender, WORD &Key,
: TShiftState Shift)
: {
: switch(Key)
: {
: case VK_RETURN:
: break;
: case VK_DELETE:
: if(Application->MessageBox("레코드를 삭제하시겠습니까?","메세지",
: MB_OKCANCEL|MB_ICONQUESTION)==IDOK)
: {
: Table1->Delete();
: }
: break;
: case VK_ESCAPE:
: break;
: case VK_INSERT:
: if(check==1 || check==2)
: {
: if(Table1->RecordCount < 1) count=0;
: else
: {
: Table1->Last();
: count=Table1->FieldByName("numbers")->AsInteger;
: }
: count++;
: if(count < 99)
: {
: InsCheck=true;
: DataSource1->Enabled=false;
: Table1->Last();
: Table1->Append();
: DataSource1->Enabled=true;
: Numbers->Caption=FormatFloat("00",count);
: Account->SetFocus();
: }
: else
: {
: ShowMessage("순번은 99까지 작성가능합니다");
: }
: }
:
: break;
: }
: Table1->EnableControls();
: }
: //---------------------------------------------------------------------------
|