【发布时间】:2014-02-19 12:09:02
【问题描述】:
我正在打开一个新表单。每次打开它都会变慢。我尝试了 FormClose 事件 FreeAndnil、Free、Release、DisposeOf 但不是解决方案。我添加了一个待机计时器:
Button1第一次点击,Form 2后显示0,18秒
Button1 秒点击,Form 2 后显示 0,20 秒
Button1 第三次点击,Form 2 后显示 0,23 秒
Button1第四次点击,Form 2后显示0,28秒 . . .
Button1 xxxx 点击,Form 2 后显示 6,30 秒
//Form1 Button1 Click
Application.CreateForm(TFrom2,Form2);
Form2.Show;
//Form2 OnCLose
//i try
//FreeAndNil, Free, Relsease,DisposeOf ...
如何解决这个问题? 示例项目来源: https://www.dropbox.com/s/yeqpizr6rfo6254/LeakProblem.rar
尝试20-30次点击“Form2显示按钮” 请参阅备忘录中的增加等待时间。
【问题讨论】:
-
是什么让您认为这种减速是由于内存泄漏?
-
没有任何代码和证据,我认为您对“泄漏”的看法是正确的。您通过
Application.CreateForm(..)创建的表单不会被释放,因为Application仍然持有对它的引用。如果你不使用Application.CreateForm(..)而是使用myForm := TForm2.Create(Nil)怎么办? -
Allication.CreateForm 是我的习惯。我现在试试 TForm2.Create(nil)
-
Andy_D 内存泄漏或其他。我不知道
-
@Günther the Beautiful 我尝试但不更改等待时间。
标签: android delphi memory-leaks firemonkey delphi-xe5