动态创建实例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.