Q&A

  • 익스플러로 주소표시줄 콤보박스...
익스플러로의 주소표시줄에있는 콤보박스 만드는법 아시는분 좀 갈쳐주세요..

아님 그런 컴포넌트를 가지고 계시는분이나요..

그러니까 한단어를 쳤을때 콤보박스가 드롭다운되면서

이미들어가 있는 콤보박스의 아이템들 중에서

아이템의 첫글자에서부터 가장 비슷한 아이템을 찾아서 그 아이템을 선택해주고

엔터키를 치면 그 아이템이 콤보박스에 나타나게 하는걸 말하는데..

한마디로 말하자면 익스플러로 주소표시줄하고 같은걸 말합니다.

아시는분 있으시면 답변 부탁합니다. 이미 만들어져 있는 컴포넌트도 괜찮구요..^^
1  COMMENTS
  • Profile
    구창민 2003.01.09 22:26
    안녕하세요 구창민입니다.

    Delphi6 이상에서는 AutoComplete property 프로퍼티를 True 로

    주면 그 기능이 되지요.

    아래 내용은 Dephi3000 에 있는 내용입니다.

    원하시는 자동완성기능이 구현되어 있습니다.

    즐거운 프로그래밍 하세요~


    var
    lastKey: Word;


    procedure TForm1.ComboBox1KeyDown(Sender: TObject; var Key: Word;
    Shift: TShiftState);
    begin
    lastKey := Key;
    end;

    procedure TForm1.ComboBox1Change(Sender: TObject);
    var
    SearchStr: string;
    retVal: integer;
    begin
    // copy search pattern
    SearchStr := (Sender as TCombobox).Text;

    // backspace: VK_BACK or $08
    if lastKey <> VK_BACK then
    begin
       retVal := (Sender as TCombobox).Perform(CB_FINDSTRING, -1, LongInt(PChar(SearchStr)));

       if retVal > CB_Err then
       begin
         (Sender as TCombobox).ItemIndex := retVal;
         (Sender as TCombobox).SelStart := Length(SearchStr);
         (Sender as TCombobox).SelLength :=
           (Length((Sender as TCombobox).Text) - Length(SearchStr));
       end; // retVal > CB_Err

    end; // lastKey <> VK_BACK

    // reset lastKey
    lastKey := 0;
    end;