Q&A

  • visualBasic에서 SendKey와 같은기능을 찾습니다
tab event를 발생할 수 있게끼끔 하고 싶습니다.



vb에서는 sendkey +{tab}을 하면 되었는데..

delphi에는 어떤걸 써야할 지 모르겠습니다.

1  COMMENTS
  • Profile
    구창민 1999.09.02 21:24
    파이공주 께서 말씀하시기를...

    > tab event를 발생할 수 있게끼끔 하고 싶습니다.

    >

    > vb에서는 sendkey +{tab}을 하면 되었는데..

    > delphi에는 어떤걸 써야할 지 모르겠습니다.



    파이공주님 안녕하세요?

    콘트롤간의 이동에 대한 질문이라 생각하고 답변드립니다.



    간단히 이동하려면 SetFocus; 메소드를 쓰면 되구요,



    범용적으로 사용하려면 아래 소스를 Form의

    OnKeyDown이벤트 핸들러에 때려 넣으시고,

    각 콘트롤들의 OnKeyDown 이벤트 핸들러를 Form 의 OnKeyDown

    이벤트 핸들러로 연결하세요.

    아래 코드에 없는 콘트롤은 직접 기술하세요.

    그러면 원하시는 기능이 자동으로 됩니다.

    그럼.. 즐거운 프로그래밍 되시길~



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

    Shift: TShiftState);

    begin

    if ActiveControl is TDBMemo then exit;

    if ActiveControl is TDBGrid then exit;

    if Shift <> [] then Exit;

    case Key of

    VK_RETURN : begin

    if ActiveControl is TDBComboBox then

    if TDBComboBox(ActiveControl).DroppedDown then exit;

    if ActiveControl is TDBLookupComboBox then

    if TDBLookupComboBox(ActiveControl).ListVisible then exit;



    SendMessage(TWinControl(Sender).Handle, WM_NEXTDLGCTL, 0, 0);

    end;

    VK_DOWN : begin

    if ActiveControl is TDBComboBox then

    if TDBComboBox(ActiveControl).DroppedDown then exit;

    if ActiveControl is TDBLookupComboBox then

    if TDBLookupComboBox(ActiveControl).ListVisible then exit;



    SendMessage(TWinControl(Sender).Handle, WM_NEXTDLGCTL, 0, 0);

    Key := 0;

    end;

    VK_UP : begin

    if ActiveControl is TDBComboBox then

    if TDBComboBox(ActiveControl).DroppedDown then exit;

    if ActiveControl is TDBLookupComboBox then

    if TDBLookupComboBox(ActiveControl).ListVisible then exit;



    SendMessage(TWinControl(Sender).Handle, WM_NEXTDLGCTL, 1, 0);

    Key := 0;

    end;

    end;

    end;