AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Prozeduren aus einer Unit in anderen Programme benutzen
Thema durchsuchen
Ansicht
Themen-Optionen

Prozeduren aus einer Unit in anderen Programme benutzen

Ein Thema von mr47 · begonnen am 26. Dez 2004 · letzter Beitrag vom 26. Dez 2004
Antwort Antwort
Benutzerbild von mr47
mr47

Registriert seit: 6. Dez 2004
Ort: Stuttgart
644 Beiträge
 
Delphi 2005 Personal
 
#1

Re: Prozeduren aus einer Unit in anderen Programme benutzen

  Alt 26. Dez 2004, 11:07
Also. Ich hab jetzt folgendes herausgefunden:

@: Duffy: Nein das hab ich erst vergessen. Als ich das Ausprobieren wollte ist mir aufgefallen dass ich die Proceduren in eine Unit von einem Programm geschrieben hab! Als ich das gemerkt hab, hab ich sie dann in ne Unit reinkopiert (also ohne TForm usw.). Aber da passiert immer folgendes:

Also erst mal der Code: (hat was mit DirectX-Programmierung zu tun, und Die Funktion stand so im Buch (Aber eben NUR die Funktion !)):

Delphi-Quellcode:
unit dxHelpUnit;

interface

function DHInitDGfx(_handle: hwnd; _fullscreen: boolean; _width,_height, _bits: longint;
                _Hal: Boolean; out _IDirect3D9: IDirect3D9;
                out _IDirect3DDevice9 : IDirect3DDevice9) :boolean;

uses d3d9;


implementation

function DHInitDGfx(_handle: hwnd; _fullscreen: boolean; _width,_height, _bits: longint;
                _Hal: Boolean; out _IDirect3D9: IDirect3D9;
                out _IDirect3DDevice9 : IDirect3DDevice9) :boolean;
var
  d3dpp :TD3DPresent_Parameters;
  d3ddm :TD3DDisplayMode;
  dtype :Td3DDevType;
  D3DCaps9 :Td3DCaps9;
  hardWareVertexProcessing: Boolean;
  VertexProcessing: Integer;
begin
  Result:=false;
  _IDirect3D9 := Direct3DCreate9(D3D_SDK_Version);
  if (_IDirect3D9 = nil) then exit;

  Fillchar(d3dpp, sizeOf(d3dpp),0);
  with d3dpp do begin
    Windowed:= not _fullscreen;
    SwapEffect:= D3DSwapEffect_DisCard;
    if (_fullscreen) then begin
      BackBufferWidth:= _width;
      BackBufferHeight:= _height;
      case _bits of
        16: BackbufferFormat:= D3DFMT_R5G6B5;
        32: BackBufferFormat:= D3Dfmt_A8R8G8B8;
        else exit;
      end;
    end else
    begin
      if failed(_IDirect3d9.GetAdapterDisplayMode(D3DAdapter_Default,d3ddm)) then exit;
    BackBufferFormat:= d3ddm.format;
    end;
  end;
  _IDirect3d9.GetDeviceCaps(D3DAdapter_Default , d3dDevType_Hal , D3dCaps9);
  hardWareVertexProcessing := D3DCaps9.DevCaps and
    D3DDEvCaps_HWTransformandLight<>0;
  if hardWareVertexProcessing then
    vertexProcessing := D3DCreate_Hardware_VertexProcessing
  else
    VertexProcessing := D3DCreate_Software_VertexProcessing;
  if _hal then
    dType:= D3DDevType_Hal
  else
    dType := D3DDevType_Ref;
  if failed(_IDirect3d9.CreateDevice(D3DAdapter_Default, dType,_handle,vertexProcessing,
      d3dpp,_IDirect3dDevice9)) then begin
    exit;
  end;
  Result:=true;
end;

procedure DHCloseDGFX(_IDirect3D9: IDirect3D9; _IDirect3DDevice9:IDirect3DDevice9);
begin
  _IDirect3DDevice9 := nil;
  _IDirect3D9 := nil;
end;

end.
Eigentlich lässt sich die Unit jetzt sogar kompilieren. Aber wenn ich von ner anderen Unit drauf zu greifen will, sagt er immer dass der Begriff hwnd; (aus der ersten Zeile) nicht geklärt ist! Was ist da jetzt noch falsch? Man kann die Unit alleine kompilieren!

Danke für eure antworten...
  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 06:13 Uhr.
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