BSOne.SFC/EM.Lib/ImageEn_SRC/Demos/VideoCapture/DesktopToAvi/Unit1.pas

96 lines
2.4 KiB
Plaintext

unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ieview,
iemview, ExtCtrls, ImageEnView, ImageEnIO, hyieutils, hyiedefs, iexBitmaps, iesettings, iexLayers, iexRulers;
type
TForm1 = class(TForm)
ImageEnMView1: TImageEnMView;
Timer1: TTimer;
Panel1: TPanel;
btnRecord: TButton;
Label1: TLabel;
edtFilename: TEdit;
btnPlay: TButton;
chkMinimize: TCheckBox;
procedure btnRecordClick(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure FormActivate(Sender: TObject);
procedure btnPlayClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
fHiddenIEView: TImageEnView;
end;
var
Form1: TForm1;
implementation
uses
fplay;
{$R *.DFM}
{$R WindowsTheme.res}
// Record/stop
procedure TForm1.btnRecordClick(Sender: TObject);
const
Radius_Cinepack_Compressor_4CC = 'cvid';
Microsoft_Video_1_Compressor_4CC = 'msvc';
begin
if Timer1.Enabled then
begin
// we have to stop
fHiddenIEView.IO.CloseAVIFile;
Timer1.Enabled := false;
btnRecord.Caption := 'Record';
FreeAndNil( fHiddenIEView );
ImageEnMView1.MIO.LoadFromFile( edtFilename.Text );
end
else
begin
// we have to start
fHiddenIEView := TImageEnView.Create(nil);
fHiddenIEView.IO.CreateAVIFile( edtFilename.Text, 1, Microsoft_Video_1_Compressor_4CC );
btnRecord.Caption := 'Stop';
if chkMinimize.checked then
WindowState := wsMinimized;
DeleteFile( edtFilename.Text );
Timer1.Enabled := true;
end;
end;
// Capture a frame
procedure TForm1.Timer1Timer(Sender: TObject);
begin
fHiddenIEView.IO.CaptureFromScreen( iecsPrimary , 0 );
fHiddenIEView.IO.Params.BitsPerSample := 8;
fHiddenIEView.IO.Params.SamplesPerPixel := 3;
fHiddenIEView.IO.SaveToAVI;
Application.ProcessMessages;
end;
procedure TForm1.FormActivate(Sender: TObject);
begin
edtFilename.Text := IncludeTrailingBackSlash( ExtractFilePath( Application.Exename )) + 'Temp.avi';
ImageEnMView1.EnableAlphaChannel := true;
ImageEnMView1.SoftShadow.Enabled := true;
ImageEnMView1.FillThumbnail := false;
ImageEnMView1.ThumbnailDisplayFilter := rfFastLinear;
end;
procedure TForm1.btnPlayClick(Sender: TObject);
begin
ffplay.ImageEnMView1.MIO.LoadFromFile( edtFilename.Text );
ffplay.ImageEnMView1.Playing := true;
ffplay.Show;
end;
end.