效果图如下:
实现部分代码如下:
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;