我通过formcreate将数据库相应字段的数据添加到了combobox中,现在发现一个问题是如果我把其中一组数据给删除,combobox中仍然显示着那串数据,一定要把程序关闭再重新打开才会更新里面的数据。我也知道formcreate是一次性的东西,那现在有没有甚么办法比如添加一个刷新按钮来更新combobox中新的数据(或是更好的办法...)关闭程序重新打开巨麻烦啊~~~
解决方案 »
- 做过多串口通信开发的请进!有关机房监控系统.
- 我直接关闭窗体SplashForm,程序退出不能清除占用内存,
- 如何让程序自动下载并且运行
- 设置和读取格子里面的内容,方便得选择某一行,用什么控件比较好
- 关于小数点四舍五入的问题
- 我的exe等格式的文件都打不开了,怎么办呀?
- 触发器到底是什么东西呀?怎样使用
- 高分求助:在PASCAL中(非DELPHI环境)利用HTTP请求获取GMT标准时间。
- 是不是delphi的ADO控件组有问题?(为什么不能封装在DLL里?)
- FastReport打印StringGrid表格中的内容怎么实现每页合计?
- delphi2010 遇见的怪事
- 在线等!combobox中数据的刷新问题
不如重新加载数据来的方便{声明方法setcomb}
private
procedure setcomb;{添加combobox数据,数据来源自己决定从那里取}
procedure TForm1.setcomb;
begin
with combobox.items do
begin
clear;
add('A');
add('B');
end;
end;{打开窗口时调用}
procedure TForm1.FormCreate(Sender: TObject);
begin
setcomb;
end;{刷新按扭调用,或者其它想刷新的地方就加上setcomb;就行了}
procedure TForm1.Button1Click(Sender: TObject);
begin
setcomb;
end;
procedure TCRSH.setcomb;
begin
with adoqueryDW do
begin
sql.Clear;
sql.Add('select 单位名称 from 单位类别表');
open;
combobox1.Items.Clear;
while not eof do
begin
combobox1.Items.Add(FieldByName('单位名称').asstring);
next;
end;
close;
free;
combobox1.ItemIndex:=0;
end;
end;
代码里的free;语句是错误的,在这里的意思是Free掉adoqueryDW,所以第二次执行时就错误了
begin
with adoqueryDW do
begin//这里加
sql.close;sql.Clear;
sql.Add('select 单位名称 from 单位类别表');