![]() |
Timer nur in einer Unit zur Laufzeit erzeugen ??
hallo,
habt ihr zufällig ein Stück lauffähigen code wie ich einen Timer in eine Unit ohne Form einbauen kann, ich hab schonmal einen Thread hier gefunden aber ich bekomm des nicht so richtig zum laufen. oder hat einer ne Idee, des kann doch nit so schwer sein :wall: oder stelle ich mich zu dumm an :gruebel: Danke für die Hilfe |
Re: Timer nur in einer Unit zur Laufzeit erzeugen ??
Delphi-Quellcode:
wie willst du ihn genau verdenden?
uses ExtCtrls;
procedure Timer; var Timer : TTimer; begin Timer:=TTimer.Create(nil); Timer.OnTimer:= ;//hier muss eine procedure in TNotify-Form stehen (z.B. Timer1Timer(Sender: TObject);) Timer.Interval:=1000; Timer.Enabled:=true; end; |
Re: Timer nur in einer Unit zur Laufzeit erzeugen ??
sorry aber ich bekomm des nicht so ganz auf die Reihe mit der TNotify procedur,
bin noch nicht der hellste in Delphi, arbeite daran :coder: :roll: ich habe einen Dienst (Windows Service) geschrieben, und der ist ohne Formular, ich brauche in dem Jetzt einen Timer um die Zeit zu messen um später nach einer bestimmten Zeit das Formular anzuzeigen. |
Re: Timer nur in einer Unit zur Laufzeit erzeugen ??
wie Manzoni schon geschrieben hat, ist ein TNotify Event eine Prozedur mit einen TObject als Parameter.
Bsp.
Delphi-Quellcode:
und die weist du dann dem OnTimer-Event zu:
Procedure TimerEvent( Sender: TObject );
Begin // Tuwasimmerduwillst End;
Delphi-Quellcode:
[..]//s. Manzoni
Timer.OnTimer:= TimerEvent; [..]//s. Manzoni |
Re: Timer nur in einer Unit zur Laufzeit erzeugen ??
:wall: :wall: geht nicht :wall:
[Fehler] Unit1.pas(41): Inkompatible Typen: 'Methodenzeiger und reguläre Prozedur' |
Re: Timer nur in einer Unit zur Laufzeit erzeugen ??
Zeig mal die Codestelle wos knallt! ( und ein bissl drumherum )
|
Re: Timer nur in einer Unit zur Laufzeit erzeugen ??
eigentlich ganz einfach...
du erstellst oben im Kopf deine Procedure z.b so...
Delphi-Quellcode:
und dann schreibst du deine Procedure
procedure lala(Sender:Tobject); //<--Wichtig
z.B.
Delphi-Quellcode:
jetzt brauchst du bei onTimer nur noch lala als Procedure angeben!
procedure Tform1.lala(Sender:Tobject);
begin ShowMessage('jo geht'); end; Synonym |
Re: Timer nur in einer Unit zur Laufzeit erzeugen ??
also der Komplette Source
Delphi-Quellcode:
irgendwie hab ich damit ein Prob, bitte kukt mal nach (für ganz dumme wie mich :oops: )
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; type TForm1 = class(TForm) Button1: TButton; private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.dfm} procedure TimerEvent(Sender: TObject); begin form1.Caption := TimeToStr(Now); end; procedure Timer; var Timer : TTimer; begin Timer:=TTimer.Create(nil); Timer.OnTimer:=TimerEvent;//hier muss eine procedure in TNotify-Form stehen (z.B. Timer1Timer(Sender: TObject);) Timer.Interval:=1000; Timer.Enabled:=true; end; end. Danke |
Re: Timer nur in einer Unit zur Laufzeit erzeugen ??
Delphi-Quellcode:
geht auch nicht [Fehler] Unit1.pas(36): Inkompatible Typen: 'Methodenzeiger und reguläre Prozedur'
type
TForm1 = class(TForm) Button1: TButton; procedure TimerEvent(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; [Fehler] Unit1.pas(12): Ungenügende Forward- oder External-Deklaration: 'TForm1.TimerEvent' |
Re: Timer nur in einer Unit zur Laufzeit erzeugen ??
Also... Erstmal sollte der Prozedurkopf unter das Private.
Dann musst du die Prozedur Timerevent auch dem Objekt TForm1 zuordnen. Also unten
Delphi-Quellcode:
Dann am besten noch im Kopf aus der Procedure ein TNotifyEvent machen. Also:
procedure TForm1.TimerEvent(Sender: TObject);
begin form1.Caption := TimeToStr(Now); end; procedure TForm1.Timer; ...
Delphi-Quellcode:
Aber hattest du nicht gesagt, du willst das ohne Form machen? TForm ist doch ein Formular...
...
private TimerEvent: TNotifyEvent; public ... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:14 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz