一、如何動態更改屏幕分辨率
有許多小工具可以在不重新啟動Windows的條件下,動態更改屏幕分辨率。你是不是也想自己動手做一個呢?請在interface段中加入下面一句
function Resolution(X,Y:Word):boolean;
然後在implementation段中寫入如下代碼:
function Resolution(X,Y:Word):boolean;
var
DevMode:TDeviceMode;
begin
Result:=EnumDisplaySettings(nil,0,DevMode);
if Result then
begin
DevMode.dmFIElds:=DM_PELSWIDTH Or DM_PELSHEIGHT;
DevMode.dmPelsWidth:=X;
DevMode.dmPelsHeight:=Y;
Result:=ChangeDisplaySettings(DevMode,0)=DISP_CHANGE_SUCCESSFUL;
end;
end;
接著,在form中放個button,caption為“800×600”,然後在其OnClick事件中寫下
if Resolution(800,600) then ShowMessage('800×600模式!');
好了,試一下吧!
二、如何把文件放入回收站
為了保險起見,我們通常把要刪除的文件先放入回收站中,但是在Delphi中似乎沒有這樣現成的語句。如果你查詢help,它只會告訴你用deletefile函數會“不可挽回地”刪除文件(真要恢復當然也可以辦到,只是很麻煩)。那怎麼辦呢?別急,假設要安全地刪除c:\temp.tmp文件,可用以下代碼實現。
Var T:TSHFileOpStruct;
filename:String;
begin
filename:='c:\temp.tmp';
with T do
begin
Wnd:=0;
wFunc:=FO_DELETE;
pFrom:=Pchar(filename);
fFlags:=FOF_ALLOWUNDO
end;
try
SHFileOperation(T);
except
on eAccessviolation do showmessage('刪除命令已被取消!');
end;
注意,如果指定文件不存在,或者在確認刪除時按了“取消”,都會執行except後的語句。最後再提醒一句,別忘了在uses語句中加上shellapi。
以上程序在Delphi3中調試通過。