안녕하십니까 !!!
다음 소스를 분석 좀 해주세요..
procedure TOKRightDlg.IDEdtKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if (Shift = []) then
if (Key = VK_RETURN) or (Key = VK_DOWN) or (Key = VK_RIGHT) then begin
SelectNext(Sender as TWinControl, True, True);
Key := 0;
end;
if (Key = VK_UP) or (Key = VK_LEFT) then begin
SelectNext(Sender as TWinControl, False, True);
Key := 0;
end;
end;
procedure TOKRightDlg.OKBtnClick(Sender: TObject);
begin
with DM.UserQuery do begin
Close;
SQL.Clear;
SQL.Add(' SELECT * FROM users WHERE ID = :P_ID' );
SQL.Add(' AND PASSWD = :P_PASSWD' );
ParamByName('P_ID').AsString := IDEdt.Text;
ParamByName('P_PASSWD').AsString := PasswdEdt.Text;
Open;
if not EOF then PasswdCHK := True
else begin
PasswdCHK := False;
ShowMessage('님은 사용권한이 없습니다.');
end;
end;
end;
제가 구상하고 있는 것은 사용자가 에디터 컴포넌트에 ID와 PASSWD를 입력하고 확인
버튼을 누르면 다음 사항으로 진행되는 것입니다.
문제는 위의 IDEdt 컴포넌트에 Enter 키(VK_Return)를 누르면 자꾸 OKBtnClick에 있는
내용이 실행되어 버려요.. 물론 IDEdt 컴포넌트 다음에는 PasswdEdt 컴포넌트에 Focus
가 떨어지도록 TabOrder 값도 다 맞추어 졌구요..
사실은 OKBtnClick은 확인 버튼을 눌려야만 실행이 되어야
하는데 말입니다. 무엇때문에 이런 현상이 발생되는건지 도사님의 조언 부탁드립니다.
만약 전체적인 소스가 필요하시다면 다시 말씀 주십시요..
> 안녕하십니까 !!!
> 다음 소스를 분석 좀 해주세요..
>
> procedure TOKRightDlg.IDEdtKeyDown(Sender: TObject; var Key: Word;
> Shift: TShiftState);
> begin
> if (Shift = []) then
> if (Key = VK_RETURN) or (Key = VK_DOWN) or (Key = VK_RIGHT) then begin
> SelectNext(Sender as TWinControl, True, True);
> Key := 0;
> end;
>
> if (Key = VK_UP) or (Key = VK_LEFT) then begin
> SelectNext(Sender as TWinControl, False, True);
> Key := 0;
> end;
> end;
>
> procedure TOKRightDlg.OKBtnClick(Sender: TObject);
> begin
> with DM.UserQuery do begin
> Close;
> SQL.Clear;
> SQL.Add(' SELECT * FROM users WHERE ID = :P_ID' );
> SQL.Add(' AND PASSWD = :P_PASSWD' );
> ParamByName('P_ID').AsString := IDEdt.Text;
> ParamByName('P_PASSWD').AsString := PasswdEdt.Text;
> Open;
> if not EOF then PasswdCHK := True
> else begin
> PasswdCHK := False;
> ShowMessage('님은 사용권한이 없습니다.');
> end;
> end;
>
> end;
>
> 제가 구상하고 있는 것은 사용자가 에디터 컴포넌트에 ID와 PASSWD를 입력하고 확인
> 버튼을 누르면 다음 사항으로 진행되는 것입니다.
> 문제는 위의 IDEdt 컴포넌트에 Enter 키(VK_Return)를 누르면 자꾸 OKBtnClick에 있는
> 내용이 실행되어 버려요.. 물론 IDEdt 컴포넌트 다음에는 PasswdEdt 컴포넌트에 Focus
> 가 떨어지도록 TabOrder 값도 다 맞추어 졌구요..
> 사실은 OKBtnClick은 확인 버튼을 눌려야만 실행이 되어야
> 하는데 말입니다. 무엇때문에 이런 현상이 발생되는건지 도사님의 조언 부탁드립니다.
> 만약 전체적인 소스가 필요하시다면 다시 말씀 주십시요..
> ===============================================================
> 부산사는 사람입니다.
OK Button의 속성중 Default 가 True로 되어 있는 것 같네요. False로 바꾸어 보세요.
> B.RGDS