Q&A

  • Enter키를 이용하여 포커스이동
여러개의 TEdit, TMaskEdit, TComboBox 컴포넌트에 OnKeyPress 이벤트를 설정



하여 'Enter'키를 누르면 다음 컴포넌트로 Focus 가 이동을 하게 작성을



하였습니다. 그런다음 각 컴포넌트마다 '데이터 값'이 입력이 되지 않으면



'Enter'키를 눌러도 다음 컴포넌트로 Focus 가 이동을 못하게 할려고 하였는데



잘 안되어서 자문을 구하고자 올렸습니다.







밑에 있는 내용은 제가 작성을 하다가 막힌 부분입니다. 참고하십시요.





procedure TfrmTaxation.edtTcodeKeyPress(Sender: TObject; var Key: Char);

begin

IF (Sender As TEdit).Text = '' then

exit

else

If Key = #13 then

begin

SelectNext(Sender As TwinControl,True,True);

Key := #0;

end;

end;



1  COMMENTS
  • Profile
    왕초 1999.08.23 23:10
    김봉수 께서 말씀하시기를...

    > 여러개의 TEdit, TMaskEdit, TComboBox 컴포넌트에 OnKeyPress 이벤트를 설정

    >

    > 하여 'Enter'키를 누르면 다음 컴포넌트로 Focus 가 이동을 하게 작성을

    >

    > 하였습니다. 그런다음 각 컴포넌트마다 '데이터 값'이 입력이 되지 않으면

    >

    > 'Enter'키를 눌러도 다음 컴포넌트로 Focus 가 이동을 못하게 할려고 하였는데

    >

    > 잘 안되어서 자문을 구하고자 올렸습니다.

    >

    >

    >

    > 밑에 있는 내용은 제가 작성을 하다가 막힌 부분입니다. 참고하십시요.

    >

    >

    > procedure TfrmTaxation.edtTcodeKeyPress(Sender: TObject; var Key: Char);

    > begin

    > IF (Sender As TEdit).Text = '' then

    > exit

    > else

    > If Key = #13 then

    > begin

    > SelectNext(Sender As TwinControl,True,True);

    > Key := #0;

    > end;

    > end;

    >

    안냐세요... ^^



    별문제는 없는것 같은데...

    IF (Sender As TEdit).Text = '' then

    이부분이 문제인것 같습니다..

    왜냐면 TEdit, TMaskEdit, TComboBox 는 모두 클래스타입이 틀리기 때문에

    문제가 발생한것 같습니다.



    (Sender as TComponent).Components[i].ClassType

    이런 문장을 사용하여 클래스 타입부터 지정하셔야 될것 같습니다..



    저두 많이는 안써봤거든요.. 그래서 이정도 밖에는 도움이 않되겠네요..

    그럼 즐거운 고딩하세요... ^_^