Hallo Zusammen,
bezugnehmend auf diesen
Thread hab ich noch eine Frage, diesmal aber bzgl. Properties in Interfaces.
Ich hab mein Interface um eine Property erweitert:
Delphi-Quellcode:
unit Unit2;
interface
type
IMyInterfaceInternal =
Interface
function GetOnOffTimer: Boolean;
procedure SetOnOffTimer(b: Boolean);
end;
IHostInterface =
interface(IMyInterfaceInternal)
procedure TimerEvent;
property OnOffTimer: Boolean
read GetOnOffTimer
write SetOnOffTimer;
end;
In meinem Host hab ich die Klasse dementsprechend erweitert:
Delphi-Quellcode:
type
THostInterface = class(TInterfacedObject, IHostInterface)
private
function get_Feld: Boolean;
procedure set_Feld(b: Boolean);
public
procedure TimerEvent;
property OnOffTimer: Boolean read get_Feld write set_Feld;
end;
Wobei ich dort ja eigentlich nicht die Property und den Getter und Setter brauch, weil ich dort ja die Property versorgen möchte um in meiner
BPL etwas auszuführen.
In meiner
BPL wird das Interface "nur" als Variable übergeben, so dass ich dort keine Klasse habe, um auf das Event zu reagieren.
Delphi-Quellcode:
uses
Vcl.ExtCtrls, System.Classes, Unit2;
type
TSPS =
class(TObject)
private
{ Private-Deklarationen }
Timer: TTimer;
procedure TimerEvent(Sender: TObject);
public
{ Public-Deklarationen }
Host: IHostInterface;
constructor Create;
destructor Destroy;
override;
end;
var
SPS: TSPS;
implementation
procedure InitBPL(
const AHost: IHostInterface);
begin
SPS.Host := AHost;
end;
Wie kann ich nun richtig eine Property anlegen um von meiner Hostanwendung in der
BPL, wie jetzt in diesem Testprojekt, den Timer ein- und ausschalten?