and the _main unit:

Code:
unit _main;

interface

uses Windows,
     Messages,
     SysUtils,
     Variants,
     Classes,
     Graphics,
     Controls,
     Forms,
     Dialogs,
     DJXTimer,
     DJX,
     ExtCtrls,
     djxclasses,
     d3dx9,
     StdCtrls,
     DJXFonts,
     ComCtrls,
     djxlandscape,
     djxtextures,
     Direct3D9,
     djxrender,
     djxmeshes,
     DJXMaterials,
     DJXLights,
     Buttons,
     __dxtexturemanager,
     __pf_simplegame,
     __consts;

type
  Tf_main = class(TForm)
    p_djx: TPanel;
    djx_main: TDanJetX;
    djxt_main: TDJXTimer;
    djxfl_main: TDJXFontList;
    Label1: TLabel;
    procedure FormCreate(Sender: TObject);
    procedure djxt_mainTimer(Sender: TObject);
    procedure FormActivate(Sender: TObject);
    procedure FormDeactivate(Sender: TObject);
    procedure djxt_mainProcess(Sender: TObject);
  private
    programmpfad: string;
    texturemanager: tdxtexturemanager;

    simplegame: tpf_simplegame_2;

    faktor_x,
    faktor_y: single;

    procedure renderdebuginfo;
  public
    { Public-Deklarationen }
  end;

var f_main: Tf_main;

implementation

uses __basics;

{$R *.dfm}

procedure Tf_main.FormCreate(Sender: TObject);
begin
  programmpfad:= getprogrampath;

  //danjetx initialisieren
  djx_main.Width:= p_djx.Width;
  djx_main.Height:= p_djx.Height;
  djx_main.InitParams.VertexProcessing:= vpmixed;
  djx_main.Start(p_djx.Handle);

  if not djx_main.Initialized then exit;

  //fonts
  djxfl_main.CreateFont('courier_14', 'courier new', 14);
  djxfl_main.CreateFont('courier_16', 'courier new', 16);

  //seitenverh?§ltnis-faktoren ausrechnen
  faktor_x:= djx_main.Width/ 640;
  faktor_y:= djx_main.Height/ 480;

  //texturemanager
  texturemanager:= tdxtexturemanager.create;
  texturemanager.djx:= djx_main;  //ZUERST djx zuweisen
  texturemanager.path_textures:= programmpfad+ 'textures\';  //DANN pfad einstellen

  simplegame:= tpf_simplegame_2.create(handle);
  simplegame.djx:= djx_main;
  simplegame.texturemanager:= texturemanager;
  simplegame.stretch_x:= faktor_x;
  simplegame.stretch_y:= faktor_y;
  simplegame.load_textmap(programmpfad+ 'maps\map1.txt');

  //und timer an
  djxt_main.enabled:= true;
end;

procedure Tf_main.FormActivate(Sender: TObject);
begin
  simplegame.di_activate;
end;

procedure Tf_main.FormDeactivate(Sender: TObject);
begin
  simplegame.di_deactivate;
end;

procedure Tf_main.djxt_mainProcess(Sender: TObject);
begin
  simplegame.process;

  if simplegame.state= pfs_quit then close;

  label1.caption:= 'player pos '+ inttostr(simplegame.playerpos.x)+ '/'+ inttostr(simplegame.playerpos.y);
end;

procedure Tf_main.djxt_mainTimer(Sender: TObject);
begin
  djx_main.BeginRender;
  djx_main.ClearScreen(255, 255, 255);

  //****
  simplegame.render;

  renderdebuginfo;
  djx_main.EndRender();
end;

procedure Tf_main.renderdebuginfo;
begin
  djxfl_main.Find('courier_16').Print(10, 10, 'debug info', djxcolor(cllime), true);
  djxfl_main.Find('courier_14').Print(10, 30, 'fps: '+ inttostr(djxt_main.fps), djxcolor(cllime));
end;

end.