在多媒体开发中的Delphi应用 制作动态有声标签 原理：通过标签和表单的OnMouseMove事件判断应何时改变、恢复标签位置，用sndplaysound()函数使鼠标触发相应事件后执行播放声音的动作。以下是实现的具体过程： 进入Delphi集成开发环境，新建一个工程。在窗体上放置两个Lable控件，Lable1和Lable2。在Object inspector中将Label1与Label2的“Caption”属性设为“关闭表单”，如图1所示。 图1

双击“Font”属性，将字体大小设为12。再将“Top”与“Lef”分别设为108、170。将Label2置于Label1之上。以上是两个标签的共同属性，现在选Label1，将其颜色设为白色，如图2所示。

图2

再选Label2，在Object inspector中双击其OnMouseMove项，编写如下代码：“Label2.Top：=109;”，接下来再为表单编写OnMouseMove事件代码：“Label2.Top:=108;”。
下面让我们为它加上声音。找到两个短小的wav文件，假设为pp.wav和dd.wav。在表单单元中的uses句之后加上“mmsy-stem”(即调用Windows多媒体函数动态链接库)，如图3所示。

图3

在implementation前加上“f:boolean;”，如图4所示：

图4

为Label2的OnClick事件编写代码：“sndplaysound(′pp.wav′，snd_async);”，为OnMouseMove事件加入“if f then sndplaysound(′dd.wav′，snd_ async)；f:=false；”两句。最后在表单的OnMouseMove事件中加入“f:=true;”如图5所示。

图5

编译运行一下，效果还不错吧。
界面色彩渐变效果的实现
界面色彩渐变效果是通过用渐变的画刷刷绘依次相邻的矩形块实现的。下面列举实例说明：
进入Delphi集成开发环境，新建一个工程。设置窗体的“Width”为500，在窗体上放置一个Button控件Button1。按此按钮将把表单置为由左向右由黄变白的渐变效果。代码如下：
procedure TForm1.Button1Click(Sender: TObject);
var i,j:Integer;
Dct:TRect;
begin
j:=Form1.height;
for i:=0 to 255 do
begin
Canvas.Brush.Color:=RGB(255,255,i);
Dct:=Rect(i＊2,0,(i＋1)＊2,j);
Canvas.FillRect(Dct);
end;
end;
如图6所示

图6

编译运行效果如图7所示。

图7

图形整体拉出效果
单纯的图形整体拉出效果比较简单，动态地改变图形区域的大小就可以实现。但事先应将图形的“Stretch”设置为“True”。
举例说明下拉效果：
在表单上放置一图片，属性“Height”设为0，“Stretch”设置为True。添加“Timer”构件，“Interval”设为200，“Enable”设为Ture。
在Timer1Timer中添加代码：
procedure TForm1.Timer1Timer(Sender: TObject);
begin
Image1.Height:=Image1.Height＋20;
if image1.Height=200 then
Timer1.Enabled:=FALSE;
end;
如图8所示。

图8

编译运行后效果如图9所示。

图9

(Frank)