Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Vorgang kann nicht erzeugt werden (https://www.delphipraxis.net/114013-vorgang-kann-nicht-erzeugt-werden.html)

napsterxx 18. Mai 2008 11:46


Vorgang kann nicht erzeugt werden
 
Also ich benutze Delphi 2005 Personal und Vista. Ich habe gestern eine 3D DirectX 9 Anwendung geschrieben, wollte heute daran weiterarbeiten, jedoch kann ich das Projekt nicht mehr kompilieren. THematitel ist die Fehlermeldung

mkinzler 18. Mai 2008 11:53

Re: Vorgang kann nicht erzeugt werden
 
Ohne Code wäre es ein reines Ratespiel

napsterxx 18. Mai 2008 12:13

Re: Vorgang kann nicht erzeugt werden
 
Delphi-Quellcode:
unit Main;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, DXHelp, Direct3D9, D3DX9;

type
  TForm1 = class(TForm)
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormCreate(Sender: TObject);
  private
    { Private-Deklarationen }
    procedure OnIdle(Sender: TObject; var Done: boolean);
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;
  Direct3D9: IDirect3D9;
  D3DDev9: IDirect3DDevice9;

  Vertexbuffer: IDirect3DVertexBuffer9;

type
  TD3DLVertex = record
    Position: TD3DXVector3;
    Diffuse: TD3DColor;
  end;

const
  D3DFVF_TD3DLVERTEX = D3DFVF_XYZ or D3DFVF_DIFFUSE;

implementation

{$R *.dfm}

function GetTD3DLVertex( X, Y, Z: Extended; Farbe: TD3DColor ): TD3DLVertex;
begin
  Result.Position := D3DXVector3( X, Y, Z );
  Result.Diffuse := Farbe;
end;

function InitGeometry: HRESULT;
var
  Vertices: Array[0..2] of TD3DLVertex;
  pVertices: Pointer;
begin
  Vertices[0] := GetTD3DLVertex( 1.0, -1.0, 0.0, $FFFF0000 );
  Vertices[1] := GetTD3DLVertex( -1.0, -1.0, 0.0, $FF0000FF );
  Vertices[2] := GetTD3DLVertex( 0.0, 1.0, 0.0, $FFFFFFFF );

  Result := D3DDev9.CreateVertexBuffer( Sizeof( TD3DLVertex) *3,
                                        D3DUSAGE_WRITEONLY,
                                        D3DFVF_TD3DLVERTEX,
                                        D3DPOOL_DEFAULT,
                                        Vertexbuffer, nil );
  if Result <> D3D_OK then
    Exit;

  Result := Vertexbuffer.Lock( 0, SizeOf( TD3DLVertex ) * 3, pVertices, 0 );
  if Result <> D3D_OK then
    Exit;
  Move( Vertices, pVertices^, SizeOf( Vertices ) );
  Result := Vertexbuffer.Unlock;

  D3DDev9.SetRenderState( D3DRS_LIGHTING, LongWord( False ) );
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  DHInitDGFX( Form1.Handle, False, True, 0, 0, 0, True, Direct3D9, D3DDev9 );
  InitGeometry;
  Application.OnIdle := OnIdle;
end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  Vertexbuffer := nil;
  DHCloseDGFX( Direct3D9, D3DDev9 );
end;

procedure Render;
begin
  D3DDev9.BeginScene;
  D3DDev9.Clear( 0, nil, D3DCLEAR_TARGET, D3DCOLOR_ARGB( 0, 0, 0, 0 ), 1.0, 0);

  D3DDev9.SetStreamSource( 0, VertexBuffer, 0, SizeOf( TD3DLVertex ) );
  D3DDev9.SetFVF( D3DFVF_TD3DLVertex );

  D3DDev9.DrawPrimitive( D3DPT_TRIANGLELIST, 0, 1 );


  D3DDev9.EndScene;
  D3DDev9.Present( nil, nil, 0, nil );
end;

procedure TForm1.OnIdle(Sender: TObject; var done: boolean);
begin
  done := false;
  Render;
end;

end.
Der Code hat gestern noch funktioniert

Fussball-Robby 18. Mai 2008 12:23

Re: Vorgang kann nicht erzeugt werden
 
Hier hatte jemand ein ähnliches Problem. Er hatte eine DLL nicht richtig eingebunden. Könnte das bei dir u.U. auch der Fall sein?

napsterxx 18. Mai 2008 13:30

Re: Vorgang kann nicht erzeugt werden
 
Ne ist nicht der fall, ist ja keine DLL eingebunden

Luckie 18. Mai 2008 13:35

Re: Vorgang kann nicht erzeugt werden
 
Läßt sich das gar nicht erst kompilieren oder tritt der Fehler erst zur Laufzeit auf? Wenn zweiteres könnte man es debuggen, wenn ersters würde ich mal eine Routine nach der anderen auskommentieren und gucken, wann es sich wieder kompilieren lässt.

napsterxx 18. Mai 2008 14:35

Re: Vorgang kann nicht erzeugt werden
 
Ich drücke [F9] also zum Kompilieren und der Fehler kommt.

napsterxx 20. Mai 2008 11:43

Re: Vorgang kann nicht erzeugt werden
 
Das Problem besteht immernoch :D

delphimaedel 20. Mai 2008 11:45

Re: Vorgang kann nicht erzeugt werden
 
Schau mal in meiner Signatur. Damit ist alles gesagt... :thumb: :thumb:

Dunkel 20. Mai 2008 11:52

Re: Vorgang kann nicht erzeugt werden
 
Zitat:

Zitat von napsterxx
Das Problem besteht immernoch :D

Zitat:

Zitat von Luckie
Läßt sich das gar nicht erst kompilieren oder tritt der Fehler erst zur Laufzeit auf? Wenn zweiteres könnte man es debuggen, wenn ersters würde ich mal eine Routine nach der anderen auskommentieren und gucken, wann es sich wieder kompilieren lässt.

:?:


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:47 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz