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.Controls[rec]).Free;
    TEdit(Panel3.Controls[rec]).Free;
    Dec(rec);  //增行按钮次数递减
  end;
end;

//动态创建单个组件
procedure TForm1.AddRow(Sender: TObject);
var
  e:Integer;  //记录当前组件总数量
  edt: TEdit;
  pnl: TPanel;
  combo: TComboBox;
begin
  Inc(rec);  //按钮点击次数
  e := Panel3.ControlCount;   //edit数量
  //动态创建Edit
  edt := TEdit.Create(Panel3);
  edt.Parent := Panel3;
  edt.Left := Edit1.Left;
  edt.Top := Edit1.Top + (Edit1.Height + 3)*e;
  edt.Width :=Edit1.Width;
  edt.Height := Edit1.Height;
  edt.Text := ‘Edit‘ + IntToStr(rec + 1);
  edt.Show;
  //Panel、ComboBox创建方法与Edit相同

end;

  

时间: 2024-10-13 01:12:34

Delphi 动态创建组件,单个创建、单个销毁的相关文章

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

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

动态创建组件TEdit

//动态创建组件TEdit procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;  Shift: TShiftState; X, Y: Integer);var  Edit:TEdit;begin  Edit:=Tedit.Create(nil);  Edit.parent :=Self;  Edit.Show;  Edit.Left := x;  Edit.Top := y;end;{ tedit1 }pro

Angular动态创建组件之Portals

这篇文章主要介绍使用Angular api 和 CDK Portals两种方式实现动态创建组件,另外还会讲一些跟它相关的知识点,如:Angular多级依赖注入.ViewContainerRef,Portals可以翻译为 门户 ,我觉得放到这里叫 入口 更好,可以理解为动态创建组件的入口,类似于小程序或者Vue中的Slot. cdk全名Component Development Kit 组件开发包,是Angular官方在开发基于Material Design的组件库时抽象出来单独的一个开发包,里面

vue组件的创建

vue的核心基础就是组件的使用,玩好了组件才能将前面学的基础更好的运用起来.组件的使用更使我们的项目解耦合.更加符合vue的设计思想MVVM. 那接下来就跟我看一下如何在一个Vue实例中使用组件吧! 这里有一个Vue组件的示例: Vue.component('Vheader',{ data:function(){ return { } }, template:`<div class="header"> <div class="w"> <

Vue——组件的创建

vue的核心基础就是组件的使用,玩好了组件才能将前面学的基础更好的运用起来.组件的使用更使我们的项目解耦合.更加符合vue的设计思想MVVM. 那接下来就跟我看一下如何在一个Vue实例中使用组件吧! 这里有一个Vue组件的示例: Vue.component('Vheader',{ data:function(){ return { } }, template:`<div class="header"> <div class="w"> <

【转】VS2013动态库文件的创建及其使用详解

一.VS2013动态库文件的创建 1.新建项目,win32,win32项目,输入项目名称,例如MakeDll. 2.”确定“——”下一步“,选择”DLL“选项,再点”完成“: 3.菜单栏选择”项目“——>”添加新项“,来创建头文件MakeDll.h. 在MakeDll.h中输入以下例子代码: 1 #ifdef DLL_API//如果已经定义就什么都不做 2 //nothing to do 3 #else //否则定义DLL_API 4 #define DLL_API __declspec(dll

vue.js 创建组件 子父通信 父子通信 非父子通信

1.创建组件 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>创建组件</title> <script src="https://unpkg.com/vue/dist/vue.js"></script> </head> <body> &l

【Unity】4.1 创建组件

分类:Unity.C#.VS2015 创建日期:2016-04-05 一.简介 组件(Component)在Unity游戏开发工作中非常重要,可以说是实现一切功能所必需的. 1.游戏对象(Game Object) 游戏对象(Game Object)包括空物体.基本几何体.外部导入的模型.摄像机.GUI.粒子.灯光.树木等各类元素. 凡是出现在层次视图中的元素都是游戏对象. 2.组件(Component) 组件是在游戏对象(Game Object)中的实现某些功能的集合.无论是模型.GUI.灯光还

PDF文档创建组件Spire.PDF for .NET

Spire.PDF for .NET控件是一款由e-iceblue公司开发的专业性的PDF文档创建组件.它能够使用户在不用Adobe Acrobat和其他外部控件的情况下,运用.NET 应用程序阅读,编写和操纵PDF 文档.Spire.PDF for .NET不仅可以运用在服务端比如:ASP.NET 或者其他环境,还可以应用在Windows Forms 应用程序中.Spire.PDF for .NET 适合应用于所有常见的坏境中,比如:创建好的PDF文档可以存到磁盘中, 还可以在Windows