老大,请教一下,如何让combobox实现像IE地址输入框那样的功能
谢谢.
谢谢.
解决方案 »
- 用如下程序DBCHART没有生成曲线,请教各位,如何处理?谢谢
- Delphi有这样的用法吗
- 如何将MP3声音文件存入数据库?谢谢
- 往dbf表中插入汉字时出现问题,汉字都显示成了问号,有什么办法可以解决吗?
- 能否在messagebox中增加一个checkbox?
- 向高手求救,有关出错信息,详情见内!
- 为什么会回车变成“\par”??
- MSSQL保存时间问题 在线等 50 急! MSSQL
- dbgrid:请问如何获得用户选择的那个单元的值,并对此单元通过代码进行赋值.(注.此单元是我在dbgrid中新加的)
- 怎么样得到adoquery将执行的SQL语句,然后并不让它执行,或更换掉_RECORDSET?
- dbgridEh導出csv檔案的問題,請高手幫忙!
- 求float保留两位小数的问题急急急急急!!!!!!!!!!
拼成一个假的ComboBox,然后分别响应Edit的OnKeyDown和OnChange事件
ComboBox的OnClick事件:procedure TForm1.Edit1Change(Sender: TObject);
var
i:Integer;
t:Boolean;
begin
t:=true;//设定找不到标志
for i := 0 to ComboBox1.Items.Count - 1 do
begin
if Pos(Edit1.Text , ComboBox1.Items[i]) = 1 then //找到以Edit1.Text开头的
begin
ComboBox1.ItemIndex := i;//选中
ComboBox1.DroppedDown:=true;//弹出
t:=false;//找到
Break;//跳出循环
end;
end;
if t then ComboBox1.DroppedDown := false; //没找到,关闭弹出的下拉框
end;
procedure TForm1.ComboBox1Click(Sender: TObject);
begin
Edit1.OnChange := nil;
Edit1.Text := ComboBox1.Text; //选中下拉框中的项目,反映到Edit中
Edit1.OnChange := Edit1Change;
end;procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
//弹出下拉框后,上下箭头和回车的事件发给Combobox处理
if ComboBox1.DroppedDown then
if (Key = VK_UP) or (Key = VK_Down) or (Key = VK_Return) then
begin
PostMessage(ComboBox1.Handle,WM_KEYDOWN,Key,0);
Key := 0;
end;
end;
改写为一个新控件,提高日后的开发速度!
IE地址输入框还有自动筛选功能,怎么实现?应该要有动态修改ComboBox的Items属性才对!
AutoComplete:= True;
AutoDropDown:= True;
在OnKeyPress中写
if (Key = #13) and (TCombobox(Sender).Items.Indexof(TCombobox(Sender).Text)<0) then
TCombobox(Sender).Items.add(TCombobox(Sender).Text);
动态生成Edit控件,然后响应相应事件