吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 829|回复: 6
收起左侧

[求助] Delphi的控件名称ComboBox后面的数字是动态的怎么表示?

[复制链接]
冥界3大法王 发表于 2023-1-9 14:42
本帖最后由 冥界3大法王 于 2023-1-9 14:43 编辑

例如
控件名是:
ComboBox1
ComboBox2
ComboBox3

但是,后面的那个数字是我从txt中读取出来的
我要弄成动态的 : ComboBox+数字编号

下面这样表示,没出错,但运行就异常了。
TComboBox(Self.Controls[StrToInt(控件编号.Value)]).TextHint := 控件编号.Value;

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

y_w_o 发表于 2023-1-9 15:02
TComboBox.name:='ComboBox'+控件编号.Value;
控件编号.Value是string还是integer类型
 楼主| 冥界3大法王 发表于 2023-1-9 15:15
y_w_o 发表于 2023-1-9 15:02
TComboBox.name:='ComboBox'+控件编号.Value;
控件编号.Value是string还是integer类型
控件编号.Value

这个是用正则匹配出来的
因此它是字符串
JuncoJet 发表于 2023-1-9 15:17
JuncoJet 发表于 2023-1-9 15:24
[C++] 纯文本查看 复制代码
Procedure TForm1.Button1(Sender:TObject); 
var 
Index:Integer; 
Begin 

For Index:=0 to ControlCount-1 do 
Begin 

if Components[Index] is TEdit then 
begin 
(Components[Index] As TEdit).Color:=ClLime; 
end 
End 

End; 

在DELPHI的每一个VCL组件中都带有一个属性:COMPONENTINDEX;利用这个属性就可以实现控件数组
摘录自网络

免费评分

参与人数 2热心值 +2 收起 理由
冥界3大法王 + 1 谢谢@Thanks!
赖小白不白 + 1 热心回复!

查看全部评分

y_w_o 发表于 2023-1-9 15:54
procedure TForm1.btn1Click(Sender: TObject);
var
  ComboBox: array of TComboBox;
  i, j, d: Integer;
begin
  j := 3; //控件数量
  d := 50;
  setlength(ComboBox, j); //设置数组上限
  for i := 0 to j - 1 do
  begin
    ComboBox[i] := TComboBox.Create(nil);
    ComboBox[i].Parent := Form1;
    ComboBox[i].Name := 'ComboBox' + IntToStr(i + 1);
    ComboBox[i].Text := 'ComboBox' + IntToStr(i + 1);
    ComboBox[i].Left := 0 + d;
    ComboBox[i].Top := 100;
    d := d + 200;
  end;
end;

免费评分

参与人数 1热心值 +1 收起 理由
冥界3大法王 + 1 热心回复!

查看全部评分

Ashes 发表于 2023-1-9 16:33
你可以参考5楼的代码学习一下啊. 6楼是动态创建控件数组的例子.
你的代码为什么出错? 是因为: 指定编号对应的控件 Self.Controls[index] 恰好不是 ComboBox.
这里的编号, 跟控件名称中的1,2,3没有关系. 是内部隐含的编号.

免费评分

参与人数 1热心值 +1 收起 理由
冥界3大法王 + 1 谢谢@Thanks!

查看全部评分

您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2025-1-11 20:50

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表