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

2016-02-19 12:51 21 1 收藏

最近很多朋友喜欢上设计,但是大家却不知道如何去做,别担心有图老师给你解答,史上最全最棒的详细解说让你一看就懂。

【 tulaoshi.com - 编程语言 】

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

  interface

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

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/bianchengyuyan/)

  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;

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/bianchengyuyan/)

  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;

  end.
  
  
  作者:lzcx

来源:https://www.tulaoshi.com/n/20160219/1602198.html

延伸阅读
标签: 电脑入门
有些用户忘记了自己上次是什么时候关机,又想知道自己的MAC运行了多长时间,那么该如何解决这个问题呢?其实很简单,现在就让图老师小编教你一个解决的方法吧。 打开苹果电脑 Mac OS X 系统自带的终端工具(找不到的话,点击屏幕右上角的放大镜标志,Spotlight搜索端或terminal),输入uptime(无引号)即可查询这台苹果电脑一共运行了多长...
标签: 电脑入门
Linux中的swap分区类似Windows的虚拟内存,在硬盘空间不足的情况下,可通过创建swap分区来解决,下面图老师小编就给大家介绍下Linux如何创建和删除swap分区。 1.swap概述 Swap分区,即交换区,Swap空间的作用可简单描述为:当系统的物理内存不够用的时候,就需要将物理内存中的一部分空间释放出来,以供当前运行的程序使用。那些被释放...
标签: Web开发
在您的IE浏览器上运行含有JavaScript代码的页面时都会产生一个警告。这个警告确实很烦人,不知情的人看了还以为是病毒什么呢,很容易让人产生误解! 记得网上也有人称其为IE的小黄条警告。具体的什么叫法我们今天不用关心,我们关心的是如何去掉这个警告。具体方法如下: 点击工具---Internet选项---高级---"允许活动的内容在我的...
标签: 浏览器
IE浏览器如何解决运行时间错误   出现了运行时间错误的解决办法: 降低IE安全级别,启用ActiveX 控件,关闭脚本调试; 第一步:首先打开IE浏览器,点击上方的工具菜单选择Internet选项在常规选项中点击删除Cookies点击确定再点击删除文件勾选删除所有脱机内容,点击确定不要关闭Internet选项窗口; 第二步:切换到...
  编写Delphi应用程序时,经常会遇到一些ActiveX控件[注:扩展名为OCX的控件或DLL的类型库],它们为应用程序的开发提供了简单的操作途径。然而,这些程序在发布的同时,面临ActiveX控件注册问题。解决途径:一、用安装程序制作打包文件,往往会给增加程序本身的大小,系统重装时,则必须重新安装它;二、用程序本身进行代码编写函数的...

经验教程

738

收藏

60
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部