gpt4 book ai didi

Delphi 11 Alexandria PaintBox 在 RDP 中闪烁

转载 作者:行者123 更新时间:2023-12-04 12:53:37 26 4
gpt4 key购买 nike

我刚刚从 Delphi 10.4.2 升级到 Delphi 11 Alexandria。我经常使用 RDP,所以当 TPaintBox 失效时我注意到闪烁。奇怪的是,如果带有 TPaintBox 的表单是第一个创建的表单,它就不会闪烁。如果在本地机器上运行它也不会闪烁。仅在 RDP 中。如果我在 Delphi 10.4.2 中编译相同的项目,它不会在 RDP 中闪烁。
任何人都可以弄清楚这一点吗?它“只是”Delphi 11 中的一个错误吗?
编辑:演示项目http://procurisupdate.se/downloads/Temp/PaintBoxFlicker.zip
具有两种形式的简单项目。一个有一个 TImage 所以它非常大。
如果按原样运行,当您单击图片并移动鼠标时,它会闪烁。如果您更改为首先创建 Form23(或者即使它是在 Application.run 之前创建的),它也不会闪烁。注意它只在 RDP 中闪烁。
Edit2:经过一番查找,我在 TApplication.Run 中找到了以下内容:

procedure TApplication.Run;
begin
FRunning := True;
try
{$IF NOT DEFINED(CLR)}
AddExitProc(DoneApplication);
{$ENDIF}
RemoteSessionCheck; // This has been added since Delphi 10.4.2
if FMainForm <> nil then
...
如果我注释掉 RemoteSessionCheck;并重新编译(您必须将您的 Source\vcl 目录添加到库路径),它不会闪烁。

最佳答案

根据与 Embarcadero 的私有(private)通信:

fyi: This issue seems related to:

TRemoteSessionChangedEvent = procedure (Sender: TObject; var InRemoteSession) of object;

which should have been:

TRemoteSessionChangedEvent = procedure (Sender: TObject; var InRemoteSession: Boolean) of object;

Our Support team tracked down the issue; explained why it does not affect auto-created forms, and how this will mess up C++ (where the untyped parameter will be exposed as Variant).


已提交错误票证,但仅对其内部系统是私有(private)的。

关于Delphi 11 Alexandria PaintBox 在 RDP 中闪烁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69265150/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com