96 lines
2.4 KiB
Plaintext
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.
|