Q&A

  • 콤보박스 열기...
델파이 시작한지 얼마되지 않아 모르는 것이 너무 많습니다.

가르쳐주세요.

Change 이벤트에 따라 콤보박스가 자동으로 열리게 하고 싶은데...

어떻게 하면 되는거죠?

그리고 글자 하나 하나를 입력할 때마다 change 이벤트에 따라

검색어와 비슷한 단어를 콤보박스 리스트에서 찾아 뿌려주고 싶은데...

어떻게 하면 좋을까요?

2  COMMENTS
  • Profile
    Zealot 2000.03.17 00:55
    어머나 콤보 박스가 열리고 닫히는건 있으니 비스므한 단어 찾아 뿌려주는 것만

    답변 해 드리면 되겠군요.

    아마 IE의 그 것과 같은 기능을 구현하려는가 보군요.



    걍 소스 드리는게 좋겠죠.



    (* 시작 *)



    procedure TForm1.ComboBox1Change(Sender: TObject);

    var

    InputChar : PChar;

    FindIndex : Integer;

    begin

    InputChar := PChar( ComboBox1.Text );



    FindIndex := SendMessage( ComboBox1.Handle, CB_FINDSTRING, -1,

    Integer( InputChar ) );



    if FindIndex >= 0 then

    begin

    ComboBox1.Text := ComboBox1.Items.Strings[ FindIndex ];



    ComboBox1.SelStart := Length( InputChar );

    ComboBox1.SelLength := Length(

    PChar( ComboBox1.Items.Strings[ FindIndex ] ) );

    end;

    end;



    (* 끝 *)



    간단하게 구현 한겁니다.

    우선 입력된 문자열과 유사한 문자열을 아이템중에서 찾아 부려주고 선택되게

    되어 있슴다.

    SendMessage API 는 아시리라 믿고 CB_FINDSTRING 상수는 Messages.pas 를 찾아

    보시면 됩니다. 그 화일을 뒤지시면 여러가지 유용한 메시지가 많이 상수화 되어있슴다.

    위 소스 그대로 사용하셔도 무방하지만 몇가지 상황에 대처하는 루틴이 있어야 할 겁니다. 그건 알아서 하시기를.

    아.. 그리고 IE 처럼 combobox가 드롭다운되고 유사한 문자열들이 죽 나열되는거 역시

    위의 코드에 몇가지 테그닉을 섞으시면 가능할겁니다.



    그롬 건투를 빕니다.



    hj998811 wrote:

    > 델파이 시작한지 얼마되지 않아 모르는 것이 너무 많습니다.

    > 가르쳐주세요.

    > Change 이벤트에 따라 콤보박스가 자동으로 열리게 하고 싶은데...

    > 어떻게 하면 되는거죠?

    > 그리고 글자 하나 하나를 입력할 때마다 change 이벤트에 따라

    > 검색어와 비슷한 단어를 콤보박스 리스트에서 찾아 뿌려주고 싶은데...

    > 어떻게 하면 좋을까요?

  • Profile
    이주흥 2000.03.16 23:41
    //콤보박스를 드롭시킵니다.

    procedure TForm1.ComboBox1Change(Sender: TObject);

    begin

    SendMessage(ComboBox1.Handle,CB_SHOWDROPDOWN,Integer(true),0);

    end;

    //콤보박스를 닫습니다.

    procedure TForm1.ComboBox1Exit(Sender: TObject);

    begin

    SendMessage(ComboBox1.Handle,CB_SHOWDROPDOWN,Integer(false),0);

    end;



    위의 두메세지를 잘응용하면 원하시는 결과를 얻을수 있을겁니다.

    기럼 이만..



    hj998811 wrote:

    > 델파이 시작한지 얼마되지 않아 모르는 것이 너무 많습니다.

    > 가르쳐주세요.

    > Change 이벤트에 따라 콤보박스가 자동으로 열리게 하고 싶은데...

    > 어떻게 하면 되는거죠?

    > 그리고 글자 하나 하나를 입력할 때마다 change 이벤트에 따라

    > 검색어와 비슷한 단어를 콤보박스 리스트에서 찾아 뿌려주고 싶은데...

    > 어떻게 하면 좋을까요?