type
{ TInstaller }
TInstaller = class(TComponent)
published
procedure Install(data:pointer;out msg:string);virtual;
function getInstance:TComponent;virtual;
end;
implementation
var
Instance : TInstaller = nil;
{ TInstaller }
procedure TInstaller.Install(data: pointer;out msg:string);
begin
msg:=Format('Your data is %p',[data]);
end;
function TInstaller.getInstance: TComponent;
begin
if Instance=nil then Instance:=TInstaller.Create(nil);
Result:=Instance;
end;
initialization
RegisterClass(TInstaller);
finalization
UnRegisterClass(TInstaller);
Instance.Free;
end.