请问delphi怎么删除动态生成的label组件?

在程序运行过程中我用以下代码点击按钮生成label以后想清空里面的内容或者说删除动态创建的label的话怎么做呢?//////竖向生成labelvari,n,i1:Int... 在程序运行过程中我用以下代码点击按钮生成label以后想清空里面的内容或者说删除动态创建的label的话怎么做呢?
//////竖向生成label
var
i,n,i1:Integer;
lbl: TLabel;
begin
edit1.Visible:=false;
//edit1.Top
n:=6;
i1:=20 ;
for i:=2 to n do
begin
lbl:= TLabel.Create(Application);
lbl.Parent := Self;
lbl.Caption := 'lbl'+IntToStr(i);
lbl.top :=i*30+(lbl1.Top-30);
lbl.Height := 75;
lbl.Width :=75 ;
lbl.Left :=lbl1.Left;
end;
end;
展开
 我来答
gcbjoy
2016-08-12 · TA获得超过1.1万个赞
知道大有可为答主
回答量:1.1万
采纳率:92%
帮助的人:2150万
展开全部
那你就用个数组把lbl 都保存下来,需要删除时 再一个一个释放清除掉。

为什么要采用这种方式呢? 用个列表控件不是比你这个要好得多吗 !
追问
提供一下一键清除整个窗口label的代码吗
追答
unit Unit1;
interface
uses
  ...................;
type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}
var
  lbl:array[1..100] of tlabel;
  n:integer;
  yesorno:boolean;

procedure TForm1.Button1Click(Sender: TObject);
var
  i:Integer;
begin
  n:=6;
  if not yesorno then
  for i:=1 to n do
  begin
    lbl[i]:= TLabel.Create(Application);
    lbl[i].Parent := Self;
    lbl[i].Caption := 'lbl'+IntToStr(i);
    lbl[i].top :=i*30;
    lbl[i].Height := 60;
    lbl[i].Width :=75 ;
    lbl[i].Left :=10;
  end;
  yesorno:=true;
end;

procedure TForm1.Button2Click(Sender: TObject);
var
  i:integer;
begin
  if yesorno then for i:=1 to n do lbl[i].Destroy;
  yesorno:=false;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  yesorno:=false;
end;

end.
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式