Hi Eric,
please handle the TImageEnView.OnDShowEvent because GetEventCode returns a valid code only inside that event.
You could write:
procedure PlayVid(var aView : TImageEnView);
var event:integer;
begin
aView.OnDShowEvent := DShowEvent; <<<< added this
aView.IO.DShowParams.FileInput := 'video\DifesaDiritto1.wmv';
aView.IO.DShowParams.RenderAudio := True;
aView.IO.DShowParams.RenderVideo := True;
aView.IO.DShowParams.Connect;
aView.IO.DShowParams.Position := 0;
aView.IO.DShowParams.Run;
end;
...and...
procedure TForm1.DShowEvent(Sender:TObject);
var
event:integer;
begin
ImageEnView1.IO.DShowParams.GetEventCode(event); // <<<< note: of course cannot be ImageEnView1 when created at runtime!!
case event of
IEEC_COMPLETE:
begin
ShowMessage('Now fired');
end;
end;
end;
About the exception, please set a size for the container bitmap (that is not sized automatically when TImageEnView is created at runtime). Example:
procedure CreateDynamicInstanceAndPlay;
var AImageEn : TImageEnView;
begin
AImageEn := TImageEnView.Create(Self);
AImageEn.Parent := Self;
AImageEn.IEBitmap.Allocate(300, 300); <<<< added this
AImageEn.SetBounds(0, 0, 300, 300); <<<< added this
PlayVid( AImageEn);
end;