我也想在程序运行的同时,当用户按下某几个键后就运行另一个窗口,可是不知道该怎么做?清高手指教
还有一个就是 我打算在程序运行的时候,自动播放一个音乐,但是这个音乐文件必须单独存在,能否把这个音乐文件一同编进.exe中呢?

解决方案 »

  1.   

    你说的是彩蛋吧
    按键判断很容易,直接在窗体OnKeyPress中判断,添加文件进EXE请看下面:
    通常在Delphi的应用程序中,我们会调用到很多的资源,例如图片,动画(AVI),声音,甚至于别的执行文件。当然,把这些资源分布到不同的目录不失为一个好办法,但是有没有可能把这些资源编译成标准的windows资源从而链接到一个执行文件里面呢? 我们可以自己做一个RC文件,例如 sample.rc ,RC文件其实就是一个资源文件的描述文本,通过“记事本”程序创建就行了。然后可以输入一些我们要定义的资源,例如:MEN BITMAP c:\bitmap\men.bitmap
    ARJ EXEFILE c:\arj.exe
    MOV AVI c:\mov.avi
    然后用BRCC32把这个RC文件编译成sample.res(真正的资源文件)。在Delphi的工程文件中使用 $R 编译指令让Delphi包括资源到EXE文件里面。{$R sample.res}
    这样我们就可以在这个单一的执行文件中调用资源了。举例如下:EXEFILE:procedure ExtractRes(ResType, ResName, ResNewName : String);
    var 
    Res : TResourceStream; 
    begin
    Res := TResourceStream.Create(Hinstance, Resname, Pchar(ResType)); Res.SavetoFile(ResNewName);
    Res.Free; 
    end;
    AVI:procedure LoadAVI;
    begin
    {Avi1是一个TAnimate类}
    Avi1.ResName:='AVI';
    Avi1.Active:=True;
    end; 
      
      

  2.   

    Dephi5中资源文件的创建和使用
    http://www.ccw.com.cn/htm/app/aprog/01_3_2_2.asp谈Delphi编程中资源文件的应用
    http://www.138soft.com/htm/AuthorArt/myres.htm
      

  3.   

    就是判断按键,然后show一个窗体。
      

  4.   

    能举一个OnKeyPress的例吗?如同时按下ALT加上LOVE
      

  5.   

    用OnKeyDown事件form1的keypreview属性设为true procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    begin
     if (ssAlt in Shift) and (chr(key) in ['a'..'z','A'..'Z','0'..'9']) then
     begin
       edit1.Text:=love;
       if LowerCase(love)='love' then
          form2.Show;
     end;
    end;
      

  6.   

    我是想在按住ALT的同时依次按下L、O、V、E 四个键,然后出现另一个窗口
      

  7.   

    帮楼主想了个笨方法,下面的代码是按完L和O后出message
    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs;type
      TForm1 = class(TForm)
        procedure FormKeyDown(Sender: TObject; var Key: Word;
          Shift: TShiftState);
        procedure FormShow(Sender: TObject);
        procedure FormKeyUp(Sender: TObject; var Key: Word;
          Shift: TShiftState);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;
      l,o,v,e:boolean;implementation{$R *.dfm}procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    begin
        if  (key=76) then l:=true;
        if (L) and (not o) then
        begin
            if (key=79) then o:=true;
        end;
    end;procedure TForm1.FormShow(Sender: TObject);
    begin
        l:=False;
        o:=False;
        v:=False;
        e:=False;end;procedure TForm1.FormKeyUp(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    begin
        if (l) and (o) then
        begin
            l:=False;
            o:=False;
            v:=False;
            e:=False;
            ShowMessage('haha');
        end;
    end;end.
      

  8.   

    以前抄来的..你看看用户在窗体上按住ALT键不放,输入“HELLO”,则会出现一个消息框,提示你激活了复活节彩蛋,具体的彩蛋随便你设计了。下面是程序代码:注意别忘记将窗体FORM1的KeyPreview属性设定为True。 unit Unit1;interfaceuses
     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.