📄 93523.htm
字号:
<html xmlns="http://www.w3.org/TR/xhtml1/strict"> <head> <title>天极网</title> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"></meta> <meta http-equiv="Pragma" content="no-cache"></meta> <meta http-equiv="expires" content="Mon,12 May 1998 00:36:05 GMT"></meta> <link rel="stylesheet" href="/xslimages/css/cpcw.css"></link> </head> <style>.nava { font-size: 9pt}.font1{font-size: 10.5pt}</style> <body bgcolor="#FFFFFF" topmargin="2"><table width="760" border="0" cellspacing="0" cellpadding="0" align="center"><tr><td width="20%" rowspan="3" valign="top" align="center"><table width="95%" border="1" cellspacing="0" cellpadding="0" height="60" bordercolorlight="#CCCCCC" bordercolordark="#FFFFFF"><tr valign="middle" align="center"><td><div align="center"><span class="nava">天极硬件,新闻及时<br>资料详尽,敬请关注<br><a href="/33554432/35651584/yingjian.htm">www.myhard.com</a></span></div></td></tr></table></td><td width="57%" valign="bottom" rowspan="3" align="center"><div align="center"><script language="JavaScript" src="http://ad.cpcw.com/js/school.js"></script></div></td><td width="20%" valign="top" rowspan="3" align="center"><table width="95%" border="1" cellspacing="0" cellpadding="0" height="60" bordercolorlight="#CCCCCC" bordercolordark="#FFFFFF"><tr valign="middle" align="center"><td><div align="center"><span class="nava">好又多电子商务<br>让您一点动心<br><a href="http://www.hoyodo.com">www.hoyodo.com</a></span></div></td></tr></table></td></tr><tr></tr><tr></tr></table><table width="760" border="0" cellspacing="0" cellpadding="0" height="70" align="center"><tr><td width="145" valign="bottom" rowspan="3"><img src="/xslimages/content/logo.gif" width="140" height="60"></img></td><td colspan="3" width="100%" height="33" align="center"><a href="/" target="_blank">首页</a>| <a href="/33554432/36700160/news.htm" target="_blank">新闻中心</a>| <a href="/33554432/50331648/business.htm" target="_blank">企业中心</a>| <a href="/33554432/41943040/caijing.htm" target="_blank">财经中心</a>| <a href="/33554432/39845888/fashion.htm" target="_blank">时尚中心</a>| <a href="/33554432/35651584/yingjian.htm" target="_blank">硬件中心</a>| <a href="/33554432/34603008/school.htm" target="_blank">学习中心</a>| <a href="/33554432/37748736/game.htm" target="_blank">游戏中心</a>| <a href="/33554432/38797312/ziyuan.htm" target="_blank">资源中心</a>| <a href="http://www.hoyodo.com/" target="_blank">社区</a>| <a href="http://training.yesky.com/" target="_blank">网校</a></td></tr><tr><td colspan="3" width="78%" height="20" align="right"><b>中心栏目:<a href="http://www.mydown.com" target="_blank"><font color="#FF0000"><u>红辣椒软件下载</u></font></a></b><a href="http://soft.yesky.com" target="_blank"> 软件之窗 </a><a href="http://desktop.yesky.com" target="_blank">天极桌面网 </a><a href="http://art.yesky.com" target="_blank">美工教室 </a><a href="http://itdreamer.yesky.com" target="_blank">程序方舟 </a><a href="http://homepage.yesky.com" target="_blank">网页陶吧 </a><a href="http://safe.yesky.com" target="_blank">安全之路</a><a href="http://soft.yesky.com" target="_blank"></a></td></tr></table><table align="center" border="0" cellpadding="0" cellspacing="0" width="760"><tbody><tr bgcolor="#333333"><td colspan="2" height="1"></td></tr><tr><td bgcolor="#ff9900" height="16" valign="bottom" width="72%"><font color="#000000"><b><font color="#ffffff">学 习 中 心</font></b></font></td><td bgcolor="#6699cc" height="16" width="28%"><div align="center"><font face="Arial, Helvetica, sans-serif"><b><font color="#ffffff">N E T S C H O O L</font></b></font></div></td></tr><tr bgcolor="#333333"><td colspan="2" height="1"></td></tr></tbody></table><table align="center" border="0" cellpadding="0" cellspacing="0" width="760" bgcolor="#eeeeee"><td colspan="2" height="28"><div align="center"><a href="/33554432/34603008/34635776/34636800/34636832/schoolinverse1.htm" target="_blank"><font color="#000000">HTML</font></a><font color="#000000"> _</font><a href="/33554432/34603008/34635776/34636800/34636864/schoolinverse1.htm" target="_blank"><font color="#000000">JavaScript</font></a><font color="#000000"> _</font><a href="/33554432/34603008/34635776/34636800/34636928/schoolinverse1.htm" target="_blank"><font color="#000000">CSS</font></a><font color="#000000"> _ <a href="/33554432/34603008/34635776/34637824/34637952/schoolinverse1.htm" target="_blank"><font color="#000000"> PHP </font></a><font color="#000000"> _ </font></font><a href="/33554432/34603008/34635776/34637824/34637888/schoolinverse1.htm" target="_blank"><font color="#000000">ASP</font></a><font color="#000000"> _</font><a href="http://www.yesky.com/33554432/34603008/34635776/34637824/34637920/schoolinverse1.htm" target="_blank"><font color="#000000">Perl</font></a><font color="#000000"> _</font><a href="/33554432/34603008/34635776/34638848/34638880/schoolinverse1.htm" target="_blank"><font color="#000000">Dreamweaver</font></a><font color="#000000"> _</font><a href="/33554432/34603008/34635776/34639872/34639904/schoolinverse1.htm" target="_blank"><font color="#000000">XML</font></a><font color="#000000"> _</font><a href="http://www.yesky.com/33554432/34603008/34734080/schoolinverse2.htm" target="_blank"><font color="#000000">病毒</font></a><font color="#000000"> _</font><a href="http://www.yesky.com/67108864/68157440/68419584/inverse2.htm" target="_blank"><font color="#000000">程序开发</font></a><font color="#000000"> _</font><a href="http://www.yesky.com/33554432/34603008/34799616/34800640/schoolinverse1.htm" target="_blank"><font color="#000000">Email</font></a><font color="#000000"> _</font><a href="http://www.yesky.com/33554432/34603008/34897920/34898944/schoolinverse1.htm" target="_blank"><font color="#000000">Windows 9x</font></a><font color="#000000"> _</font><a href="/33554432/34603008/34897920/34900992/schoolinverse1.htm" target="_blank"><font color="#000000">Linux</font></a><font color="#000000"> _</font><a href="/33554432/34603008/34963456/34966528/schoolinverse1.htm" target="_blank"><font color="#000000">WPS</font></a><font color="#000000"> _</font><a href="http://www.yesky.com/33554432/34603008/34963456/34964480/schoolinverse1.htm" target="_blank"><font color="#000000">Word</font></a></div></td></table><table width="760" border="0" cellspacing="0" cellpadding="0" height="30" align="center"><tr><td align="left" valign="bottom"><span class="nava"><span class="nava"><a href="/index.htm">首页</a>→ <a href="/33554432/34603008/school.htm">学习中心</a>→ <a href="/33554432/34603008/34668544/schoolinverse2-pro.htm">程序方舟</a>→ <a href="/33554432/34603008/34668544/34672640/schoolinverse2.htm">技巧经验</a>→ <a href="/33554432/34603008/34668544/34672640/34672672/schoolinverse1.htm">DELPHI技巧</a>→ </span></span></td><td width="2%"></td></tr></table><table width="760" border="0" cellspacing="0" cellpadding="0" align="center"><tr><td colspan="3" valign="top" width="75%"><table width="98%" border="0" cellspacing="1" cellpadding="1" bgcolor="#000000"><tr bgcolor="#FFFFFF"><td width="100%" colspan="4" align="left"><table width="95%" align="center"><tr><td class="font1"><p align="center"><br><font size="3">用DELPHI 设 计 屏 幕 保 护 程 序</font><br><span class="nava"><font color="#CC9933">2000-07-12· -·-</font></span></p><p><fontcolor="#ffffff"> </font>屏幕保护程序是一类特殊的WINDOWS程序。如果已安装了屏幕保护程序,超过等待时间没有鼠标和键盘操作,WINDOWS会自动运行屏幕保护程序以保护屏幕。在休息之余,欣赏一下漂亮的WINDOWS屏幕保护,使人赏心悦目。那么设计屏幕保护程序要注意哪些方面?由于屏幕保护程序需满足一些特殊条件,比如屏幕保护程序只能有一个实例运行,运行后一旦使用鼠标或键盘应立即结束程序,能接受参数等。设计屏幕保护程序要充分考虑到这些,本文探讨用DELPHI制作一个屏幕保护程序(以下简称SCR),最后给出一个可运行的实例。<p><fontcolor="#ffffff"> </font>一、TCanvas与TBitMap对象、JPEG对象:<p><fontcolor="#ffffff"> </font>DELPHI的TCanvas封装了大部分WINDOWS对图形的操作,SCR运行时各种图像千变万化、图形变幻无不是TCanvas的“杰作”。TBitMap对象有一个LoadFromFile()方法,能从BMP图像文件取得位图。一般情况下,设计SCR要创建至少一个TBitMap对象,由于窗体和TBitMap对象都有Canvas属性,可利用TCanvas中的各种函数设计图像。设计一个有各种图像变化效果的SCR常用到以下函数:<p><fontcolor="#ffffff"> </font>1、CopyRect方法:从其原型CopyRect(Dest:TRect;Canvas:TCanvas;Source:TRect)可看出,它将源画布某一矩形区域的图像复制到另一个画布的矩形区域。由于是内存的成块复制,因此具有很高的执行效率。在Timer组件的OnTimer事件程序中灵活使用该函数,可以设计出各种美观演示效果:如百叶窗、推拉、马赛克、随机线、反像等等。将以下代码加入到OnTimer事件程序,可演示各种图像效果,这里仅举出两种效果,读者可参考有关资料设计更多更漂亮的演示效果。<pre>......casePlayModeof0:begin//从左向右移动(设x初值为Screen.Width)x:=x-10;SCRSaverFrom.CopyRect(Rect(x,0,x+10,Screen.Height),Bit.Canvas,Rect(x,0,x+10,Screen.Height));ifx=0thenChangePictureAndPlayMode;//改变图像及演示模式end;1:begin//马赛克fori:=0toScreen.Width*Screen.Heightdiv10dobeginj:=Random(Screen.Widthdiv4)*4;k:=Random(Screen.Heightdiv4)*4;SCRSaverFrom.CopyRect(Rect(j,k,j+4,k+4),Bit.Canvas,Rect(j,k,j+4,k+4));end;SCRSaverFrom.CopyRect(Rect(0,0,Screen.Width,Screen.Height),Bit.Canvas,Rect(0,0,Screen.Width,Screen.Height));ChangePictureAndPlayMode;//改变图像及演示模式end;2:............end;</pre><p><fontcolor="#ffffff"> </font>2、StretchDraw方法:一般说来,使用CopyRect方法要求源矩形与目的矩形应相等,如果两者尺寸相差太大时,色彩可能失真。使用StretchDraw能避免这个问题,其原型为:StretchDraw(constRect:TRect;Graphic:TGraphic)。它可在画布指定的矩形区域内完整地“画”出一个图像,如果源图象区域与目的区域尺寸不一致,会自动Stretch(拉伸),能有效的避免色彩失真。但此函数只能“画”出整个图像,如果只需“画”出一部分图像则应配合CopyRect()使用,先用StretchDraw()使整幅位图“变形”输出到一个画布,然后再用CopyRect()函数将所需部分“画出”。<p><fontcolor="#ffffff"> </font>3、TextOut方法:在指定的位置输出一串文字。在Canvas中还有很多函数可绘制图形,也能用于SCR的设计,这里就不加介绍。<p><fontcolor="#ffffff"> </font>4、支持JPEG图像。由于JPEG图像格式具有很好的压缩性能,是最常用的图像格式之一。DELPHI3/4中新加入了对JPEG图像的支持,JpegImage是TGraphic的派生类,它的LoadFromFile方法可从JPEG文件取出一幅图像,JpegImage没有Canvas属性,不能用CopyRect()方法,但其它画布可用StretchDraw()方法显示出一个JPEG图像,就将JPEG图像转换成位图。请看下面例子,其中Bit为全局的TBitMap对象。注意:使用JpegImage应在USES中加入JPEG单元。<pre>procedureLoadBMPFromJPEG(JPEGFileName:String);//从JPEG文件中取图像varJpegImage1:TJpegImage;beginJpegImage1:=TJpegImage.Create;JpegImage1.LoadFromFile(JPEGFileName);Bit.Width:=JpegImage1.Width;//使位图与JPEG图像尺寸相等Bit.Height:=JpegImage1.Height;Bit.Canvas.StretchDraw(Rect(0,0,Bit.Width,Bit.Height),JpegImage1);JpegImage1.Free;end;</pre><p><fontcolor="#ffffff"> </font>二、MediaPlayer和Timer组件:<p><fontcolor="#ffffff"> </font>MediaPlayer组件封装了MCI中绝大部分的功能,利用它很容易播放WAVE和MIDI音乐,为SCR添加美妙的背景音乐。有关代码如下:<pre>ifMediaPlayer1.Mode<>mpPLayingthen//音乐播放完后,更换音乐begininc(i);MediaPlayer1.FileName:=IntToStr(i)+'.WAV';//逐一播放1.wav,2.wav...MediaPlayer1.Open;MediaPlayer1.Play;end;</pre><p><fontcolor="#ffffff"> </font>Timer组件是一个定时器,它的Interval属性指定定时器的间隔时间,每隔指定的时间就会执行一次OnTimer事件,SCR的OnTimer事件内要完成演示图像,更换图像,检查音乐是否播放完毕,更换音乐等各项工作。因此,Timer是设计SCR程序必不可少的组件。<p><fontcolor="#ffffff"> </font>三、设置SCR的窗体:<p><fontcolor="#ffffff"> </font>SCR的窗体与一般程序的窗体没有太大的区别。设计时只需注意到以下几点:<p><fontcolor="#ffffff"> </font>1、设置窗体属性:WindwoState属性一般设为wsMaximized,使窗体覆盖整个屏幕;BorderStyle属性设为bsNone,使窗体无边框、标题;FormStyle属性设为fsStayOnTop,使窗体总是保持在屏幕最上面。<p><fontcolor="#ffffff"> </font>2、防止SCR重复运行:为防止程序重复运行,在WINS95/98可用API函数FindWindow查找已运行的窗体类型,API函数原型:HWNDFindWindow(LPCTSTRlpClassName,LPCTSTRlpWindowName)。以下演示SCR是如何避免重复运行的。打开Project,在USES单元中加入WinTypes和SysUtils单元。<pre>programProject1;usesForms,WinTypes,SysUtils,//后两者为新加入单元Unit1in'Unit1.pas'{MyScreenSaverForm};{$R*.RES}varFindWindwsHandle:array[0..255]ofChar;//存放窗体名para1:String;......StrPCopy(FindWindwsHandle,'TMyScreenSaverForm');//TMyScreenSaverForm是这个SCR的窗体名。ifFindWindow(FindWindwsHandle,Nil)=0//寻找同一窗口类型then......//没有同一窗体重复运行
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -