Ich habe grade angefangen, ein bisschen mit Andorra 2D zu programmieren, und schon gibts die ersten Probleme.
Ich habe in einer
Unit eine Form, auf der nur ein TAdDraw liegt. Das initialisiere ich folgendermaßen:
Delphi-Quellcode:
AdDraw:=TAdDraw.Create(self);
AdDraw.DllName:='AndorraDX93D.dll';
with AdDraw.Display do begin
Width:=1280;
Height:=1024;
BitDepth:=ad32Bit;
DisplayMode:=dmFullscreen;
end;
video_init;
If AdDraw.Initialize Then begin
drawframes.Enabled:=true;
end else begin
ShowMessage(AdDraw.GetLastError);
halt;
end;
Danach wird eine Funktion in einer anderen
Unit aufgerufen, die dadrauf ein Video zeichnen (oder erstmal erstellen) soll:
Delphi-Quellcode:
function video_register(relpath:string;StopFunction:TStopFunction):integer;
var
count:integer;
pm:TMethodPointer;
begin
pm.pMethod := @StopFunction;
pm.pObject := nil;
count:=Length(video_instances);
SetLength(video_instances,count+1);
with video_instances[count] do begin
started:=false;
AdPlayer:=TAdVideoPlayer.Create(FMain.AdDraw); //Hier kommt schon der Fehler!
AdPlayer.Image.Texture.Filter:=atLinear;
AdPlayer.Open(Fmain.apath+relpath);
AdPlayer.Loop:=false;
AdPlayer.onStop:=TAdNotifyEvent(pm);
space:=(screen.Height-(screen.Width/AdPlayer.Image.Width*
AdPlayer.Image.Height))/2;
end;
Result:=count;
end;
Und gleich beim Erzeugen des Video-Players bekomme ich eine
Access-Violation. Hat jemand spontan eine Ahnung, woran das liegen könnte? Ich habe mir mal die Beispiele angeschaut, im Video-Player wird da eigentlich das gleiche gemacht, nur halt in der selben
Unit. Wobei es daran nicht liegt, habe probeweise das Video in der Hauptunit direkt nach dem Erzeugen des AdDraws erstellt, es kommt genau der selbe Fehler.
Wäre über jede Hilfe dankbar!