难到所有人?//

ItOldHorse 2003-08-22 06:48:23

e40到e48的控件均存在且有値

for i:=40 to 48 do
begin
sum:=sum+strtoint(Tedit(findcomponent('e'+inttostr(i))).Text);
end;

为什么执行出错???
...全文
31 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
lxpbuaa 2003-08-22
  • 打赏
  • 举报
回复
var
I,Sum: Integer;
tfComponent: TComponent;
begin
Sum := 0;
for I := 40 to 48 do
begin
tfComponent := FindComponent('e' + IntToStr(I));
if tfComponent <> nil then
Inc(Sum, StrToIntDef(Trim(TEdit(tfComponent).Text), 0));
end;
end;

检查e40到e48的控件名字的第一个子目是“e”还是“E”

—————————————————————————————————
宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
—————————————————————————————————
risingsoft 2003-08-22
  • 打赏
  • 举报
回复
控件名是一种特殊的字符串 不能用普通的方法使用
对于你的问题 可以有中解决思路:
将所有EDIT放到一个容器里,如Panel 然后这样做
var
i,s: integer;
begin
for i:=0 to Panel.Controls.ControlCount-1 do
if Panel.Controls[i] is TEdit then
s:=s+StrToInt(TEdit(Panel.Controls[i]).Text);
end;
ZyxIp 2003-08-22
  • 打赏
  • 举报
回复
什么错??

控件名字的大小写对吗???


值全是整数吗???

5,386

社区成员

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

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