AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi TTimer nicht in einem Form sondern in einem eigenen Objekt
Thema durchsuchen
Ansicht
Themen-Optionen

TTimer nicht in einem Form sondern in einem eigenen Objekt

Ein Thema von ahachmann · begonnen am 24. Sep 2003 · letzter Beitrag vom 21. Okt 2003
Antwort Antwort
ahachmann

Registriert seit: 15. Sep 2003
Ort: Hamburg
54 Beiträge
 
Delphi 7 Professional
 
#1

TTimer nicht in einem Form sondern in einem eigenen Objekt

  Alt 24. Sep 2003, 15:54
Hallo,
Ich möchte in ein Objekt eine Timerfunktion einbauen, die nach einiger Zeit eine Funktion des Objektes ausführt.
Jedoch habe ich keine TComponente die ich den Constructor übergeben kann.
Nach meinem Verständnis müßte die Componente das Objekt selber sein, damit ich die Methoden dieses Objektes ausführen kann.

Delphi-Quellcode:
  ObjBombeFeld = Class(objFeld)
    constructor Mutieren(AltesFeld: ObjFeld; Bild: String); override;
    procedure Bombe; Override;
    procedure Zuendung;
    {private
    Timer: TTimer;
    end;}

  end;
so sieht das Objekt aus.
Kann mir jemand helfen?
Vielen Dank,
Alexander

[edit=Daniel B]Delphi-Tags eingefügt. Mfg, Daniel B[/edit]
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#2

Re: TTimer nicht in einem Form sondern in einem eigenen Obje

  Alt 24. Sep 2003, 16:07
Verusuch einfach der Create-methode des Timers "Application" zu übergeben
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
ahachmann

Registriert seit: 15. Sep 2003
Ort: Hamburg
54 Beiträge
 
Delphi 7 Professional
 
#3

Re: TTimer nicht in einem Form sondern in einem eigenen Obje

  Alt 24. Sep 2003, 16:39
Jetzt habe ich es hinbekommen. Ich habe das Objekt einfach von der Classe TComponent abgeleitet.
Aber jetzt habe ich das Problem, das Der Timer garnicht das Delay durchführt, sondern die Funktion gleich ausführt.
Wo liegt mein Fehler?
Delphi-Quellcode:
procedure ObjBombeFeld.Zuendung;
  var Timer: TTimer;
begin
  Timer:= TTimer.Create(self);
  Timer.Interval := 2000;
  Timer.OnTimer := Bombe(self);
  Timer.Destroy;
end;
Danke,
Alexander

[edit=Daniel B]Delphi-Tags korrigiert. Mfg, Daniel B[/edit]
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#4

Re: TTimer nicht in einem Form sondern in einem eigenen Obje

  Alt 24. Sep 2003, 17:28
funktioniert
Zitat:
Timer.OnTimer := Bombe(self);
wirklich?? dachte da weist man nur den procedurnamen zu weil der parameter von der Componente später gesetzt wird!?
Das die funktion sofort ausgeführt wird liegt vielleicht daran (dachte der compiler bringt bei sowas nen fehler aber hängt vermutlich von der Delphi version ab). Standardmäßig ist der Timer aber auch auf enabled und übernimmt den intervalwert erst nach dem enabled neu gesetzt wird.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
ahachmann

Registriert seit: 15. Sep 2003
Ort: Hamburg
54 Beiträge
 
Delphi 7 Professional
 
#5

Re: TTimer nicht in einem Form sondern in einem eigenen Obje

  Alt 24. Sep 2003, 18:11
Hmm, da hattest Du recht. Jetzt klappt es.
Aber der letzte schritt fehlt mir jetzt noch. Was mache ich wenn ich der Funktion die der Timer ausführt noch weitere Parameter übergeben will? Wenn die Liste der Parameter der Funktion einfach erweitere, dann bekomme ich einen Fehler.
Vielen Dank,
Alexander
  Mit Zitat antworten Zitat
Papulizer

Registriert seit: 23. Sep 2003
2 Beiträge
 
#6

Re: TTimer nicht in einem Form sondern in einem eigenen Obje

  Alt 20. Okt 2003, 16:52
Hallo,
dazu müsstest du wohl deine eigene Timer Komponente erstellen und die von TTimer ableiten. Dann einen eigenen Ereignistyp definieren, der deinen Vorstellungen entspricht.
  Mit Zitat antworten Zitat
ArrayOf..

Registriert seit: 7. Sep 2003
50 Beiträge
 
Delphi 7 Personal
 
#7

Re: TTimer nicht in einem Form sondern in einem eigenen Obje

  Alt 21. Okt 2003, 01:06
noch einfacher ist's, wenn man seinen Timer dafür dann einfach eine andere Procedure aufrufen lässt. Und zwar eine, die jetzt selbst wieder nur diese eigentliche Ziel-Funktion aufzurufen hat, dieses jedoch nun auch mit jeder beliebigen Parameterkonstellation tun kann.
MfG

  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 14:48 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