⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 unit1.pas

📁 flash 播放示例
💻 PAS
字号:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, OleCtrls, ShockwaveFlashObjects_TLB, ExtCtrls, ComCtrls,
   ToolWin, ImgList, ShellCtrls;

type
  TFormFlashC = class(TForm)
    ShellTreeView: TShellTreeView;
    Splitter: TSplitter;
    ToolBar: TToolBar;
    ToolButtonCapture: TToolButton;
    ImageList: TImageList;
    ToolButtonExit: TToolButton;
    ShockwaveFlash: TShockwaveFlash;
    procedure ShellTreeViewAddFolder(Sender: TObject;
      AFolder: TShellFolder; var CanAdd: Boolean);
    procedure ShellTreeViewChange(Sender: TObject; Node: TTreeNode);
    procedure FormKeyUp(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure ToolButtonExitClick(Sender: TObject);
    procedure ToolButtonCaptureClick(Sender: TObject);
    procedure FormResize(Sender: TObject);
  private
    { Private declarations }
    procedure WMSysCommand(var Msg: TWMSysCommand); message WM_SYSCOMMAND;
  public
    { Public declarations }
  end;

var
  FormFlashC: TFormFlashC;

implementation

{$R *.dfm}

procedure TFormFlashC.ShellTreeViewAddFolder(Sender: TObject;
  AFolder: TShellFolder; var CanAdd: Boolean);
begin
  if not AFolder.IsFolder then
    if UpperCase(ExtractFileExt(AFolder.PathName)) <> '.SWF' then
      CanAdd := False;
end;

procedure TFormFlashC.ShellTreeViewChange(Sender: TObject; Node: TTreeNode);
begin
  if not ShellTreeView.SelectedFolder.IsFolder then
    if UpperCase(ExtractFileExt(ShellTreeView.SelectedFolder.PathName)) = '.SWF' then
    begin
      ShockwaveFlash.BGColor := '-1';
      ShockwaveFlash.Movie := ShellTreeView.SelectedFolder.PathName;
      ToolButtonCapture.Enabled := True;
    end
    else
      ToolButtonCapture.Enabled := False;
end;

procedure TFormFlashC.FormResize(Sender: TObject);
begin
  ActiveControl := nil;
  ActiveControl := ShockwaveFlash;
end;

procedure TFormFlashC.WMSysCommand(var Msg: TWMSysCommand);
begin
  if (Msg.CmdType = SC_MAXIMIZE) then
  begin
    SetWindowLong(Handle, GWL_STYLE, GetWindowLong(Handle, GWL_STYLE) and not WS_CAPTION);
    ShellTreeView.Visible := False;
    ToolBar.Visible := False;
    Splitter.Visible := False;
    self.WindowState := wsMaximized;
  end
  else
    DefaultHandler(Msg);
end;

procedure TFormFlashC.FormKeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if Key = 27 then
  begin
    SetWindowLong(Handle, GWL_STYLE, GetWindowLong(Handle, GWL_STYLE) or WS_CAPTION);
    Splitter.Visible := True;
    ShellTreeView.Visible := True;
    ToolBar.Visible := True;
    self.WindowState := wsNormal;
  end
end;

procedure TFormFlashC.ToolButtonExitClick(Sender: TObject);
begin
  Close;
end;

procedure TFormFlashC.ToolButtonCaptureClick(Sender: TObject);
var
  FilePathName: string;
  Bitmap: TBitmap;
  i: integer;
begin
  FilePathName := ShellTreeView.SelectedFolder.PathName;
  Bitmap := TBitmap.Create;
  try
    Bitmap.Width := ShockwaveFlash.Width;
    Bitmap.Height := ShockwaveFlash.Height;
    ShockwaveFlash.PaintTo(Bitmap.Canvas.Handle, 0, 0);
    i := 0;
    while (FileExists(FilePathName + IntToStr(i) + '.bmp')) do
      Inc(i);
    Bitmap.SaveToFile(FilePathName + IntToStr(i) + '.bmp');
  finally
    Bitmap.Free;
  end;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -