如何用循环给文本Edit控件赋初值啊?

crazyrabbits 2003-08-20 10:43:45

也就是说,我有100个Edit控件,控件的 Name 从 Edit1 —— Edit100 ,如何用循环语句给这100个Edit赋值呢?比如都赋1给这些Edit,改怎么写?
...全文
42 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
crazyrabbits 2003-08-21
  • 打赏
  • 举报
回复

哀,真是笨,出错语句改成 sqlStr = sqlStr + EditItem->Text.ToDouble() +"')"; 就没问题了,原来多了括号 :(
揭帖了,多谢各位,特别是 halibut(乡下人) 和 Atomictry(天影)
crazyrabbits 2003-08-21
  • 打赏
  • 举报
回复

Atomictry(天影) 更正了 halibut(乡下人) 的一点点笔误,很好用,谢各位啦 。。。。
另外,我用循环让50个Edit显示了,让用户输入数据,然后再如何把这些数据存入数据库呢?一个数据生成一条数据库记录!

int InputNum;
InputNum = StrToInt(Edit->Text);
for(Index=0;Index<ComponentCount;Index++)
{
if(Components[Index]->ClassNameIs("TEdit"))
{
TEdit * EditItem = (TEdit *)Components[Index];
int TmpEdit;
AnsiString strName = EditItem->Name.Trim();
strName = strName.SubString(5,strName.Length()-4);
TmpEdit = StrToInt(strName);
if(TmpEdit>0 && TmpEdit<=InputNum)
{

sqlStr = "insert into Table1 values ('1',2,'";
sqlStr = sqlStr + (EditItem->Text).ToDouble +"')"; //出错语句
Query->SQL->Clear();
Query->SQL->Add(sqlStr);
Query->ExecSQL();
Query->Close();
EditItem->Visible = false;
}
}
}
我是这样做的,可总是报 [C++ Error] Unit1.cpp(84): E2235 Member function must be called or its address taken 这个错误 :( 哪位帮忙指点一下?

Atomictry 2003-08-21
  • 打赏
  • 举报
回复
to halibut(乡下人):
找你的刺罗。不要扔我石头。

int index;
int iUpbound=50;
for(index=0;index<ComponentCount;index++)
{
if(Components[index]->ClassNameIs("TEdit"))
{
TEdit * editItem = (TEdit *)Components[index];
int iTmp;
AnsiString strName = editItem->Name.Trim();
strName = strName.SubString(5,strName.Length()-4);
iTmp = StrToInt(strName);
if(iTmp>0 && iTmp<iUpbound)
{
editItem->Visible = TRUE;
}
}
}
MEFULEU 2003-08-21
  • 打赏
  • 举报
回复
void Cleartxt(TForm * Form)
{
//清空组件的文本;
for(int i=0;i<Form->ComponentCount;i++)
{
TComponent *c=Form->Components[i];
if(c->ClassNameIs("TEdit")){
TEdit *e=dynamic_cast<TEdit*>(c);
if(e)
e->Text="";
}
}

}
halibut 2003-08-21
  • 打赏
  • 举报
回复
int index;
int iUpbound=50;
for(index=0;index<ComponentCount;index++)
{
if(Component[index]->ClassName()==TEXT("TEdit"))
{
TEdit * editItem = (TEdit *)Component[index];
int iTmp;
String strName = editItem->Name.Trim();
strName = strName.SubString(4,strName.Length()-4);
iTmp = IntToStr(strName);
if(iTmp>0 && iTmp<iUpbound)
{
editItem->Visible = TRUE;
}
}
}
zjqyb 2003-08-21
  • 打赏
  • 举报
回复
i:integer;
for i:=0 to ComponentCount-1 do
begin
if Components[i] is Tedit then
begin
(Components[i] as Tedit).text:='';
(Components[i] as Tedit).readonly:=Components[i].tag=100;
end;
end;

crazyrabbits 2003-08-21
  • 打赏
  • 举报
回复

嘿嘿,感谢大家的回帖,现在就回家试试去 。。。。
crazyrabbits 2003-08-20
  • 打赏
  • 举报
回复

我要实现这样的功能:我在一个Panel上准备了100个Edit(一开始都不可见)准备输入值,当我在另一个Edit里输入一个数字(例如50)后,就会有前50个Edit(即Edit1 —— Edit50)变成可见,该怎么实现呢?
Siney 2003-08-20
  • 打赏
  • 举报
回复
遍历Form里所有元件,如果是Edit则得到其名字,如果是Edit1-Edit100则让你Text=“0”

13,824

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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