
链接:https://pan.baidu.com/s/1cST-NSoy2ZFh-FQ44L3XxA
提取码:rgca
2]汉字拼音带出


要手动编辑EXE目录 下的History.txt文件
通过网盘分享的文件:CoboboxLike5.rar
链接: https://pan.baidu.com/s/1YvC2vpdnxH7SPcgyyBfdgA 提取码: 6c6r
procedure TForm1.Edit1Change(Sender: TObject); //输入 时 实时 筛选
var i:integer;
begin
ListBox2.Visible:=false;
ListBox2.Items.Clear;
for i := 0 to aStringList.Count -1 do begin
if pos( Edit1.Text, aStringList[i])>0 then begin
ListBox2.Items.Add(aStringList[i])
end;
end;
ListBox2.Visible:=ListBox2.Items.Count>0;
end;
procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if ( key=VK_DOWN) and (listbox2.Items.Count>0) then begin //按 向下键,选择
ListBox2.SetFocus;
ListBox2.ItemIndex:=0;
end;
end;
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then begin // 按回车键,Edit内容 添加到 历史记录里
aStringList.Add(Edit1.Text)
end
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
aStringList.SaveToFile('History.txt'); //退出时,将历史记录保存到 硬盘里
aStringList.Free;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
aStringList:= tStringList.Create;
aStringList.sorted := True; //历史记录 去除功能
aStringList.Duplicates := dupIgnore;
// aStringList.Add('aa');
// aStringList.Add('ab');
// aStringList.Add('cc');
// aStringList.Add('bc');
// aStringList.Add('dd');
aStringList.LoadFromFile('History.txt'); //启动时,加载历史记录
end;
procedure TForm1.ListBox2KeyPress(Sender: TObject; var Key: Char);
begin
if (key=#13) and (listbox2.Items.Count>0) then begin //选择 历史记录 项
Edit1.Text:= listbox2.Items[listbox2.ItemIndex];
edit1.SetFocus;
listbox2.Visible:=false;
end
end;
end.
就像Chrome网址输入栏一样记录历史网址一样
1[输入时,若历史记录中有,则实时带出,模糊记录(部分包含),按 向下键,可以选择历史 项,
2]若历史记录没有,按回车,则加入到历史记录中,下次 输入则会带出来

添加功能,模糊带出时,突出模糊字符串

0]要将ListBox的Style设为lbOwnerDrawFixed

调整ListBox2的字体大小后,记得调整它的ItemHeight


增加大小写不敏感查询

procedure TForm1.ListBox2DrawItem(Control: TWinControl; Index: Integer; Rect: TRect; State: TOwnerDrawState); var aX:integer; leftStr,midStr,rightStr,yyyStr:string; begin ax := Rect.Left ; midStr:=lowercase(edit1.Text); ListBox2.Canvas.Font.Color := clblack; leftStr:=copy( ListBox2.Items[index] ,1 ,pos(midStr, lowercase(ListBox2.Items[index]))-1); // 左 文字 ListBox2.Canvas.TextOut(ax , Rect.Top ,leftStr); Inc(ax, ListBox2.Canvas.TextWidth(leftStr)); ax:=ax+1; //===================================================================================== ListBox2.Canvas.Font.Color := clred; // 中 文字 yyyStr:=copy( ListBox2.Items[index] , pos(midStr, lowercase(ListBox2.Items[index])) , length(midStr) ); ListBox2.Canvas.TextOut(ax , Rect.Top ,yyyStr); Inc(ax, ListBox2.Canvas.TextWidth(yyyStr)); ax:=ax+1; //===================================================================================== ListBox2.Canvas.Font.Color := clblack; rightStr:=copy( ListBox2.Items[index] ,pos(midStr, lowercase(ListBox2.Items[index]))+length(midStr) ,100 ); // 右 文字 ListBox2.Canvas.TextOut(ax , Rect.Top ,rightStr); end;
链接:https://pan.baidu.com/s/1cST-NSoy2ZFh-FQ44L3XxA
提取码:rgca
浙公网安备 33010602011771号