AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Timer nur in einer Unit zur Laufzeit erzeugen ??
Thema durchsuchen
Ansicht
Themen-Optionen

Timer nur in einer Unit zur Laufzeit erzeugen ??

Ein Thema von hm988 · begonnen am 19. Feb 2004 · letzter Beitrag vom 20. Feb 2004
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von hm988
hm988

Registriert seit: 20. Dez 2002
132 Beiträge
 
Delphi 7 Personal
 
#1

Timer nur in einer Unit zur Laufzeit erzeugen ??

  Alt 19. Feb 2004, 18:28
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 oder stelle ich mich zu dumm an

Danke für die Hilfe
Grüsse, Steven
  Mit Zitat antworten Zitat
Benutzerbild von Manzoni
Manzoni

Registriert seit: 15. Feb 2004
Ort: Berlin
120 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: Timer nur in einer Unit zur Laufzeit erzeugen ??

  Alt 19. Feb 2004, 19:07
Delphi-Quellcode:
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;
wie willst du ihn genau verdenden?
Bob
  Mit Zitat antworten Zitat
Benutzerbild von hm988
hm988

Registriert seit: 20. Dez 2002
132 Beiträge
 
Delphi 7 Personal
 
#3

Re: Timer nur in einer Unit zur Laufzeit erzeugen ??

  Alt 19. Feb 2004, 20:20
sorry aber ich bekomm des nicht so ganz auf die Reihe mit der TNotify procedur,

bin noch nicht der hellste in Delphi, arbeite daran

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.
Grüsse, Steven
  Mit Zitat antworten Zitat
Benutzerbild von Treffnix
Treffnix

Registriert seit: 25. Jun 2003
Ort: AC
740 Beiträge
 
Delphi 7 Professional
 
#4

Re: Timer nur in einer Unit zur Laufzeit erzeugen ??

  Alt 19. Feb 2004, 22:29
wie Manzoni schon geschrieben hat, ist ein TNotify Event eine Prozedur mit einen TObject als Parameter.

Bsp.

Delphi-Quellcode:
Procedure TimerEvent( Sender: TObject );
Begin
  // Tuwasimmerduwillst
End;
und die weist du dann dem OnTimer-Event zu:
Delphi-Quellcode:
[..]//s. Manzoni
Timer.OnTimer:= TimerEvent;
[..]//s. Manzoni
  Mit Zitat antworten Zitat
Benutzerbild von hm988
hm988

Registriert seit: 20. Dez 2002
132 Beiträge
 
Delphi 7 Personal
 
#5

Re: Timer nur in einer Unit zur Laufzeit erzeugen ??

  Alt 19. Feb 2004, 22:41
geht nicht

[Fehler] Unit1.pas(41): Inkompatible Typen: 'Methodenzeiger und reguläre Prozedur'
Grüsse, Steven
  Mit Zitat antworten Zitat
Benutzerbild von Treffnix
Treffnix

Registriert seit: 25. Jun 2003
Ort: AC
740 Beiträge
 
Delphi 7 Professional
 
#6

Re: Timer nur in einer Unit zur Laufzeit erzeugen ??

  Alt 19. Feb 2004, 22:47
Zeig mal die Codestelle wos knallt! ( und ein bissl drumherum )
  Mit Zitat antworten Zitat
Synonym
(Gast)

n/a Beiträge
 
#7

Re: Timer nur in einer Unit zur Laufzeit erzeugen ??

  Alt 19. Feb 2004, 23:05
eigentlich ganz einfach...


du erstellst oben im Kopf deine Procedure

z.b so...

procedure lala(Sender:Tobject); //<--Wichtig und dann schreibst du deine Procedure

z.B.


Delphi-Quellcode:
procedure Tform1.lala(Sender:Tobject);
begin
ShowMessage('jo geht');
end;
jetzt brauchst du bei onTimer nur noch lala als Procedure angeben!

Synonym
  Mit Zitat antworten Zitat
Benutzerbild von hm988
hm988

Registriert seit: 20. Dez 2002
132 Beiträge
 
Delphi 7 Personal
 
#8

Re: Timer nur in einer Unit zur Laufzeit erzeugen ??

  Alt 19. Feb 2004, 23:08
also der Komplette Source

Delphi-Quellcode:
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.
irgendwie hab ich damit ein Prob, bitte kukt mal nach (für ganz dumme wie mich )

Danke
Grüsse, Steven
  Mit Zitat antworten Zitat
Benutzerbild von hm988
hm988

Registriert seit: 20. Dez 2002
132 Beiträge
 
Delphi 7 Personal
 
#9

Re: Timer nur in einer Unit zur Laufzeit erzeugen ??

  Alt 19. Feb 2004, 23:12
Delphi-Quellcode:
type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure TimerEvent(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;
geht auch nicht [Fehler] Unit1.pas(36): Inkompatible Typen: 'Methodenzeiger und reguläre Prozedur'
[Fehler] Unit1.pas(12): Ungenügende Forward- oder External-Deklaration: 'TForm1.TimerEvent'
Grüsse, Steven
  Mit Zitat antworten Zitat
Benutzerbild von Treffnix
Treffnix

Registriert seit: 25. Jun 2003
Ort: AC
740 Beiträge
 
Delphi 7 Professional
 
#10

Re: Timer nur in einer Unit zur Laufzeit erzeugen ??

  Alt 19. Feb 2004, 23:45
Also... Erstmal sollte der Prozedurkopf unter das Private.
Dann musst du die Prozedur Timerevent auch dem Objekt TForm1 zuordnen. Also unten
Delphi-Quellcode:
procedure TForm1.TimerEvent(Sender: TObject);
begin
  form1.Caption := TimeToStr(Now);
end;

procedure TForm1.Timer;
...
Dann am besten noch im Kopf aus der Procedure ein TNotifyEvent machen. Also:
Delphi-Quellcode:
...
private
TimerEvent: TNotifyEvent;
public
...
Aber hattest du nicht gesagt, du willst das ohne Form machen? TForm ist doch ein Formular...
  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 09:31 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