各位大哥大姐,可不可以把音乐文件直接打包进可执行文件里面啊,如果课以的话怎么做?

解决方案 »

  1.   

    没问题
    用Install shield 10来实现
      

  2.   

    可以放到资源文件中,下面的你教参一下《Dephi5中资源文件的创建和使用》
    几乎每个Windows应用程序都使用图标、图片、光标等资源。资源是程序的一部分,但是它是不可执行代码。下面我们就详细介绍资源文件在Delphi5中建立和使用方法。1.把资源放到Exe文件的优点
    由于定位资源比在磁盘中定位文件花费时间少,所以应用程序执行会更快。多种资源可以放在一个文件中,减少了图标、图片、光标等文件数量。保存资源文件时不要和工程名相同,因为Delphi创建工程时会自动创建一个和工程名相同的资源文件。并且最好将资源文件保存到和工程文件同一个文件夹中。2.创建资源文件
    首先创建一个.Rc的纯文本文件。格式如下:
    资源标识符 + 关键字 + 资源文件名
    ① 资源标识符:程序中调用资源时的特殊标号;
    ② 关键字:标识资源文件类型;
    Wave: 资源文件是声音文件;
    RCDATA: JPEG文件;
    AVI: AVI动画;
    ICON: 图标文件;
    BITMAP: 位图文件;
    CURSOR: 光标文件;
    资源文件名:资源文件名;
    ③ 资源文件名:编译的资源文件,比如动画、位图、光标等;
    ④ 如:MyWav WAVE "FileName.Wav"
    使用Borland资源编译器(BRCC32.EXE)转化.Rc文件成.Res文件。在DOS命令行下输入下列命令:
    Brcc32 FileName.Rc // Brcc32.Exe在Delphi5\Bin文件下。3.在工程中引用资源文件
    为了存取我们的资源文件,必须告诉Delphi链接我们的资源文件到应用程序中。因此我们可以在源代码中加入一条编译指令完成上述功能。这条指令必须紧跟在窗口指令后,如下形式:
    {$R *.DFM} //Delphi自带编译指令
    {$R FileName.Res} //新加入的编译资源文件的指令。
    不要删除{$R *.DFM}指令,因为这行代码告诉Delphi链接下面的资源到窗口的资源中。4.调用资源文件
    (1)存取资源文件中的位图(Bitmap)
    程序中如果想存取资源,你必须调用一些Windows API函数。保存在资源文件中的位图、光标和图标可以通过调用LoadBitmap、LoadCursor和LoadIcon函数存取。
    本例举例说明如何存取资源文件中位图并显示在Timage控件中。
    procedure TfrMain.btnCanvasPic(Sender: TObject);
    Image1.Picture.Bitmap.Handle :=LoadBitmap(hInstance
    '资源标识符');
    end;
    注:如果位图没有装载成功,程序仍旧执行,但是Image将不再显示图片。你可以根据LoadBitmap函数的返回值判断是否装载成功,如果装载成功返回值是非0,如果装载失败返回值是0。另外一个存取显示位图的方法如下
    procedure TfrMain.btnLoadPicClick(Sender: TObject);
    begin
    Image1.Picture.Bitmap.LoadFromResourceName(hInstance
    '资源标识符');
    end;
    (2)存取资源文件中的光标
    Screen.Cursors[]是一个光标数组,使用光标文件我们可以将定制的光标加入到这个属性中。因为默认的光标在数组中索引值是0,所以除非想取代默认光标,最好将定制的光标索引值设为1。
    procedure TfrMain.btnUseCursorClick(Sender: TObject);
    begin
    Screen.Cursors[1] :=LoadCursor(hInstance
    '资源标识符');
    Image1.Cursor :=1;
    end;
    (3)存取资源文件中的图标
    将图标放在资源文件中,可以实现动态改变应用程序图标。
    procedure TfrMain.LoadIconClick(Sender: TObject);
    begin
    Application.Icon.Handle := LoadIcon(hInstance
    '资源标识符');
    End;
    (4)存取资源文件中的AVI
    procedure TfrMain.LoadIconClick(Sender: TObject);
    begin
    Animate1.ResName :='MyAvi' ; //资源标识
    Animate1.Active :=True ;
    End ;
    (5)存取资源文件中的JPEG
    把jpeg单元加入到Interface的uses单元中。
    procedure TForm1.LoadJPGClick(Sender: TObject);
    var
    Fjpg : TJpegImage ;
    FStream :TResourceStream ;
    begin
    Fjpg :=TJpegImage.Create ;
    FStream := TResourceStream.Create (Hinstance
    '资源标识符'
    RT_RCDATA) ;
    FJpg.LoadFromStream (FStream) ;
    Image1.Picture.Bitmap.Assign (FJpg);
    end;
    (6)存取资源文件中的Wave
    把MMSystem加入到Interface的uses单元中
    procedure TForm1.LoadWaveClick(Sender: TObject);
    begin
    PlaySound('MyWav'
    HInstance
    Snd_ASync or Snd_Memory or snd_Resource) ;
    end;
    5.结束语
    位图、光标和图标、AVI动画、JPEG和Wave文件等可以放到资源文件中,上面我们介绍了如何将资源加入到资源文件中,并介绍了在Delphi中动态存取资源文件的方法。Delphi编译工程会自动创建一个和工程名相同的资源文件(如果没有其他的资源,主窗口的图标会放在这个资源文件中)。但是建议最好不要改变这个资源文件。
    [全文结束]第二篇文章:
    《谈Delphi编程中资源文件的应用》
    [来源:陈经韬]
    (一)初级应用篇:
    资源文件一般为扩展名为res的文件.在VC中资源文件用得非常普遍,但Delphi在其联机帮助中对资源文件没作什么介绍,其实利用其自带的资源编译工具BRCC32.EXE(一般位于\Delphi\BIN目录下),我们完全可以做出跟VC一样效果的文件来。
    资源文件最大的好处是能将一些在必要时才调用的文件跟可执行文件一起编译,生成一个文件.这样做
      

  3.   

    建议用
    Install shield
    这样实现起来容易点
      

  4.   

    比如说在delphi7中,做一个窗体,编译一下,产生一个可执行文件,在运行这个可执行文件的时候就播放背景音乐(音乐可以打包进这个可执行文件吗?)
      

  5.   


    是哦,
    虽然我也用资源文件
    但是,还真不知道,除了(DelphiX里可以放声音文件外)还有什么控件里可以保存下一个声音文件。
    谁用过MMTools?这个可以吗?貌似里面对声音很支持的样子。
      

  6.   


    是哦,
    虽然我也用资源文件
    但是,还真不知道,除了(DelphiX里可以放声音文件外)还有什么控件里可以保存下一个声音文件。
    谁用过MMTools?这个可以吗?貌似里面对声音很支持的样子。