AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Prism Probleme mit DirectX 9 in Delphi 2005
Thema durchsuchen
Ansicht
Themen-Optionen

Probleme mit DirectX 9 in Delphi 2005

Ein Thema von ASCII · begonnen am 2. Mai 2006 · letzter Beitrag vom 3. Mai 2006
Antwort Antwort
ASCII

Registriert seit: 8. Jan 2006
Ort: Dresden
8 Beiträge
 
#1

Probleme mit DirectX 9 in Delphi 2005

  Alt 2. Mai 2006, 17:36
Hi Leutz

Ich komme nicht weiter.
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?


Eine zweite Frage hab ich auch noch. Ich habe das Buch "DirectX 9 in Delphi", dass sich leider auf VCL bezieht und nicht auf .NET. Schon die erste Seite funktioniert nicht. Ich habe alle DLL-Dateien als Referenzen eingebunden und die 2 Namespaces für DirectX in .NET deklariert. Alles schön und gut, doch schon die folgende Deklaration funktionert nicht:
var direct3d9: IDirect3D9; Deswegen meine Frage: Sind die Datentypen für DirectX bei FCL anders als bei VCL? Oder was habe ich hier falsch gemacht?

Bitte helft mir..

thx
Greetz
ASCII
Einstweilig verschoben ist wie vorübergehend erschossen oder temporär verbrannt.
  Mit Zitat antworten Zitat
OregonGhost

Registriert seit: 8. Jun 2002
Ort: Lübeck
1.216 Beiträge
 
Delphi 3 Professional
 
#2

Re: Probleme mit DirectX 9 in Delphi 2005

  Alt 2. Mai 2006, 17:50
Zu deiner zweiten Frage:
Ja, sie sind komplett anders. Wenn du die VCL benutzt, benutzt du das "richtige" DirectX (als Dokumentation kannst du hier das DirectX SDK für C++ heranziehen). Wenn du die FCL benutzt, benutzt du typischerweise Managed DirectX (hier heißt die Dokumentation DirectX for Managed Languages). Managed DirectX verwendet zwar intern das COM-DirectX, kapselt allerdings alles (insbesondere D3DX) in eigenen Klassen, die somit inkompatibel zu den "richtigen" Klassen bzw. COM-Schnittstellen sind. Du kannst aber auch in .NET das COM-DirectX benutzen (da kann ich dir aber nicht sagen, wie )
Oregon Ghost
---
Wenn NULL besonders groß ist, ist es fast schon wie ein bisschen eins.
  Mit Zitat antworten Zitat
ASCII

Registriert seit: 8. Jan 2006
Ort: Dresden
8 Beiträge
 
#3

Re: Probleme mit DirectX 9 in Delphi 2005

  Alt 2. Mai 2006, 17:59
ok, erstmal danke für deine antwort

Ich interessiere mich für das richtige DirectX, also entfällt hier schon mal Frage 1^^

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?

thx
Greetz
ASCII
Einstweilig verschoben ist wie vorübergehend erschossen oder temporär verbrannt.
  Mit Zitat antworten Zitat
Benutzerbild von JasonDX
JasonDX
(CodeLib-Manager)

Registriert seit: 5. Aug 2004
Ort: München
1.062 Beiträge
 
#4

Re: Probleme mit DirectX 9 in Delphi 2005

  Alt 2. Mai 2006, 18:31
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
Mike
Passion is no replacement for reason
  Mit Zitat antworten Zitat
OregonGhost

Registriert seit: 8. Jun 2002
Ort: Lübeck
1.216 Beiträge
 
Delphi 3 Professional
 
#5

Re: Probleme mit DirectX 9 in Delphi 2005

  Alt 2. Mai 2006, 19:16
Ja, man sollte vielleicht hinzufügen, auch wenn Managed DirectX bis vor einiger Zeit nicht Bestandteil der normalen DirectX Runtime war, jetzt ist es das und ist somit mehr oder weniger gleichberechtigt mit den COM-Komponenten. Im Hinblick auf Vista könnte es sogar mal das offizielle werden, also hast du eigentlich nichts zu verlieren, wenn du gleich auf Managed DirectX setzt, es ist in jeder Hinsicht komfortabler
Und, nicht zu vergessen, die C#-Beispiele sind oftmals leichter in Delphi umzusetzen als die C++-Beispiele, zumal du das jeweils aktuelle Managed DirectX einfach in Delphi einbinden kannst (.NET ist halt .NET, egal in welcher Sprache), während du bei den COM-Komponenten immer auf eine Übersetzung nach Delphi warten musst.

Als Einstieg kann ich dir alternativ zu dem von dir verlinkten Tutorial auch die auf www.codeproject.com empfehlen, unter C#->Multimedia->DirectX.
Oregon Ghost
---
Wenn NULL besonders groß ist, ist es fast schon wie ein bisschen eins.
  Mit Zitat antworten Zitat
ASCII

Registriert seit: 8. Jan 2006
Ort: Dresden
8 Beiträge
 
#6

Re: Probleme mit DirectX 9 in Delphi 2005

  Alt 2. Mai 2006, 20:59
OK, aber ich hab hier immer noch mein Buch "DirectX 9 für Delphi", und es wäre ja doof wenn ich es nicht verwende und auf Managed DirectX umsteige...
Wie genau ich das echte DirectX nun einbinde habt ihr mir immer noch nicht gesagt... (ich hab doch keine Ahnung )
Muss ich dafür eigene Header schreiben, gibts da schon vordefinierte? Oder gibts einen einfacheren Weg?

THX!!
Greetz
ASCII
Einstweilig verschoben ist wie vorübergehend erschossen oder temporär verbrannt.
  Mit Zitat antworten Zitat
OregonGhost

Registriert seit: 8. Jun 2002
Ort: Lübeck
1.216 Beiträge
 
Delphi 3 Professional
 
#7

Re: Probleme mit DirectX 9 in Delphi 2005

  Alt 2. Mai 2006, 22:48
Hmm, steht in dem Buch nicht, woher du die Units für DirectX bekommst für Delphi? Das ist ja eigentlich gerade eine der interessanteren Informationen
Oregon Ghost
---
Wenn NULL besonders groß ist, ist es fast schon wie ein bisschen eins.
  Mit Zitat antworten Zitat
ASCII

Registriert seit: 8. Jan 2006
Ort: Dresden
8 Beiträge
 
#8

Re: Probleme mit DirectX 9 in Delphi 2005

  Alt 3. Mai 2006, 11:40
OK, also die aktuellen Header sind hier verfügbar:
http://www.delphidev.de/header.php

Nur sind die Units für VCL ausgelegt, ich brauche sie allerdings für FCL... Genau das ist ja mein Problem....
Ist es sehr umständlich/ langwierig die umzuprogrammieren oder gibt es bereits welche?
Oder kann ich hier mit VCL.NET was machen? Ich hab kein Plan *confused*

ASCII
Einstweilig verschoben ist wie vorübergehend erschossen oder temporär verbrannt.
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#9

Re: Probleme mit DirectX 9 in Delphi 2005

  Alt 3. Mai 2006, 12:02
Ich würde mir auf jeden Fall lieber ein neues Buch kaufen, als auf managed DirectX zu verzichten. Auch würde kei Win32-Buch für .Net einsetzen. Wenn du die Grundlagen von mDirectX gelernt hast, kannst du ja dann den Code des Buches für Delphi.Net umsetzen.
Zu deiner Frage: Nun ja, wozu sollte sich jemand die Mühe der Übersetzung machen?
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:07 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz