吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 393|回复: 3
收起左侧

[求助] 关于在未知数量的情况下动态创建控件的困惑

[复制链接]
冥界3大法王 发表于 2023-11-19 22:06


比如以下delphi代码:




procedure TMain_Form.动创3个ComboBoxClick(Sender: TObject);
var
  ComboBox1, ComboBox2, ComboBox3: TComboBox;
begin
  ComboBox1 := TComboBox.Create(DTSC_Panel);
  ComboBox1.Parent := DTSC_Panel;
  ComboBox1.Left := 500;
  ComboBox1.Top := 10;

  ComboBox2 := TComboBox.Create(DTSC_Panel);
  ComboBox2.Parent := DTSC_Panel;
  ComboBox2.Left := 500;
  ComboBox2.Top := 80;

  ComboBox3 := TComboBox.Create(DTSC_Panel);
  ComboBox3.Parent := DTSC_Panel;
  ComboBox3.Left := 500;
  ComboBox3.Top := 150;
end;


问题是我不知道  ComboBox到底是几个?数量是(动态的不确定的)跟随机很像
ComboBox 加 序号 ,这咋表达?

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

 楼主| 冥界3大法王 发表于 2023-11-19 22:37
以下没报错,咋显示了一个呢?

unit Unit7;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants,
  System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.Menus,
  Vcl.StdCtrls;

type
  TForm7 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);

  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form7: TForm7;
  A1: Integer;

implementation

{$R *.dfm}

procedure TForm7.FormCreate(Sender: TObject);
begin
  Randomize; //初始化随机数发生器
  A1 := Random(5);
end;

procedure TForm7.Button1Click(Sender: TObject);
var
  i: Integer;
  num: array[1..5] of TComboBox;
begin
  for i := 1 to A1 do
  begin
    num[i] := TComboBox.Create(Form7);
    num[i].Parent := Form7;
    num[i].Left := 10 + 100;
    num[i].Top := 10 + 50;
  end;
end;

end.
lies2014 发表于 2023-11-19 22:49
冥界3大法王 发表于 2023-11-19 22:37
以下没报错,咋显示了一个呢?

unit Unit7;

只显一个是因为都重叠在一起了:
    num.Left := 10 + 100;
    num.Top := 10 + 50;

免费评分

参与人数 1吾爱币 +1 收起 理由
冥界3大法王 + 1 对看花眼了,怎么能全是数字呢。。

查看全部评分

DEATHTOUCH 发表于 2023-11-20 00:09
每一个TComponent类都有一个Components属性,表示该组件作为容器时拥有对象所有权的子控件列表。
可以在动态创建控件时为其生成一个独一无二的Name属性,或者一个Tag属性来区分它们,而查找一类控件通常需要利用TObject的ClassName属性来区分。
由于Name属性对于任意类型组件都是唯一的,而某种类型的组件用ClassName和Tag来区分是更合适的。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

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

GMT+8, 2024-11-24 19:14

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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