⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 h20000324-15.htm

📁 对于学习很有帮助
💻 HTM
📖 第 1 页 / 共 2 页
字号:
<html><head><script language="JavaScript">	function reset(){   for ( var i=0; i < document.Form1.elements.length; i++ )     { document.Form1.elements[i].options[0].selected=true }}function going(url){        parent.location=url;        reset();}</script><style><!--A:link {text-decoration: none; color: #000000; font-family: 宋体}A:visited {text-decoration: none; color: #000000; font-family: 宋体}A:active {text-decoration: none; font-family: 宋体}A:hover {text-decoration: underline:#ffffff; color: #ff0000}body,table {font-size: 9pt; font-family: 宋体}.H1 {font-size: 9pt ; line-height:9pt; align=center}.ourfont {font-size: 9pt ; line-height:9pt; }.ourfont1 {font-size: 9pt ; line-height:9pt; }--></style><meta http-equiv="Content-Type" content="text/html; charset=gb2312"><title>用DELPHI设计屏幕保护程序</title></head><body topmargin="0" leftmargin="0"><div align="center"><center><table border="0" cellPadding="0" cellSpacing="0" width="700"><tbody>  <tr>    <td><p class="content4"><span class="font"><img border="0" height="3" src="../../soft/pix.gif" width="700"></span></td>  </tr></tbody></table></center></div><div align="center"><center><table border="0" cellPadding="0" cellSpacing="0" width="700"><tbody>  <tr>    <td bgColor="#3399ff" width="658"><p class="ourfont"><span class="font">&nbsp; </span><a style="text-decoration: none; color: rgb(255,255,255)" href="../os/H00705-2.htm">操作系统</a><font color="#FFFFFF"><span class="font"><span> |</span></span></font><a style="color: rgb(255,255,255); text-decoration: none" href="../image/H00705-14.htm">图像处理</a><font color="#FFFFFF"><span>|<span class="font"> </span></span></font><a style="color: rgb(255,255,255); text-decoration: none" href="../autoCAD/H00705-19.htm">辅助设计</a><span class="font"><font color="#FFFFFF"><span> | </span></font></span><a style="color: rgb(255,255,255); text-decoration: none" href="../data/H00705-18.htm">数     据 库</a><span class="font"><font color="#FFFFFF"><span> | </span></font></span><a style="color: rgb(255,255,255); text-decoration: none" href="H00706-1.htm">高级编程</a><span class="font"><font color="#FFFFFF"><span> | </span></font></span><a style="color: rgb(255,255,255); text-decoration: none" href="../netuse/H00705-20.htm">网络应用</a><font color="#FFFFFF"><span><span class="font"> | </span></span></font><a style="color: rgb(255,255,255); text-decoration: none" href="../webpage/H00705-21.htm">网页制作</a><font color="#FFFFFF"><span><span class="font"> |</span></span></font> <a style="color: rgb(255,255,255); text-decoration: none" href="../technic/H00706-3.htm">技术交流     &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </a><a style="color: rgb(255,255,255); text-decoration: none" href="http://202.100.13.77/clslyb/default.asp?clsid=jiaoc"><font color="#FFFFFF"><strong>过客留言</strong></font></a></td>    <td bgColor="#3399ff" width="32"><p align="center" class="ourfont"><a href="mailto:net@163.sn.cn"><img src="../../soft/email.gif" alt="email.gif (493 字节)" border="0" WIDTH="20" HEIGHT="19"></a></td>  </tr></tbody></table></center></div><div align="center"><center><table border="1" cellSpacing="1" width="700" bordercolor="#3399FF"><tbody>  <tr>    <td align="left" bgColor="#FFFFFF" vAlign="top" width="700" bordercolor="#0000FF" bordercolorlight="#0000FF" bordercolordark="#0000FF"><p class="ourfont"> </p>    <p align="center">用DELPHI设计屏幕保护程序<br>    <br>    景德镇市第五中学 严剑 </p>    <p>----屏幕保护程序是一类特殊的WINDOWS程序。如果已安装了屏幕保护程序,超过等待时间没有鼠标和键盘操作,WINDOWS会自动运行屏幕保护程序以保护屏幕。在休息之余,欣赏一下漂亮的WINDOWS屏幕保护,使人赏心悦目。那么设计屏幕保护程序要注意哪些方面?由于屏幕保护程序需满足一些特殊条件,比如屏幕保护程序只能有一个实例运行,运行后一旦使用鼠标或键盘应立即结束程序,能接受参数等。设计屏幕保护程序要充分考虑到这些,本文探讨用DELPHI制作一个屏幕保护程序(以下简称SCR),最后给出一个可运行的实例。<br>    <br>    ----一、TCanvas与TBitMap对象、JPEG对象:<br>    <br>    ----DELPHI的TCanvas封装了大部分WINDOWS对图形的操作,SCR运行时各种图像千变万化、图形变幻无不是TCanvas的“杰作”。TBitMap对象有一个LoadFromFile()方法,能从BMP图像文件取得位图。一般情况下,设计SCR要创建至少一个TBitMap对象,由于窗体和TBitMap对象都有Canvas属性,可利用TCanvas中的各种函数设计图像。设计一个有各种图像变化效果的SCR常用到以下函数:<br>    <br>    ----1、CopyRect方法:从其原型CopyRect(Dest:TRect;Canvas:TCanvas;Source:TRect)可看出,它将源画布某一矩形区域的图像复制到另一个画布的矩形区域。由于是内存的成块复制,因此具有很高的执行效率。在Timer组件的OnTimer事件程序中灵活使用该函数,可以设计出各种美观演示效果:如百叶窗、推拉、马赛克、随机线、反像等等。将以下代码加入到OnTimer事件程序,可演示各种图像效果,这里仅举出两种效果,读者可参考有关资料设计更多更漂亮的演示效果。<br>    ......<br>    case PlayMode of<br>    0:begin //从左向右移动(设x初值为Screen.Width)&nbsp;<br>    x:=x-10;<br>    SCRSaverFrom.CopyRect(Rect<br>    (x,0,x+10,Screen.Height),Bit.Canvas,&nbsp;<br>    Rect(x,0,x+10,Screen.Height));<br>    if x=0 then ChangePictureAndPlayMode;//改变图像及演示模式<br>    end;<br>    1:begin //马赛克<br>    for i:=0 to Screen.Width*Screen.Height div 10 do<br>    begin<br>    j := Random(Screen.Width div 4)*4;&nbsp;<br>    k := Random(Screen.Height div 4)*4;<br>    SCRSaverFrom.CopyRect(Rect(j,k,j+4,k+4),Bit.Canvas,<br>    Rect(j,k,j+4,k+4));<br>    end;<br>    SCRSaverFrom.CopyRect(Rect<br>    (0,0,Screen.Width,Screen.Height),Bit.Canvas,<br>    Rect(0,0,Screen.Width,Screen.Height));<br>    ChangePictureAndPlayMode; //改变图像及演示模式<br>    end;<br>    2: ......<br>    ......<br>    end;<br>    ----2、StretchDraw方法:一般说来,使用CopyRect方法要求源矩形与目的矩形<br>    应相等,如果两者尺寸相差太大时,色彩可能失真。使用StretchDraw能避免这个<br>    问题,其原型为:StretchDraw(constRect:TRect;Graphic:TGraphic)。它可在画<br>    布指定的矩形区域内完整地“画”出一个图像,如果源图象区域与目的区域尺寸<br>    不一致,会自动Stretch(拉伸),能有效的避免色彩失真。但此函数只能“画”<br>    出整个图像,如果只需“画”出一部分图像则应配合CopyRect()使用,先用<br>    StretchDraw()使整幅位图变形”输出到一个画布,然后再用CopyRect()函数将所<br>    需部分“画出”。<br>    <br>    ----3、TextOut方法:在指定的位置输出一串文字。在Canvas中还有很多函数可<br>    绘制图形,也能用于SCR的设计,这里就不加介绍。<br>    <br>    ----4、支持JPEG图像。由于JPEG图像格式具有很好的压缩性能,是最常用的图像<br>    格式之一。DELPHI3/4中新加入了对JPEG图像的支持,JpegImage是TGraphic的派<br>    生类,它的LoadFromFile方法可从JPEG文件取出一幅图像,JpegImage没有Canvas<br>    属性,不能用CopyRect()方法,但其它画布可用StretchDraw()方法显示出一个<br>    JPEG图像,就将JPEG图像转换成位图。请看下面例子,其中Bit为全局的TBitMap<br>    对象。注意:使用JpegImage应在USES中加入JPEG单元。<br>    <br>    procedure LoadBMPFromJPEG(JPEGFileName:String);<br>    // 从JPEG 文 件 中 取 图 像<br>    var JpegImage1:TJpegImage;<br>    begin<br>    JpegImage1 := TJpegImage.Create;<br>    JpegImage1.LoadFromFile(JPEGFileName);<br>    Bit.Width := JpegImage1.Width ;&nbsp;<br>    // 使 位 图 与JPEG 图 像 尺 寸 相 等<br>    Bit.Height := JpegImage1.Height ;<br>    Bit.Canvas.StretchDraw(Rect<br>    (0,0,Bit.Width,Bit.Height),JpegImage1);<br>    JpegImage1.Free ;<br>    end;<br>    <br>    ----二、MediaPlayer和Timer组件:<br>    <br>    ----MediaPlayer组件封装了MCI中绝大部分的功能,利用它很容易播放WAVE和<br>    MIDI音乐,为SCR添加美妙的背景音乐。有关代码如下:<br>    <br>    ifMediaPlayer1.Mode&lt;&gt;mpPLayingthen<br>    //音乐播放完后,更换音乐<br>    begin<br>    inc(i);<br>    MediaPlayer1.FileName:=IntToStr(i)+`.WAV`;<br>    //逐一播放1.wav,2.wav...<br>    MediaPlayer1.Open;<br>    MediaPlayer1.Play;<br>    end;<br>    <br>    ----Timer组件是一个定时器,它的Interval属性指定定时器的间隔时间,每隔<br>    指定的时间就会执行一次OnTimer事件,SCR的OnTimer事件内要完成演示图像,<br>    更换图像,检查音乐是否播放完毕,更换音乐等各项工作。因此,Timer是设计<br>    SCR程序必不可少的组件。<br>    <br>    ----三、设置SCR的窗体:<br>    <br>    ----SCR的窗体与一般程序的窗体没有太大的区别。设计时只需注意到以下几点:<br>    <br>    ----1、设置窗体属性:WindwoState属性一般设为wsMaximized,使窗体覆盖整<br>    个屏幕;BorderStyle属性设为bsNone,使窗体无边框、标题;FormStyle属性设<br>    为fsStayOnTop,使窗体总是保持在屏幕最上面。<br>    <br>    ----2、防止SCR重复运行:为防止程序重复运行,在WINS95/98可用API函数<br>    FindWindow查找已运行的窗体类型,API函数原型:<br>    HWNDFindWindow(LPCTSTRlpClassName,LPCTSTRlpWindowName)。以下演示SCR是<br>    如何避免重复运行的。打开Project,在USES单元中加入WinTypes和SysUtils单元。<br>    program Project1;<br>    uses<br>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -