小编FLD*_*phi的帖子

使用控制台应用程序报告关闭时的内存泄漏

我已经创建了一个控制台应用程序并设置了ReportMemoryLeaksOnShutdown:= True.

我已经创建了一个TStringList但没有释放它.

程序完成执行后,我会看到内存泄漏一小段时间,然后控制台关闭.

我试过添加一个ReadLn; 到最后,但是当我这样做时它只显示一个空白的控制台窗口,这是有道理的.

我需要找到一种在内存泄漏报告之后暂停执行的方法,但是在完成程序关闭之前.

我正在使用Delphi 10 Seattle.

program Project1;

{$APPTYPE CONSOLE}

uses
  System.Classes,
  System.SysUtils;

var
  s : TStringList;

begin
  try
    ReportMemoryLeaksOnShutdown := True;
    s := TStringList.Create;

    //ReadLn doesn't work here, which makes sense.
  except
    on E: Exception do
      Writeln(E.ClassName, ': ', E.Message);
  end;
  //I need to be able to pause the program somewhere after the end statement here.
end.
Run Code Online (Sandbox Code Playgroud)

delphi memory-leaks delphi-10-seattle

6
推荐指数
4
解决办法
4362
查看次数

当datasnap服务器中的用户授权失败时,是否可以更改响应代码?

用户授权失败时,是否可以在我的DataSnap(Delphi XE3)服务器中更改HTTP响应代码?目前它正在返回HTTP/1.1 500内部服务器错误,这可能发生在许多其他情况下,并没有帮助描述问题.

沿着同样的想法,是否可以更改默认的响应主体?目前,它正在返回{"error":"USER无权执行请求的操作."},这很好,但我想尽可能返回自定义JSON对象.

谢谢你的时间!

delphi datasnap

5
推荐指数
1
解决办法
1397
查看次数

使用 Delphi 10 西雅图时的安全警告

大约一周以来,当我使用 Delphi 10 Seattle 时,我不断被以下安全警告困扰:

在此输入图像描述

这似乎是由于在没有打开项目的情况下显示的广告横幅造成的,但在我处理项目时它经常困扰我。

有人遇到过这个问题吗?这不是一个重大问题,但很烦人。我猜测 Embarcadero 服务器存在某种安全问题,我认为他们现在已经修复了。但时间已经过去很久了,我已经开始担心了。

delphi delphi-10-seattle

2
推荐指数
1
解决办法
888
查看次数

模态窗口后面的网格滚动

我已经构建了这个问题的 MCV,并且很高兴上传它。我会先尝试描述问题。

  1. 创建一个主窗口并放置一个通过任何可用数据库连接到表的 TDBGrid。窗口的OnShow连接数据库并打开表。

  2. 在主窗口上创建一个启动非模式窗口的按钮。

  3. 在非模式窗口上创建一个启动模式窗口的按钮。

仔细按照以下步骤复制问题。

  1. 运行应用程序。

  2. 将焦点置于网格中并使用鼠标滚轮上下滚动。

  3. 按下按钮启动非模式窗口。

  4. 当非模式窗口打开时,单击回主窗口中的网格,然后再次使用鼠标滚轮上下滚动。

  5. 仍将焦点集中在网格中时,单击非模式窗口上的按钮以启动模式窗口。

  6. 当模态窗口打开时,将鼠标悬停在网格上并使用鼠标滚轮。您会看到网格上下滚动。

这种情况在 Windows 7 上不会发生,但在 Windows 10 上会发生。它可能看起来无害,但当您在 ​​3 个窗口上构建几层父子关系时,它尤其危险。

假设模态窗口包含主窗口的孙子窗口。如果用户启动模式窗口的目的是编辑特定的孙子,并且不小心使用鼠标滚轮并在主窗口上移动祖父母,那么他们现在正在编辑他们不打算编辑的孙子。

需要注意的是,在步骤 4 和 5 之间,如果在启动模态窗口之前没有将焦点置于网格中,则不会出现此问题。在显示模态窗口之前,我尝试以编程方式将焦点设置到非模态窗口上的控件中,但没有成功。

delphi delphi-xe3 windows-10

1
推荐指数
1
解决办法
775
查看次数