我使用comboBox出现的问题(70分)

  • 主题发起人 主题发起人 noyamm
  • 开始时间 开始时间
N

noyamm

Unregistered / Unconfirmed
GUEST, unregistred user!
我的程序大致如下:
在form1的combobox编写onselect事件,为form2的combobox添加items,当form1的
"确定"按钮按下后,在form2的combobox中就显示相关的items,
现在的问题是,我运行程序时,form1.combobox中选择选项后在form2.comboBox显示的选项
每次都不一样,为什么会有这样的情况发生?
 
“在form1的combobox编写onselect事件”到底是那一个事件呀?
 
说详细点,贴出相关代码
 
意思难懂。
 
源码如下:
在JHCBox的选择事件中把符合条件的items加入到JSCBox中
procedure TForm1.JHCBoxSelect(Sender: TObject);
begin
Form3.JSCBox.Clear;
try
DataModule2.JSADODataSet.CommandText:=
'select distinct JS from cccs where JH='''+JH+'''';{JH为Form1中定义的全局变量}
DataModule2.JSADODataSet.Active:=true;
while not DataModule2.JSADODataSet.Eof do
begin
Form3.JSCBox.Items.Add(DataModule2.JSADODataSet.Fields[0].asstring);
DataModule2.JSADODataSet.Next;
end;
finally
DataModule2.JSADODataSet.Close;
end;
end;

当在Form1的JHCBox中选择了一个选项后就转向Form3,选择JSCBox中的选项
procedure TForm1.yesBtnClick(Sender: TObject);
begin
JH:=JHCBox.Text;
Form3.Show;
Form1.Visible:=false;
end;

当Form3隐藏时,清空JSADODataSet的命令文本
procedure TForm3.FormHide(Sender: TObject);
begin
DataModule2.JSADODataSet.Close;
DataModule2.JSADODataSet.CommandText:='';
end;



 
你把这行Form3.JSCBox.Items.Add(DataModule2.JSADODataSet.Fields[0].asstring);改
成Form3.JSCBox.Items.Add(DataModule2.JSADODataSet.Fields['字段名']);试一试看!!


 
to 游向明
fields中使用integer呀,怎么能使用string呢
而且我的数据集也就是选取数据表中的一列呀
 
在每次新增之前最好对Combox的items进行清空﹐要不items将会重复
 
procedure TForm1.JHCBoxSelect(Sender: TObject);
begin
JH:=JHCBox.Text;
end;
procedure TForm1.yesBtnClick(Sender: TObject);
begin
Form3.JSCBox.Clear;
try
DataModule2.JSADODataSet.CommandText:=
'select distinct JS from cccs where JH='''+JH+'''';{JH为Form1中定义的全局变量}
DataModule2.JSADODataSet.Active:=true;
while not DataModule2.JSADODataSet.Eof do
begin
Form3.JSCBox.Items.Add(DataModule2.JSADODataSet.Fields[0].asstring);
DataModule2.JSADODataSet.Next;
end;
finally
DataModule2.JSADODataSet.Close;
end;
Form3.Show;
Form1.Visible:=false;
end;
再试试
 
to jack_yuan
你的方法不行
 
查看一下这个属性
ComboBox1.Sorted
 
同意huawdg,没错
 
多人接受答案了。
 
后退
顶部