Q&A

  • [중요질문]콤보박스 자동완성기능 좀 갈켜~~~~
일단 이글을 보시는 분께 말씀을 드립니다.

제가 하고자 하는 작업은 웹에서 검색창에 글을 한자 한자 쓰는 순간마다 이전에 썼던 글들이 자동완성으로(like연산) 드롭다운형식으로 보여주듯이 콤보박스(DB콤보박스)에서 '경'을 치면 자동으로 '경남'에 관련된 우편번호가 나오게 하는것입니다.....



꼭 해야 합니다... 설명이 부족하면 웹상에서 자동완성기능 생각하시면 됨 ^^



고수님 그리고 알고계시는 분은 미천한 저에게 한 수 가르쳐 주시면

유용하게 써겠습니다. 감사합니다......

2  COMMENTS
  • Profile
    조규춘 2001.07.07 00:37
    윤종진 wrote:

    > 일단 이글을 보시는 분께 말씀을 드립니다.

    > 제가 하고자 하는 작업은 웹에서 검색창에 글을 한자 한자 쓰는 순간마다 이전에 썼던 글들이 자동완성으로(like연산) 드롭다운형식으로 보여주듯이 콤보박스(DB콤보박스)에서 '경'을 치면 자동으로 '경남'에 관련된 우편번호가 나오게 하는것입니다.....

    >

    > 꼭 해야 합니다... 설명이 부족하면 웹상에서 자동완성기능 생각하시면 됨 ^^

    >

    > 고수님 그리고 알고계시는 분은 미천한 저에게 한 수 가르쳐 주시면

    > 유용하게 써겠습니다. 감사합니다......





    unit Unit1;



    interface



    uses

    Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

    StdCtrls;



    type

    TForm1 = class(TForm)

    ComboBox1: TComboBox;

    Edit1: TEdit;

    Label1: TLabel;

    Label2: TLabel;

    procedure ComboBox1KeyDown(Sender: TObject; var Key: Word;

    Shift: TShiftState);

    procedure ComboBox1Change(Sender: TObject);

    private

    { Private declarations }

    key_ch : Word; // 입력한 키값을 저장

    idx_URL : integer;

    sv_URL : array [0..9] of string;

    public

    { Public declarations }

    end;



    var

    Form1: TForm1;



    implementation



    {$R *.DFM}



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

    Shift: TShiftState);

    begin

    key_ch := key;

    if key = VK_RETURN then begin

    // 입력URL로 이동하는 부분 구현

    // HTML1.RequestDoc(ComboBox1.Text);

    ComboBox1.Items.Add(ComboBox1.Text);

    if (idx_URL <= 9) then begin

    Inc(idx_URL);

    // 현재 URL을 저장

    sv_URL[idx_URL] := ComboBox1.Text;

    end;

    end;

    end;



    procedure TForm1.ComboBox1Change(Sender: TObject);

    var

    index : integer;

    pc : PChar;

    begin

    if ((key_ch <> VK_BACK) and (key_ch <> VK_DELETE)) then begin

    pc := PChar(String(ComboBox1.Text));

    // ComboBox에게 CB_FINDSTRING 메시지를 전달

    // 전달한 lParam값은 검색할 문자열의 주소

    index := SendMessage(ComboBox1.Handle, CB_FINDSTRING, -1, Integer(pc));



    // 비슷한 문자열을 찾으면 다음을 수행

    if index >= 0 then begin

    ComboBox1.Text := ComboBox1.Items[index];

    ComboBox1.SelStart := StrLen(pc);

    ComboBox1.SelLength := StrLen(PChar(ComboBox1.Items[index]));

    end;

    end;

    end;



    end.







    행복하셔요

  • Profile
    윤종진 2001.07.07 19:22
    조규춘 wrote:

    > 윤종진 wrote:

    > > 일단 이글을 보시는 분께 말씀을 드립니다.

    > > 제가 하고자 하는 작업은 웹에서 검색창에 글을 한자 한자 쓰는 순간마다 이전에 썼던 글들이 자동완성으로(like연산) 드롭다운형식으로 보여주듯이 콤보박스(DB콤보박스)에서 '경'을 치면 자동으로 '경남'에 관련된 우편번호가 나오게 하는것입니다.....

    > >

    > > 꼭 해야 합니다... 설명이 부족하면 웹상에서 자동완성기능 생각하시면 됨 ^^

    > >

    > > 고수님 그리고 알고계시는 분은 미천한 저에게 한 수 가르쳐 주시면

    > > 유용하게 써겠습니다. 감사합니다......

    >

    >

    > unit Unit1;

    >

    > interface

    >

    > uses

    > Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

    > StdCtrls;

    >

    > type

    > TForm1 = class(TForm)

    > ComboBox1: TComboBox;

    > Edit1: TEdit;

    > Label1: TLabel;

    > Label2: TLabel;

    > procedure ComboBox1KeyDown(Sender: TObject; var Key: Word;

    > Shift: TShiftState);

    > procedure ComboBox1Change(Sender: TObject);

    > private

    > { Private declarations }

    > key_ch : Word; // 입력한 키값을 저장

    > idx_URL : integer;

    > sv_URL : array [0..9] of string;

    > public

    > { Public declarations }

    > end;

    >

    > var

    > Form1: TForm1;

    >

    > implementation

    >

    > {$R *.DFM}

    >

    > procedure TForm1.ComboBox1KeyDown(Sender: TObject; var Key: Word;

    > Shift: TShiftState);

    > begin

    > key_ch := key;

    > if key = VK_RETURN then begin

    > // 입력URL로 이동하는 부분 구현

    > // HTML1.RequestDoc(ComboBox1.Text);

    > ComboBox1.Items.Add(ComboBox1.Text);

    > if (idx_URL <= 9) then begin

    > Inc(idx_URL);

    > // 현재 URL을 저장

    > sv_URL[idx_URL] := ComboBox1.Text;

    > end;

    > end;

    > end;

    >

    > procedure TForm1.ComboBox1Change(Sender: TObject);

    > var

    > index : integer;

    > pc : PChar;

    > begin

    > if ((key_ch <> VK_BACK) and (key_ch <> VK_DELETE)) then begin

    > pc := PChar(String(ComboBox1.Text));

    > // ComboBox에게 CB_FINDSTRING 메시지를 전달

    > // 전달한 lParam값은 검색할 문자열의 주소

    > index := SendMessage(ComboBox1.Handle, CB_FINDSTRING, -1, Integer(pc));

    >

    > // 비슷한 문자열을 찾으면 다음을 수행

    > if index >= 0 then begin

    > ComboBox1.Text := ComboBox1.Items[index];

    > ComboBox1.SelStart := StrLen(pc);

    > ComboBox1.SelLength := StrLen(PChar(ComboBox1.Items[index]));

    > end;

    > end;

    > end;

    >

    > end.

    >

    >

    >

    > 행복하셔요



    #############################################################################

    조규춘님 감사합니다!!!!!



    죄송합니다. 제가 질문을 잘못드렸군요

    DB와 연동된 상태에서 Db콤보박스(아님 되는걸로)에서 입력과 동시에 DB에 저장된

    데이타가 DB콤보에 item.Add가 되어 올라오는 기능입니다. 가능하심 답변을 부탁드립니다.



    행복하세요!!!!