菜鸟提问:哪位有播放avi文件的控件? 好像dephi自带的多媒体控件就可播放avi文件! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你可以用win32页的TAnimate控件. 感谢heifei,还有问题: 我要在显示copyfile.avi的同时作拷贝处理,为什么copyfile.ave没有动起来? 什么叫'为什么copyfile.ave没有动起来?' copyfile.avi 就是平常拷贝文件时windows显示的那个动画,我现在做一个程序是从局域网中拷贝文件,同时显示文件拷贝动画,可是该动画就是不动。是不是它得不到cpu时间? 这个动画你可以在commandavi属性栏里选取'avicopyfiles'当active属性为true时动画启动. 停止用stop方法.时间你自己控制. 我照做了,还是不行。但是当显示该avi文件时不干别的事情(拷贝文件)时,动画是动的是不是它得不到cpu时间?该如何通知TAnimate控件画? delphi 里面的 mediaplayer ,就可以的。 在进行拷贝命令发出之前,运行一句Application.ProcessMessages试一试。 有一个api可以做和windows一样的文件拷贝动画,你自己查。 你在现实前做一个copyfile.avi的副本,用副本显示动画行吗? 应该没有问题,在下面的程序里,播放delphi自带的\Borland\Delphi5\Demos\Coolstuf\SpeedIs.avi同时点击BtnCopy健也能正常拷贝.procedure TForm2.BtnCopyClick(Sender: TObject);var CopyBuffer: Pointer; { buffer for copying } BytesCopied: Longint; Source, Dest: Integer; { handles }const ChunkSize: Longint = 32768;begin GetMem(CopyBuffer, ChunkSize); { allocate the buffer } Source := FileOpen('C:\Program Files\Borland\Delphi5\Demos\Coolstuf\SpeedIs.avi', fmShareDenyWrite); { open source file } Dest := FileCreate('C:\TmpFile.avi'); { create output file} repeat BytesCopied := FileRead(Source, CopyBuffer^, ChunkSize); { read chunk } FileWrite(Dest, CopyBuffer^, BytesCopied); { ...write chunk } until BytesCopied < ChunkSize; { until we run out of chunks } FileClose(Dest); { close the destination file } FreeMem(CopyBuffer, ChunkSize);end;procedure TForm2.FormCreate(Sender: TObject);begin mediaplayer1.FileName:= 'C:\Program Files\Borland\Delphi5\Demos\Coolstuf\SpeedIs.avi'; mediaplayer1.Display:= Panel1; {speccifies display window} mediaplayer1.Open;end;代码中没有异常处理. 一样的用法.比如播放相同目录下的cool.avi:procedure TForm2.BtnCopyClick(Sender: TObject);var CopyBuffer: Pointer; { buffer for copying } BytesCopied: Longint; Source, Dest: Integer; { handles }const ChunkSize: Longint = 32768;begin GetMem(CopyBuffer, ChunkSize); { allocate the buffer } Source := FileOpen('C:\Program Files\Borland\Delphi5\Demos\Coolstuf\Cool.avi', fmShareDenyWrite); { open source file } Dest := FileCreate('C:\TmpFile.avi'); { create output file} repeat BytesCopied := FileRead(Source, CopyBuffer^, ChunkSize); { read chunk } FileWrite(Dest, CopyBuffer^, BytesCopied); { ...write chunk } until BytesCopied < ChunkSize; { until we run out of chunks } FileClose(Dest); { close the destination file } FreeMem(CopyBuffer, ChunkSize);end;procedure TForm2.FormCreate(Sender: TObject);begin Animate1.FileName:= 'C:\Program Files\Borland\Delphi5\Demos\Coolstuf\Cool.avi'; Animate1.Active:= True;end; 还是不行: 单纯的只是显示该avi文件时就可以,但是一拷贝文件(比如说1000个文件)的时候动画根本就不动。any way thanks 把你的代码贴出来吧,我用上面的程序一边拷贝win98,一边显是aviCopyFiles都没问题. 噢我找到了在system面板上谢谢各位我准备把这个帖子结了 Bing(必应) P2P 广域网版本正式开放测试, 内外网皆可沟通,支持广域网聊天,有防火墙穿透能力! Dephi做的系统无法登录 请问abstract error是什么错误? 关于自定义属性在MDI窗体中的使用问题。 准备从C转向Delphi的困惑:( 如何在应用程序中删除控件?(就像在设计期间删除一个控件那样的效果) 如何制定一个处理UDP通讯丢包的机制。急,在线等待! 二进制!!??…… 刷新初始化窗体 关于idhttp操作cookie的问题. 在QUICKREPORT中使用两个QUERY怎么做? 如何设置检查一个数据库中的表存不存在?
你可以用win32页的TAnimate控件.
我要在显示copyfile.avi的同时作拷贝处理,为什么copyfile.ave没有动起来?
什么叫'为什么copyfile.ave没有动起来?'
这个动画你可以在commandavi属性栏里选取'avicopyfiles'
当active属性为true时动画启动.
停止用stop方法.时间你自己控制.
是不是它得不到cpu时间?该如何通知TAnimate控件画?
delphi 里面的 mediaplayer ,就可以的。
你在现实前做一个copyfile.avi的副本,用副本显示动画行吗?
应该没有问题,
在下面的程序里,播放delphi自带的\Borland\Delphi5\Demos\Coolstuf\SpeedIs.avi同时
点击BtnCopy健也能正常拷贝.procedure TForm2.BtnCopyClick(Sender: TObject);
var
CopyBuffer: Pointer; { buffer for copying }
BytesCopied: Longint;
Source, Dest: Integer; { handles }
const
ChunkSize: Longint = 32768;
begin
GetMem(CopyBuffer, ChunkSize); { allocate the buffer }
Source := FileOpen('C:\Program Files\Borland\Delphi5\Demos\Coolstuf\SpeedIs.avi', fmShareDenyWrite); { open source file }
Dest := FileCreate('C:\TmpFile.avi'); { create output file}
repeat
BytesCopied := FileRead(Source, CopyBuffer^, ChunkSize); { read chunk }
FileWrite(Dest, CopyBuffer^, BytesCopied); { ...write chunk }
until BytesCopied < ChunkSize; { until we run out of chunks }
FileClose(Dest); { close the destination file }
FreeMem(CopyBuffer, ChunkSize);
end;procedure TForm2.FormCreate(Sender: TObject);
begin
mediaplayer1.FileName:= 'C:\Program Files\Borland\Delphi5\Demos\Coolstuf\SpeedIs.avi';
mediaplayer1.Display:= Panel1; {speccifies display window}
mediaplayer1.Open;
end;代码中没有异常处理.
procedure TForm2.BtnCopyClick(Sender: TObject);
var
CopyBuffer: Pointer; { buffer for copying }
BytesCopied: Longint;
Source, Dest: Integer; { handles }
const
ChunkSize: Longint = 32768;
begin
GetMem(CopyBuffer, ChunkSize); { allocate the buffer }
Source := FileOpen('C:\Program Files\Borland\Delphi5\Demos\Coolstuf\Cool.avi', fmShareDenyWrite); { open source file }
Dest := FileCreate('C:\TmpFile.avi'); { create output file}
repeat
BytesCopied := FileRead(Source, CopyBuffer^, ChunkSize); { read chunk }
FileWrite(Dest, CopyBuffer^, BytesCopied); { ...write chunk }
until BytesCopied < ChunkSize; { until we run out of chunks }
FileClose(Dest); { close the destination file }
FreeMem(CopyBuffer, ChunkSize);
end;procedure TForm2.FormCreate(Sender: TObject);
begin
Animate1.FileName:= 'C:\Program Files\Borland\Delphi5\Demos\Coolstuf\Cool.avi';
Animate1.Active:= True;
end;
单纯的只是显示该avi文件时就可以,但是一拷贝文件(比如说1000个文件)的时候动画根本就不动。any way thanks
把你的代码贴出来吧,
我用上面的程序一边拷贝win98,一边显是aviCopyFiles都没问题.
谢谢各位我准备把这个帖子结了