Q&A

  • 현재 어느 함수가 실행중인지 아는방법!!
안녕하세여..

제가 구현하고싶은건말이죠..



edit1.setfocus;

요겁니다..

예를 들어



procedure TForm3.Edit2KeyDown(Sender: TObject; var Key: Word;

Shift: TShiftState);

begin

if key = VK_LEFT then //에디트2에서 왼쪽 키를 눌르면...

edit1.setfocus; //에디트1번으로 포커스 이동...

end;



그런데...

만약..이런 에디트가 100개라면....

100번 코딩 하지 않고요..^^;;;

폼에서 키를 입력받는걸루 해서...

현재 포커스를 가지고있는 edit이름이나 속성값을 읽어 한변수에 저장후에.

그 값에 -1 해서 포커스를 주면.. 되지 않으면 않을까요..?

포커스를 주고 싶은건데.....이런 말이 이상하게 꼬여있네요..

고수들좀 도와주세여 ㅜ.ㅠ....











1  COMMENTS
  • Profile
    김광섭 2001.01.18 23:11
    바보감자 wrote:

    > 안녕하세여..

    > 제가 구현하고싶은건말이죠..

    >

    > edit1.setfocus;

    > 요겁니다..

    > 예를 들어

    >

    > procedure TForm3.Edit2KeyDown(Sender: TObject; var Key: Word;

    > Shift: TShiftState);

    > begin

    > if key = VK_LEFT then //에디트2에서 왼쪽 키를 눌르면...

    > edit1.setfocus; //에디트1번으로 포커스 이동...

    > end;

    >

    > 그런데...

    > 만약..이런 에디트가 100개라면....

    > 100번 코딩 하지 않고요..^^;;;

    > 폼에서 키를 입력받는걸루 해서...

    > 현재 포커스를 가지고있는 edit이름이나 속성값을 읽어 한변수에 저장후에.

    > 그 값에 -1 해서 포커스를 주면.. 되지 않으면 않을까요..?

    > 포커스를 주고 싶은건데.....이런 말이 이상하게 꼬여있네요..

    > 고수들좀 도와주세여 ㅜ.ㅠ....

    >

    포커스 이동에는 여러 방법이 있지만 제 경우에는요 ^^

    폼의 KeyDown 이벤트에서 다음과 같이 하구여

    procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;

    Shift: TShiftState);

    begin

    case Key of

    // Tab 키를 Enter 키로 바꿉니다.

    VK_RETURN : Begin

    if Shift = [ssShift] then

    PostMessage (Handle, WM_NEXTDLGCTL, 1, 0)

    else

    PostMessage (Handle, WM_NEXTDLGCTL, 0, 0);

    end;



    end;

    end;

    각 컨틀롤의 TabOrder 속성을 처음부터 0, 1, 2 주고요

    이벤트중에 KeyDown 이벤트를 여기로 연결하면 OK!