delphi内combobox用法。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了delphi内combobox用法。相关的知识,希望对你有一定的参考价值。

从c表中调取cno列的内容,但是却显示不出来,请高手帮忙看一下哪里有错误? procedure Tfrm_main.ComboBox1Change(Sender: TObject);var i: Integer;begin ComboBox1.Clear; ComboBox1.SetFocus; with ADOQuery1 do begin Close; SQL.Clear; SQL.Add('select cno from c'); Open; if RecordCount>0 then for i:=0 to RecordCount-1 do begin ComboBox1.Items.Add(FieldByName('cno').AsString); next; end; end;end;

参考技术A 以上事件是一个死循环,所以永远看不到显示的内容;不知道楼上几位回答的时候有没看到?

这段代码应该是放在ComboBox1dropdown事件中;
因为你的ComboBox1.Clear; 和ComboBox1.Items.Add都在触发ComboBox1Change事件,所以程序不出现假死已经算好的了
参考技术B 要在combobox 的onchange 事件下面写:
procedure Tfrm_main.ComboBox1Change(Sender: TObject);
begin
ComboBox1.text:='';
with ADOQuery1 do
begin
Close;
SQL.Clear;
SQL.Add('select cno from c');
Open;
if adoquery.recordcount>0 then
begin
while not EOF do
begin
ComboBox1.Items.Add(FieldByName('cno').AsString);
next;
end;
end
else
showmessage('没有相关记录');
exit;
end;
参考技术C 1.确定有记录吗?
2.这段代码不要放在ComboBox组件的onChange事件, 放在Button的onClick事件试试
3.也可以这么写
procedure Tfrm_main.ComboBox1Change(Sender: TObject);
begin
ComboBox1.Clear;
ComboBox1.SetFocus;

with ADOQuery1 do
begin
Close;
SQL.Clear;
SQL.Add('select cno from c');
Open;
while not EOF do
begin
ComboBox1.Items.Add(FieldByName('cno').AsString);
next;
end;
end;
end;
参考技术D buttion事件里写

begin
if combobox.text='小明' then edit1.text=100;
if combobox.text='小王' then edit1.text=90;
......
end;

最好是把数据存储到表了。通过查找combobox的值,获取对应的成绩,赋值给edit

在delphi中如何用combobox实现分级读取数据库中的内容

想用两个combobox和一个edit做一个查询~根据在combobox1中选中的项目~combobox2显示相应的子项目~再根据combobox2中选中的子项目~在edit中显示最终结果~我是用sql server2000和delphi连接的~combobox1中的代码已经写出来了~怎么和combobox2连接我就不知道怎么写了~请各位高手帮帮忙~ 以下是实现combobox1的代码~ procedure TForm12.FormCreate(Sender: TObject); begin adoquery1.Close; adoquery1.SQL.Clear; adoquery1.SQL.Add('SELECT distinct brand from CPU'); adoquery1.Open; combobox1.Items.Clear; while not adoquery1.Eof do begin combobox1.Items.Add(adoquery1.fieldbyname('brand').AsString); adoquery1.Next; end; end;

参考技术A 你可以在combobox1的OnChange事件里写代码
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('SELECT
distinct
XXX
from
CPU
where
brand='''+combobox1.text+'''');
adoquery1.Open;
combobox2.Items.Clear;
while
not
adoquery1.Eof
do
begin
combobox2.Items.Add(adoquery1.fieldbyname('XXX').AsString);
adoquery1.Next;
end;
依次类推,在combobox2的OnChange事件再写事件啊!

以上是关于delphi内combobox用法。的主要内容,如果未能解决你的问题,请参考以下文章

delphi中的ComboBox组件的使用?

如何使用delphi combobox

delphi中的combobox问题

在delphi中如何用combobox实现分级读取数据库中的内容

delphi 中combobox控件怎么显示所选择选项

delphi的combobox的事件问题