首 页 教育新闻课件中心论文中心教学教案试题中心语文专题综合下载技术教程公务员  
设为首页
加入收藏
联系我们
您当前的位置:中国教育资源网 -> 技术教程 -> 软件开发 -> Delphi -> 技术内容 退出登录 用户管理

Delphi开发98屏幕保护预览程序Delphi教程

论文作者:佚名  论文来源:不详  论文发布时间:2006-6-19 22:22:05  论文发布人:chjchjchj

减小字体 增大字体

  大家都知道windows屏幕保护程序的作用,而且新的屏幕保护程序越来越漂亮。如果在win98的桌面右键菜单选属性,就弹出显示器设置界面,有一个标签是设置屏幕保护程序的。

  在该页的画面上,有一个显示器图案,如果你选择win98所带的屏幕保护程序,这个屏幕保护程序就会在这个小显示器上自动运行,你可以直接看到运行效果.这功能大大方便了屏幕保护程序的选择,这就是win98对屏幕保护程序的新增接口:预览功能。

  目前大多数新推出的屏幕保护程序都支持这个接口。

  屏幕保护程序从它的诞生那时起,在同一时刻只能运行一个,不能多个同时运行,然而预览接口的推出,使同时预览多个屏幕保护程序成为可能,本文将向读者介绍如何用Delphi开发这样一个程序。

  1.屏幕保护预览接口

  屏幕保护预览接口的使用很简单,这是通过传给屏幕保护程序的命令行参数来实现的,该命令行参数格式为:

screensaver.exe/p#####

  其中#####为一个有效的窗口句柄的10进制表示。

  这个窗口我们可以称之为预览窗口。

  实际上,支持预览接口的屏幕保护程序将自己的窗口创建为预览窗口的子窗口来实现预览功能的。

  2.画面布局

  我们这个程序的窗口分为3部分,为倒品字形,上左部分列出所有可用的屏幕保护程序,上右部分列出所有预览的屏幕保护程序,下面当然是预览窗口了。

  用Delphi实现时,首先在Form里放2个TPanel组件,Panel1对齐方式为顶部对齐,Panel2为撑满用户区,再在Panel1中放1个TFileListBox组件和一个TListBox组件,FileListBox1左对齐,ListBox1撑满用户区.
这样,FileListBox1为屏幕保护列表,ListBox1为预览列表,Panel2为预览窗口。

  3.列出屏幕保护程序.

  将FileListBox1的Mask属性设为*.scr,这是屏幕保护程序的扩展名。

  在FormCreate方法中将FileListBox1.directory设为windows系统目录GetSystemDirectory;

  4.预览屏幕保护程序.

  在FileListBox1DblClick方法中运行该屏幕保护程序,并将Panel2的窗口句柄传给它.
WinExec(pchar(FileListBox1.FileName+/p+inttostr(Panel2.handle)),SW_Show);
运行程序,怎么样?COOL!

  5.增加一些新特性:隐藏/显示/关闭。

  增加2个函数:用于更新ListBox1。

functionEnumProc(
h:HWND;//handleofchildwindow
l:integer//application-definedvalue
):boolean;stdcall;
varbuf:array[0..255]ofchar;
begin
GetWindowText(h,buf,sizeof(buf)-1);
ifiswindowvisible(h)then
Form1.ListBox1.items.add
(+strpas(buf)+:+inttostr(h))
else
Form1.ListBox1.items.add
(-+strpas(buf)+:+inttostr(h));
Result:=true;
end;

procedureTForm1.Fresh1;
begin
ListBox1.clear;
enumChildwindows(Panel2.handle,
TFNWndEnumProc(@enumproc),0);
end;
  增加一个弹出菜单Popupmenu1,3个菜单项,Show,Hide,Close,将ListBox1.popupmemu指向Popupmenu1。

  Hide的处理函数是:

procedureTForm1.Hide1Click(Sender:TObject);
varh:integer;
s:string;
begin
ifListBox1.itemindex=-1thenexit;
s:=Listbox1.items[ListBox1.itemindex];
h:=strtoint(copy(s,pos(:,s)+1,length(s)));
ShowWindow(h,SW_HIDE);
Fresh1;
end;
  Show的处理函数是:

procedureTForm1.Show1Click(Sender:TObject);
varh:integer;
s:string;
begin
ifListBox1.itemindex=-1thenexit;
s:=Listbox1.items[ListBox1.itemindex];
h:=strtoint(copy(s,pos(:,s)+1,length(s)));
ShowWindow(h,SW_SHOW);
Fresh1;
end;
  Close的处理函数是:

procedureTForm1.Close1Click(Sender:TObject);
varh:integer;
s:string;
begin
ifListBox1.itemindex=-1thenexit;
s:=Listbox1.items[ListBox1.itemindex];
h:=strtoint(copy(s,pos(:,s)+1,length(s)));
PostMessage(h,WM_QUIT,0,0);
Fresh1;
end;
  本程序在Delphi6.0下调试通过,应该能用Delphi6.0/7.0编译。

[] [返回上一页] [打 印] [收 藏]  
 ∷相关技术评论  (评论内容只代表网友观点,与本站立场无关!) [查看发表评论...]
 
 中国教育资源网免费技术教程下载中心-站内广告 站内广告 中国教育资源网免费技术教程下载中心-站内广告 
 中国教育资源网站内搜索 站内搜索 中国教育资源网站内搜索 
 

   
 中国教育资源网免费技术教程下载中心-栏目导航 栏目导航 中国教育资源网免费技术教程下载中心-栏目导航 
· C · Delphi
· Java · vb
 
中国教育资源网免费技术教程下载中心-相关教程  相关技术 中国教育资源网免费技术教程下载中心-相关教程
· 具有不同字体的列表
· Delphi中易混淆的概
· 在Delphi中巧改窗体
· Delphi 中自做动态显
· 利用Delphi编程发送
· Delphi中怎样监视PO
· DELPHI和注册表Delp
· Delphi参考手册Delp
· 用Delphi 3.0编制MP
· 用Delphi制作动态有
 中国教育资源网免费技术教程下载中心-本月热门教程 本月热门 中国教育资源网免费技术教程下载中心-本月热门教程 
 
 中国教育资源网免费技术教程下载中心-本日热门论文 本日热门 中国教育资源网免费技术教程下载中心-本日热门论文 
 
关于本站 - 网站帮助 - 免费课件 - 美容 - 绿色软件 - 软件下载 - 广告合作 - 下载声明 - 友情连接 - 网站地图 - 网站留言
浙ICP备06010405号 Email:cnkjz@163.com 技术支持:名流设计
版权所有 Copyright© 2002-2004 名流