안녕하십니까?
델파이를 공부중인 초보자거든여!
델파이 5.0을 사용하고 있는데 comboedit에서 text에 일부문자를 입력하고 엔터키를 치면 그와 연관된 이름들이 출력되게 하는 소스를 알고 싶습니다!
예) -------------------------------------------
1234, 1235, 2345, 2346, 3456, 3958
-------------------------------------------
이렇게 이름들이 있는데 이중에서 2부터시작하는 이름부터 뒤로 출력하는 소스좀~
읽어봐주셔서 감사합니다!
저도 많은 도움 드리겠습니다!
> 안녕하십니까?
> 델파이를 공부중인 초보자거든여!
> 델파이 5.0을 사용하고 있는데 comboedit에서 text에 일부문자를 입력하고 엔터키를 치면 그와 연관된 이름들이 출력되게 하는 소스를 알고 싶습니다!
>
> 예) -------------------------------------------
> 1234, 1235, 2345, 2346, 3456, 3958
> -------------------------------------------
> 이렇게 이름들이 있는데 이중에서 2부터시작하는 이름부터 뒤로 출력하는 소스좀~
>
> 읽어봐주셔서 감사합니다!
> 저도 많은 도움 드리겠습니다!
comboedit가 아니고 combobox 아닌가요?
음냐? 이거를 보니 마치 explorer로 처럼 근접검색을 하는 거 그런거 얘기를 하나 본대요! 아래에 소스를 보내드립니다. 단, 한글은 아니 되옵니다.
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;