C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[39221] [질문]KeyDown 이벤트에서 INSERT키 제어 방법
이성희 [] 868 읽음    2005-02-22 16:46
디비그리드에서 키 이벤트 제어하는 방법을 알고 싶습니다.
아래 소스를 보시면 아시겠지만 키 다운 이벤트의 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();
}
//---------------------------------------------------------------------------

+ -

관련 글 리스트
39221 [질문]KeyDown 이벤트에서 INSERT키 제어 방법 이성희 868 2005/02/22
39236     Re:[질문]KeyDown 이벤트에서 INSERT키 제어 방법 이성제 1143 2005/02/23
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.