Q&A

  • Enter key로 dropdown하기
combobox1 combobox2 combobox3 combobox4



이런식으로 폼이 잡혀있고,



ComboBox1에서 엔터키를 치면 ComboBox2가 드롭다운 되고



다시 ComboBox2에서 엔터키를 치면 ComboBox3가 드롭다운 되게



하고 싶습니다. 이 4개의 컴포넌트들을 같은 이벤트를 사용하게



하고요...



if key = #13 then

begin

key := #0;

selectNext(sender as twincontrol, true, true);

end;



이걸 잘 이용할 방법이 없을까요...







3  COMMENTS
  • Profile
    김지엽 2001.02.15 03:35
    음.. 너무 부분적으로만 생각해봤던거 같아서 함 직접 돌려보고 다시 올립니다.

    원하시는 방법이 이런건가요?



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

    Shift: TShiftState);

    var Cont : TWinControl;

    begin

    if Key = VK_RETURN then begin

    if Sender = Combobox4 then exit;

    ((FindNextControl(Sender as TCombobox,True, True, False))as TCombobox).DroppedDown := True;

    SelectNext(Sender as TCombobox, True, True);

    end;

    end;



  • Profile
    김지엽 2001.02.15 03:10
    어떤 상황에서 왜 필요한건진 모르겠지만, combobox1에서 엔터키를 쳤을 때 Combobox2가 열리게 하려면 다음과 같이 해보세요..

    --------------------

    procedure TForm1.ComboBox1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);

    begin

    if Key = VK_RETURN then begin

    ComboBox2.DroppedDown := True;

    Combobox2.SetFocus;

    end;

    end;

    -----------------

    만약에 한 이벤트 안에서 하고 싶다면 'if (Sender = ...) then'.. 요렇게 만들어 주면

    되겠죠..?



    근데 제가 질문의 의도를 제대로 읽은건지는 모르겠군요.



    > combobox1 combobox2 combobox3 combobox4

    >

    > 이런식으로 폼이 잡혀있고,

    >

    > ComboBox1에서 엔터키를 치면 ComboBox2가 드롭다운 되고

    >

    > 다시 ComboBox2에서 엔터키를 치면 ComboBox3가 드롭다운 되게

    >

    > 하고 싶습니다. 이 4개의 컴포넌트들을 같은 이벤트를 사용하게

    >

    > 하고요...

    >

    > if key = #13 then

    > begin

    > key := #0;

    > selectNext(sender as twincontrol, true, true);

    > end;

    >

    > 이걸 잘 이용할 방법이 없을까요...

    >

    >

    >

  • Profile
    델초보 2001.02.15 19:04
    감사합니다.