Delphi趣味程式設計例項三則
一、隱藏工作列遮蔽熱鍵
二、動態調整顯示器解析度
三、滑鼠滾輪如何程式設計
[@more@]一、隱藏工作列遮蔽熱鍵
在自己的程式中將工作列隱藏起來,並遮蔽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;
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/166555/viewspace-920947/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- C語言趣味程式設計100例pdfC語言程式設計
- Delphi實用程式設計經驗二則 (轉)程式設計
- 設計模式 - 原則及例項講解設計模式
- Jmeter beanshell程式設計例項JMeterBean程式設計
- 設計模式例項程式碼設計模式
- KafKa Java程式設計例項KafkaJava程式設計
- Winsock程式設計初步之<三> 源程式例項(2) (轉)程式設計
- Shell程式設計入門例項程式設計
- Qt 中Socket程式設計例項QT程式設計
- android socket程式設計例項Android程式設計
- The MySQL C API程式設計例項MySqlAPI程式設計
- XML程式設計例項(二) (轉)XML程式設計
- Java&CORBA程式設計例項JavaORB程式設計
- corba程式設計簡單例項ORB程式設計單例
- Java XML程式設計例項解析JavaXML程式設計
- 幽默趣味:程式設計師如同妓女程式設計師
- 例項QT程式 —— Qt單例不規則介面程式QT單例
- [C++]C++程式設計例項C++程式設計
- shell程式設計例項--實現累加程式設計
- 【Akka】Akka入門程式設計例項程式設計
- Delphi之快速設計(程式設計篇) (轉)程式設計
- Delphi COM程式設計介紹程式設計
- 用Delphi 開發資料庫程式經驗三則 (轉)資料庫
- Oracle PL/SQL 程式設計基礎 例項OracleSQL程式設計
- MapReduce程式設計例項之倒排索引 1程式設計索引
- MapReduce程式設計例項之自定義排序程式設計排序
- 設計模式趣味談設計模式
- 多程式程式設計函式posix_spawn例項程式設計函式
- 趣味幽默 程式設計師使用說明書程式設計師
- Delphi程式設計之--慣用法 (轉)程式設計
- Delphi Open Tools Api例項研究(一) (轉)API
- shell script程式設計小結——附帶例項程式設計
- Spark程式設計環境搭建及WordCount例項Spark程式設計
- MapReduce程式設計例項之資料去重程式設計
- MapReduce程式設計例項之自定義分割槽程式設計
- C#多執行緒程式設計例項C#執行緒程式設計
- C# 2.0 套接字程式設計例項初探程式設計
- shell程式設計例項1--參數列示程式設計