diff --git a/components/rx/docs/rxfpc.xml b/components/rx/docs/rxfpc.xml index 05c9976ec..69db2f643 100644 --- a/components/rx/docs/rxfpc.xml +++ b/components/rx/docs/rxfpc.xml @@ -163,6 +163,7 @@ + RxDBGrid-а.

@@ -566,6 +567,7 @@ + RxDBGrid-а.

@@ -1151,6 +1153,7 @@ TRxDBCalcEdit является наследником TDBCalcEdit и имеет + Count @@ -2428,6 +2431,7 @@ Description + const SearchDomain, FileName: @@ -2450,6 +2454,7 @@ Description + String; @@ -2472,6 +2477,7 @@ Description + out UserName, DomainName: @@ -2494,6 +2500,7 @@ Description + String); @@ -2535,6 +2542,7 @@ Description + const DirName: @@ -2551,6 +2559,7 @@ Description + string): @@ -2567,6 +2576,7 @@ Description + string;

Функция проверяет все разделители каталогов в указанном имени файла/каталога и, если нужно, меняет их на значение константыDirectorySeparator.

@@ -2596,6 +2606,7 @@ Description + string;

Функция GetUserName возвращает имя оператора, залогиненго в системе

@@ -2842,5 +2853,34 @@ Description + + + + + + + Компонента получает состояние служб на указанном компьютере + + + + + Массив содержит список служб, работающих в системе + + + Количество эелементов в массиве Items + + + Имя компьютера, на котором опрашиваются службы + + + Фильтр отбора служб по типу (служба/драйвер) + + + Фильтр отбора служб по статусу работает/остановлена + + Модуль содержит компоненту TRxSystemServices + Модуль RxSystemServices предназначен для получения информации о состоянии работающих в системе служб (windows) / демонов (unix-like) +Cодержит компоненту TRxSystemServices. + diff --git a/components/rx/registerrx.pas b/components/rx/registerrx.pas index 72a91567d..fb33161d6 100644 --- a/components/rx/registerrx.pas +++ b/components/rx/registerrx.pas @@ -42,11 +42,11 @@ procedure Register; implementation uses - PropEdits, dbdateedit, dbcurredit, rxlookup, folderlister, rxmemds, duallist, + PropEdits, dbdateedit, dbcurredit, rxlookup, folderlister, duallist, curredit, rxswitch, rxdice, rxdbcomb, rxtoolbar, rxxpman, PageMngr, RxAppIcon, - Dialogs, ComponentEditors, seldsfrm, DBPropEdits, DB, rxctrls, RxLogin, + Dialogs, ComponentEditors, DBPropEdits, DB, rxctrls, RxCustomChartPanel, AutoPanel, pickdate, rxconst, tooledit, rxclock, - rxceEditLookupFields, rxpopupunit, rxspin, RxTimeEdit, RxVersInfo, + rxceEditLookupFields, rxpopupunit, rxspin, RxTimeEdit, RxAboutDialog, RxViewsPanel; type @@ -102,11 +102,6 @@ begin RegisterComponents('RX DBAware',[TRXLookupEdit, TRxDBLookupCombo]); end; -procedure RegisterRxMemDS; -begin - RegisterComponents('RX DBAware',[TRxMemoryData]); -end; - procedure RegisterRxDBComb; begin RegisterComponents('RX DBAware',[TRxDBComboBox]); @@ -183,16 +178,6 @@ begin RegisterComponents('RX',[TRxTimeEdit]); end; -procedure RegisterRxLogin; -begin - RegisterComponents('RX',[TRxLoginDialog]); -end; - -procedure RegisterRxVersInfo; -begin - RegisterComponents('RX',[TRxVersionInfo]); -end; - procedure RegisterRxAboutDialog; begin RegisterComponents('RX',[TRxAboutDialog]); @@ -227,19 +212,14 @@ begin RegisterUnit('rxclock', @RegisterRxClock); RegisterUnit('rxspin', @RegisterRxSpin); RegisterUnit('RxTimeEdit', @RegisterRxTimeEdit); - RegisterUnit('RxLogin', @RegisterRxLogin); - RegisterUnit('RxVersInfo', @RegisterRxVersInfo); RegisterUnit('RxAboutDialog', @RegisterRxAboutDialog); RegisterUnit('RxViewsPanel', @RegisterRxViewsPanel); //RX DBAware RegisterUnit('dbdateedit', @RegisterUnitDBDateEdit); RegisterUnit('rxlookup', @RegisterRXLookup); - RegisterUnit('rxmemds', @RegisterRxMemDS); RegisterUnit('rxdbcomb', @RegisterRxDBComb); - //Component Editors - RegisterComponentEditor(TRxMemoryData, TMemDataSetEditor); // RegisterPropertyEditor(TypeInfo(string), TPopUpColumn, 'FieldName', TPopUpColumnFieldProperty); diff --git a/components/rx/registerrxdb.pas b/components/rx/registerrxdb.pas index 5e42dbfa0..48d9654d9 100644 --- a/components/rx/registerrxdb.pas +++ b/components/rx/registerrxdb.pas @@ -40,7 +40,8 @@ uses procedure Register; implementation -uses DB, DBPropEdits, rxdbgrid, RxDBSpinEdit, RxDBTimeEdit, RxDBCtrls, PropEdits; +uses DB, DBPropEdits, rxdbgrid, RxDBSpinEdit, RxDBTimeEdit, RxDBCtrls, rxmemds, + ComponentEditors, seldsfrm, PropEdits; type @@ -111,13 +112,23 @@ begin RegisterComponents('RX DBAware',[TRxDBGrid]); end; +procedure RegisterRxMemDS; +begin + RegisterComponents('RX DBAware',[TRxMemoryData]); +end; + procedure Register; begin RegisterUnit('RxDBTimeEdit', @RegisterRxDBTimeEdit); RegisterUnit('RxDBSpinEdit', @RegisterRxDBSpinEdit); RegisterUnit('RxDBCtrls', @RegisterRxDBCtrls); RegisterUnit('rxdbgrid', @RegisterRxDbGrid); -// + RegisterUnit('rxmemds', @RegisterRxMemDS); + + //Component Editors + RegisterComponentEditor(TRxMemoryData, TMemDataSetEditor); + + // RegisterPropertyEditor(TypeInfo(string), TRxColumn, 'FieldName', TRxDBGridFieldProperty); RegisterPropertyEditor(TypeInfo(string), TRxColumnFooter, 'FieldName', TRxDBGridFooterFieldProperty); end; diff --git a/components/rx/registerrxtools.pas b/components/rx/registerrxtools.pas new file mode 100644 index 000000000..2e3e68ec7 --- /dev/null +++ b/components/rx/registerrxtools.pas @@ -0,0 +1,40 @@ +unit RegisterRxTools; + +{$mode objfpc}{$H+} + +interface + +uses + Classes, SysUtils, LResources, LazarusPackageIntf; + +procedure Register; + +implementation +uses RxSystemServices, RxLogin, RxVersInfo; +const + sRxToolsPage = 'RX Tools'; + +procedure RegisterRxSystemServices; +begin + RegisterComponents(sRxToolsPage, [TRxSystemServices]); +end; + +procedure RegisterRxLogin; +begin + RegisterComponents(sRxToolsPage, [TRxLoginDialog]); +end; + +procedure RegisterRxVersInfo; +begin + RegisterComponents(sRxToolsPage, [TRxVersionInfo]); +end; + +procedure Register; +begin + RegisterUnit('RxLogin', @RegisterRxLogin); + RegisterUnit('RxVersInfo', @RegisterRxVersInfo); + RegisterUnit('RxSystemServices', @RegisterRxSystemServices); +end; + +end. + diff --git a/components/rx/rxnew.lpk b/components/rx/rxnew.lpk index 6269b22dd..a8068c096 100644 --- a/components/rx/rxnew.lpk +++ b/components/rx/rxnew.lpk @@ -27,7 +27,7 @@ translate to Lazarus by alexs in 2005 - 2009 - + @@ -240,7 +240,7 @@ translate to Lazarus by alexs in 2005 - 2009 - + @@ -250,6 +250,15 @@ translate to Lazarus by alexs in 2005 - 2009 + + + + + + + + + diff --git a/components/rx/rxnew.pas b/components/rx/rxnew.pas index 32b77995f..c68cf41c1 100644 --- a/components/rx/rxnew.pas +++ b/components/rx/rxnew.pas @@ -15,7 +15,8 @@ uses rxsortmemds, AutoPanel, pickdate, rxiconv, rxceEditLookupFields, rxclock, rxspin, RxDBSpinEdit, RegisterRxDB, RxTimeEdit, RxDBTimeEdit, RxDBCtrls, rxfilterby, rxconst, rxFileUtils, RxVersInfo, RxAboutDialog, - rxAboutFormUnit, dbcurredit, RxViewsPanel, LazarusPackageIntf; + rxAboutFormUnit, dbcurredit, RxViewsPanel, RxSystemServices, + RegisterRxTools, LazarusPackageIntf; implementation @@ -23,6 +24,7 @@ procedure Register; begin RegisterUnit('registerrx', @registerrx.Register); RegisterUnit('RegisterRxDB', @RegisterRxDB.Register); + RegisterUnit('RegisterRxTools', @RegisterRxTools.Register); end; initialization diff --git a/components/rx/rxsystemservices.pas b/components/rx/rxsystemservices.pas new file mode 100644 index 000000000..0d35f3532 --- /dev/null +++ b/components/rx/rxsystemservices.pas @@ -0,0 +1,112 @@ +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. diff --git a/components/rx/rxviewspanel.pas b/components/rx/rxviewspanel.pas index 824a1f384..93da669e4 100644 --- a/components/rx/rxviewspanel.pas +++ b/components/rx/rxviewspanel.pas @@ -38,7 +38,7 @@ interface uses Classes, SysUtils, LResources, Forms, Controls, Graphics, Dialogs, ExtCtrls, - Buttons, StdCtrls; + Buttons, StdCtrls, LCLType; type TRxViewsPanel = class; @@ -54,11 +54,15 @@ type FLabel:TLabel; function GetAction: TBasicAction; function GetCaption: string; + function GetEnabled: Boolean; + function GetHint: TTranslateString; function GetImageIndex: integer; function GetTag: Longint; function GetVisible: boolean; procedure SetAction(const AValue: TBasicAction); procedure SetCaption(const AValue: string); + procedure SetEnabled(const AValue: Boolean); + procedure SetHint(const AValue: TTranslateString); procedure SetImageIndex(const AValue: integer); procedure SetTag(const AValue: Longint); procedure SetVisible(const AValue: boolean); @@ -76,6 +80,8 @@ type property Caption:string read GetCaption Write SetCaption; property Tag: Longint read GetTag write SetTag default 0; property ImageIndex:integer read GetImageIndex write SetImageIndex; + property Hint:TTranslateString read GetHint write SetHint; + property Enabled: Boolean read GetEnabled write SetEnabled default True; end; @@ -224,6 +230,7 @@ end; procedure TRxViewsPanel.InternalSelectView(Item: TRxViewsPanelItem); begin + FItemIndex:=Item.Index; if Assigned(FOnSelectViewEvent) then FOnSelectViewEvent(Item.Index, Item); end; @@ -267,6 +274,16 @@ begin Result:=FLabel.Caption; end; +function TRxViewsPanelItem.GetEnabled: Boolean; +begin + Result:=FButton.Enabled; +end; + +function TRxViewsPanelItem.GetHint: TTranslateString; +begin + Result:=FButton.Hint; +end; + function TRxViewsPanelItem.GetImageIndex: integer; begin { if Assigned(FButton.Action) then @@ -295,6 +312,17 @@ begin FLabel.Caption:=AValue; end; +procedure TRxViewsPanelItem.SetEnabled(const AValue: Boolean); +begin + FButton.Enabled:=AValue; + FLabel.Enabled:=AValue; +end; + +procedure TRxViewsPanelItem.SetHint(const AValue: TTranslateString); +begin + FButton.Hint:=AValue; +end; + procedure TRxViewsPanelItem.SetImageIndex(const AValue: integer); begin if FImageIndex=AValue then exit;