Einzelnen Beitrag anzeigen

Benutzerbild von ManuMF
ManuMF

Registriert seit: 11. Jul 2005
1.016 Beiträge
 
Delphi 6 Personal
 
#1

Eigene Komponente (Timer) - kein OnTimer?

  Alt 1. Jan 2006, 16:45
Hallo,

ich habe wollte auch mal probieren, eine eigene Komponente zu erstellen. Also habe ich einen Timer entwickelt, der u.a. auch die Methoden Start und Stopp kennt. Aber er führt das onTimer-Ergeignis nicht aus. Hier der Code:
Delphi-Quellcode:
unit AdvTimer;

interface

uses
  Classes, ExtCtrls;

type
  TAdvTimer = class(TTimer)
  private
    { Interne Sachen }
    procedure SetIVSekunden(bValue : Cardinal);
    function GetIVSekunden : Cardinal;

    procedure SetIVMinuten(bValue : Cardinal);
    function GetIVMinuten : Cardinal;

    procedure SetIVStunden(bValue : Cardinal);
    function GetIVStunden : Cardinal;
  protected
    { Methoden & Props }
  public
    { Laufzeit }
    procedure Start;
    procedure Stopp;
  published
    { Desing und Laufzeit }
    property IVSekunden : Cardinal read GetIVSekunden write SetIVSekunden;
    property IVMinuten : Cardinal read GetIVMinuten write SetIVMinuten;
    property IVStunden : Cardinal read GetIVStunden write SetIVStunden;
  end;

  procedure Register;

implementation


procedure Register;
begin
  RegisterComponents('Zusätzlich', [TAdvTimer]);
end;


procedure TAdvTimer.Start;
begin
  Enabled := true;
end;


procedure TAdvTimer.Stopp;
begin
  Enabled := false;
end;


procedure TAdvTimer.SetIVSekunden(bValue : Cardinal);
begin
  Interval := bValue * 1000;
end;


function TAdvTimer.GetIVSekunden : Cardinal;
begin
  If (Interval mod 1000 <> 0) then
    result := 0
  else
    result := Interval DIV 1000;
end;


procedure TAdvTimer.SetIVMinuten(bValue : Cardinal);
begin
  Interval := bValue * 60000;
end;


function TAdvTimer.GetIVMinuten : Cardinal;
begin
  If (Interval mod 60000 <> 0) then
    result := 0
  else
    result := Interval DIV 60000;
end;


procedure TAdvTimer.SetIVStunden(bValue : Cardinal);
begin
  Interval := bValue * 3600000;
end;


function TAdvTimer.GetIVStunden : Cardinal;
begin
  If (Interval mod 3600000 <> 0) then
    result := 0
  else
    result := Interval DIV 3600000;
end;


end.
Woran könnte das liegen?

Danke,
ManuMF
Gruß,
ManuMF

Endlich hab ich was Positives an Vista entdeckt: Das mitgelieferte Mahjongg
  Mit Zitat antworten Zitat