Combobox如何指定序号(ItemIndex)添加内容

gdxg0762 2011-07-08 09:17:58
比如:怎么在combobox的第10行添加‘AAA’的值;选择combobox的‘AAA’时ItemIndex的值返回为10;
...全文
1305 31 打赏 收藏 转发到动态 举报
写回复
用AI写文章
31 条回复
切换为时间正序
请发表友善的回复…
发表回复
山东蓝鸟贵薪 2011-07-18
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 bdmh 的回复:]
ComboBox1.Items.Insert(10,'AAA');
[/Quote]
应该是
ComboBox1.Items.Insert(9,'AAA');

chinawcs 2011-07-18
  • 打赏
  • 举报
回复
另外 RzComboBox 可以这样


procedure TForm1.Button1Click(Sender: TObject);
begin
RzComboBox1.InsertItemValue(0,'aa','bb');
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
ShowMessage(RzComboBox1.Values.Strings[RzComboBox1.itemindex] );
end;


方法都有三种了 楼主可以结贴了
弘石 2011-07-18
  • 打赏
  • 举报
回复
[Quote=引用 24 楼 gdxg0762 的回复:]

我取值的时候会报错

procedure TForm1.Button1Click(Sender: TObject);
begin
ComboBox1.AddItem('afsdf',TObject(10));
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
ComboBox1.Items.Objec……
[/Quote]
Integer(combobox.items.Objects[index])
hzg134679hzg 2011-07-18
  • 打赏
  • 举报
回复
楼主,很纠结,需求没有分析透,肯定写不出来程序的
chinawcs 2011-07-18
  • 打赏
  • 举报
回复
如果 一定要用 combobox 那么看我的文章 已经解决 很好用 没有内存泄露
http://blog.csdn.net/chinawcs/article/details/6610754

还可以用 三方组件解决这个 比如 ehlib中的TDBComboBoxEh

while not Ado.Eof do
begin
cbo.Items.Add(Ado.Fields[1].AsString);
cbo.KeyItems.Add(Ado.Fields[0].AsString);
Ado.Next;
end;
gdxg0762 2011-07-18
  • 打赏
  • 举报
回复
加入空格后,在combobox list中会显示出来啊,我是不想显示;

[Quote=引用 18 楼 hongss 的回复:]
那你就把前边的所有行插入一个空格。。。。打地基。。。
[/Quote]
gdxg0762 2011-07-18
  • 打赏
  • 举报
回复
你这个方式我好像也试过不行,也许我不知道怎么用;
我的测试DEMO如下:

procedure TForm1.Button2Click(Sender: TObject);
var
MyList:TStringlist;
begin
//ComboBox1.Items.Objects[10];
MyList:=TStringList.Create();
MyList.Add('fasf');
MyList.Add('aaa');
MyList.Add('aa');
MyList.Insert(10,'fdsafdsa');
ComboBox1.Items.AddStrings(MyList);
MyList.Free;
end;

我想达到的目标是:前10行中其中有三行才有数据,但是我又在第10行中添加数据,应该怎么样做的问题;且4-9行为NIL

[Quote=引用 17 楼 lyhoo163 的回复:]
建议你使用TStringlist,因为 ComboBox.Items就是TStringlist,方法如下
1、创建MyList:TStringlist
2、在MyList插入操作
3、 ComboBox.Items.addstrings(Mylist)
[/Quote]
gdxg0762 2011-07-18
  • 打赏
  • 举报
回复
我取值的时候会报错

procedure TForm1.Button1Click(Sender: TObject);
begin
ComboBox1.AddItem('afsdf',TObject(10));
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
ComboBox1.Items.Objects[10];
end;

先单击Button1 再单点button2

[Quote=引用 9 楼 youthon 的回复:]
用combobox.addObject( 'aaa', TObject(10) );
取的时候用combobox.items.Objects[index]
[/Quote]
zylmp 2011-07-18
  • 打赏
  • 举报
回复
UP,期待高手解答~~~
lovebaby999 2011-07-13
  • 打赏
  • 举报
回复
先判断一下控件里有多少数据,少于11个(从0开始排序),直接添加,多于11个,在第10个位置添加
shijies 2011-07-12
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 sailxia 的回复:]
if ComboBox.Items.Count > 10 then
insert()
else
Add();
[/Quote]


先根据属性判断ComboBox.Items.Count
wzn0521 2011-07-12
  • 打赏
  • 举报
回复
你需要预先增加到最大行数的,否则才有2行你插入10肯定报错。要么你就判断如果不到你这个行数你自动补充进去,没别的办法。

返回行号简单,ItemIndex + 1就是行号了
guduhen 2011-07-12
  • 打赏
  • 举报
回复
前面没那么多汗
你怎么判断他是第10行?
hongss 2011-07-12
  • 打赏
  • 举报
回复
那你就把前边的所有行插入一个空格。。。。打地基。。。
lyhoo163 2011-07-12
  • 打赏
  • 举报
回复
建议你使用TStringlist,因为 ComboBox.Items就是TStringlist,方法如下
1、创建MyList:TStringlist
2、在MyList插入操作
3、 ComboBox.Items.addstrings(Mylist)
Frank.WU 2011-07-11
  • 打赏
  • 举报
回复
if ComboBox.Items.Count > 10 then
insert()
else
Add();


蓝色光芒 2011-07-11
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 youthon 的回复:]
用combobox.addObject( 'aaa', TObject(10) );
取的时候用combobox.items.Objects[index]
[/Quote]
+
zykaixin 2011-07-10
  • 打赏
  • 举报
回复
前面没有加到10是什么意思,不懂
shijies 2011-07-10
  • 打赏
  • 举报
回复
先对Ccombobox的items属性进行判断。
zkroy36 2011-07-08
  • 打赏
  • 举报
回复
需求重新确认下!
没有10行的时候,插入到第几行!
add加后面,insert直接插入
加载更多回复(11)

5,386

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧