DELPHI6.0 中的彩蛋 |
|
flyup
資深會員 ![]() ![]() ![]() ![]() ![]() 發表:280 回覆:508 積分:385 註冊:2002-04-15 發送簡訊給我 |
|
flyup
資深會員 ![]() ![]() ![]() ![]() ![]() 發表:280 回覆:508 積分:385 註冊:2002-04-15 發送簡訊給我 |
|
turboted
版主 ![]() ![]() ![]() ![]() ![]() 發表:95 回覆:754 積分:452 註冊:2002-07-23 發送簡訊給我 |
|
william
版主 ![]() ![]() ![]() ![]() ![]() 發表:66 回覆:2535 積分:3048 註冊:2002-07-11 發送簡訊給我 |
|
flyup
資深會員 ![]() ![]() ![]() ![]() ![]() 發表:280 回覆:508 積分:385 註冊:2002-04-15 發送簡訊給我 |
用Delphi製作“復活節彩蛋”
復活節彩蛋是目前軟體中常有的一個小花招,一般是當使用者按住某個功能鍵再輸入幾個字母就可啟動開發者名單、測試名單、致謝等有關資訊,而且復活節彩蛋一般都隱藏在“關於”對話框中。比如在Delphi 4.0中,打開Help選單,單擊“About”,在對話框中,按住ALT鍵不放,輸入TEAM、DEVELOPERS或QUALITY,都可以看到有關人員名單。在其他的一些軟體中也有這些類似的例子,如VB、Word等。 這東東看似“神祕”,其實實現起來並不復雜。本文給出一個用Delphi實現的例子,並說明實現復活節彩蛋的關鍵技巧。 雖然復活節彩蛋一般在“About”視窗中,但它是可以在任何視窗上實現的。在這里首先要解決的第一個問題就是如何讓視窗接收使用者的鍵盤輸入,且不會啟動視窗中的其他組件。我們知道,在視窗的屬性中有一個KeyPreview,其設定值為False,我們現在將其值改為True。為什麼要這麼做呢?因為這樣可以使視窗在元件之前接收鍵盤輸入,否則鍵盤輸入被元件接收,就無法實現復活節彩蛋。其次,為了防止使用者無意中在鍵盤輸入時啟動彩蛋,一般使用ALT、Shift或Ctrl控制鍵和其它幾個字母的組合作為啟動條件,這樣一般和使用者的鍵盤輸入不會相同。 接下來就是接收使用者的輸入了,將使用者每次輸入的文字保存,如果和事先定義的文字相同則啟動復活節彩蛋。 下面是一個實例: 使用者在視窗上按住ALT鍵不放,輸入“HELLO”,則會出現一個訊息視窗,提示你啟動了復活節彩蛋,具體的彩蛋隨便你設計了。下面是程序代碼: unit Unit1; interface uses
Windows, Messages, SysUtils, Classes,Graphics, Controls, Forms, Dialogs; type TForm1 = class(TForm)
procedure FormKeyDown(Sender: TObject; var Key: Word;Shift: TShiftState); private
{ Private declarations }
public
{ Public declarations }
end; var
Form1: TForm1;
keytp :string; implementation
{$R *.DFM} procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;Shift: TShiftState);
begin //是否按下ALT鍵,只接收文字 if (shift=[ssALT]) and (key >=$41)
and (key<=$5A) then
begin
keytp:=keytp+chr(key);
if keytp='HELLO' then
begin
showmessage('你啟動了復活節彩蛋');
end;
end;
end;
end. 發表人 - flyup 於 2002/10/26 03:05:27
|
demon1042001
一般會員 ![]() ![]() 發表:14 回覆:19 積分:6 註冊:2002-06-12 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |