delphi中实现用字符串表示并操作控件的方法。

本文介绍了一种使用字符串变量来动态引用并操作不同控件的方法。这种方法允许在Delphi等环境中,通过遍历循环更新多个同类控件的值。特别地,文章详细展示了如何根据组合框的选择更改一系列编辑框的内容,并进行数值计算。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

下面代码用字符串实现了对控件的操作,其中所有控件都在panel1内,

StrEdtProNum代表Tedit控件EdtProNum,其它同。

procedure TPM_FrmCFProPlan_Mon.CbUseMatUnit_1Change(Sender: TObject);
var
  StrEdtProNum:String;
  StrEdtClassNum:String;
  StrEdtMatNum:String;
  StrCbUseMat:String;
begin
  try

     StrEdtProNum:='';
     StrEdtClassNum:='';
     StrEdtMatNum:='';
     StrCbUseMat:='';
     i:=1;
     for i:=1 to 15 do
     begin
          StrCbUseMat:='CbUseMatUnit_'+InttoStr(i)+'';
          StrEdtProNum:='EdtProNum_'+InttoStr(i)+'';
          StrEdtClassNum:='EdtClassNum_'+InttoStr(i)+'';
          StrEdtMatNum:='EdtMatNum_'+InttoStr(i)+'';
     //Compute Values of  ProNum1 ClassNum1  and MatNum1
      if TComboBox(Panel1.FindChildControl(StrCbUseMat)).Text='公司' then
       begin
         EdtProNum1.Text:=InttoStr(Round(Strtofloat(TEdit(Panel1.FindChildControl(StrEdtProNum)).Text)+Strtofloat(EdtProNum1.Text)));
         EdtClassNum1.Text:=InttoStr(Round(Strtofloat(TEdit(Panel1.FindChildControl(StrEdtClassNum)).Text)+Strtofloat(EdtClassNum1.Text)));
         EdtMatNum1.Text:=InttoStr(Round(Strtofloat(TEdit(Panel1.FindChildControl(StrEdtMatNum)).Text)+Strtofloat(EdtMatNum1.Text)));
       end;
       //Compute Values of  ProNum2 ClassNum2  and MatNum2
       if TComboBox(Panel1.FindChildControl(StrCbUseMat)).Text='住金公司' then
       begin
         EdtProNum2.Text:=InttoStr(Round(Strtofloat(TEdit(Panel1.FindChildControl(StrEdtProNum)).Text)+Strtofloat(EdtProNum2.Text)));
         EdtClassNum2.Text:=InttoStr(Round(Strtofloat(TEdit(Panel1.FindChildControl(StrEdtClassNum)).Text)+Strtofloat(EdtClassNum2.Text)));
         EdtMatNum2.Text:=InttoStr(Round(Strtofloat(TEdit(Panel1.FindChildControl(StrEdtMatNum)).Text)+Strtofloat(EdtMatNum2.Text)));
       end;
     end;
  except
     ShowMessage('输入数据格式不正确 ,请重新输入!')
  end;
end;

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值