我不想用combobox
解决方案 »
- 怎样安装1stclass控件
- 在线等,自定义纸张设置在针式打印机上没问题,但是激光打印机不行,有没有替代的方法?
- 智能报警管理系统出错,哪位高手能解决?
- ehlib高手請進,回答完問題我給88分,絕對不食言
- 大家来探讨一下Delphi误导人的思想
- 紧急求救!如何改写DbGrid中一列的内容.
- 如何在delphi中用语句实现,创建sql server数据库,并且在该数据库下执行sql文件?
- 如何让自己的程序实现像任务栏一样的停靠在桌面上的效果?
- 请较一个压力测试的方法,请帮帮忙!!!
- 怎样停止一个线程??
- delphi 定时器精度 在工控中的问题 求解答!
- 如何利用checkbox多条件随机组合查询
我查到一个链接,很好用,你看看http://bbs.csdn.net/topics/360160938
放一个Edit,那里输入,在Edit的OnChange事件里面加一些处理:当Edit不为空时,在Edit下面显示出一个ListBox(ListBox1.Visible := True),并且把和输入相关的内容显示到ListBox中;当Edit的Text为空时,则将ListBox隐藏起来(ListBox1.Visible := False);
例如:当你在Edit中输入“地下”时,马上把ListBox中显示和“地下”相关的内容
procedure TForm1.cbb1Enter(Sender: TObject);
begin
cbb1.Style:= csDropDown;
end;procedure TForm1.cbb1Exit(Sender: TObject);
begin
cbb1.Style:= csSimple;
end;
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;type
TForm1 = class(TForm)
lst1: TListBox;
edt1: TEdit;
procedure FormCreate(Sender: TObject);
procedure edt1Click(Sender: TObject);
procedure edt1Exit(Sender: TObject);
procedure lst1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
procedure FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);
begin
edt1.Text := '';
lst1.Hide;
// 随便加几项
lst1.Items.Add('dsfsfsff');
lst1.Items.Add('多少顺丰到付');
lst1.Items.Add('xzxccvvxv');
lst1.Items.Add('dsf的23233sfsff'); lst1.Top := edt1.Top + edt1.Height;
lst1.Left := edt1.Left;
lst1.Width := edt1.Width;
lst1.Height := lst1.ItemHeight * lst1.Items.Count + 4;
end;procedure TForm1.edt1Click(Sender: TObject);
begin
if lst1.Items.Count > 0 then
lst1.Show;
end;procedure TForm1.edt1Exit(Sender: TObject);
begin
lst1.Hide;
end;procedure TForm1.lst1MouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
begin
lst1.ItemIndex := lst1.ItemAtPos(Point(x, y), True);
end;procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
begin
if PtInRect(ClientRect, Point(x, y)) then
lst1.Hide;
end;end.