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