Einzelnen Beitrag anzeigen

Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#2

Re: Eigene Komponente (Timer) - kein OnTimer?

  Alt 1. Jan 2006, 21:35
Ist echt schon schlimm, daß sich um Komponentenentwicklung immer noch keiner kümmert. 8) Dabei ist das ziemlich einfach. Ich habe aber nur das nötigste gemacht und den Kram mit den Sekunden usw. außer Acht gelassen. Wahrscheinlich ist da ein Fehler drin. Ich habe also nur die beiden public-procedures.

Delphi-Quellcode:
unit TestTimer;

interface

uses
  Classes, ExtCtrls;

type
  TAdvTimer = class(TTimer)
  private
  public
    { Laufzeit }
    procedure Start;
    procedure Stopp;
  published
    { Design und Laufzeit }
  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;

end.
Mit folgendem Programm geht das einwandfrei :

Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls, TestTimer;

type
  TForm1 = class(TForm)
    AdvTimer1: TAdvTimer;
    Button1: TButton;
    procedure AdvTimer1Timer(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
    i : integer;
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.AdvTimer1Timer(Sender: TObject);
begin
  ShowMessage (IntToStr (i));
  i := i + 1;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  i := 0;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  AdvTimer1.Stopp;
showmessage ('Timer disabled !');
end;

end.
Das Timer-Intervall steht auf 5000 und alle Sekunden wird ein neues i angezeigt. Solange bis der Button gedrückt wird. Dann kommt noch die eine showmessage und Schluß ist.
Gruß
Hansa
  Mit Zitat antworten Zitat