delphi - 删除运行时创建的TLabel

标签 delphi runtime vcl

如何删除已创建的标签。我尝试了 FindComponent 但失败了,我该怎么办?我应该将父级设置为其他组件,例如 TPanel 还是什么?

procedure TForm1.Button1Click(Sender: TObject);
var
  lblLink: TLabel;
begin
   for i := 0 to stringtList.Count-1 do
   begin 
     lblLink := TLabel.create(self);

     with lblLink do
     begin
       name:='lblLink'+inttostr(i);
       caption:inttostr(i);
       Parent := self;
       font.style := [fsUnderline];
       cursor := crHandPoint;
       color := clBlue;
       font.Color := clBlue;
     end;
   end;
end;

最佳答案

您可以迭代 Components 属性,然后检查组件的名称,最后释放该组件。

Var
  LIndex : Integer;
  LComponent : TComponent;
begin
  for LIndex := ComponentCount-1 downto 0 do
    if StartsText('lblLink',Components[LIndex].Name) then
    begin
     LComponent:=Components[LIndex];
     FreeAndNil(LComponent);
    end;
end;

关于delphi - 删除运行时创建的TLabel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13484584/

相关文章:

delphi - Windows 7 上的 Delphi 6 中的 "specific to a platform"警告

delphi - 在计时应用程序中对赛车手进行排序

c++ - 运行时的模板实例化和函数选择

delphi - 有没有 Delphi XE2 样式库?

Android:在运行时更改矩形的颜色

asp.net - 线程处理时发生未处理的.Net Framework异常

Delphi XE2 VCL样式,更新标题会阻止其他控件失效

delphi - 不能内联函数吗?

delphi - 如何在ShowMessage中显示表格?

delphi - 改变 TComboBox 的 ITEMINDEX 不会触发它的 OnChange 事件