lazarus-ccr/components/rx/rxsystemservices.pas
2010-08-25 17:45:41 +00:00

113 lines
3.4 KiB
ObjectPascal

unit RxSystemServices;
{$mode objfpc}
interface
uses
Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs;
type
TRxServiceType = (sstAll, sstService, sstDrivers);
TRxServiceStatus = (sssAll, sssActive, sssInactive);
TRxServiceState = (srsStoped, //SERVICE_STOPPED : S := 'Сервис не запущен'
srsStartPending, //SERVICE_START_PENDING : S := 'Сервис в процессе запуска';
srsStopPending, //SERVICE_STOP_PENDING : S := 'Сервис в процессе завершения';
srsRunning, //SERVICE_RUNNING : S := 'Сервис запущен';
srsContinuePending, //SERVICE_CONTINUE_PENDING : S := 'Сервис в процессе запуска после временной оснановки';
srsPausePending, //SERVICE_PAUSE_PENDING : S := 'Сервис в процессе временной оснановки';
srsPaused //SERVICE_PAUSED : S := 'Сервис временно оснановлен';
);
TRxServiceItem = record
Name:string;
Description:string;
Status:TRxServiceState;
end;
type
{ TRxSystemServices }
TRxSystemServices = class(TComponent)
private
FItemCount: integer;
FServerName: string;
FServiceStatus: TRxServiceStatus;
FServiceType: TRxServiceType;
function GetItems(Index: integer): TRxServiceItem;
procedure SetItemCount(const AValue: integer);
procedure SetItems(Index: integer; const AValue: TRxServiceItem);
procedure SetServerName(const AValue: string);
procedure SetServiceStatus(const AValue: TRxServiceStatus);
procedure SetServiceType(const AValue: TRxServiceType);
protected
procedure ClearItems;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
property Items[Index:integer]:TRxServiceItem read GetItems write SetItems;
property ItemCount:integer read FItemCount write SetItemCount;
published
property ServerName:string read FServerName write SetServerName;
property ServiceType:TRxServiceType read FServiceType write SetServiceType; //(sstAll, sstService, sstDrivers);
property ServiceStatus:TRxServiceStatus read FServiceStatus write SetServiceStatus; //(sssAll, sssActive, sssInactive);
end;
implementation
{ TRxSystemServices }
procedure TRxSystemServices.SetServerName(const AValue: string);
begin
if FServerName=AValue then exit;
FServerName:=AValue;
end;
function TRxSystemServices.GetItems(Index: integer): TRxServiceItem;
begin
end;
procedure TRxSystemServices.SetItemCount(const AValue: integer);
begin
if FItemCount=AValue then exit;
FItemCount:=AValue;
end;
procedure TRxSystemServices.SetItems(Index: integer;
const AValue: TRxServiceItem);
begin
end;
procedure TRxSystemServices.SetServiceStatus(const AValue: TRxServiceStatus);
begin
if FServiceStatus=AValue then exit;
FServiceStatus:=AValue;
end;
procedure TRxSystemServices.SetServiceType(const AValue: TRxServiceType);
begin
if FServiceType=AValue then exit;
FServiceType:=AValue;
end;
procedure TRxSystemServices.ClearItems;
begin
FItemCount:=0;
end;
constructor TRxSystemServices.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
end;
destructor TRxSystemServices.Destroy;
begin
ClearItems;
inherited Destroy;
end;
end.