用delphi打造属于自己的播放器
如今RealPlayer的流式媒体文件以其强大的视频压缩比正逐步悄然兴起。RealPlayer Plus播放器也理所当然地成为大家播放RealPlayer格式文件的首选软件。不过RealPlayer Plus也不是十全十美的,比如启动时间慢,占用空间大,留有历史记录等等。其实我们可以利用Delphi打造一个完全符合自己要求的RealPlayer播放器。下面我将向大家介绍如何利用Delphi来帮助你实现这一愿望。但前提是:你的机器中必须装有RealPlayer Plus播放器,因为我们要用到其自带的ActiveX控件。
首先,我们要在Delphi中导入所需的ActiveX控件。点击菜单“Component→Import ActiveX Control...”打开“Import ActiveX”对话框,在“Import ActiveX”列表框中,我们可以看到Windows中所有注册的AxctiveX控件。选择其中的“RealPlayer ActiveX Control Library(Version 1.0)”控件。然后单击“Install”按钮。
回到Delphi主界面,你会发现在VCL面板中的ActiveX标签中增加了一个名为RealAudio的组件。我们先把它放入窗体中。不过在默认情况中RealAudio组件没有视频播放窗口,也就是只能播放声音。这是我们不愿看到的,这时我们可以在RealAudio组件的Controls属性中添加如下代码:
IMAGEWINDOW,CONTROLPANEL,STATUSBAR
其中:IMAGEWINDOW、CONTROLPANEL、STATUSBAR分别表示显示视频播放窗口、控制条状态条。
添加代码后,我们可以发现控件外观已经改变成了视频播放窗口形状。然后设置Align属性为alClient,使播放窗口可以随窗体的变化而变化,方便大家在观看影视动画时可以随意拉动播放窗口大小。
然后,在窗中加入TMainMenu组件、TOpenDialog组件各一个。用于选择并打开播放影视文件。双击TMainMenu组件,进入菜单设计器。在这里,我们要设计一个菜单项File,及其2个子菜单Open、Exit。设计完毕后:
双击Open添加如下代码:
if OpenDialog1.Execute then
begin
RealAudio1.source:=OpenDialog1.FileName;
RealAudio1.doplay; //打开并启动播放器
End;
双击Open添加如下代码:
Application.terminate; //终止程序运行
为了在打开一个文件时,便于用户选择文件,要将OpenDialog组件的Filter属性设置如下:所有媒体文件(*.rm,*.ram,*.ra,*.swf,*.mp3)|*.rm;*.ram;*.ra;*.swf;*.mp3|*.*|*.*。
如果想要在看电
相关文档:
procedure TForm1.Button2Click(Sender: TObject);
var
name:String ;
begin
name := edit2.Text ;
name := '%' + name ;
query1.Close ;
query1.SQL.Clear ;
query1.SQL.Add('select * from gjh_t where name like '''+name+'''') ;
&nb ......
在低版本中设定MSCOMM控件,是导入MSCOMM组件,然后就可以看见MSCOMM控件的电话的图标了,但是在DELPHI 2005或以上版本中就必须先把此控件创建到包中(BPL)然后导入BPL,那个电话图标就可以看见在工具条上了。我试了多少回才试出来的。 ......
相对用第三方控件,CDO发送邮件还是很简洁方便的
注:CDONTS为CDO的子集,仅支持WinNT/Win2K,WinXP以上请用CDO;
单元引用ComObj;
procedure TForm1.Button1Click(Sender: TObject);
var
VCDOMessage:oleVariant;
begin
vCDOMessage:=CreateOleObject('CDO.Message');
vcdomessage.from:='MR.F'+'< ......
最近面试了一家企业,下面有一道从来没有想过的问题,当时有思路,不过写不出来.回来后,调试了一下,发现还是有难度的,写上来看大家是否还有更优化的写法,欢迎讨论:
下面实现将字符串"10ad200d3" 中的数字合计,10+200+3=213
var s1:string;
var i:integer;
var n1:integer;
var tem1: string;
var tem2:integer;
......