A如何屏蔽系統功能鍵
有時我們不希望程式被使用者用Alt+Tab、Ctrl+Alt+Del、Ctrl+Esc等系統功能鍵打斷(例如自動演示程式),那麼該怎麼做呢?提示你一點,在運行螢幕保護程式的時候,這些功能鍵都是不起作用的——也就是說,只要在你的程式運行過程中,「欺騙」一下Windows,使它自以為正處在螢幕保護狀態就成了!請看下面這段程式碼:
var
temp : integer;
begin
SystemParametersInfo( SPI_SCREENSAVERRUNNING, 1, @temp, 0);
end;
當然,在程式結尾千萬別忘了恢復設置,把Windows「喚醒」。程式碼如下:
var
temp : integer;
begin
SystemParametersInfo( SPI_SCREENSAVERRUNNING, 0, @temp, 0);
end;
B如何分行提示
Delphi中大部分控制項都有實用的Hint屬性,即浮動條提示。但有時提示較長,是否可以使得浮動提示條分行顯示?其實,Hint是一個字串(string),因而Delphi顯示該字串時會自動解釋其中的回車控制符,所以只要加上回車控制符就可以了。依此原理,我們還能做出別具一格的垂直提示條。請先在form1中佈置一個label,然後看範例程式碼:
PRocedure TForm1.FormCreate(Sender: TObject);
begin label1.Hint := ′垂′ + #13 + ′直′+ #13 + ′提′ + #13 + ′示′;
end;
C如何在選單中顯示圖片
用過Office97嗎?是不是覺得在選單中顯示圖示很新鮮?如果想讓你的程式也能如此錦上添花,那就請你趕快準備bmp吧!
假設你打算為「檔案」功能表列(name為n1)下的第9項(序號改為8)「列印」新增一個印表機圖示(檔案名稱為c:/inter.bmp),那就只要在form的OnCreate事件中這樣寫:
var
Bmp : TPicture;
begin
Bmp := TPicture.Create;
Bmp.LoadFromFile(′c:/printer.bmp′);
SetMenuItemBitmaps(n1.Handle,8, MF_BYPOSITION,Bmp. Bitmap. Handle, Bmp.Bitmap.Handle);
end;
其中,第一個bitmap.handle用於未選定選單項目(unchecked),第二個則指定了選定(checked)時所顯示的bitmap,同異皆可。另外,由於選單項目的高度有限,所以,若bitmap過大,只有左上角被顯示。 (上海汪箴)