84 lines
1.8 KiB
Plaintext
84 lines
1.8 KiB
Plaintext
unit umain;
|
|
|
|
interface
|
|
|
|
uses
|
|
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
|
|
Dialogs, StdCtrls, imageenview, ieview, iemview;
|
|
|
|
type
|
|
TMainForm = class(TForm)
|
|
ButtonAddInput: TButton;
|
|
ImageEnMView1: TImageEnMView;
|
|
procedure ButtonAddInputClick(Sender: TObject);
|
|
procedure FormCreate(Sender: TObject);
|
|
procedure FormDestroy(Sender: TObject);
|
|
private
|
|
{ Private declarations }
|
|
FImageEnViews: TList;
|
|
public
|
|
{ Public declarations }
|
|
procedure NewFrame(Sender: TObject);
|
|
end;
|
|
|
|
var
|
|
MainForm: TMainForm;
|
|
|
|
implementation
|
|
|
|
uses uselectinput;
|
|
|
|
{$R *.dfm}
|
|
{$R WindowsTheme.res}
|
|
|
|
|
|
procedure TMainForm.NewFrame(Sender: TObject);
|
|
var
|
|
ie: TImageEnView;
|
|
idx: integer;
|
|
begin
|
|
ie := Sender as TImageEnView;
|
|
idx := ie.Tag;
|
|
ie.IO.DShowParams.GetSample(ImageEnMView1.GetTIEBitmap(idx));
|
|
ImageEnMView1.ReleaseBitmap(idx);
|
|
ImageEnMView1.UpdateImage(idx);
|
|
end;
|
|
|
|
|
|
procedure TMainForm.ButtonAddInputClick(Sender: TObject);
|
|
var
|
|
ie: TImageEnView;
|
|
begin
|
|
ie := TImageEnView.Create(self);
|
|
ie.Parent := self;
|
|
ie.Visible := false;
|
|
ie.OnDShowNewFrame := NewFrame;
|
|
FormSelectInput.ie := ie;
|
|
if FormSelectInput.ShowModal = mrOK then
|
|
begin
|
|
FImageEnViews.Add(ie);
|
|
ie.IO.DShowParams.SetVideoInput(FormSelectInput.ComboBoxVideoInput.ItemIndex, StrToIntDef(FormSelectInput.EditVideoSource.Text, 0));
|
|
ie.IO.DShowParams.EnableSampleGrabber := true;
|
|
ie.IO.DShowParams.Connect;
|
|
ie.IO.DShowParams.Run;
|
|
ie.Tag := ImageEnMView1.AppendImage(100, 100);
|
|
end
|
|
else
|
|
ie.Free();
|
|
end;
|
|
|
|
procedure TMainForm.FormCreate(Sender: TObject);
|
|
begin
|
|
FImageEnViews := TList.Create();
|
|
end;
|
|
|
|
procedure TMainForm.FormDestroy(Sender: TObject);
|
|
var
|
|
i: integer;
|
|
begin
|
|
for i := 0 to FImageEnViews.Count - 1 do
|
|
(TObject(FImageEnViews[i]) as TImageEnView).Free();
|
|
end;
|
|
|
|
end.
|