Delphi 百度输入提示 Delphi 实现


本文整理自网络,侵删。

 我们在百度时,输入部分内容,即可获得输入项选择列表,从而大大减少录入,用户的体验很好,下面是用delphi 模拟这种效果的设计

定义 

    DataLst: TStringList; 

用于存放供选择的数据。



   Edt1:TEdit;

用于接收用户录入



    lbSerach: TListBox;

用于显示提示列表



procedure FillData(DataLst: TStringList );

begin

......

end;



// 在选择列表中的按键处理

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

  Shift: TShiftState);

var

  i: Integer;

begin

  if Key = 13 then // 回车键

  begin

    for i := 0 to lbSerach.Items.Count - 1 do // 查找用户选取的数据项

    begin

      if lbSerach.Selected[i] then

      begin

        edt1.Text := lbSerach.Items[i];

        lbSerach.Visible := False;

        edt1.SetFocus;

        Exit;

      end;

    end;

  end else



  if Key = VK_UP then  // 回到编辑框

  begin

    if lbSerach.ItemIndex = 0 then

    begin

      lbSerach.ItemIndex := -1;          // 不起作用

      lbSerach.Selected[0] := False;    // 不起作用

      edt1.SetFocus;

    end;

  end;

end;



// 编辑框内容变化处理

procedure TForm1.edt1Change(Sender: TObject);

var

  i: Integer;

  str: string;

begin

  str := TEdit(Sender).Text;

  lbSerach.Items.BeginUpdate;

  lbSerach.Clear; // 清除以前的内容



  for i := 0 to DataLst.Count - 1 do  // 从可用数据中选出 匹配项 最多 15个

  begin

    if pos(str, DataLst[i]) > 0 then 

    begin

      lbSerach.Items.add(DataLst[i]);

      if lbSerach.Items.Count > 15 then

        Break;

    end;

  end;

  lbSerach.Items.EndUpdate;

  lbSerach.Visible := lbSerach.Items.Count>0;

end;



// 编辑框按键处理

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

  Shift: TShiftState);

begin

  if lbSerach.Visible then

  begin

    if Key = VK_DOWN then

      lbSerach.SetFocus;

    lbSerach.Selected[0] := True;

  end;

end;

相关阅读 >>

Delphi 如何从文本内容中删除指定行

Delphi动态创建30个按钮,每行6个共5行,顺序排列

Delphi idhttp 获取链接连通状态

Delphi下获取ie的useragent的方法

Delphi 创建win桌面快捷方式,实现360桌面图标数字提示 或 类似安卓的右上角的数字提示

Delphi xe [dcc32 fatal error] f2039 could not create output file 问题的解决

Delphi 程序如何禁止切换输入法?

Delphi listview 导出excel txt vcf 单元

Delphi内存映射 与 映射数据获取

Delphi winapi: getforegroundwindow - 获取前台窗口的句柄

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...