新浪首页免费邮件用户注册网站地图
上移动梦网
赢手机大奖

新浪首页 > 科技时代 > 网上学园 > 高级编程 > 正文
Delphi趣味编程实例三则

http://www.sina.com.cn 2001/06/12 14:55 中国电脑教育报 胡勇智

  隐藏任务栏屏蔽热键

  在自己的程序中将任务栏隐藏起来,并屏蔽Ctrl+Alt+Del和Alt+Tab等系统热键,也是很有趣的。要实现它们比较容易,但千万别忘了恢复正常,另外,本例中使用了3个API函数:FindWindow、ShowWindow和SystemParametersInfo,在使用它们之前一定要进行申明。

  Implementation

  var Hwnd:THandle;

  Tmp:integer;

  procedure TForm1.Button1Click(Sender: TObject);

  begin

  Hwnd:=FindWindow('Shell_TrayWnd',nil);

  if Hwnd<>0 then ShowWindow(Hwnd,SW_HIDE); //隐藏任务栏

  SystemParametersInfo(SPI_SCREEN

  SAVERRUNNING,1,@Tmp,0); //屏蔽系统热键

  end;

  procedure TForm1.Button2Click(Sender: TObject);

  begin

  Hwnd:=FindWindow('Shell_TrayWnd',nil);

  ShowWindow(Hwnd,SW_SHOW); //恢复任务栏

  SystemParametersInfo(SPI_SCR

  EENSAVERRUNNING,0,@Tmp,0);

  //恢复系统热键

  end;

  动态调整显示器分辨率

  Delphi提供了可以动态改变屏幕分辨率的函数,分别是EnumDisplaySettings()和ChangeDisplaySettings()。有了它们,编程时可以随时改变分辨率以适应要求。下面的CRTReset函数能方便实现这一功能:

  implementation

  function CRTReset(X, Y: Word): Boolean;

  var

   lpDevMode: TDeviceMode;

  begin

   Result:= EnumDisplaySettings(nil, 0, lpDevMode); //获取显示模式

   if Result then begin

  lpDevMode.dmFields := DM_PELSWID

  TH Or DM_PELSHEIGHT;

  lpDevMode.dmPelsWidth := X;

  lpDevMode.dmPelsHeight := Y; //设置屏幕的宽度和高度

  Result:= ChangeDisplaySettings(lpDevMode, 0) = DISP_CHANGE_SUCCESSFUL;

   //改变屏幕分辨率并返回成功与否

  end;

  end;

  procedure TForm1.Button1Click(Sender: TObject);

  begin

  if CRTReset(800, 600) then ShowMessage('Now is 800*600'); //调用函数,设置分辨率为800×600

  end;

  鼠标滚轮如何编程

  我们使用的鼠标,很多都带有一个滚轮,方便用户的操作。但遗憾的是,平时编程多数只利用到鼠标的左、右两键,如果将滚轮操作功能也加进你的程序,定能使其增色不少。

  当鼠标指针指向窗体中时,Delphi为滚轮滚动提供OnMouseWheel事件,我们可以对它进行相应的处理。本例中,在窗体内放置一标签Label1,用于显示滚轮滚动的效果。

  implementation

  var i:integer;

  procedure TForm1.FormCreate(Sender: TObject);

  begin

   i:=0;

   Label1.Caption:=inttostr(i);

  end;

  procedure TForm1.FormMouseWheel(Sender: TObject; Shift: TShiftState;

   WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);

  begin

   if WheelDelta>0 then i:=i+1 else i:=i-1;

   //wheelDelta参数表示滚动一格的值,向上滚动为正数,向下滚动则为负数

   Label1.Caption:=inttostr(i);

  end;



发表评论】【初学者园地】【科技聊天】【关闭窗口

新 闻 查 询

 相关链接
用Delphi打造RealPlayer播放器 (2001/06/05 17:36)
用Delphi控制Windows的关闭功能 (2001/05/09 17:13)
利用Delphi开发旅游景点微机售票系统 (2001/02/13 16:25)
CORBA技术及在Delphi中的实现 (2000/10/26 12:07)
DELPHI的中文版安装程序制作大揭密 (2000/10/26 12:00)
Delphi控件的使用经验 (2000/10/18 14:31)
在Delphi中简单实现多重查询 (2000/09/29 11:32)
用Delphi获取当前系统时间 (2000/09/27 13:58)
DELPHI环境中组件的创建技巧 (2000/09/18 11:11)
用Delphi实现远程屏幕抓取 (2000/08/28 14:48)
Delphi 应用编程实例简介 (2000/05/23 11:51)


科技时代意见反馈留言板 电话:010-82612286   欢迎批评指正

网站简介 | 用户注册 | 广告服务 | 招聘信息 | 中文阅读 | Richwin | 联系方式 | 帮助信息 | 网站律师

Copyright © 1996 - 2001 SINA.com, Stone Rich Sight. All Rights Reserved

版权所有 四通利方 新浪网