AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

TTimer.OnTimer ersetzen

Ein Thema von fLaSh11 · begonnen am 27. Jun 2006 · letzter Beitrag vom 27. Jun 2006
Antwort Antwort
Seite 1 von 2  1 2      
fLaSh11
(Gast)

n/a Beiträge
 
#1

TTimer.OnTimer ersetzen

  Alt 27. Jun 2006, 17:55
Hallo,

ich habe folgendes Problem (wie kann ich es am einfachsten lösen?):

Ich habe eine Unit gemacht und ein Timer "created" .
Nun will ich als Timer1.OnTimer eine selbst gemachte Prozedur setzen, wie geht das?

//Edit: ich habe keine Lust ein TNotifyEvent zu machen, etc.


Für schnelle Hilfe bin ich immer dankbar!
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: TTimer.OnTimer ersetzen

  Alt 27. Jun 2006, 17:57
Und warum nicht? Du brauchst doch nur eine Methode mit der selben Signatur erzeugen und diese der Property zuweisen.
Markus Kinzler
  Mit Zitat antworten Zitat
fLaSh11
(Gast)

n/a Beiträge
 
#3

Re: TTimer.OnTimer ersetzen

  Alt 27. Jun 2006, 18:00
ich wollte es so machen:
Delphi-Quellcode:
//...
Timer1.OnTimer:=func1;
//...

procedure func1;
begin
  //blah
end;
so funzt es nicht! Was muss ich ergänzen?
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#4

Re: TTimer.OnTimer ersetzen

  Alt 27. Jun 2006, 18:01
Delphi-Quellcode:
type
 TForm1 = class(TForm)
  ...
  public
   procedure Timern(Sender: TObject);
 end;
 
var
 ATimer: TTimer;

procedure TForm1.Timern(Sender: TObject);
begin
 // Irgendwas;
end;

procedure Wasweißich;
begin
ATimer := TTimer.Create(*Parameter?!*);
ATimer.Intervall := 100;
ATimer.OnTimer := Timern;
end;
Meinst du das ?

Gruß
Neutral General
Michael
  Mit Zitat antworten Zitat
fLaSh11
(Gast)

n/a Beiträge
 
#5

Re: TTimer.OnTimer ersetzen

  Alt 27. Jun 2006, 18:04
achso, muss es eine public procedure sein, ich habe nämlich leider keine Form in meiner Unti deklariert...
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#6

Re: TTimer.OnTimer ersetzen

  Alt 27. Jun 2006, 18:08
Ich glaube schon
Ich habs mal ohne probiert und es ging nicht.. aber das geht mit Sicherheit auch ohne das die Procedure in einer Klasse drin ist .. oder ?
Michael
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: TTimer.OnTimer ersetzen

  Alt 27. Jun 2006, 18:12
Zitat:
achso, muss es eine public procedure sein, ich habe nämlich leider keine Form in meiner Unti deklariert...
Es muß ne Methode sein. Die Klasse ist egal du kannst auch eine Dummy-Klasse mit einer Methode mit TNotifyEvent-Signatur erzeuge und diese zuordnen.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

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

Re: TTimer.OnTimer ersetzen

  Alt 27. Jun 2006, 18:13
es muss nicht im Public sein, aber es muss auf jeden Fall eine Methode (Procedure eines Objectes) sein.
Wenn du kein Form hast, hast du dann wenigstens eine Nachrichtenschleife? Ansonsten arbeitet der Timer auch nicht richtig.
Im übrigen kannst du dir auch eine Hilfsklasse schreiben.
Delphi-Quellcode:
type
  THelpClass = class(TObject)
  public
    procedure TimerEventProc(Sender: TObject);
  end;
[...]
procedure THelpClass.TimerEventProc(Sender:TObject)
begin
  //Do something
end;
[...]
helpinstance := THelpClass.Create;
Timer.OnTimer = helpinstance.TimerEventProc;
Es gibt auch eine Möglichkeit ohne Methode. Dabei sollte man jedoch wissen das man macht. Und wenn man das weiß kommt man selbst auf die Idee. (Man sollte wissen was der Intern der Unterschied zwischen einer Methode und einer Procedure ist)
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von alleinherrscher
alleinherrscher

Registriert seit: 8. Jul 2004
Ort: Aachen
797 Beiträge
 
Delphi XE2 Professional
 
#9

Re: TTimer.OnTimer ersetzen

  Alt 27. Jun 2006, 18:14
Sagt mal, wenn man ne Unit ohne Form hat: TTimer.Create erwartet als Parameter TComponent. Was gebe ich ihm da an? Kann ich das einfach durch "NIL" ersetzten?
„Software wird schneller langsamer als Hardware schneller wird. “ (Niklaus Wirth, 1995)

Mein Netzwerktool: Lan.FS
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

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

Re: TTimer.OnTimer ersetzen

  Alt 27. Jun 2006, 18:15
genau, einfach nil übergeben. Der Owner dient ja lediglich dazu das die Komponente automatisch zerstört wird bzw. per FindComponent gefunden wird.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 08:41 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