|
|
导航: |
论坛 -> DELPHI技术
斑竹:liumazi,sephil |
|
作者: |
error (qimu80) |
★☆☆☆☆ |
-
|
普通会员 |
|
2003/6/2 15:18:17 |
标题: |
|
加入我的收藏 |
楼主: |
在这之前,定义了这个 private MyAnimal: TAnimal; 有四个控件,两个是Radiobutton,一个是button,一个是label;功能是先选择Radiobutton,再单击button,然后就会根据选择的内容播放音乐,同时显示名字! procedure TFormAnimals.FormCreate(Sender: TObject); begin MyAnimal := TAnimal.Create; end;
procedure TFormAnimals.FormDestroy(Sender: TObject); begin MyAnimal.Free; end;
procedure TFormAnimals.BtnVoiceClick(Sender: TObject); begin LabelVoice.Caption := MyAnimal.Voice; //这是我不明白的地方,难道播放音乐用这个就可以吗?是不是任何类型的音乐! end;
procedure TFormAnimals.RbtnAnimalClick(Sender: TObject); begin MyAnimal.Free; MyAnimal := TAnimal.Create; end;
procedure TFormAnimals.RbtnDogClick(Sender: TObject); begin MyAnimal.Free; MyAnimal := TDog.Create; end;
----------------------------------------------
发现错误是我的爱好! |
作者: |
error (qimu80) |
★☆☆☆☆ |
-
|
普通会员 |
|
2003/6/2 15:27:37 |
1楼: |
把这加进去! unit AnimF;
interface
uses SysUtils, Windows, Messages, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Anim;
type TFormAnimals = class(TForm) LabelVoice: TLabel; BtnVoice: TButton; RbtnAnimal: TRadioButton; RbtnDog: TRadioButton; procedure FormCreate(Sender: TObject); procedure FormDestroy(Sender: TObject); procedure BtnVoiceClick(Sender: TObject); procedure RbtnAnimalClick(Sender: TObject); procedure RbtnDogClick(Sender: TObject); private MyAnimal: TAnimal; end;
var FormAnimals: TFormAnimals;
implementation
{$R *.DFM}
----------------------------------------------
发现错误是我的爱好!
|
作者: |
|
2003/6/2 15:33:22 |
1楼: |
这好像涉及到一点 多态和重载的概念 Voice在TDog中是重载的 而在TAnimate中是虚拟的 赋值于不同的Voice属性 则执行不同的代码 而且播放声音是用的PlaySound() playsound是一个win api函数,可以播放指定的wav文件。(这个函数的定义在mmsystem.pas文件中可以找到。)
----------------------------------------------
|
|