안녕하세여..
제가 구현하고싶은건말이죠..
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 해서 포커스를 주면.. 되지 않으면 않을까요..?
포커스를 주고 싶은건데.....이런 말이 이상하게 꼬여있네요..
고수들좀 도와주세여 ㅜ.ㅠ....
> 안녕하세여..
> 제가 구현하고싶은건말이죠..
>
> 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!