Delphi 动态创建控件,并绑定控件事件

type
  TForm13 = class(TForm)
    Button1: TButton;
    ScrollBox1: TScrollBox;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
    procedure myClick(sender: TObject);
  public
    { Public declarations }
  end;

var
  Form13: TForm13;

implementation

{$R *.dfm}

procedure TForm13.Button1Click(Sender: TObject);
const
  iHtoH = 20; //行间距
  iWtoW = 10; //列间距
  iPerLine = 6; //每行个数
  iWidth = 80; //按钮宽度
var
  i: Integer;
begin
  for i := 1 to 30 do
  begin
    with TButton.Create(Self) do
    begin
      Name := ‘Btn‘ + InttoStr(i);
      Parent := Self.ScrollBox1;
      Caption := Name;
      Top := iHtoH + (30 + iHtoH) * (i div iPerLine - integer((i mod iPerLine) = 0));
      Left := iWtoW + (iWidth + iWtoW) * ((i - 1) mod iPerLine);
      if Name = ‘Btn5‘ then
      begin
        OnClick := myClick;
      end;
      Show;
    end;
  end;
end;

procedure TForm13.myClick(sender: TObject);
begin
  ShowMessage(‘hello,world!‘);
end;

原文地址:https://www.cnblogs.com/yangxuming/p/10470279.html

时间: 2024-10-15 08:45:48

Delphi 动态创建控件,并绑定控件事件的相关文章

用JS动态创建SVG元素并绑定事件

var svg = document.createElementNS("http://www.w3.org/2000/svg", "svg"); svg.setAttribute("width", "800"); svg.setAttribute("height", "500"); svg.addEventListener("load", function () {

layUi 模板引擎动态创建元素之后,绑定的事件无效了;

模板引擎动态创建元素之后,绑定的事件无效了: layUi 模板引擎动态创建元素之后,绑定的事件无效了: 可以在 模板引擎成功后  注册事件 原文地址:https://www.cnblogs.com/lpp-11-15/p/12264046.html

DELPHI 动态 创建和释放 多个 EDIT 控件

unit Unit1;   interface   uses   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,   Dialogs, StdCtrls, ExtCtrls;   type   TForm1 = class(TForm)     pnl1: TPanel;     btn1: TButton;     btn2: TButton;     procedure btn1Click(

Delphi 动态创建组件,单个创建、单个销毁

效果图如下: 实现部分代码如下: var rec: Integer = 0; //记录增行按钮点击次数 implementation {$R *.dfm} //动态释放单个组件内存,即销毁组件 procedure TForm1.DeleteRow(Sender: TObject); begin if rec < 1 then Exit else begin TPanel(Panel1.Controls[rec]).Free; //释放单个控件内存 TComboBox(Panel2.Control

Delphi动态创建组件,并释放内存

开发所用delphi版本是xe2,效果图如下: 代码如下: ----------------------------------------------------------------------------------------------------------------- unit Unit1; interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Class

pyqt动态创建一系列组件并绑定信号和槽(网友提供学习)

# -*- coding: utf-8 -*- # python:2.x __author__ = 'Administrator' #如上图要求:创建指定多个复选框,一种是通过QT设计器Designer,这种是在知情的情况下.另一种是通过配置文件读出来,或者从数据库中取出来,还有其他情况就需要动态创建 #思路是循环列表,创建对象,插入布局,进行信号槽绑定和处理信号,通过sender()方法来获取那个对象发出的信号 from PyQt4.Qt import * from PyQt4.QtCore 

Delphi动态创建菜单

在程序运行中动态创建菜单,主要使用TMeunItem类,所有菜单的条目都是TMenuItem的一个实例. 打开Delphi7集成开发环境,在默认新建工程里,放置一个Button1按钮和MainMenu1菜单项,设置Button1的Caption属性为添加主菜单. 在Button1的Object Inspector选项卡设置Button1的OnClick响应事件,代码如下: procedure TForm1.Button1Click(Sender: TObject); var files,edit

vs2010中的ADO控件及绑定控件

要在项目中添加某一个ActiveX控件,则该ActiveX控件必须要注册.由于VS2010中,并没有自动注册ADO及ADO数据绑定控件(Microsoft ADO Data Control,Microsoft DataCombo等),参考http://msdn.microsoft.com/zh-cn/library/dsb06ab6(v=vs.100).aspx 故没法在插入ActiveX控件对话框中找到它们. 若要在VS2010中获得这种控件,需要另外下载然后注册,或者利用以前的VS版本获得.

动态添加DOM时,绑定的click事件会重复执行

最近因为业务需求,需要重写window的alert和confirm弹窗,但是每次显示的提示按钮不相同,所有每次打开的弹窗都需要重写生成,但是对于相同的按钮会保留上次创建时的click事件,所以当你创建了多少次弹窗,你下次单击该按钮就会执行多少次,面对这个问题有两个解决方法: 1,每次关闭弹窗时都将其销毁,destory() 方法,将创建的dom从document中remove()掉: 2,将一些公共的btn设置为公用的dom,不需要每次都进行创建,这样在下一次为其btn绑定click事件时,un