Seb*_*ien 9 delphi windows-7 delphi-xe aero-glass
我从2009年升级到Delphi XE,遇到了一个奇怪的问题.
我创建了一个新项目,放下了一个TRibbon控件,编译并运行.保持表单的默认大小我然后最小化和恢复没有问题.然后,我最大化表单,最小化和恢复,并将表单颜色更改为黑色.
我没有随机代码来更改它并使用Delphi XE附带的所有默认值,它每次都会这样做而且不会失败.
我已将已编译的exe移动到朋友计算机上,问题仍然存在,所以我知道这不是我的电脑.如果我关闭Aero效果,问题就会消失,但重新启动Aero并且问题会恢复.
有什么想法吗?我很难在互联网上找到关于这个问题的任何相关主题.
谢谢,Seb
编辑(根据请求,显示此行为的表单的DFM.注意:这发生在我启动的任何项目上):
object Form1: TForm1
Left = 0
Top = 0
Caption = 'Form1'
ClientHeight = 555
ClientWidth = 989
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'Tahoma'
Font.Style = []
OldCreateOrder = False
Position = poScreenCenter
PrintScale = poNone
Scaled = False
PixelsPerInch = 96
TextHeight = 13
object Ribbon1: TRibbon
Left = 0
Top = 0
Width = 989
Height = 143
Caption = 'Ribbon1'
ExplicitLeft = 104
ExplicitTop = 296
ExplicitWidth = 0
StyleName = 'Ribbon - Luna'
end
end
Run Code Online (Sandbox Code Playgroud)
没有任何幻想,它只是一个单一形式的新项目.
我能够重现该错误,以下是我发现的一些问题。也许他们会帮助某人解决这个问题。
Invalidate从按钮的OnClick事件中调用,则表单将恢复其颜色。WndProc启用计时器,然后从计时器调用,表单将恢复其颜色。这本质上与第一种方法(从按钮调用)相同,但计时器使此方法自动进行,并确保仅在没有更多消息需要处理时才调用。我尝试了同样的简单方法,但没有成功(即:我可能太快了,这可能是另一个线索)WM_SIZEwParamSIZE_MAXIMIZEDInvalidateInvalidateInvalidatePostMessageInvalidateApplication.MainFormOnTaskbar := False在项目的源代码中制作,我将不再看到黑色表格。丝带占据了表格的顶部。TPanel在表格的其余部分上放置一个,制作Align = alClient并将所有内容放在面板上。面板后面的黑色不再可见!
| 归档时间: |
|
| 查看次数: |
2811 次 |
| 最近记录: |