======请教一个combobox的事件======(20分)

C

coolsun

Unregistered / Unconfirmed
GUEST, unregistred user!
我放了两个comobobox组件,比方说前一个放省份名称,后一个放市的名称,现在想一旦
前面选定某一个省份之后,后面出现和那个省对应的市,我使用onchange事件没能成功
不知该使用哪种事件??谢谢
 
procedure TForm1.ComboBox1Change(Sender: TObject);
begin
ComboBox2.ItemIndex := 1;
end;
 
procedure TForm1.ComboBox1Change(Sender: TObject);
begin
procedure TForm1.ComboBox1Change(Sender: TObject);
begin
ComboBox1.Clear;
ComboBox1.Items.Add('北京');
ComboBox1.Items.Add('上海');
end;end;
 
combobox2.itemsindex:=combobox1.itemsindex;
让省份combobox1与省对应的市combobox2的顺序相同!
 
用click事件吧
 
康凌的想法我同意
 
1.先做几个文本文件(*.TXT),如‘北京.TXT’,‘上海.TXT’...,将各省的主要城市输入进去,每行占一列:
以江苏为例:
‘江苏.TXT’的内容如下:
南京
镇江
苏州
扬州
常州
无锡
靖江
南通
.
.
.

2.在COMBOBOX1的ITEMS属性中输入各省名称:每行一个省名。
3.在COMBOBOX1的ONCHANGE事件中输入如下代码:

case combobox1.ItemIndex of

0: combobox2.Items.LoadFromFile('D:/MY_DELPHI/combobox/内蒙.txt');
1: combobox2.Items.LoadFromFile('D:/MY_DELPHI/combobox/北京.txt');
2: combobox2.Items.LoadFromFile('D:/MY_DELPHI/combobox/上海.txt');
3: combobox2.Items.LoadFromFile('D:/MY_DELPHI/combobox/江苏.txt');
.
.
.

end;

这样做就可以了。
注意:将COMBOBOX1和COMBOBOX2的TEXT属性设置为空,会更好些。
对本例而言稍显复杂了点,但是这种编程思路却非常好,对于经常变更COMBOBOX2内容的实例而言,每次只需修改*.TXT文件即可,更便于维护。
 
zzcc_1205的方法是正解,我曾经把城市和省份存在access表里,然后加密,防止被破坏
用ado连接,用dbcombobox控件,程序中少写点代码
 
补充说两句:

可以将另做的文本文件如“北京.TXT”,后缀名任意修改,如‘北京.MM’,程序里也相应
修改为:
.
.
.
1: combobox2.Items.LoadFromFile('D:/MY_DELPHI/combobox/北京.MM');
.
.

这样别人一般不会在资源管理器中知道文件的类型,也就不会更改了。
 
多人接受答案了。
 
顶部