M
mill666
Unregistered / Unconfirmed
GUEST, unregistred user!
想让 combobox的item的显示的值跟返回的值不同,意思就是:item里面显示的是:
中国
美国
德国
中国对应的值是03,美国对应的值是06,德国对应的是05,这样我选择“美国:的法,其实我得到的值应当是"06"。
看了delphi7自带的帮助,里面有一个例子,使用的是item.addobject方法,可以达到这个功能:
procedure TForm1.Button1Click(Sender: TObject);
var s : string;
i:integer;
begin
combobox1.Clear;
i:=0;
s := '03';
combobox1.Items.AddObject('中国',TObject(s));
s := '06';
combobox1.Items.AddObject('美国',TObject(s));
s := '05';
combobox1.Items.AddObject('德国',TObject(s));
end;
procedure TForm1.ComboBox1Change(Sender: TObject);
begin
begin
edit1.Text :=
string(combobox1.Items.Objects[combobox1.ItemIndex]);
end;
end;
这样,在选择combobox的值的时候,edit1.text就返回了正确的对应的值。
可是:
大家看到了那个 s 变量了,如果不是直接给s变量付值,二是通过另外一个变量付值,比如上面的程序写成:
procedure TForm1.Button14Click(Sender: TObject);
var s : string;
i:integer;
begin
combobox1.Clear;
i:=0;
s:=inttostr(i+3);
combobox1.Items.AddObject('中国',TObject(s));
s:=inttostr(i+6);
combobox1.Items.AddObject('美国',TObject(s));
s:=inttostr(i+5);
combobox1.Items.AddObject('德国',TObject(s));
end;
procedure TForm1.ComboBox1Change(Sender: TObject);
begin
begin
edit1.Text :=
string(combobox1.Items.Objects[combobox1.ItemIndex]);
end;
end;
这个时候edit1.text就得不到值了,showmessage(edit1.text)得到的是一个乱码。
请问这是为什么??或者大家有没有其他的办法实现同样的功能?item里面的项是变动的,程序不能写死的。
中国
美国
德国
中国对应的值是03,美国对应的值是06,德国对应的是05,这样我选择“美国:的法,其实我得到的值应当是"06"。
看了delphi7自带的帮助,里面有一个例子,使用的是item.addobject方法,可以达到这个功能:
procedure TForm1.Button1Click(Sender: TObject);
var s : string;
i:integer;
begin
combobox1.Clear;
i:=0;
s := '03';
combobox1.Items.AddObject('中国',TObject(s));
s := '06';
combobox1.Items.AddObject('美国',TObject(s));
s := '05';
combobox1.Items.AddObject('德国',TObject(s));
end;
procedure TForm1.ComboBox1Change(Sender: TObject);
begin
begin
edit1.Text :=
string(combobox1.Items.Objects[combobox1.ItemIndex]);
end;
end;
这样,在选择combobox的值的时候,edit1.text就返回了正确的对应的值。
可是:
大家看到了那个 s 变量了,如果不是直接给s变量付值,二是通过另外一个变量付值,比如上面的程序写成:
procedure TForm1.Button14Click(Sender: TObject);
var s : string;
i:integer;
begin
combobox1.Clear;
i:=0;
s:=inttostr(i+3);
combobox1.Items.AddObject('中国',TObject(s));
s:=inttostr(i+6);
combobox1.Items.AddObject('美国',TObject(s));
s:=inttostr(i+5);
combobox1.Items.AddObject('德国',TObject(s));
end;
procedure TForm1.ComboBox1Change(Sender: TObject);
begin
begin
edit1.Text :=
string(combobox1.Items.Objects[combobox1.ItemIndex]);
end;
end;
这个时候edit1.text就得不到值了,showmessage(edit1.text)得到的是一个乱码。
请问这是为什么??或者大家有没有其他的办法实现同样的功能?item里面的项是变动的,程序不能写死的。