Einzelnen Beitrag anzeigen

Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.620 Beiträge
 
Delphi 12 Athens
 
#5

AW: Methode umbiegen

  Alt 24. Okt 2016, 08:35
Ich hab da mal was vorbereitet (nur ein Formular mit einem Label drauf):
Delphi-Quellcode:
unit Unit5;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.ExtCtrls, Vcl.StdCtrls;

type
  TTest = class(TComponent)
  private
    FTimer: TTimer;
    function GetOnTimer: TNotifyEvent;
    procedure SetOnTimer(const Value: TNotifyEvent);
    function GetEnabled: Boolean;
    procedure SetEnabled(const Value: Boolean);
  public
    constructor Create(AOwner: TComponent); override;
  published
    property Enabled: Boolean read GetEnabled write SetEnabled;
    property OnTimer: TNotifyEvent read GetOnTimer write SetOnTimer;
  end;

  TfrmKomponentenTest = class(TForm)
    lblTimerFired: TLabel;
    procedure FormCreate(Sender: TObject);
  private
    { Private-Deklarationen }
    FTest: TTest;
    FZahl: integer;
    procedure DoOnTimer(Sender: TObject);
  public
    { Public-Deklarationen }
  end;

var
  frmKomponentenTest: TfrmKomponentenTest;

implementation

{$R *.dfm}

{ TTest }

constructor TTest.Create(AOwner: TComponent);
begin
  inherited;
  FTimer := TTimer.Create(self);
  FTimer.Enabled := false;
end;

function TTest.GetEnabled: Boolean;
begin
  Result := FTimer.Enabled;
end;

function TTest.GetOnTimer: TNotifyEvent;
begin
  Result := FTimer.OnTimer;
end;

procedure TTest.SetEnabled(const Value: Boolean);
begin
  FTimer.Enabled := Value;
end;

procedure TTest.SetOnTimer(const Value: TNotifyEvent);
begin
  FTimer.OnTimer := Value;
end;

{ TfrmKomponentenTest }

procedure TfrmKomponentenTest.DoOnTimer(Sender: TObject);
begin
  inc(FZahl);
  lblTimerFired.Caption := IntToStr(FZahl);
end;

procedure TfrmKomponentenTest.FormCreate(Sender: TObject);
begin
  FTest := TTest.Create(self);
  FTest.OnTimer := DoOnTimer;
  FTest.Enabled := true;
end;

end.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat