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

📄 用delphi 设 计 屏 幕 保 护 程 序 .htm

📁 对于学习很有帮助
💻 HTM
📖 第 1 页 / 共 2 页
字号:


<HTML><HEAD><TITLE>亦多EastDoor</TITLE>
<META content="text/html; charset=gb2312" http-equiv=Content-Type>
<META content="MSHTML 5.00.2919.6307" name=GENERATOR><link rel="stylesheet" href="../eastdoor.css"></HEAD>



<BODY bgColor=#ffffff text=#000066 vLink=#e0e0e0>
<TABLE align=center border=0 borderColorLight=#90 cellPadding=0 cellSpacing=0 
width=753>
  <TBODY> 
  <TR align=middle> 
    <TD width=200 valign="top"><img src="../image/logo.gif" width="200" height="70"></TD>
    <TD align=left height=56 vAlign=top width=603 colspan="2"> 
    <div align="right">
    <a href="http://202.113.29.120/">
    <img src="../image/titlesoft.gif" height="72" border="0" alt="亦多下载中心"></a>
    </div>
    </TD>
  </TR>
  </TBODY> 
</TABLE>

<div align="center"></div>
<TABLE align=center border=0 cellPadding=0 cellSpacing=1 width=755>
  <TBODY> 
  <TR> 
    <TD align=middle height=292 vAlign=top width="100%"> 
      <TABLE align=center border=0 cellPadding=0 cellSpacing=1 
      width="100%" bgcolor="#6699CC">
        <TBODY> 
        <TR align=left bgcolor="#FFFFFF"> 
          <TD colSpan=4 vAlign=top height=2> 
            <div align="left"> 
              <table width="100%" border=" 0" cellspacing="1">
                <tr bgcolor="#C1D6EA"> 
                  <td> 
                    <div align="center">-=<font color="#FFFF33">-</font> 编程中心 
                      <font color="#FFFF33">-</font>=-</div>
                  </td>
                </tr>
              </table>
            </div>
          </TD>
        </TR>
        <TR vAlign=middle bgcolor="#6699CC"> 
          <TD colSpan=4 height="325"> 
            <TABLE border=0 cellSpacing=0 height=100% width="100%" align="center">
              <TBODY> 
              <TR vAlign=top> 
                <TD width="67%" rowspan="2" bgcolor="#FFFFFF"> 
                            <p align="center">用DELPHI 设 计 屏 幕 保 护 程 序
                                       <table border="0" width="100%" cellspacing="1">       
              <tr>       
                <td width="100%">      
                  <p align="center">
                  <table border="0" width="100%" cellpadding="0">
  <tr>
    <td width="100%"> 屏幕保护程序是一类特殊的WINDOWS程序。如果已安装了屏幕保护程序,超过等待时间没有鼠标和键盘操作,WINDOWS会自动运行屏幕保护程序以保护屏幕。在休息之余,欣赏一下漂亮的WINDOWS屏幕保护,使人赏心悦目。那么设计屏幕保护程序要注意哪些方面?由于屏幕保护程序需满足一些特殊条件,比如屏幕保护程序只能有一个实例运行,运行后一旦使用鼠标或键盘应立即结束程序,能接受参数等。设计屏幕保护程序要充分考虑到这些,本文探讨用DELPHI制作一个屏幕保护程序(以下简称SCR),最后给出一个可运行的实例。
      <p><FONTCOLOR="#FFFFFF">
        一、TCanvas与TBitMap对象、JPEG对象:
      <p><FONTCOLOR="#FFFFFF">
        DELPHI的TCanvas封装了大部分WINDOWS对图形的操作,SCR运行时各种图像千变万化、图形变幻无不是TCanvas的“杰作”。TBitMap对象有一个LoadFromFile()方法,能从BMP图像文件取得位图。一般情况下,设计SCR要创建至少一个TBitMap对象,由于窗体和TBitMap对象都有Canvas属性,可利用TCanvas中的各种函数设计图像。设计一个有各种图像变化效果的SCR常用到以下函数:
      <p><FONTCOLOR="#FFFFFF">
        1、CopyRect方法:从其原型CopyRect(Dest:TRect; 
      Canvas:TCanvas;Source:TRect)可看出,它将源画布某一矩形区域的图像复制到另一个画布的矩形区域。由于是内存的成块复制,因此具有很高的执行效率。在Timer组件的OnTimer 
      事件程序中灵活使用该函数,可以设计出各种美观演示效果:如百叶窗、推拉、马赛克、随机线、反像等等。将以下代码加入到OnTimer事件程序,可演示各种图像效果,这里仅举出两种效果,读者可参考有关资料设计更多更漂亮的演示效果。
      <pre>......
casePlayModeof
0: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.Heightdiv10do
begin
j:=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">
        2、StretchDraw方法:一般说来,使用CopyRect方法要求源矩形与目的矩形应相等,如果两者尺寸相差太大时,色彩可能失真。使用StretchDraw 
      能避免这个问题,其原型为:StretchDraw(constRect:TRect;Graphic:TGraphic)。它可在画布指定的矩形区域内完整地“画”出一个图像,如果源图象区域与目的区域尺寸不一致,会自动Stretch(拉伸),能有效的避免色彩失真。但此函数只能“画”出整个图像,如果只需“画”出一部分图像则应配合CopyRect()使用,先用StretchDraw()使整幅位图“变形”输出到一个画布,然后再用CopyRect()函数将所需部分“画出”。
      <p><FONTCOLOR="#FFFFFF">
        3、TextOut方法:在指定的位置输出一串文字。在Canvas 
      中还有很多函数可绘制图形,也能用于SCR的设计,这里就不加介绍。
      <p><FONTCOLOR="#FFFFFF">
        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;
begin
JpegImage1:=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">
        二、MediaPlayer和Timer组件:
      <p><FONTCOLOR="#FFFFFF">
        MediaPlayer组件封装了MCI中绝大部分的功能,利用它很容易播放WAVE和MIDI音乐,为SCR添加美妙的背景音乐。有关代码如下:
      <pre>ifMediaPlayer1.Mode&lt;&gt;mpPLayingthen
//音乐播放完后,更换音乐
begin
inc(i);
MediaPlayer1.FileName:=IntToStr(i)+'.WAV';
//逐一播放1.wav,2.wav...
MediaPlayer1.Open;
MediaPlayer1.Play;
end;
</pre>
      <p><FONTCOLOR="#FFFFFF">
        Timer组件是一个定时器,它的Interval属性指定定时器的间隔时间,每隔指定的时间就会执行一次OnTimer事件,SCR的OnTimer事件内要完成演示图像,更换图像,检查音乐是否播放完毕,更换音乐等各项工作。因此,Timer是设计SCR程序必不可少的组件。
      <p><FONTCOLOR="#FFFFFF">
        三、设置SCR的窗体:
      <p><FONTCOLOR="#FFFFFF">
        SCR的窗体与一般程序的窗体没有太大的区别。设计时只需注意到以下几点:
      <p><FONTCOLOR="#FFFFFF">

⌨️ 快捷键说明

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