Hallo,
stehe vor einer Wand...Code der in einer Form-Anwendung funktioniert will nicht
so wie er soll wenn man ihn in eine
DLL packt:
Delphi-Quellcode:
function PlayVideo:Boolean; stdcall;
begin
Videoform:=TForm.Create(nil);
Videoform.Left:=100; //Mon.Left - Videoform.Monitor.Left;
Videoform.Top :=100; // Mon.Top - Videoform.Monitor.Top;
Videoform.Width := 256;//screen.Monitors[0].Width;
Videoform.Height:= 256;//screen.Monitors[0].height;
Videoform.BorderStyle:=bsnone;
Videoform.Color:=clblack;
Videoform.Visible:=true;
FilterGraph := TFilterGraph.Create(nil);
FilterGraph.Mode := gmNormal;
FilterGraph.Name := 'FilterGraph';
VideoWindow := TVideoWindow.Create(nil);
VideoWindow.Parent := Videoform;
VideoWindow.Left := 10;
VideoWindow.Top := 10;
VideoWindow.FilterGraph := FilterGraph;
VideoWindow.Name := 'form1';
VideoWindow.VMROptions.Mode := vmrWindowed;
VideoWindow.Visible := true;
VideoWindow.FilterGraph := FilterGraph;
VideoWindow.FilterGraph.Active := false;
VideoWindow.FilterGraph.AutoCreate := false;
VideoWindow.FilterGraph.GraphEdit := false;
VideoWindow.FilterGraph.Mode := gmNormal;
VideoWindow.FullScreen := false;
VideoWindow.Mode := vmNormal;
FilterGraph.stop;
FilterGraph.Active := false;
FilterGraph.ClearGraph;
FilterGraph.Active := true;
FilterGraph.RenderFile('C:\Test.avi');
FilterGraph.Play;
end;
Beim FilterGraph.active:=true kommt eine AccessViolation...
Google fand im net nen Artikel von jemand mit dem selbem Problem, leider ohne
Lösung. System ist ein XP mit D6
Danke und Gruss
Guido