Einzelnen Beitrag anzeigen

Kaktus621

Registriert seit: 6. Sep 2006
2 Beiträge
 
#1

Timer.onTimer kann nicht zugewiesen werden

  Alt 9. Feb 2008, 12:07
Hallo !

Ich habe ein kleines Problem mit Timern. Ich habe eine Unit erstellt, die die Klasse "TConroller" beinhaltet. In ihr soll ein Timer gestartet werden, der zuerst 'inTime' Millisekunden wartet und anschließend alle 100 ms eine Variable hochzählt.
Mein Problem ist hierbei allerdings, dass ich beim Aufruf 'timer.OnTimer := startDiff;' eine Fehlermeldung erhalte :

Zitat:
control.pas(30,31) Error: Wrong number of parameters specified for call to "startDiff"
control.pas(18,15) Hint: Found declaration: TController.startDiff(TObject)
control.pas(53) Fatal: There were 1 errors compiling module, stopping
Hier der komplette Quelltext der Unit :

Delphi-Quellcode:
unit control;

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils, ExtCtrls;

type
  { TControl }

  TController = class(TObject)
  private
    timer : TTimer;
    diff : integer;
    firstEvent : boolean;
    procedure startDiff(Sender : TObject);
  public
    constructor Create(inTime : integer);
    procedure stopDiff();
  end;


implementation
  constructor TController.Create(inTime : integer);
  begin
    timer := TTimer.Create(nil);
    timer.Interval := inTime;
    timer.OnTimer := startDiff;
    timer.Enabled := true;
    firstEvent := true;
  end;
  
  procedure TController.startDiff(Sender : TObject);
  begin
    if firstEvent then begin
      timer.Enabled := false;
      timer.Interval := 100;
      timer.Enabled := true;
      firstEvent := false;
    end else begin
      inc(diff);
    end;
  end;

   procedure TController.stopDiff();
   begin
     timer.Enabled := false;
   end;
end.
Ich kann den Timer nicht per Objekt Inspector einfügen und die Methode so zuweisen, da kein Frame in der Unit/Klasse exsistiert

Ich wäre über Hilfe sehr dankbar
  Mit Zitat antworten Zitat