动态创建实例2 [无指针引用]

来源:互联网 发布:淘宝怎么看无线端来源 编辑:程序博客网 时间:2024/05/01 06:46
unit DynamicCreateControlsPas;interfaceuses  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,  Dialogs, StdCtrls, ComCtrls;type  TForm1 = class(TForm)    Button1: TButton;    Button2: TButton;    procedure aBtnonClick(Sender: Tobject);    procedure Button1Click(Sender: TObject);  private    { Private declarations }  public    { Public declarations }  end;var  Form1: TForm1;const  aCaption = 'delphi';implementation{$R *.dfm}procedure CreateBtn(aLeft, aTop, aWidth, aHeigh, aMount: integer;  sCaption: string; aOnWer: TComponent);                          //封装创建Btn函数var  i: integer;begin  aTop:= 0;  for i := 1 to aMount do    with TButton.Create(aOnWer) do    begin      Name := sCaption + inttostr(i);      aTop := aTop + 80;      BoundsRect := Bounds(aLeft, H, aWidth, aHeigh);      Parent := Form1;    end;end;procedure Tform1.aBtnonClick(Sender: Tobject);                      //事件过程var  i: integer;begin  for i := 1 to 5 do  begin    if ((Sender as TButton).Caption = acaption + inttostr(i)) then      ShowMessage((Sender as TButton).caption);  end;end;procedure TForm1.Button1Click(Sender: TObject);                     //调用创建btn函数var  i: Integer;  aBtn: TButton;begin  for i := 1 to 5 do  begin    if not Assigned(TButton(FindComponent(aCaption + inttostr(i)))) then      CreateBtn(60, 60, 120, 60, 5, aCaption,Form1);    aBtn := TButton(FindComponent(aCaption + inttostr(i)));    aBtn.OnClick := aBtnonClick;  end;end;end.

原创粉丝点击