Delphi fsStayOnTop奇怪
这是交易。主表格设置为
fsNormal
。这个主窗体最大化全屏,带有浮动工具栏。工具栏是普通形式,样式设置为fsStayOnTop
。
大部分时间都按预期工作。主窗体显示,工具栏浮动在其上方。
当与其他应用程序进行alt-tabbing时(或者在单击任务栏上的Delphi应用程序图标时),有时(这是找到可重复的步骤集的错误)可能会发生以下症状:
当远离Delphi应用程序进行alt-tabbing时,浮动的最顶层fsStayOnTop
表单将保持在其他应用程序之上。因此,如果我对Firefox进行alt-tab,那么浮动菜单也会保留在Firefox之上。
当从另一个应用程序进行alt-Tabbing到Delphi应用程序时,浮动菜单不可见(因为它位于fsNormal
主窗体后面)。
这是一个已知的错误还是有任何黑客强迫它工作?当应用程序的多个副本正在运行时,它们似乎也会发生这种情况(它们之间没有交互,应该在自己的窗口“sandbox”中运行)。
这就好像德尔福混淆了哪个窗口应该在顶部并交换它们或者改变浮动形式以保持所有模式。
或者我误解了fsStayOnTop
?我假设将表单样式设置为fsStayOnTop
使其保持在当前应用程序中的所有其他表单之上,而不是所有其他正在运行的应用程序的窗口。
没有找到相关结果
已邀请:
3 个回复
降女陷费券
埠仙俊
样式,通过调用带有
参数的win32函数
。 有关
的详细说明,请参见http://msdn.microsoft.com/en-us/library/ms633545(VS.85).aspx。 每次取消激活或最小化应用程序时,Delphi都会枚举所有最顶层的表单以规范化表单(规范化是vcl用来表示最顶层的窗口变为不是最顶层的术语)并保留所有表单的内部列表那个时刻最顶层的窗户。 每次激活或恢复应用程序时,Delphi都会使用存储在最顶层窗口列表中的信息来恢复所有最顶层的窗体(使用带有
参数的
) 所以对我来说,问题似乎是Delphi在应用程序最小化时枚举窗口时存储信息的方式。 我会破解最小化或停用功能,并检查最顶层的窗口列表(它是在
)是否正确列出。
扑北爱