Zitat von
ASCII:
Ich versuche gerade, das Tutorial
http://www.delphipraxis.net/internal...ct.php?t=48929 nachzuvollziehen. Irgendetwas klappt da nicht. Ich habe die
DLL-Dateien eingebunden, die Namespaces deklariert (klappt auch soweit). Die Variablendeklaration F3D: TPaintDirectX9; funzt auch noch. Ein Problem habe ich jetzt mit der Funktion. Ich habe hierfür eine Prozedur gemacht und den Code für das Erzeugen des Objektes eingefügt.
Das sieht jetzt so aus:
Delphi-Quellcode:
procedure zeichnen();
begin
try
// Die 3D Ausgabe wird hier auf Ein Panel gelegt
F3D := TPaintDirectX9.Create(TWinForm.Panel1);
except
on e:
Exception
do MessageBox.Show('
Beim Erzeugen der 3D-Anzeige ist ein Fehler aufgetreten:'+
#13#10 + E.
Message);
end;
end;
Ein Problem hat er mit dem Panel1, obwohl es existiert (Self.Panel1 klappte nicht, da hat er schon bei self geschimpft)
Was klappt hier nicht?
Bis auf dass self logisch nicht existiert (du hast hier ne Prozedur, keine Methode
) liegt das Problem wohl darin, dass du
TWinForm.Panel1 verwendest. Schieb die zeichnen-Methode
OOP-gemaess in deine TWinForm-Klasse und greif dann mit self.Panel1 drauf zu. Dann muessts klappen.
Zitat von
ASCII:
Da hacke ich jetzt mal nach: Gibt es eine Möglichkeit, das "richtige"
DirectX in
FCL einzubinden? Oder gibt es eine Methode die
VCL-Header und die entsprechenden
DLL's zu nehmen und sie über eine
VCL.NET-Assembly in das .NET-Projekt einzubinden (auch wenn ich keine Ahnung habe wie das geht)? Oder wäre davon abzuraten?
Du kannst auf die nativen Libararies zugreifen, soviel du willst, auch von .NET-Applikationen aus. Du kannst dir aber auch die Muehe sparen und auf Managed
DirectX zurueckgreifen. Ich weiss nicht ganz, welchen Sinn ersteres haette. Am Ende kaems dahin, dass du sagen koenntest, du haettest nen Teil der Managed
DirectX-Kapselung neu programmiert, was so gut wie fuern A.....llerwertesten waere
greetz
Mike