AGB  ·  Datenschutz  ·  Impressum  







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

TNotifyEvent

Ein Thema von glkgereon · begonnen am 16. Jan 2005 · letzter Beitrag vom 7. Jun 2005
Antwort Antwort
RalfOne

Registriert seit: 23. Jul 2004
31 Beiträge
 
Delphi 7 Professional
 
#1

Re: TNotifyEvent

  Alt 7. Jun 2005, 10:46
Hallo zusammen,

ich habe jetzt schon alles gelesen und auch in der Suche mich bemüht etwas zu finden aber irgendwie finde ich nicht das passende womit ich persönlich weiterkomme.
Also ich habe folgendes problem.
Ich habe eine Konsolenanwendung welche immer laufen muss.
Also bilde ich eine Endlosschleife.
In dieser Endlosschleife würde ich gerne auf den OnTimer reagieren. Dies klappt aber leider nicht!
Dieser wird immer ignoriert!
Das auslagern in einem Thread habe ich auch probiert klappt aber bei mir leider auch nicht?!!
Warum keine Ahung........
Hier mal einen Auszug meines Sources.
Erster Versuch.....
Delphi-Quellcode:
program Project1;

{$APPTYPE CONSOLE}

uses
  SysUtils,QExtCtrls;


var
  aTimer : TTimer;
procedure aOnTimer(Sender:TObject);
begin
  writeln('Test');
end;



begin
  aTimer := TTimer.Create(nil);
  aTimer.Interval := 1*10*1000;
  aTimer.OnTimer := aOnTimer;
  aTimer.Enabled := True;
  sleep(0);
  while true do begin
    sleep(0);
  end;
end.

Der zweite Versuch mit Luckie Code............
Delphi-Quellcode:
program Project1;

{$APPTYPE CONSOLE}

uses
  SysUtils,
  ExtCtrls,
  Classes;

type
  PMethodPointer = ^TMethodPointer;
  TMethodPointer = packed record
    pMethod: Pointer;
    pObject: TObject;
  end;

var
  T : TTimer;
  p : TMethodPointer;
  i : Integer;


procedure NotifyEvent(Self: TMethodPointer; Sender: TObject);
begin
  writeln('yes');
  beep;
end;

begin
  T := TTimer.Create(nil);
  T.Interval := 200; // -> löst alle 200 ms das OnTimer-Event aus
  try
    p.pMethod := @NotifyEvent;
    p.pObject := nil;
    T.OnTimer := TNotifyEvent(p);

    T.Enabled := true; // aktiviert den Timer
    writeln('Warte auf Event: ');
    for i := 1 to 5 do
    begin
      sleep(500);
      writeln('warte ' + inttostr(i * 500) + 'ms...');
      NotifyEvent(p, T);
    end;
    while true do begin
      sleep(0);
    end;
    T.Enabled := false; // deaktiviert den Timer
  finally
    T.Free;
  end;
end.
Danke im voraus für Vorschläge!!
  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 08:48 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