AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi DelphiX: Timer löst kein ereignis aus, warum ?
Thema durchsuchen
Ansicht
Themen-Optionen

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

Ein Thema von mimi · begonnen am 25. Apr 2004 · letzter Beitrag vom 25. Apr 2004
Antwort Antwort
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
Dagon

Registriert seit: 13. Jul 2003
505 Beiträge
 
Delphi 7 Professional
 
#2

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

  Alt 25. Apr 2004, 07:46
Hallo

Es geht nicht, weil du dem DXTimer zu erst noch das DXDraw zuordnen musst (über Zeitgeber.Screen := Draw (oder so ähnlich)).
  Mit Zitat antworten Zitat
mimi

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

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

  Alt 25. Apr 2004, 08:06
das währe mir neu, wenn man dieß müsste, unter VCL habe ich das auch nicht gemacht, also als ich einfach die drei komponenten einfach ins form geklickte hatte hatte alles funktioniert !!!
und sobalt ich sie zurlaufzeit erstelle geht garnichts mehr...
Michael Springwald
MFG
Michael Springwald,
Bitte nur Deutsche Links angeben Danke (benutzte überwiegend Lazarus)
  Mit Zitat antworten Zitat
Dagon

Registriert seit: 13. Jul 2003
505 Beiträge
 
Delphi 7 Professional
 
#4

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

  Alt 25. Apr 2004, 08:40
Zitat von mimi:
das währe mir neu, wenn man dieß müsste, unter VCL habe ich das auch nicht gemacht, also als ich einfach die drei komponenten einfach ins form geklickte hatte hatte alles funktioniert !!!
und sobalt ich sie zurlaufzeit erstelle geht garnichts mehr...
Sorry, da habe ich mich wirklich geirrt (ich habe die Komponenten bei mir nicht mehr drauf und darum war ich mir da nich so ganz sicher ).
Versuchs mal so: ordne den Komponenten als Parent das Formular zu.
  Mit Zitat antworten Zitat
mimi

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

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

  Alt 25. Apr 2004, 08:55
das habe ich bereits gemacht !!!
Michael Springwald
MFG
Michael Springwald,
Bitte nur Deutsche Links angeben Danke (benutzte überwiegend Lazarus)
  Mit Zitat antworten Zitat
Dagon

Registriert seit: 13. Jul 2003
505 Beiträge
 
Delphi 7 Professional
 
#6

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

  Alt 25. Apr 2004, 09:03
Stimmt, das habe ich übersehen.
Ist der Timer per Dafault enabled oder disabled?

Noch etwas:
ListImage:=TDXImageList.Create(ListImage); Da sollte stehen:
ListImage:=TDXImageList.Create(F1);
  Mit Zitat antworten Zitat
mimi

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

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

  Alt 25. Apr 2004, 10:40
habe den fehler gefunden, ist scheint daran zu liegen, das ich es gleich beim starten installisieren wollte, aber die anwendung muss schon gestartet sein, bevor der timer funktioniert.... aber jetzt habe ich einen neuen fehler: wenn ich einen blauen hintergrund haben möchte bekomme ich ein clblack hintergrund, und wenn ich clred haben möcte bekomme ich eine clBlue hintergrund...

Delphi-Quellcode:
 
  DXDraw1.Surface.Fill(clRed);
  DXDraw1.Flip;
Michael Springwald
MFG
Michael Springwald,
Bitte nur Deutsche Links angeben Danke (benutzte überwiegend Lazarus)
  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 03:16 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