Delphi趣味编程实例三则
点击次数:55 次 发布日期:2008-11-09 08:38:34 作者:源代码网
|
源代码网推荐 源代码网推荐 在自己的程序中将任务栏隐藏起来,并屏蔽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; 源代码网推荐 源代码网供稿. |
