home *** CD-ROM | disk | FTP | other *** search
/ Chip 2001 September / Chip_2001-09_cd1.bin / zkuste / delphi / kompon / d2345 / MSYSINFO.ZIP / Source / MSystemInfo.pas < prev   
Pascal/Delphi Source File  |  2001-06-25  |  8KB  |  296 lines

  1.  
  2. {*******************************************************}
  3. {                                                       }
  4. {       MiTeC System Information Component              }
  5. {           version 5.6 for Delphi 3,4,5                }
  6. {                                                       }
  7. {       Copyright ⌐ 1997,2001 Michal Mutl               }
  8. {                                                       }
  9. {*******************************************************}
  10.  
  11. {$INCLUDE MITEC_DEF.INC}
  12.  
  13. unit MSystemInfo;
  14.  
  15. interface
  16.  
  17. uses
  18.   MSI_CPU, MSI_Machine, MSI_Devices, MSI_Display, MSI_Network, MSI_Media,
  19.   MSI_Memory, MSI_Engines, MSI_APM, MSI_Disk, MSI_DirectX, MSI_OS, MSI_Processes,
  20.   MSI_Printers, MSI_Software, MSI_Startup,
  21.   SysUtils, Windows, Classes, DsgnIntf;
  22.  
  23. const
  24.   cCompName = 'MiTeC System Information Component';
  25.   cVersion = '5.6';
  26.   cCopyright = 'Copyright ⌐ 1997,2001 Michal Mutl';
  27.  
  28. type
  29.   TMSystemInfo = class(TComponent)
  30.   private
  31.     FCPU: TCPU;
  32.     FMemory: TMemory;
  33.     FOS :TOperatingSystem;
  34.     FDisk :TDisk;
  35.     FMachine: TMachine;
  36.     FNetwork: TNetwork;
  37.     FDisplay: TDisplay;
  38.     FEngines: TEngines;
  39.     FDevices: TDevices;
  40.     FAPM :TAPM;
  41.     FAbout: string;
  42.     FDirectX: TDirectX;
  43.     FMedia: TMedia;
  44.     FProcesses: TProcesses;
  45.     FPrinters: TPrinters;
  46.     FSoftware: TSoftware;
  47.     FStartup: TStartup;
  48.     procedure SetAbout(const Value: string);
  49.   public
  50.     constructor Create(AOwner :TComponent); override;
  51.     destructor Destroy; override;
  52.     procedure Refresh;
  53.     procedure Report(var sl :TStringList);
  54.     procedure ShowModalOverview;
  55.     procedure ShowModalOverviewWithAbout;
  56.     procedure ShowOverview;
  57.     procedure ShowOverviewWithAbout;
  58.   published
  59.     property About :string read FAbout write SetAbout;
  60.     property CPU :TCPU read FCPU write FCPU;
  61.     property Memory :TMemory read FMemory write FMemory;
  62.     property OS :TOperatingSystem read FOS write FOS;
  63.     property Disk :TDisk read FDisk write FDisk;
  64.     property Machine :TMachine read FMachine write FMachine;
  65.     property Network :TNetwork read FNetwork write FNetwork;
  66.     property Display :TDisplay read FDisplay write FDisplay;
  67.     property Media :TMedia read FMedia write FMedia;
  68.     property Devices :TDevices read FDevices write FDevices;
  69.     property Engines :TEngines read FEngines write FEngines;
  70.     property APM :TAPM read FAPM write FAPM;
  71.     property DirectX :TDirectX read FDirectX write FDirectX;
  72.     property Processes :TProcesses read FProcesses write FProcesses;
  73.     property Printers :TPrinters read FPrinters write FPrinters;
  74.     property Software :TSoftware read FSoftware write FSoftware;
  75.     property Startup: TStartup read FStartup write FStartup;
  76.   end;
  77.  
  78.   TMSI_PropertyEditor = class(TStringProperty)
  79.   public
  80.     function GetAttributes: TPropertyAttributes; override;
  81.     procedure Edit; override;
  82.   end;
  83.  
  84.   TMSI_ComponentEditor = class(TComponentEditor)
  85.   public
  86.     function GetVerbCount: Integer; override;
  87.     function GetVerb(Index: Integer): String; override;
  88.     procedure ExecuteVerb(Index: Integer); override;
  89.     procedure Edit; override;
  90.   end;
  91.  
  92. procedure Register;
  93.  
  94. implementation
  95.  
  96. uses MSI_Overview, MSI_CPUUsage, Forms;
  97.  
  98. procedure Register;
  99. begin
  100.   RegisterComponents('MiTeC',[TMCPUUsage]);
  101.   RegisterComponents('MiTeC',[TMSystemInfo]);
  102.   RegisterPropertyEditor(TypeInfo(string),TMSystemInfo,'About',TMSI_PropertyEditor);
  103.   RegisterComponentEditor(TMSystemInfo,TMSI_ComponentEditor);
  104. end;
  105.  
  106. { TMSystemInfo }
  107.  
  108. constructor TMSystemInfo.Create(AOwner: TComponent);
  109. begin
  110.   inherited;
  111.   FAbout:=cCompName+' '+cVersion+' - '+cCopyright;
  112.   FCPU:=TCPU.Create;
  113.   FMemory:=TMemory.Create;
  114.   FOS:=TOperatingSystem.Create;
  115.   FDisk:=TDisk.Create;
  116.   FMachine:=TMachine.Create;
  117.   FNetwork:=TNetwork.Create;
  118.   FDisplay:=TDisplay.Create;
  119.   FMedia:=TMedia.Create;
  120.   FDevices:=TDevices.Create;
  121.   FEngines:=TEngines.Create;
  122.   FAPM:=TAPM.Create;
  123.   FDirectX:=TDirectX.Create;
  124.   FProcesses:=TProcesses.Create;
  125.   FPrinters:=TPrinters.Create;
  126.   FSoftware:=TSoftware.Create;
  127.   FStartup:=TStartup.Create;
  128.   if csDesigning in ComponentState then
  129.     Refresh;
  130. end;
  131.  
  132. destructor TMSystemInfo.Destroy;
  133. begin
  134.   FCPU.Free;
  135.   FMemory.Free;
  136.   FOS.Free;
  137.   FDisk.Free;
  138.   FMachine.Free;
  139.   FNetwork.Free;
  140.   FDisplay.Free;
  141.   FMedia.Free;
  142.   FDevices.Free;
  143.   FEngines.Free;
  144.   FAPM.Free;
  145.   FDirectX.Free;
  146.   FProcesses.Free;
  147.   FPrinters.Free;
  148.   FSoftware.Free;
  149.   FStartup.Free;
  150.   inherited;
  151. end;
  152.  
  153. procedure TMSystemInfo.Refresh;
  154. begin
  155.   FDevices.GetInfo;
  156.   CPU.GetInfo;
  157.   Memory.GetInfo;
  158.   OS.GetInfo;
  159.   Disk.GetInfo;
  160.   Disk.Drive:=copy(OS.Folders.Values['Windows'],1,2);
  161.   FMachine.GetInfo;
  162.   FNetwork.GetInfo;
  163.   FDisplay.GetInfo;
  164.   FMedia.GetInfo;
  165.   FEngines.GetInfo;
  166.   FAPM.GetInfo;
  167.   FDirectX.GetInfo;
  168.   FProcesses.GetInfo;
  169.   FPrinters.GetInfo;
  170.   FSoftware.GetInfo;
  171.   FStartup.GetInfo;
  172. end;
  173.  
  174. procedure TMSystemInfo.Report(var sl: TStringList);
  175. begin
  176.   sl.add('; '+About);
  177.   sl.add('');
  178.   Machine.Report(sl);
  179.   OS.Report(sl);
  180.   CPU.Report(sl);
  181.   Memory.Report(sl);
  182.   Display.Report(sl);
  183.   APM.Report(sl);
  184.   Media.Report(sl);
  185.   Network.Report(sl);
  186.   Devices.Report(sl);
  187.   Engines.Report(sl);
  188.   DirectX.Report(sl);
  189.   Disk.Report(sl);
  190.   Processes.Report(sl);
  191.   Printers.Report(sl);
  192.   Software.Report(sl);
  193.   Startup.Report(sl);
  194. end;
  195.  
  196. procedure TMSystemInfo.SetAbout(const Value: string);
  197. begin
  198. end;
  199.  
  200. procedure TMSystemInfo.ShowModalOverview;
  201. begin
  202.   with TfrmMSI_Overview.Create(Application) do begin
  203.     SysInfo:=Self;
  204.     DisplayedPages:=pgAll;
  205.     ShowReportButton:=True;
  206.     cmRefresh(nil);
  207.     ShowModal;
  208.     Free;
  209.   end;
  210. end;
  211.  
  212. procedure TMSystemInfo.ShowModalOverviewWithAbout;
  213. begin
  214.   with TfrmMSI_Overview.Create(Application) do begin
  215.     SysInfo:=Self;
  216.     DisplayedPages:=pgAll+[pgAbout];
  217.     ShowReportButton:=True;
  218.     cmRefresh(nil);
  219.     ShowModal;
  220.     Free;
  221.   end;
  222. end;
  223.  
  224. procedure TMSystemInfo.ShowOverview;
  225. begin
  226.   try
  227.     frmMSI_Overview.Show;
  228.   except
  229.     frmMSI_Overview:=TfrmMSI_Overview.Create(Application.MainForm);
  230.     with frmMSI_Overview do begin
  231.       SysInfo:=Self;
  232.       DisplayedPages:=pgAll;
  233.       ShowReportButton:=True;
  234.       cmRefresh(nil);
  235.       Show;
  236.     end;
  237.   end;
  238. end;
  239.  
  240. procedure TMSystemInfo.ShowOverviewWithAbout;
  241. begin
  242.   try
  243.     frmMSI_Overview.Show;
  244.   except
  245.     frmMSI_Overview:=TfrmMSI_Overview.Create(Application.MainForm);
  246.     with frmMSI_Overview do begin
  247.       SysInfo:=Self;
  248.       DisplayedPages:=pgAll+[pgAbout];
  249.       ShowReportButton:=True;
  250.       cmRefresh(nil);
  251.       Show;
  252.     end;
  253.   end;
  254. end;
  255.  
  256. { TMSI_ComponentEditor }
  257.  
  258. procedure TMSI_ComponentEditor.Edit;
  259. begin
  260.   TMSystemInfo(Self.Component).ShowModalOverviewWithAbout;
  261. end;
  262.  
  263. procedure TMSI_ComponentEditor.ExecuteVerb(Index: Integer);
  264. begin
  265.   if Index=0 then
  266.     Edit;
  267. end;
  268.  
  269. function TMSI_ComponentEditor.GetVerb(Index: Integer): String;
  270. begin
  271.   if Index=0 then
  272.     Result:='System Overview...'
  273.   else
  274.     Result:=inherited GetVerb(Index-1);
  275. end;
  276.  
  277. function TMSI_ComponentEditor.GetVerbCount: Integer;
  278. begin
  279.   Result:=inherited GetVerbCount+1;
  280. end;
  281.  
  282. { TMSI_PropertyEditor }
  283.  
  284. procedure TMSI_PropertyEditor.Edit;
  285. begin
  286.   TMSystemInfo(Self.GetComponent(0)).ShowModalOverviewWithAbout;
  287. end;
  288.  
  289. function TMSI_PropertyEditor.GetAttributes: TPropertyAttributes;
  290. begin
  291.   Result:=[paDialog, paReadOnly];
  292. end;
  293.  
  294. end.
  295.  
  296.