我有这么个问题combobox控件的属性为默认。items为a 1000
b 2000
c 3000我要用户在选择下拉列表选择后,显示出来的只是a或b或c,不带数字。这是我的代码
procedure TForm1.ComboBox1Select(Sender: TObject);
var
tmpstr:string;
ch_index:integer;
begin
tmpstr:=combobox1.Items.Strings[combobox1.itemIndex];
//showmessage(tmpstr)='a 1000'
ch_index:=pos(' ',tmpstr);
//showmessage(copy(tmpstr,0,ch_index-1))='a'
if ch_index>0 then
combobox1.Text:=copy(tmpstr,0,ch_index-1);//这句有问题
end;但结果不行,它显示出了完整结果(a 1000)。另外,要怎么做才能让'a'左对齐,'1000'右对齐?麻烦大家了。
b 2000
c 3000我要用户在选择下拉列表选择后,显示出来的只是a或b或c,不带数字。这是我的代码
procedure TForm1.ComboBox1Select(Sender: TObject);
var
tmpstr:string;
ch_index:integer;
begin
tmpstr:=combobox1.Items.Strings[combobox1.itemIndex];
//showmessage(tmpstr)='a 1000'
ch_index:=pos(' ',tmpstr);
//showmessage(copy(tmpstr,0,ch_index-1))='a'
if ch_index>0 then
combobox1.Text:=copy(tmpstr,0,ch_index-1);//这句有问题
end;但结果不行,它显示出了完整结果(a 1000)。另外,要怎么做才能让'a'左对齐,'1000'右对齐?麻烦大家了。
解决方案 »
- 高分求DelPHI编程高手,简单问题高分
- 我用钩子拦截了其他应用程序的WM_QUIT事件,但是,如何知道这个应用程序的实例句柄呢?
- 如何用程序控制键盘上的CapsLock键,NumLock键?急!!!
- 服务器(网站) 数据库
- delphi现在最常用的数据库访问组件是什么
- 各位大哥帮个忙~~~~~~~~~~~~~~~关于创建一个组件.
- DevExpress控件下的cxSpreadSheet怎样设置隐藏某行或某列?
- 请问我在制作ActiveX控件时,怎样触发自己添加的事件哪?
- 如何在DBGridEH最后一行有个合计行。
- 一个简单的问题等你来拿分!
- 请问怎样转换为中文的日期!
- 怎样在form中播放avi动画
把style改为dropdownlist后,用户就不能自己添加项目了,这不是我的目的。
var
tmpstr:string;
ch_index:integer;
begin
tmpstr:=combobox1.Items.Strings[combobox1.itemIndex];
//showmessage(tmpstr)='a 1000'
ch_index:=pos(' ',tmpstr);
//showmessage(copy(tmpstr,0,ch_index-1))='a'
if ch_index>0 then
begin
combobox1.Text:=copy(tmpstr,0,ch_index-1);
ShowMessage(copy(tmpstr,0,ch_index-1));//显示是正确的
end;
end;我没有去看代码,不过我想可能是ComboBox在选择的时候,是直接通过设置
Index的值来显示的,所以才会有那样的效果我建议楼主用AddObject的方式,也就是在每个Item上加入一个属性,即把a 1000分开
当用户选择a时,你可以通过其Index得到1000
在selected事件中把Items清空,加入“计算”得来的新字符串,把ItemIndex=0。
为什么要这么做,具体我不知道,我只知道无论你在ComboBox的什么事件使用类似
ComboBox1.Items.text:='XXXX'语句都是无效的。又是我自己摆平了
我该怎么结贴?????请原谅我再摆上几天。