要实现的功能如下:ComboBox对应一个表, 这个表里有拼音码的一个字段,在Combobox里输入一个字母时,在下列筐里自动列出与之相关的内容,如果鼠标点Combobox的下拉尖头的时候,则列出全部的内容。实现函数如下:但有问题
1、鼠标点Combobox的下拉尖头时什么也没有,
2、输入拼音码的时候,鼠标的箭头没有了,
3、想要当输入拼音码选好后, 在ComboBox离开焦点的时候判断,选的这个值在数据表里有?没有的话做提示.procedure TfrmInWeight.sycb(cb:tcombobox;fielda:string;field_srm:string;tablename:string);
var
i:integer;begin
//
if cb.Text <> cb.Items.Strings[cb.ItemIndex] then
begin
qyTemp.Close;
qyTemp.SQL.Clear ;
qyTemp.SQL.Add('select '+fielda+' from '+tablename+' where '+field_srm+' like '
+#39+'%'+cb.Text+'%'+#39);
qyTemp.Open ;
cb.Items.Clear ;
for i:= 0 to qyTemp.RecordCount -1 do
begin
cb.Items.Add(Trim(qyTemp.FieldByName(fielda).AsString));
next;
end; //
cb.DroppedDown := false;
if cb.Items.Count > 12 then
cb.DropDownCount := 12
else
cb.DropDownCount := cb.Items.Count ;
cb.DroppedDown:=false; sendmessage(cb.handle,CB_SHOWDROPDOWN,1,0);
cb.SelStart :=Length(cb.text);
end;end;
procedure TfrmInWeight.DriNameChange(Sender: TObject);
begin//调用sycb(DriName,'DriName','spellCode','Driver');
end;
1、鼠标点Combobox的下拉尖头时什么也没有,
2、输入拼音码的时候,鼠标的箭头没有了,
3、想要当输入拼音码选好后, 在ComboBox离开焦点的时候判断,选的这个值在数据表里有?没有的话做提示.procedure TfrmInWeight.sycb(cb:tcombobox;fielda:string;field_srm:string;tablename:string);
var
i:integer;begin
//
if cb.Text <> cb.Items.Strings[cb.ItemIndex] then
begin
qyTemp.Close;
qyTemp.SQL.Clear ;
qyTemp.SQL.Add('select '+fielda+' from '+tablename+' where '+field_srm+' like '
+#39+'%'+cb.Text+'%'+#39);
qyTemp.Open ;
cb.Items.Clear ;
for i:= 0 to qyTemp.RecordCount -1 do
begin
cb.Items.Add(Trim(qyTemp.FieldByName(fielda).AsString));
next;
end; //
cb.DroppedDown := false;
if cb.Items.Count > 12 then
cb.DropDownCount := 12
else
cb.DropDownCount := cb.Items.Count ;
cb.DroppedDown:=false; sendmessage(cb.handle,CB_SHOWDROPDOWN,1,0);
cb.SelStart :=Length(cb.text);
end;end;
procedure TfrmInWeight.DriNameChange(Sender: TObject);
begin//调用sycb(DriName,'DriName','spellCode','Driver');
end;
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货