익스플러로의 주소표시줄에있는 콤보박스 만드는법 아시는분 좀 갈쳐주세요..
아님 그런 컴포넌트를 가지고 계시는분이나요..
그러니까 한단어를 쳤을때 콤보박스가 드롭다운되면서
이미들어가 있는 콤보박스의 아이템들 중에서
아이템의 첫글자에서부터 가장 비슷한 아이템을 찾아서 그 아이템을 선택해주고
엔터키를 치면 그 아이템이 콤보박스에 나타나게 하는걸 말하는데..
한마디로 말하자면 익스플러로 주소표시줄하고 같은걸 말합니다.
아시는분 있으시면 답변 부탁합니다. 이미 만들어져 있는 컴포넌트도 괜찮구요..^^
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;