1

我正在尝试使用以下代码获取组合框项目数。它不会给出错误,也不会给出正确的计数。我想我必须将 int 转换为字符串,但是如何?

ComboBox1->ItemIndex = 1;
int count = ComboBox1->Items->Count;
Edit1->Text =  "Count: " + count;
4

4 回答 4

6

这条线

 int count = ComboBox1->Items->Count; 

返回 TComboBox 中字符串项的数量。你需要在设置之前检查这个

ComboBox1->ItemIndex = 1;

因为 ItemIndex 用于设置组合框中的选定项,并且计数为零。要在 Embarcadero 中将整数转换为字符串,您可以使用IntToStr()函数

Edit1->Text = "Count:" + IntToStr(count)

您将需要#include "System.hpp"访问该功能

于 2012-08-09T15:32:07.273 回答
3
ComboBox1->ItemIndex = 1;
int count = ComboBox1->Items->Count;
Edit1->Text =  "Count: " + count;

"Count: " + count是一个表达式,其中"Count: "衰减到指向字符串第一个元素的指针, count被添加到该指针,结果它要么指向字符串内的某个位置(OK),要么指向字符串的末尾(通常是未定义的行为)。

关于 your 的使用ComboBox1,您没有显示它的声明,也没有提到您正在使用哪个 GUI 框架(如果有的话)。

因此,如果不猜测它是什么,就无法谈论它。

为了创建带有插入文本值表示的格式化文本,您可以使用例如std::ostringstream来自<sstream>标题的 a,如下所示:

std::ostringstream stream;
stream << "Count: " << count;
Edit1->text = stream.str().c_str();

.c_str()根据接受的内容,可能需要也可能不需要调用Edit1.text

于 2012-08-09T15:31:27.137 回答
2
ComboBox1->ItemIndex = 1; 
int count = ComboBox1->Items->Count;
Edit1->Text =  "Count: " + count;
于 2012-10-09T13:31:30.197 回答
1

没有必要经历所有这些杂耍。为此提供了一个简单的功能。

int count = ComboBox1.GetItemCount();
于 2017-09-05T06:32:26.117 回答