Delphi - 从 TPanel 删除运行时生成的按钮

标签 delphi

我有几个在运行时填充有按钮的 TPanel。然而,我用来从父面板中释放按钮的下面的代码有时会生成访问冲突错误。

procedure TfrmTakeOrder.FreeItemButtons(buttons : array of TButton);
var
  cnt,i : integer;
begin

  for i := 0 to gridLayoutItems.ControlCount - 1 do
    begin
      buttons[i].Free;
      buttons[i] := nil;
    end;

end;

有更好的方法来做到这一点吗?请记住,其他面板也有按钮,我希望“本地化”释放不会与其他面板干扰的按钮。

最佳答案

在我看来,您正试图从 TPanel 中删除所有按钮,而该面板仅包含按钮。

试试这个:

while gridLayoutItems.ControlCount > 0 do
  gridLayoutItems.Controls[0].Free;

关于Delphi - 从 TPanel 删除运行时生成的按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6291578/

相关文章:

delphi - 为什么我的代码找不到任何注册表项?

delphi - ClipboardAsString 的 Unicode 版本

delphi - TClientDataSet 的 OnValidate

windows - 在 MAC 上运行一个 windows APP

delphi - FindFirst、FindNext(Delphi Xe、Win7)排名不正确

delphi - 从 Delphi 类的方法中调用全局函数

delphi - 当应用程序不处理 DPI 的运行时更改时,如何重置应用程序强加的兼容模式?

delphi - 如何访问 TTestSetup 类中 TTestCase 的字段

android - 数学表达式的奇怪值

delphi - 不想让表格最小化