Einzelnen Beitrag anzeigen

mimi

Registriert seit: 1. Dez 2002
Ort: Oldenburg(Oldenburg)
2.008 Beiträge
 
FreePascal / Lazarus
 
#1

DelphiX: Timer löst kein ereignis aus, warum ?

  Alt 25. Apr 2004, 06:35
Hallo,
ich habe ein problem, mit dem erstellen von componenten in einer eigenen classe:

Sourcecode:
Delphi-Quellcode:
procedure TGame.Create_Component(F1:TForm);
begin
  Draw:=TDXDraw.Create(F1);
  Draw.AutoInitialize:=True;
  Draw.Height:=480; Draw.Width:=640; Draw.Left:=0; Draw.Top:=0;
  Draw.Parent:=F1;

  ListImage:=TDXImageList.Create(ListImage);
  ListImage.DXDraw:=Draw;

// Das ist das Problem, das ereignis wird leider nicht ausgeführt, warum weiß ich nicht
  Zeitgeber:=TDXTimer.Create(Zeitgeber);
  Zeitgeber.OnTimer:=DXTimerTimer; Zeitgeber.Interval:=0;
end;

constructor TGame.Create(F:TForm);
begin
  Create_Component(f); // erstellt die standart classen
end;

warum geht dieser code nicht....

Sourcecode:
Delphi-Quellcode:
 
{

  Autor: Michael Springwald
  Erstellt am: 19.04.2004
  Upgedatet am: 19.04.2004

}
 
unit gameunit;

interface
  uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
    DXDraws, DXClass, StdCtrls, AppEvnts, jpeg, ExtCtrls;

type
  TGame = class(TComponent)
    Zeitgeber: TDXTimer;
    ListImage:TDXImageList;
    Draw:TDXDraw;
         
    constructor Create(F:TForm);
    procedure Create_Component(F1:TForm);
    procedure DXTimerTimer(Sender: TObject; LagCount: Integer);
  public
     
// procedure DrawGame;

  end;

implementation

procedure TGame.Create_Component(F1:TForm);
begin
  Draw:=TDXDraw.Create(F1);
  Draw.AutoInitialize:=True;
  Draw.Height:=480; Draw.Width:=640; Draw.Left:=0; Draw.Top:=0;
  Draw.Parent:=F1; //Draw.C

  ListImage:=TDXImageList.Create(ListImage);
  ListImage.DXDraw:=Draw;

  Zeitgeber:=TDXTimer.Create(Zeitgeber);
  Zeitgeber.OnTimer:=DXTimerTimer; Zeitgeber.Interval:=0;
 // Zeitgeber.TimerRun;
end;

constructor TGame.Create(F:TForm);
begin
  Create_Component(f); // erstellt die standart classen
end;

procedure TGame.DXTimerTimer(Sender: TObject; LagCount: Integer);
begin

// Showmessage('TEST');
// if Draw.CanDraw = True then begin
    Draw.Surface.Fill(clYellow);
    Draw.Flip;
// end;
end;


end.

///////////////////////////////die form unit//////////////////////////////////////////

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, DXDraws, DXClass,gameunit;

type
  TForm1 = class(TForm)
    Panel1: TPanel;
    procedure FormActivate(Sender: TObject);
  private
    { Private-Deklarationen } 
  public
    { Public-Deklarationen } 
  end;

var
  Form1: TForm1;
  Game:TGame;
implementation


{$R *.dfm} 

procedure TForm1.FormActivate(Sender: TObject);
begin
  Game:=TGame.Create(form1);
end;

end.
ich habe schon im delphiforum gepostet vor einigen tagen:
http://www.delphi-forum.de/viewtopic.php?t=24680

aber noch kein ergbnis bekommen damit es läuft....

[edit=Sharky]Über 200 Beiträge und trotzdem keine Delphi-Tags! Mfg, Sharky[/edit]
Michael Springwald
MFG
Michael Springwald,
Bitte nur Deutsche Links angeben Danke (benutzte überwiegend Lazarus)
  Mit Zitat antworten Zitat