百度输入提示 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;

时间: 2024-08-25 18:59:34

百度输入提示 Delphi 实现的相关文章

仿百度的输入提示功能

/// <reference path="jquery-1.7.1.min.js" /> //实现搜索输入框的输入提示js类 function oSearchSuggest(searchFuc) { var input = $('#txtNaviSearchBox'); var suggestWrap = $('#gov_search_suggest'); var key = ""; var init = function () { input.bind

IFE JavaScript Task0002-4 小练习4:输入提示框

小练习4:输入提示框 任务描述 在和上一任务同一目录下面创建一个task0002_4.html文件,在js目录中创建task0002_4.js,并在其中编码,实现一个类似百度搜索框的输入提示的功能. 要求如下: 允许使用鼠标点击选中提示栏中的某个选项 允许使用键盘上下键来选中提示栏中的某个选项,回车确认选中 选中后,提示内容变更到输入框中 初级班: 不要求和后端交互,可以自己伪造一份提示数据例如: var suggestData = ['Simon', 'Erik', 'Kener']; 自己搭

c#模仿百度关键词提示

1:from窗体环境:TextBox(关键词文本框).ListBox(提示框) 2:实现思路: 2.1:以输入的关键词为条件查询  数据库(在查询中以点击率排序就加一个order by 点击率 desc)返回多行单列数据结果集合.再一一赋值到listBox中显示. 2.2:在TextBox中如果侦听键盘 if(Down(小键盘向下)) 则先获取到ListBox选中的索引,如果返回-1 或者x+1的值大于ListBox.count()   则初始值=0; 否则为ListBox索引值为x+1 els

Selenium2+python自动化34-获取百度输入联想词

前言 最近有小伙伴问百度输入后,输入框下方的联想词如何定位到,这个其实难度不大,用前面所讲的元素定位完全可以定位到的. 本篇以百度输入框输入关键字匹配后,打印出联想词汇. 一.定位输入框联想词 1.首先在百度输入框输入关键词,如:博客,然后输入框下方会自动匹配出关键词. 2.这时候可以用firebug工具定位到联想出来的词,可以看到下方匹配出来的词都有共同的class属性,这时候就可以全部定位到了. 二.打印全部匹配出来的词 1.通过get_attribute()方法获取到文本信息 三.参考代码

仿百度搜索提示框效果

<!doctype html><html><head> <meta charset="UTF-8"> <title>百度搜索提示框</title> <style> * { margin: 0;padding: 0; outline: none;} .search101 { width: 650px; margin: 300px auto; font-size: 0; } .sou1 { width: 5

【高德地图API】从零开始学高德JS API(四)搜索服务——POI搜索|自动完成|输入提示|行政区域|交叉路口|自有数据检索

摘要: 地图服务,大家能想到哪些?POI搜素,输入提示,地址解析,公交导航,驾车导航,步行导航,道路查询(交叉口),行政区划等等.如果说覆盖物Marker是地图的骨骼,那么服务,就是地图的气血.有个各种各样的地图服务,我们的地图应用才能变得有血有肉,活灵活现. 第四篇拆成了几个要点,本篇主要讲搜索服务.包括周边搜索,关键词搜索,范围搜索,搜索提示(自动完成,输入提示),行政区域,交叉路口,检索自有数据(云图). demo:http://zhaoziang.com/amap/zero_4_1.ht

jQuery手机号码输入提示

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><title>jQuery手机号码输入提示</title

文本框输入提示/自动完成功能

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>文本框输入提示/自动完成功能</ti

Jquery实现文本框输入提示

一些用户体验好的表单都会在文本框里设置输入提示,文本框获取焦点时,提示内容消息,如果未输入,失去焦点时又会出现提示. 网上找到一个比较好用的控件jquery.inputDefault.js 使用方法: 1.在jsp页面引用jquery.inputDefault.js <script src="/js/jquery.inputDefault.js" type="text/javascript"></script> 2.需要为控件增加一个自定义属