📄 unit1.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 + -