利用Delphi编制应用程序来实现对Flash控件应用的诠释

来源:互联网 发布:折扣软件 编辑:程序博客网 时间:2024/06/05 14:45

如何利用Delphi编制应用程序来实现对Flash控件应用的诠释?

楼主yckxzjj(Delphi编程驿站[www.delphidak.com])2003-10-14 19:16:18 在 Delphi / GAME,图形处理/多媒体 提问

收集利用Flash控件编写播放Flash文件过程中遇到的问题及解题方法。  
  分不够再加,希望在此贴中收集最全的相关资料! 问题点数:0、回复次数:13Top

1 楼whitetiger8(键盘未敲坏,基本功未练成)回复于 2003-10-14 20:37:56 得分 0

不错的研究话题Top

2 楼Storm2008($$天冰$$)回复于 2003-10-14 20:45:18 得分 0

u以下Top

3 楼zhouguoyao(飞鸟)回复于 2003-10-14 21:23:07 得分 0

这个问题值得大家讨论一下,帮你顶一下Top

4 楼IORILI(眼镜)回复于 2003-10-16 14:14:06 得分 0

加入activeX控件的   shockwarveFlash(version   1.0)  
  button1   打开flash文件:  
  procedure   tform1.button1click(sender:tobject);  
  begin  
    if   opendialog1.execute   then  
          showckwaveflash1.movie:=opendialog1.filename;  
  end;  
  button2:播放:  
   
  procedure   tform1.button2click(sender:tobject);  
  begin  
      shockwaveflash1.play;  
  end;  
   
  button3:停止  
   
  procedure   tform1.button3click(sender:tobject);  
  begin  
      shockwaveflash1.stopplay;  
  end;  
   
  button4:播放帧  
   
  procedure   tform1.button4click(sender:tobject);  
  begin  
    showckwaveflash1.freeonrelease;  
    close;  
  end;  
   
  得到打开的flash图像的总帧数:  
  label1.caption:=showckwaveflash1.totalframes;  
   
  button5:控制flash从哪一帧开始播放:  
  procedure   tform1.button5click(sender:tobject);  
  begin  
  shockwaveflash1.stopplay;  
  shockwaveflash1.gotoframe(spinedit1.value);  
  shockwaveflash1.play;  
  end;Top

5 楼Iamfish(呆鱼)回复于 2003-10-23 12:14:33 得分 0

在网站可以找到很多啊。Top

6 楼tanqth(青蛙)回复于 2003-10-25 11:30:06 得分 0

UPTop

7 楼yckxzjj(Delphi编程驿站[www.delphidak.com])回复于 2003-10-26 23:07:30 得分 0

unit   UFlashPlayFile;  
   
  interface  
   
  uses  
      Windows,   Messages,   SysUtils,   Variants,   Classes,   Graphics,   Controls,   Forms,  
      Dialogs,   OleCtrls,   ShockwaveFlashObjects_TLB,   ExtCtrls,   Menus;  
   
  type  
      TFlashPlayFileFrm   =   class(TForm)  
          ShockwaveFlashPnl:   TPanel;  
          ShockwaveFlash:   TShockwaveFlash;  
          RightPM:   TPopupMenu;  
          N1:   TMenuItem;  
          N2:   TMenuItem;  
          N3:   TMenuItem;  
          N5:   TMenuItem;  
          N6:   TMenuItem;  
          N7:   TMenuItem;  
          N8:   TMenuItem;  
          N9:   TMenuItem;  
          procedure   FormCreate(Sender:   TObject);  
          procedure   N7Click(Sender:   TObject);  
          procedure   WindowMaximize;  
          procedure   FormDestroy(Sender:   TObject);  
          procedure   FormResize(Sender:   TObject);  
          procedure   N6Click(Sender:   TObject);  
      private  
          procedure   WMSYSCommand(var   msg:   TWMSYSCommand);   message   WM_SYSCommand;  
          {   Private   declarations   }  
      public  
          {   Public   declarations   }  
          //自定义鼠标右键弹出消息  
          procedure   MouseRightMessage(var   Msg:   TMsg;   var   Handled:   Boolean);  
      end;  
   
  var  
      FlashPlayFileFrm:   TFlashPlayFileFrm;  
   
  implementation  
   
  {$R   *.dfm}  
   
  {   TFlashPlayFrm   }  
   
  procedure   TFlashPlayFileFrm.MouseRightMessage(var   Msg:   TMsg;  
      var   Handled:   Boolean);  
  begin  
      if   (Msg.message   =   WM_RBUTTONDOWN)   and   (Msg.hwnd   =   ShockwaveFlash.Handle)   then  
      begin  
          Handled   :=   True;  
          RightPM.Popup(Mouse.CursorPos.X,Mouse.CursorPos.y);  
      end;  
  end;  
   
  procedure   TFlashPlayFileFrm.FormCreate(Sender:   TObject);  
  var  
      hMenuHandle:Integer;  
  begin  
      hMenuHandle:=GetSystemMenu(Handle,False);  
      if   (hMenuHandle<>0)   then  
      DeleteMenu(hMenuHandle,SC_CLOSE,MF_BYCOMMAND);  
      Application.OnMessage:=   MouseRightMessage;  
  end;  
   
  procedure   TFlashPlayFileFrm.WMSYSCommand(var   msg:   TWMSYSCommand);  
  begin  
      if   (Msg.CmdType   =   SC_MAXIMIZE)   then  
          WindowMaximize  
      else  
          DefaultHandler(Msg);  
  end;  
   
  procedure   TFlashPlayFileFrm.WindowMaximize;  
  begin  
      Setwindowlong(Handle,GWL_STYLE,Getwindowlong(Handle,GWL_STYLE)and   not   WS_CAPTION);  
      WindowState   :=   wsMaximized;  
  end;  
   
  procedure   TFlashPlayFileFrm.N7Click(Sender:   TObject);  
  begin  
      if   WindowState   =   wsNormal   then  
            WindowMaximize  
      else  
      begin  
          SetWindowLong(Handle,GWL_STYLE,   GetWindowLong(Handle,GWL_STYLE)   or   WS_CAPTION);  
          WindowState   :=   wsNormal;  
      end;  
  end;  
   
  procedure   TFlashPlayFileFrm.FormDestroy(Sender:   TObject);  
  begin  
      ShockwaveFlash.FreeOnRelease;  
  end;  
   
  procedure   TFlashPlayFileFrm.FormResize(Sender:   TObject);  
  begin  
      ActiveControl   :=   nil;  
      ActiveControl   :=   ShockwaveFlash;  
  end;  
   
  procedure   TFlashPlayFileFrm.N6Click(Sender:   TObject);  
  begin  
      WindowMaximize;  
  end;  
   
  end.Top

8 楼TechnoFantasy((VB MVP)www.applevb.com)回复于 2003-10-27 08:51:24 得分 0

不错,收藏一下。Top

9 楼yckxzjj(Delphi编程驿站[www.delphidak.com])回复于 2004-01-14 20:05:28 得分 0

如何利用开发工具DELPHI对网页中的Flash文件进行保存操作?Top

10 楼GameWeaverDummy(小白菜)回复于 2004-01-14 20:15:01 得分 0

帮你顶Top

11 楼xiangwangz(&lt;*敝屣荣华 浮云生死 此身何惧*&gt;)回复于 2004-01-15 17:39:39 得分 0

帮你顶   ,呵呵   !Top

12 楼delphizd(DELPHI字典)回复于 2004-01-19 07:41:29 得分 0

http://218.56.11.178:8018/FileDown.aspx?FID=239  
   
  http://218.56.11.178:8018/FileDown.aspx?FID=84Top

13 楼yckxzjj(Delphi编程驿站[www.delphidak.com])回复于 2004-02-15 00:21:31 得分 0

function   AddtoFile(SourceFile,   TargetFile:   string):   Boolean;  
  var  
      Target,   Source:   TFileStream;  
      FileSize:   Integer;  
  begin  
      try  
          Source   :=   TFileStream.Create(SourceFile,fmOpenRead   or   fmShareExclusive);  
          Target   :=   TFileStream.Create(TargetFile,fmOpenWrite   or   fmShareExclusive);  
          try  
              Target.Seek(0,   soFromEnd);  
              Target.CopyFrom(Source,   0);  
              FileSize:=Source.Size+Sizeof(FileSize);  
              Target.WriteBuffer(FileSize,SizeOf(FileSize));  
          finally  
              Target.Free;  
              Source.Free;  
          end;  
      except  
          Result   :=   False;  
          Exit;  
      end;  
      Result   :=   True;  
  end;  
   
  function   LoadFromFile(SourceFile,TargetFile   :string):Boolean;  
  var  
      Source:   TFileStream;  
      Target:   TMemoryStream;  
      FileSize:   Integer;  
  begin  
      try  
          Target   :=   TMemoryStream.Create;  
          Source:=TFileStream.Create(SourceFile,fmOpenRead   or   fmShareDenyNone);  
          try  
              Source.Seek(-SizeOf(FileSize),   soFromEnd);  
              Source.ReadBuffer(FileSize,   SizeOf(FileSize));  
              Source.Seek(-FileSize,   soFromEnd);  
              Target.CopyFrom(Source,   FileSize   -   SizeOf(FileSize));  
              Target.SaveToFile(TargetFile);  
          finally  
              Target.Free;  
              Source.Free;  
          end;  
      except  
          Result   :=   False;  
          Exit;  
      end;  
      Result   :=   True;  
  end;  
   
  function   ExtractRes(ResType,   ResName,   ResNewName:   string):   Boolean;  
  var  
      Res:   TResourceStream;  
  begin  
      try  
          Res   :=   TResourceStream.Create(Hinstance,   Resname,   Pchar(ResType));  
          try  
              Res.SavetoFile(ResNewName);  
              Result   :=   True;  
          finally  
              Res.Free;  
          end;  
      except  
          Result   :=   False;  
      end;  
  end;

原创粉丝点击