Einzelnen Beitrag anzeigen

calibra301

Registriert seit: 20. Mär 2009
95 Beiträge
 
Delphi XE8 Professional
 
#1

TFilterGraph in einer DLL

  Alt 2. Nov 2012, 09:13
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
  Mit Zitat antworten Zitat