`

Delphi动态创建、删除按钮

阅读更多

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;

end.

分享到:
评论

相关推荐

    DELPHI 动态创建按钮 BUTTONG

    本示例着重讲解如何在DELPHI XE10中动态创建按钮(BUTTONG)。动态创建控件允许你在程序运行时根据需要创建、修改或删除对象,而不是在设计时静态地放置在表单上。 首先,我们需要了解基本的控件创建过程。在DELPHI...

    delphi 程序运行 动态创建控件可以拖放

    在Delphi编程中,动态创建控件是一项常用的技术,它允许程序员在程序运行时根据需要创建和删除控件。这种灵活性极大地增强了用户界面的交互性和定制性。动态创建控件不仅可以节省内存,还可以实现诸如拖放功能等高级...

    在Delphi中动态创建和拖动控件的演示..rar

    在Delphi编程环境中,动态创建和拖动控件是一项重要的技能,它允许开发者在程序运行时根据需要添加、删除或移动界面元素。本演示将详细解释如何实现这一功能。 首先,动态创建控件通常涉及TControl类的子类,如...

    实例讲解如何在Delphi中动态创建dxBarManager内容

    通过上述步骤,你可以在Delphi中动态创建并管理dxBarManager的内容,构建出富有交互性和个性化特征的用户界面。在实际开发中,可以结合具体需求进行调整和扩展,如添加自定义控件、实现多层导航结构等,以满足复杂的...

    delphi程序运行时动态创建控件.

    在Delphi编程中,动态创建控件是一项常用的技术,它允许程序员在程序运行时根据需要创建、添加或删除用户界面元素。动态创建控件能够极大地提高程序的灵活性和可扩展性,尤其适用于那些需要根据用户交互或特定条件来...

    Delphi动态生成控件

    在Delphi编程环境中,动态生成控件是一项常用的技术,它允许程序员在运行时根据需要创建、添加和管理用户界面元素。动态生成控件的优势在于能够提高程序的灵活性,适应不同的用户需求,或者处理不可预知数量的数据项...

    delphi动态调用及卸载ocx插件

    在Delphi编程环境中,动态调用OCX控件是一种常见的技术,它允许程序在运行时加载和使用控件,而不必在编译时硬编码它们。这样做的好处是提高了代码的灵活性,使得开发者可以轻松地添加、更新或移除控件,而无需重新...

    delphi 权限菜单 例程

    在Delphi中,你可以创建一个函数,输入角色和菜单项,返回该角色是否具有该菜单项的访问权限。 5. **动态调整菜单**:根据用户角色,运行时动态调整菜单。在用户成功登录后,遍历菜单树,调用前面创建的权限检查...

    DELPHI动态生成删除控件并添加事件修改显示名称和拖动控件

    本文将深入探讨如何在DELPHI中动态创建控件,并为这些控件添加事件处理,修改它们的显示名称以及实现拖动功能。 首先,我们需要了解DELPHI中的TControl类。大多数可视控件都是TControl类的派生对象,因此我们可以...

    用Delphi制作动态菜单 .rar_delphi 动态菜单_delphi 菜单_delphi菜单_动态菜单

    本文将深入探讨如何使用Delphi来创建动态菜单,这对于提升用户体验和增强程序功能至关重要。 动态菜单是指在运行时可以根据程序状态或用户需求自动生成或改变的菜单结构。与静态菜单相比,动态菜单更具有灵活性,...

    delphi导航菜单范例

    4. **动态创建菜单**:除了在设计时添加菜单项,Delphi还支持在运行时动态创建和修改菜单。这可以通过编程方式添加、删除或修改TMenuItem对象来实现。范例可能包含这部分代码,展示如何根据需要动态调整菜单结构。 ...

    DLL注入HOOK进程按钮点击示例(delphi)

    标题 "DLL注入HOOK进程按钮点击示例(delphi)" 涉及的是Windows编程中的高级技术,主要包括DLL动态链接库、注入技术和HOOK技术。在Windows操作系统中,DLL是一种可执行代码的模块,它可以被多个程序共享,节省内存...

    delphi2010使用例子demo

    本篇文章将围绕"delphi2010使用例子demo"的主题,深入探讨其中涉及的自适应窗体、treeview组件、弹出框以及动态创建窗体等关键知识点,旨在帮助读者更好地理解和应用Delphi 2010。 首先,我们来关注"自适应窗体"这...

    delphi实用教程

    Delphi 2006 默认的快捷工具栏上的命令按钮可以添加或删除,开发者可以根据需要来定制快捷工具栏。 组件面板 Delphi 2006 的组件面板提供了许多有用的组件,开发者可以根据需要来选择合适的组件来创建应用程序。 ...

    delphi中gif控件

    使用这样的控件,开发者可以轻松地在Delphi程序中添加动态GIF功能,例如创建动态提示、加载指示器、动画按钮等。通过研究源代码和参考帮助文件,你可以更好地理解GIF图像的处理原理,以及如何在Delphi中有效地利用这...

    delphi Tlist使用方法举例

    在Delphi编程环境中,`TList` 是一个基础且重要的数据结构,用于存储动态数组。在 Delphi 的 VCL(Visual Component Library)框架中,`TList` 类提供了方便的方法来管理和操作对象列表。本教程将通过一个DEMO示例,...

    Delphi Delphi高级界面特效制作百例源代码

    《Delphi Delphi高级界面特效制作百例源代码》是一个针对Delphi开发者的宝贵资源,包含了一系列用于创建精美、交互性界面的源代码实例。这些实例涵盖了从基础到高级的各种界面特效,旨在提升应用程序的用户体验和...

    delphi自定义控件_treeview控件加强

    5. **实现增删改功能**:对于增删改操作,可以创建相应的菜单项或按钮,触发相应的事件处理函数。例如,可以创建一个`OnAddNode`事件,用于在选中的节点下添加子节点;`OnRemoveNode`事件用于删除选中节点;`...

    delphi6-7 控件ImageButton

    例如,你可以通过`Tag`属性传递额外的信息,或者在`OnMouseEnter`和`OnMouseLeave`事件中动态改变按钮的图片或文字。 ### 6. 自定义绘制 如果你需要更高级的定制,可以重写`Paint`方法来自定义`ImageButton`的绘图...

    Delphi Main Menu Expert

    2. **动态菜单管理**:该工具支持在运行时动态添加、修改或删除菜单项,适应不同用户需求或不同程序状态下的菜单变化。 3. **代码自动生成**:根据设计的菜单结构,工具能够自动生成对应的Delphi源代码,减少了手动...

Global site tag (gtag.js) - Google Analytics