知识大全 Delphi趣味编程实例三则

Posted

篇首语:落花踏尽游何处,笑入胡姬酒肆中。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Delphi趣味编程实例三则相关的知识,希望对你有一定的参考价值。

Delphi趣味编程实例三则  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  一 隐藏任务栏屏蔽热键

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

  Implementation

  var Hwnd:THandle;

  Tmp:integer;

  procedure TForm Button Click(Sender: TObject);

  begin

  Hwnd:=FindWindow( Shell_TrayWnd nil);

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

  SystemParametersInfo(SPI_SCREEN

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

  end;

  procedure TForm Button Click(Sender: TObject);

  begin

  Hwnd:=FindWindow( Shell_TrayWnd nil);

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

  SystemParametersInfo(SPI_SCR

  EENSAVERRUNNING @Tmp );

  //恢复系统热键

  end;

  二 动态调整显示器分辨率

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

  implementation

  function CRTReset(X Y: Word): Boolean;

  var

   lpDevMode: TDeviceMode;

  begin

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

   if Result then begin

  lpDevMode dmFields := DM_PELSWID

  TH Or DM_PELSHEIGHT;

  lpDevMode dmPelsWidth := X;

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

  Result:= ChangeDisplaySettings(lpDevMode ) = DISP_CHANGE_SUCCESSFUL;

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

  end;

  end;

  procedure TForm Button Click(Sender: TObject);

  begin

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

  end;

  三 鼠标滚轮如何编程

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

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

  implementation

  var i:integer;

  procedure TForm FormCreate(Sender: TObject);

  begin

   i:= ;

   Label Caption:=inttostr(i);

  end;

  procedure TForm FormMouseWheel(Sender: TObject; Shift: TShiftState;

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

  begin

   if WheelDelta> then i:=i+ else i:=i ;

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

   Label Caption:=inttostr(i);

cha138/Article/program/Delphi/201311/25085

相关参考