运行时动态创建和删除按钮

翻译|其它|编辑:郝浩|2005-07-08 10:16:00.000|阅读 1643 次

概述:

# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>


新开一个project,然后拖两个Button放在窗体上
代码如下:

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;

type
TForm1 = class(TForm)
btnAddButton: TButton;
btnDeleteLast: TButton;
procedure btnAddButtonClick(Sender: TObject);
procedure btnDeleteLastClick(Sender: TObject);
   private
     { Private declarations }
       procedure CustomButtonClick(Sender: TObject);
       public
     { Public declarations }
end;

var
  Form1: TForm1;

  implementation

{$R *.dfm}

procedure TForm1.btnAddButtonClick(Sender: TObject);
var
NewButton: TButton; // 新 Button的指针
begin
// 在内存中创建一个 Button,拥有者为self,这样当窗体 destory时,这个新button
// 能够被自动释放

NewButton := TButton.Create(Self);

With NewButton do
begin
  Top := 60; // button 的出现的坐标
  Width := 60; // button 的宽度
  Left := Width * (Self.ControlCount - 2);
  Parent := Self; // 指明在那个窗体显示
  OnClick := CustomButtonClick; // 指定button click事件
  Caption := 'Button' + IntToStr(Self.ControlCount - 2);
  end; // with
end;

procedure TForm1.btnDeleteLastClick(Sender: TObject);
begin
  // 确定窗体上有新的button
  if Self.ControlCount > 2 then
   // 删除最后新建的 button
  TButton(Controls[ControlCount - 1]).Destroy;
end;

procedure TForm1.CustomButtonClick(Sender: TObject);
begin
  // 根据 Sender 来判断哪个新建的button click
  ShowMessage(TButton(Sender).Caption + ' Pressed');
end;
 


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@evget.com


为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP