关于combobox的super大怪事!有谁能解释清楚?!(10分)

  • 主题发起人 杭彦彤
  • 开始时间

杭彦彤

Unregistered / Unconfirmed
GUEST, unregistred user!
代码没语法错误
按我的代码,当combobox的text值改变时,只是执行简单的赋值操作,并不会在dbgrid里显示什么!
但奇怪就奇怪在第一次点选combobox后就在dbgrid那显示记录了!!但并不是查询结果,要点button
后才有正确的查询结果。而再次点选combobox就正常了,就是说要点button后才会有查询结果,并且结果是对的
代码如下:
procedure TForm1.c1change(Sender: TObject);//*c1就是combobox1组件的名字
begin
if c1.text='星期一' then a:='1'
else if c1.text='星期二'then a:='2'
else if c1.text='星期三'then a:='3'
else if c1.text='星期四'then a:='4'
else if c1.text='星期五'then a:='5'
else if c1.text='星期六'then a:='6'
else if c1.text='星期日'then a:='7'
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
with q1 do//*q1是sql组件的名字
begin
close;
sql.Clear;
sql.add('select * from"test.db"where 班期 like '+#39+'%'+a+'%'+#39'');
open;
如果不设置onchange事件,然后将select语句里的a改成c1.text,这样就很正常,没有上述怪现象
所以我觉得还是onchange的问题!

 
我按你的思路写了一次,没出现问题。你看看代码:

http://tieren.org/shellapi/download/hxx.zip
 
在设计状态时,ADOQUERY不要打开!!![:D]
 
谢谢xuejian提醒,我今天急着走,就没注意了。
 
我测试了没有问题啊,把你全部代码贴出来看看!
 
对,设计时期query组件都关闭,应该是这个原因了
 
顶部