关闭

DelphiX在全屏模式下Alt+Tab一次后,页面丢失的问题

标签: 测试function游戏
748人阅读 评论(0) 收藏 举报
分类:
可能很多朋友曾经遇到过这样的问题:DelphiX在全屏模式下Alt+Tab切换出来后,再回到原来的窗口时,页面变成一片空白。这对游戏玩家来说是难以忍受的。
    火人专门为此搜索了不少资料,发现DelphiX一直存在这样的问题,但大都用屏蔽ALT+TAB来解决,估计这是DELPHIX的一个小BUG。
    但火人不太喜欢用这种比较“霸道”的方式解决,这会给使用者带来相当的不方便。经多次测试,火人发现了产生这类问题的条件和避免出现这类问题的方法(但不能说彻底解决,因时间有限,无法解释原因,希望高手能进一步研究并给出理论上的解释),与朋友们共享:

先下载如下例程:
点击下载此文件
此例程运行后一切正常,但Alt+Tab切换出来后,再回到原来的窗口时,页面就会变成一片空白,要避免此错误,火人发现如下两个方法:
1、设DXDraw.Options := DXDraw.Options + [doFlip];但如果Form上有其它VCL控件(如TEdit)时,VCL控件就不能正常显示。
2、设:DXDraw.AutoSize:=False,另外为了DXDraw能按正确的分辨率显示,在FormCreate中加入:
程序代码: [ 复制代码到剪贴板 ]
 DXDraw.SurfaceWidth := DXDraw.Display.Width;
 DXDraw.SurfaceHeight := DXDraw.Display.Height;


  此方法在流行的传奇2程序上测试通过。

引用内容:
另经网友测试,也可使用如下方法:
关键是在ALT+TAB之后要把窗口还原到窗口模式:
    DXDraw.Finalize;
    DXDraw.Options := DXDraw.Options - [doFullScreen];
    DXDraw.Initialize;
窗口激活时再设置为全屏模式如下:
    DXDraw.Finalize;
    BorderStyle := bsNone;
    DXDraw.Options := DXDraw.Options + [doFullScreen];
    InitDXDraw;

 


原文:

http://www.huasoft.net/huosoft/blogview.asp?logID=39&cateID=2

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:251139次
    • 积分:3808
    • 等级:
    • 排名:第8706名
    • 原创:109篇
    • 转载:70篇
    • 译文:0篇
    • 评论:18条
    最新评论
    链接
    上位机