15. EPMO Open Source Coordination Office Redaction File Detail Report

Produced by Araxis Merge on 3/31/2017 10:45:41 AM Central Daylight Time. See www.araxis.com for information about Merge. This report uses XHTML and CSS2, and is best viewed with a modern standards-compliant browser. For optimum results when printing this report, use landscape orientation and enable printing of background images and colours in your browser.

15.1 Files compared

# Location File Last Modified
1 CPRS v31A.zip\CPRS v31A\VITL5_P34_src.zip\Source\APP-VITALSMANAGER fGMV_Manager.pas Tue Dec 13 18:26:10 2016 UTC
2 CPRS v31A.zip\CPRS v31A\VITL5_P34_src.zip\Source\APP-VITALSMANAGER fGMV_Manager.pas Fri Mar 31 14:59:55 2017 UTC

15.2 Comparison summary

Description Between
Files 1 and 2
Text Blocks Lines
Unchanged 2 1986
Changed 1 2
Inserted 0 0
Removed 0 0

15.3 Comparison options

Whitespace
Character case Differences in character case are significant
Line endings Differences in line endings (CR and LF characters) are ignored
CR/LF characters Not shown in the comparison detail

15.4 Active regular expressions

No regular expressions were active.

15.5 Comparison detail

  1   unit fGMV_ Manager;
  2   {
  3   ========== ========== ========== ========== ========== ========== ========== ==========
  4   *
  5   *       Ap plication:   Vitals
  6   *       Re vision:      $Revisio n: 1 $  $M odtime: 3/ 16/09 10:0 6a $
  7          Developer:       PII                   
  8   *       Si te:          Hines OI FO
  9   *
  10   *       De scription:   Main for m for Vita ls Manager  applicati ons
  11   *
  12   *       No tes:
  13   *
  14   ========== ========== ========== ========== ========== ========== ========== ==========
  15   *       $  Archive: / Vitals GUI  2007/Vita ls-5-0-18/ APP-VITALS MANAGER/fG MV_Manager .pas $
  16   *
  17   *       $  History: f GMV_Manage r.pas $
  18    *
  19   *
  20   ========== ========== ========== ========== ========== ========== ========== ==========
  21   }
  22  
  23   interface
  24  
  25   uses
  26     Windows,
  27     Messages ,
  28     SysUtils ,
  29     Classes,
  30     Graphics ,
  31     Controls ,
  32     Forms,
  33     Dialogs,
  34     StdCtrls ,
  35     ComCtrls ,
  36     uGMV_Com mon,
  37     ImgList,
  38     Menus,
  39     ActnList ,
  40     ToolWin,
  41     ShellAPI ,
  42     mGMV_Edi tTemplate,
  43     ExtCtrls ,
  44     CheckLst ,
  45     Buttons,
  46     mGMV_Vit alHiLo,
  47     mGMV_Sys temParamet ers
  48     , uGMV_T emplate, u ROR_Contex tor, AppEv nts, Syste m.Actions, WinHelpVie wer
  49     ;
  50  
  51   type
  52     TfrmGMV_ Manager =  class(TFor m)
  53       tv: TT reeView;
  54       tbar:  TToolBar;
  55       tbtnNe w: TToolBu tton;
  56       tbtnDe lete: TToo lButton;
  57       action s: TAction List;
  58       sb: TS tatusBar;
  59       MainMe nu1: TMain Menu;
  60       mnFile : TMenuIte m;
  61       actFil eNewTempla te: TActio n;
  62       actFil eDeleteTem plate: TAc tion;
  63       mnTemp lateNew: T MenuItem;
  64       ImageL ist1: TIma geList;
  65       Splitt er1: TSpli tter;
  66       mnFile Exit: TMen uItem;
  67       actFil eExit: TAc tion;
  68       tbtnMa keDefault:  TToolButt on;
  69       ToolBu tton4: TTo olButton;
  70       actFil eMakeDefau lt: TActio n;
  71       tbtnSa ve: TToolB utton;
  72       actFil eSaveTempl ate: TActi on;
  73       mnTemp lateSave:  TMenuItem;
  74       mnTemp lateDelete : TMenuIte m;
  75       mnTemp lateSetAsD efault: TM enuItem;
  76       pgctrl : TPageCon trol;
  77       tbshtB lank: TTab Sheet;
  78       tbshtT emplate: T TabSheet;
  79       tbshtV itals: TTa bSheet;
  80       tbshtV italsHiLo:  TTabSheet ;
  81       fraLow Value: Tfr aVitalHiLo ;
  82       fraHig hValue: Tf raVitalHiL o;
  83       mnTemp lates: TMe nuItem;
  84       mnHelp : TMenuIte m;
  85       N2: TM enuItem;
  86       mnHelp About: TMe nuItem;
  87       mnHelp Index: TMe nuItem;
  88       pnlCat egories: T Panel;
  89       Panel3 : TPanel;
  90       pnlQua lifiers: T Panel;
  91       Panel6 : TPanel;
  92       Panel2 : TPanel;
  93       Panel5 : TPanel;
  94       clbxQu alifiers:  TCheckList Box;
  95       Panel8 : TPanel;
  96       Label1 : TLabel;
  97       Label2 : TLabel;
  98       tbtnNe wQualifier : TToolBut ton;
  99       tbtnEd itQualifie r: TToolBu tton;
  100       actQua lifierNew:  TAction;
  101       actQua lifierEdit : TAction;
  102       mnQual : TMenuIte m;
  103       mnQual New: TMenu Item;
  104       mnQual Edit: TMen uItem;
  105       ToolBu tton1: TTo olButton;
  106       tbtnHe lp: TToolB utton;
  107       actHel pIndex: TA ction;
  108       actHel pContents:  TAction;
  109       mnHelp Contents:  TMenuItem;
  110       tbtnPr int: TTool Button;
  111       actPri nt: TActio n;
  112       N1: TM enuItem;
  113       mnFile Print: TMe nuItem;
  114       Label3 : TLabel;
  115       ToolBu tton3: TTo olButton;
  116       Label4 : TLabel;
  117       ToolBu tton5: TTo olButton;
  118       tbtnSa veAbnormal : TToolBut ton;
  119       actAbn ormalSave:  TAction;
  120       mnAbno rmal: TMen uItem;
  121       mnAbno rmalSave:  TMenuItem;
  122       fraGMV _EditTempl ate1: Tfra GMV_EditTe mplate;
  123       tbshtS ystemParam eters: TTa bSheet;
  124       Label5 : TLabel;
  125       ToolBu tton2: TTo olButton;
  126       tbtnSa veParamete rs: TToolB utton;
  127       actSav eParameter s: TAction ;
  128       msSyst emParamete rs: TMenuI tem;
  129       mnSyst emParamete rsSave: TM enuItem;
  130       actWeb Link: TAct ion;
  131       Vitals Website1:  TMenuItem;
  132       fraSys temParamet ers: TfraS ystemParam eters;
  133       lvCate gories: TL istView;
  134       CCRCon textor: TC CRContexto r;
  135       acQuai lfiers: TA ction;
  136       Qualif iers1: TMe nuItem;
  137       Applic ationEvent s: TApplic ationEvent s;
  138       Panel1 : TPanel;
  139       acLog:  TAction;
  140       ShowLo g1: TMenuI tem;
  141       Timer1 : TTimer;
  142       proced ure FormCr eate(Sende r: TObject );
  143       proced ure tvColl apsed(Send er: TObjec t; Node: T TreeNode);
  144       proced ure tvExpa nded(Sende r: TObject ; Node: TT reeNode);
  145       proced ure tvChan ge(Sender:  TObject;  Node: TTre eNode);
  146       proced ure FormCl ose(Sender : TObject;  var Actio n: TCloseA ction);
  147       proced ure tvEdit ed(Sender:  TObject;  Node: TTre eNode; var  s: string );
  148       proced ure actFil eNewTempla teExecute( Sender: TO bject);
  149       proced ure actFil eDeleteTem plateExecu te(Sender:  TObject);
  150       proced ure actFil eExitExecu te(Sender:  TObject);
  151       proced ure actFil eMakeDefau ltExecute( Sender: TO bject);
  152       proced ure actFil eSaveTempl ateExecute (Sender: T Object);
  153       proced ure tbshtV italsHiLoR esize(Send er: TObjec t);
  154       proced ure mnHelp AboutClick (Sender: T Object);
  155       proced ure clbxQu alifiersCl ickCheck(S ender: TOb ject);
  156       proced ure sbResi ze(Sender:  TObject);
  157       proced ure actQua lifierNewE xecute(Sen der: TObje ct);
  158       proced ure actQua lifierEdit Execute(Se nder: TObj ect);
  159       proced ure clbxQu alifiersEx it(Sender:  TObject);
  160       proced ure clbxQu alifiersCl ick(Sender : TObject) ;
  161       proced ure actHel pIndexExec ute(Sender : TObject) ;
  162       proced ure actHel pContentsE xecute(Sen der: TObje ct);
  163       proced ure actPri ntExecute( Sender: TO bject);
  164       proced ure actAbn ormalSaveE xecute(Sen der: TObje ct);
  165       proced ure actSav eParameter sExecute(S ender: TOb ject);
  166       proced ure actWeb LinkExecut e(Sender:  TObject);
  167       proced ure lvCate goriesClic k(Sender:  TObject);
  168       proced ure lvCate goriesResi ze(Sender:  TObject);
  169       proced ure lvCate goriesChan ge(Sender:  TObject;  Item: TLis tItem;
  170         Chan ge: TItemC hange);
  171       proced ure CCRCon textorComm itted(Send er: TObjec t);
  172       proced ure acQuai lfiersExec ute(Sender : TObject) ;
  173       proced ure FormKe yDown(Send er: TObjec t; var Key : Word;
  174         Shif t: TShiftS tate);
  175       proced ure acLogE xecute(Sen der: TObje ct);
  176       proced ure Timer1 Timer(Send er: TObjec t);
  177       functi on Applica tionEvents Help(Comma nd: Word;  Data: Nati veInt;
  178         var  CallHelp:  Boolean):  Boolean;
  179     private
  180       { Priv ate declar ations }
  181       FAbnor malRoot: T TreeNode;
  182       FParam Root: TTre eNode;
  183       FVital sRoot: TTr eeNode;
  184       FTmplt Root: TTre eNode;
  185       FTmplt DomainRoot : TTreeNod e;
  186       FTmplt Institutio nRoot: TTr eeNode;
  187       FTmplt HopsitalLo cationRoot : TTreeNod e;
  188       FTmplt NewPersonR oot: TTree Node;
  189  
  190       { The  fEditCount  variable  (see also  the EditCo unt proper ty) stores  number of
  191         open  modal for ms that pr event the  patient co ntext from  changing.   A counte r
  192         inst ead of a b oolean var iable is r equired to  handle ne sted modal  forms.
  193         See  the StartP atientEdit  and EndPa tientEdit  procedures  for more  details. }
  194       fEditC ount:  Int eger;
  195  
  196       proced ure LoadTr eeView;
  197       proced ure Insert Template(T emplate: T GMV_Templa te; GoToTe mplate: Bo olean = Fa lse);
  198       functi on QualDis playList:S tring;//AA N 07/18/20 02
  199  
  200       proced ure CloseO therForms( Force: Boo lean);
  201     public
  202  
  203       { Publ ic declara tions }
  204       functi on Restore Connection : Boolean;
  205       proced ure Restor eSettings;
  206       proced ure Discon nect;
  207       proper ty EditCou nt: Intege r read fEd itCount;
  208     end;
  209  
  210   var
  211     frmGMV_M anager: Tf rmGMV_Mana ger;
  212  
  213   implementa tion
  214  
  215   uses
  216     fGMV_New Template,
  217     fGMV_Abo utDlg,
  218     fGMV_Add VCQ,
  219     fGMV_Add EditQualif ier,
  220     fGMV_Dev iceSelecto r,
  221     uGMV_Glo balVars, f GMV_Qualif iers, uGMV _User,
  222     uGMV_Con st, uGMV_V italTypes,  uGMV_File Entry
  223     , fROR_P Call
  224     , uGMV_E ngine, uRO R_RPCBroke r, uGMV_RP C_Names, f GMV_RPCLog ;
  225  
  226   {$R *.DFM}
  227   ////////// ////////// ////////// ////////// ////////// ////////// ////////// //////////
  228  
  229   procedure  TfrmGMV_Ma nager.CCRC ontextorCo mmitted(Se nder: TObj ect);
  230   begin
  231     if Assig ned(RPCBro ker) then
  232       { Perf orm the ch ecks requi red by the  single si gn-on/sign -off. }
  233       if RPC Broker.Was UserDefine d and RPCB roker.IsUs erCleared  then
  234         begi n
  235           {  Force clos ure of all  modal dia logs and m essage box es }
  236           Cl oseOtherFo rms(True);
  237           {  Terminate  the applic ation }
  238           Ap plication. Terminate;
  239         end;
  240   end;
  241  
  242   procedure  TfrmGMV_Ma nager.Clos eOtherForm s(Force: B oolean);
  243   var
  244     i: Integ er;
  245   begin
  246     { Close  the forms  only if th ere are mo dal dialog s and/or m essage box es that
  247       block  the patien t context  change or  if the "fo rced" acti on is requ ested. }
  248     if (Edit Count > 0)  or Force  then
  249       begin
  250         for  i:=1 to Sc reen.Custo mFormCount  do
  251           be gin
  252              { Close al l modal di alogs and  message bo xes that a re display ed
  253                over the  this wind ow (main a pplication  window).  }
  254              if Screen. CustomForm s[i-1] = S elf then
  255                Break;
  256              if fsModal  in Screen .CustomFor ms[i-1].Fo rmState th en
  257                Screen.C ustomForms [i-1].Clos e;
  258           en d;
  259       end;
  260   end;
  261  
  262   ////////// ////////// ////////// ////////// ////////// ////////// ////////// //////////
  263  
  264   procedure  TfrmGMV_Ma nager.Disc onnect;
  265   begin
  266     if Assig ned(RPCBro ker) then
  267       begin
  268         Hide ;
  269         { Di sconnect a nd destroy  the RPC B roker }
  270         RPCB roker.Conn ected := F alse;
  271         Free AndNil(RPC Broker);
  272       end;
  273   end;
  274  
  275   procedure  TfrmGMV_Ma nager.Form Create(Sen der: TObje ct);
  276   begin
  277     tbshtBla nk.TabVisi ble := Fal se;
  278     { Try to  start the  underlayi ng context or and con nect to th e vault. I f the
  279       Sentil lion conte xtor is no t installe d on the u sers works tation or  the vault
  280       is not  available  then the  TCCRContex tor will s witch to i dle mode a nd all
  281       reques ts will be  ignored.  }
  282     ccrConte xtor.Run;
  283   {$IFDEF SH OWLOG}
  284     Timer.En abled := T rue;
  285     ShowLog1 .Visible : = True;
  286   {$ELSE}
  287     ShowLog1 .Visible : = False;
  288     Timer1.E nabled :=  False;
  289   {$ENDIF}
  290   end;
  291  
  292   function T frmGMV_Man ager.Resto reConnecti on:Boolean ;
  293   begin
  294     if Assig ned(RPCBro ker) then  Disconnect ;
  295   {$IFNDEF V 5021} // v . 5.0.2.1:  GMV*5*7 h as no CCOW  support,  has CASMed
  296     if not C mdLineSwit ch(['/nocc ow','/NOCC OW']) then
  297       RPCBro ker := Sel ectBroker( RPC_CREATE CONTEXT, c crContexto r.Contexto r)
  298     else
  299   {$ENDIF}
  300       // v.5 .0.2.1 doe s not supp ort CCOW
  301       RPCBro ker := Sel ectBroker( RPC_CREATE CONTEXT, n il);
  302  
  303     Result : = RPCBroke r <> nil;
  304     if Resul t then //  vhaishandi a 2007-07- 18
  305       GMVUse r := TGMV_ User.Creat e;
  306   end;
  307  
  308   procedure  TfrmGMV_Ma nager.Rest oreSetting s;
  309   var
  310     i: integ er;
  311   begin
  312     Font :=  Screen.Men uFont;
  313  
  314     for i :=  0 to pgct rl.PageCou nt - 1 do
  315       TTabSh eet(pgctrl .Pages[i]) .TabVisibl e := False ;
  316  
  317     pgctrl.A ctivePage  := tbshtBl ank;
  318     tv.Enabl ed := Fals e;
  319     tv.Items .Clear;
  320     tv.ShowR oot := Fal se;
  321     with tv. Items.Add( nil, 'Load ing, pleas e wait...' ) do
  322       begin
  323         Imag eIndex :=  -1;
  324         sele ctedIndex  := -1;
  325         Sele cted := Fa lse;
  326       end;
  327     Show;
  328     Applicat ion.Proces sMessages;
  329     LoadTree View;
  330     tv.Enabl ed := True ;
  331     for i :=  0 to GMVQ uals.Entri es.Count -  1 do
  332       //AAN  07/18/2002 : We shoul d show Qua lifier nam es as they  are kept  in DB
  333       clbxQu alifiers.I tems.AddOb ject({Titl eCase}(GMV Quals.Entr ies[i]), G MVQuals.En tries.Obje cts[i]);
  334     clbxQual ifiers.Ena bled := Fa lse;
  335     Caption  := 'Vitals  Managemen t. User: ' + GMVUser. Name + '   (' + GMVUs er.Title + ') Divisio n: '+ GMVU ser.Divisi on;
  336     lvCatego riesResize (nil);
  337     sb.Simpl ePanel :=  true;
  338  
  339   //{$IFDEF  GMRV*5*8}   //HDR
  340     actQuali fierNew.En abled := F alse;
  341     actQuali fierEdit.E nabled :=  False;
  342   //{$ENDIF}
  343   end;
  344  
  345   procedure  TfrmGMV_Ma nager.Load TreeView;
  346   var
  347     tmpList:  TStringLi st;
  348     i: integ er;
  349   begin
  350     tv.Enabl ed := Fals e;
  351     tv.Items .BeginUpda te;
  352     tv.ShowR oot := Tru e;
  353     with tv. items do
  354       begin
  355         Clea r;
  356         FPar amRoot :=  Add(nil, ' System Par ameters');
  357         FPar amRoot.Ima geIndex :=  GMVIMAGES [iiFolderC losed];
  358         FPar amRoot.Sel ectedIndex  := GMVIMA GES[iiFold erOpen];
  359  
  360         FAbn ormalRoot  := Add(nil , 'Abnorma l Values') ;
  361         FAbn ormalRoot. ImageIndex  := GMVIMA GES[iiFold erClosed];
  362         FAbn ormalRoot. SelectedIn dex := GMV IMAGES[iiF olderClose d];
  363  
  364         FVit alsRoot :=  Add(nil,  'Vitals');
  365         FVit alsRoot.Im ageIndex : = GMVIMAGE S[iiFolder Closed];
  366         FVit alsRoot.Se lectedInde x := GMVIM AGES[iiFol derClosed] ;
  367  
  368         FTmp ltRoot :=  Add(nil, ' Templates' );
  369         FTmp ltRoot.Ima geIndex :=  GMVIMAGES [iiFolderC losed];
  370         FTmp ltRoot.Sel ectedIndex  := GMVIMA GES[iiFold erClosed];
  371  
  372         FTmp ltDomainRo ot := AddC hild(FTmpl tRoot, GMV ENTITYNAME S[teDomain ]);
  373         FTmp ltDomainRo ot.ImageIn dex := GMV IMAGES[iiF olderClose d];
  374         FTmp ltDomainRo ot.Selecte dIndex :=  GMVIMAGES[ iiFolderCl osed];
  375  
  376         FTmp ltInstitut ionRoot :=  AddChild( FTmpltRoot , GMVENTIT YNAMES[teI nstitution ]);
  377         FTmp ltInstitut ionRoot.Im ageIndex : = GMVIMAGE S[iiFolder Closed];
  378         FTmp ltInstitut ionRoot.Se lectedInde x := GMVIM AGES[iiFol derOpen];
  379  
  380         FTmp ltHopsital LocationRo ot := AddC hild(FTmpl tRoot, GMV ENTITYNAME S[teHospit alLocation ]);
  381         FTmp ltHopsital LocationRo ot.ImageIn dex := GMV IMAGES[iiF olderClose d];
  382         FTmp ltHopsital LocationRo ot.Selecte dIndex :=  GMVIMAGES[ iiFolderOp en];
  383  
  384         FTmp ltNewPerso nRoot := A ddChild(FT mpltRoot,  GMVENTITYN AMES[teNew Person]);
  385         FTmp ltNewPerso nRoot.Imag eIndex :=  GMVIMAGES[ iiFolderCl osed];
  386         FTmp ltNewPerso nRoot.Sele ctedIndex  := GMVIMAG ES[iiFolde rOpen];
  387       end;
  388  
  389     with tv. Items.AddC hildObject (FAbnormal Root, 'Blo od Pressur e - Systol ic', TGMV_ VitalHiLoD efinition. Create(hlt Systolic,  0, 300, 10 )) do
  390       begin
  391         Imag eIndex :=  GMVIMAGES[ iiAbnormal ];
  392         Sele ctedIndex  := GMVIMAG ES[iiAbnor mal];
  393       end;
  394  
  395     with tv. Items.AddC hildObject (FAbnormal Root, 'Blo od Pressur e - Diasto lic', TGMV _VitalHiLo Definition .Create(hl tDiastolic , 0, 300,  10)) do
  396       begin
  397         Imag eIndex :=  GMVIMAGES[ iiAbnormal ];
  398         Sele ctedIndex  := GMVIMAG ES[iiAbnor mal];
  399       end;
  400  
  401     with tv. Items.AddC hildObject (FAbnormal Root, 'Tem perature',  TGMV_Vita lHiLoDefin ition.Crea te(hltTemp erature, 4 5, 120, 5) ) do
  402       begin
  403         Imag eIndex :=  GMVIMAGES[ iiAbnormal ];
  404         Sele ctedIndex  := GMVIMAG ES[iiAbnor mal];
  405       end;
  406  
  407     with tv. Items.AddC hildObject (FAbnormal Root, 'Res piration',  TGMV_Vita lHiLoDefin ition.Crea te(hltResp iration, 0 , 100, 5))  do
  408       begin
  409         Imag eIndex :=  GMVIMAGES[ iiAbnormal ];
  410         Sele ctedIndex  := GMVIMAG ES[iiAbnor mal];
  411       end;
  412  
  413     with tv. Items.AddC hildObject (FAbnormal Root, 'Pul se', TGMV_ VitalHiLoD efinition. Create(hlt Pulse, 0,  300, 10))  do
  414       begin
  415         Imag eIndex :=  GMVIMAGES[ iiAbnormal ];
  416         Sele ctedIndex  := GMVIMAG ES[iiAbnor mal];
  417       end;
  418  
  419     with tv. Items.AddC hildObject (FAbnormal Root, 'CVP ', TGMV_Vi talHiLoDef inition.Cr eate(hltCV P, -13, 13 6, 10)) do
  420       begin
  421         Imag eIndex :=  GMVIMAGES[ iiAbnormal ];
  422         Sele ctedIndex  := GMVIMAG ES[iiAbnor mal];
  423       end;
  424  
  425   // AAN 200 3/06/03 --  label is  changed
  426   //  with t v.Items.Ad dChildObje ct(FAbnorm alRoot, 'O 2 Sat', TG MV_VitalHi LoDefiniti on.Create( hltO2Sat,  0, 100, 10 )) do
  427     with tv. Items.AddC hildObject (FAbnormal Root, 'Pul se Oximetr y', TGMV_V italHiLoDe finition.C reate(hltO 2Sat, 0, 1 00, 10)) d o
  428       begin
  429         Imag eIndex :=  GMVIMAGES[ iiAbnormal ];
  430         Sele ctedIndex  := GMVIMAG ES[iiAbnor mal];
  431       end;
  432  
  433     for i :=  0 to GMVT ypes.Entri es.Count -  1 do
  434       with t v.Items.Ad dChild(FVi talsRoot,  {TitleCase }(GMVTypes .Entries[i ])) do
  435         begi n
  436           Im ageIndex : = GMVIMAGE S[iiVital] ;
  437           Se lectedInde x := GMVIM AGES[iiVit al];
  438           Da ta := GMVT ypes.Entri es.Objects [i];
  439         end;
  440  
  441     try
  442       tmpLis t := getTe mplateList ; // vhais handria 05 -01-13
  443       for i  := 1 to tm pList.Coun t - 1 do
  444         Inse rtTemplate (TGMV_Temp late.Creat eFromXPAR( tmpList[i] ));
  445     finally
  446       FreeAn dNil(tmpLi st);
  447     end;
  448  
  449     tv.Alpha Sort;
  450     tv.Enabl ed := True ;
  451     tv.Items .EndUpdate ;
  452     Refresh;
  453   end;
  454  
  455   procedure  TfrmGMV_Ma nager.Inse rtTemplate (Template:  TGMV_Temp late; GoTo Template:  Boolean =  False);
  456   var
  457     TypeRoot : TTreeNod e;
  458     oRoot: T TreeNode;
  459     NewNode:  TTreeNode ;
  460  
  461     function  OwnerRoot : TTreeNod e;
  462     begin
  463       Result  := nil;
  464       oRoot  := TypeRoo t.getFirst Child;
  465       while  oRoot <> n il do
  466         begi n
  467           if  TGMV_Temp lateOwner( oRoot.Data ).Entity =  Template. Entity the n
  468              begin
  469                Result : = oRoot;
  470                exit;
  471              end
  472           el se
  473              oRoot := T ypeRoot.Ge tNextChild (oRoot);
  474         end;
  475  
  476       if oRo ot = nil t hen
  477         begi n
  478           if  Template. EntityType  = teNewPe rson then
  479              Result :=  tv.Items.A ddChildObj ect(TypeRo ot, {Title Case}(Temp late.Owner .OwnerName ), Templat e.Owner)
  480           el se
  481              Result :=  tv.Items.A ddChildObj ect(TypeRo ot, Templa te.Owner.O wnerName,  Template.O wner);
  482           Re sult.Image Index := G MVIMAGES[i iFolderClo sed];
  483           Re sult.Selec tedIndex : = GMVImage s[iiFolder Closed];
  484         end;
  485     end;
  486  
  487   begin
  488     case Tem plate.Enti tyType of
  489       teUnkn own: Exit;  // TypeRo ot := nil;  //AAN 08/ 02/2002
  490       teDoma in: TypeRo ot := FTmp ltDomainRo ot;
  491       teInst itution: T ypeRoot :=  FTmpltIns titutionRo ot;
  492       teHosp italLocati on: TypeRo ot := FTmp ltHopsital LocationRo ot;
  493       teNewP erson: Typ eRoot := F TmpltNewPe rsonRoot;
  494     end;
  495  
  496     try   // AAN 08/02/ 2002
  497       NewNod e := tv.It ems.AddChi ldObject(O wnerRoot,  Template.T emplateNam e, Templat e);
  498       if GMV DefaultTem plates.IsD efault(Tem plate.Enti ty, Templa te.Templat eName) the n
  499         begi n
  500           Ne wNode.Imag eIndex :=  GMVIMAGES[ iiDefaultT emplate];
  501           Ne wNode.Sele ctedIndex  := GMVIMAG ES[iiDefau ltTemplate ];
  502         end
  503       else
  504         begi n
  505           Ne wNode.Imag eIndex :=  GMVIMAGES[ iiTemplate ];
  506           Ne wNode.Sele ctedIndex  := GMVIMAG ES[iiTempl ate];
  507         end;
  508       if GoT oTemplate  then
  509         begi n
  510           Ne wNode.Sele cted := Tr ue;
  511   //         tv.SetFocu s; vhaisha ndria 2009 0304
  512         end;
  513     except
  514       on E:  Exception  do
  515         Mess ageDlg(E.M essage,mtW arning,[mb OK],0);
  516     end;
  517  
  518   end;
  519  
  520   procedure  TfrmGMV_Ma nager.tvCo llapsed(Se nder: TObj ect; Node:  TTreeNode );
  521   begin
  522     Node.Ima geIndex :=  GMVIMAGES [iiFolderC losed];
  523     Node.Sel ectedIndex  := GMVIMA GES[iiFold erClosed];
  524   end;
  525  
  526   procedure  TfrmGMV_Ma nager.tvEx panded(Sen der: TObje ct; Node:  TTreeNode) ;
  527   begin
  528     Node.Ima geIndex :=  GMVIMAGES [iiFolderO pen];
  529     Node.Sel ectedIndex  := GMVIMA GES[iiFold erOpen];
  530   end;
  531  
  532   procedure  TfrmGMV_Ma nager.tvCh ange(Sende r: TObject ; Node: TT reeNode);
  533   var
  534     SL: TStr ingList;
  535     li:TList Item;
  536     i, j: in teger;
  537   begin
  538     pgctrl.A ctivePage  := tbshtBl ank;
  539     actFileS aveTemplat e.Enabled  := False;
  540     actFileD eleteTempl ate.Enable d := False ;
  541     actFileM akeDefault .Enabled : = False;
  542     actAbnor malSave.En abled := F alse;
  543     actSaveP arameters. Enabled :=  False;
  544  
  545     fraGMV_E ditTemplat e1.acUp.En abled := F alse;
  546     fraGMV_E ditTemplat e1.acDown. Enabled :=  False;
  547  
  548     if Node. Data <> ni l then
  549       begin
  550         if ( TObject(No de.Data) i s TGMV_Tem plate) the n
  551           be gin
  552              fraGMV_Edi tTemplate1 .acUp.Enab led := Tru e;
  553              fraGMV_Edi tTemplate1 .acDown.En abled := T rue;
  554              pgctrl.Act ivePage :=  tbshtTemp late;
  555              fraGMV_Edi tTemplate1 .EditTempl ate := TGM V_Template (Node.Data );
  556           en d
  557         else  if (TObje ct(Node.Da ta) is TGM V_FileEntr y) then
  558           be gin
  559              for i := 0  to clbxQu alifiers.I tems.Count  - 1 do
  560                clbxQual ifiers.Che cked[i] :=  False;
  561              clbxQualif iers.ItemI ndex := -1 ;
  562              clbxQualif iers.Enabl ed := Fals e;
  563  
  564              lvCategori es.Items.C lear;//AAN  07/15/200 2
  565  
  566              SL := getC ategoryQua lifiers(TG MV_FileEnt ry(Node.Da ta).IEN);
  567              for i := 1  to SL.Cou nt - 1 do
  568                begin
  569                  j := G MVCats.Ind exOfIEN(Pi ece(SL[i],  '^', 1));
  570                  if j >  - 1 then
  571                    begi n
  572                      li  := lvCate gories.Ite ms.Add;
  573                      li .Caption : = {TitleCa se}(GMVCat s.Entries[ j]);
  574                      li .SubItems. Add(TGMV_F ileEntry(G MVCats.Ent ries.Objec ts[j]).IEN );
  575                      li .SubItems. Add('[' +  {TitleCase }(Piece(SL [i], '^',  3)) + ']') ;
  576                    end;
  577                end;
  578              SL.Free;
  579  
  580              pgctrl.Act ivePage :=  tbshtVita ls;
  581           en d
  582         else  if (TObje ct(Node.Da ta) is TGM V_VitalHiL oDefinitio n) then
  583           wi th TGMV_Vi talHiLoDef inition(No de.Data) d o
  584              begin
  585                case Vit alType of
  586                  hltO2S at:
  587                    fraL owValue.Se tUpFrame(V italType,  hlLow, Min imum, Maxi mum, Incre ment)
  588                else
  589                  begin
  590                    fraL owValue.Se tUpFrame(V italType,  hlLow, Min imum, Maxi mum, Incre ment);
  591                    fraH ighValue.S etUpFrame( VitalType,  hlHigh, M inimum, Ma ximum, Inc rement);
  592                  end;
  593                end;
  594                fraHighV alue.Visib le := (Vit alType <>  hltO2Sat);
  595                pgctrl.A ctivePage  := tbshtVi talsHiLo;
  596              end
  597         else
  598           pg ctrl.Activ ePage := t bshtBlank;
  599  
  600         actF ileSaveTem plate.Enab led := (TO bject(Node .Data) is  TGMV_Templ ate);
  601         actF ileDeleteT emplate.En abled := ( TObject(No de.Data) i s TGMV_Tem plate);
  602         actF ileMakeDef ault.Enabl ed := (TOb ject(Node. Data) is T GMV_Templa te);
  603         actA bnormalSav e.Enabled  := (TObjec t(Node.Dat a) is TGMV _VitalHiLo Definition );
  604       end
  605     else if  Node = FPa ramRoot th en
  606       begin
  607         fraS ystemParam eters.Load Parameters ;
  608         actS aveParamet ers.Enable d := True;
  609         pgct rl.ActiveP age := tbs htSystemPa rameters;
  610       end;
  611   end;
  612  
  613   procedure  TfrmGMV_Ma nager.Form Close(Send er: TObjec t;
  614     var Acti on: TClose Action);
  615   begin
  616     Action : = caFree;
  617   end;
  618  
  619   procedure  TfrmGMV_Ma nager.tvEd ited(Sende r: TObject ; Node: TT reeNode; v ar s: stri ng);
  620   var
  621     SS:Strin g;
  622   begin
  623     if TObje ct(Node.Da ta) is TGM V_Template  then
  624       with T GMV_Templa te(Node.Da ta) do
  625         begi n
  626           SS  := rename Template(E ntity,Node .Text,s);
  627           if  Piece(ss,  '^', 1) =  '-1' then
  628              begin
  629                s := Nod e.Text;
  630                MessageD lg('Error  Renaming P arameter:  ' + Piece( ss, '^', 2 , 3), mtEr ror, [mbok ], 0);
  631              end;
  632         end
  633     else
  634       Messag eDlg('Sorr y, You may  not renam e this ite m', mtInfo rmation, [ mbok], 0);
  635   end;
  636  
  637   procedure  TfrmGMV_Ma nager.actF ileNewTemp lateExecut e(Sender:  TObject);
  638   var
  639     NewTempl ate: TGMV_ Template;
  640   begin
  641     NewTempl ate := Cre ateNewTemp late;
  642     if NewTe mplate <>  nil then
  643       begin
  644         Inse rtTemplate (NewTempla te, True);
  645         tv.A lphaSort;
  646       end;
  647   end;
  648  
  649   procedure  TfrmGMV_Ma nager.actF ileDeleteT emplateExe cute(Sende r: TObject );
  650   var
  651     s:String ;
  652   begin
  653     if tv.Se lected <>  nil then
  654       if tv. Selected.D ata <> nil  then
  655         if T Object(tv. Selected.D ata) is TG MV_Templat e then
  656           if  MessageDl g('Are you  sure you  want to de lete templ ate ''' +  tv.Selecte d.Text + ' ''?', mtCo nfirmation , [mbYes,  mbNo, mbCa ncel], 0)  = mrYes th en
  657              with TGMV_ Template(t v.Selected .Data) do
  658                begin
  659                  s := d eleteTempl ate(Entity ,TemplateN ame);
  660                  if Pie ce(s, '^',  1) <> '-1 ' then
  661                    begi n
  662                      TG MV_Templat e(tv.Selec ted.Data). Free;
  663                      tv .Items.Del ete(tv.Sel ected);
  664                    end
  665                  else
  666                    Mess ageDlg('Un able to de lete templ ate ' + Pi ece(s, '^' , 2, 3), m tError, [m bOk], 0);
  667                end;
  668   end;
  669  
  670   procedure  TfrmGMV_Ma nager.actF ileExitExe cute(Sende r: TObject );
  671   begin
  672     Close;
  673   end;
  674  
  675   procedure  TfrmGMV_Ma nager.actF ileMakeDef aultExecut e(Sender:  TObject);
  676   var
  677     ParentNo de: TTreeN ode;
  678     SiblingN ode: TTree Node;
  679   begin
  680     ParentNo de := tv.S elected.Pa rent;
  681     with TGM V_Template (tv.Select ed.Data) d o
  682       if Set AsDefault  then
  683         begi n
  684           Si blingNode  := ParentN ode.getFir stChild;
  685           wh ile Siblin gNode <> n il do
  686              begin
  687                SiblingN ode.ImageI ndex := GM VIMAGES[ii Template];
  688                SiblingN ode.Select edIndex :=  GMVIMAGES [iiTemplat e];
  689                SiblingN ode := Par entNode.Ge tNextChild (SiblingNo de);
  690              end;
  691           tv .Selected. ImageIndex  := GMVIMA GES[iiDefa ultTemplat e];
  692           tv .Selected. SelectedIn dex := GMV IMAGES[iiD efaultTemp late];
  693         end
  694       else
  695         Mess ageDlg('Er ror settin g default  Template',  mtError,  [mbok], 0) ;
  696   end;
  697  
  698   procedure  TfrmGMV_Ma nager.actF ileSaveTem plateExecu te(Sender:  TObject);
  699   begin
  700     fraGMV_E ditTemplat e1.SaveTem plate;
  701     tv.Selec ted.Text : = TGMV_Tem plate(tv.S elected.Da ta).Templa teName;
  702   end;
  703  
  704   procedure  TfrmGMV_Ma nager.actP rintExecut e(Sender:  TObject);
  705   var
  706     x: strin g;
  707     y: Doubl e;
  708   begin
  709     if GetKe rnelDevice (x, y) the n
  710       begin
  711         x :=  printQual ifierTable (X,FloatTo Str(y));
  712         if P iece(x, '^ ', 1) = '- 1' then
  713           Me ssageDlg(P iece(x, '^ ', 2), mtE rror, [mbO k], 0)
  714         else
  715           Me ssageDlg(P iece(x, '^ ', 2), mtI nformation , [mbOk],  0);
  716       end
  717     else
  718       Messag eDlg('Repo rt cancell ed by user .', mtInfo rmation, [ mbOk], 0);
  719   end;
  720  
  721   procedure  TfrmGMV_Ma nager.clbx Qualifiers Exit(Sende r: TObject );
  722   begin
  723     actQuali fierEdit.E nabled :=  False;
  724   end;
  725  
  726   procedure  TfrmGMV_Ma nager.actQ ualifierNe wExecute(S ender: TOb ject);
  727   var
  728     NewQual:  TGMV_File Entry;
  729   begin
  730     // vhais handria 05 0722
  731     acQuailf iersExecut e(nil);
  732     Exit;
  733  
  734     NewQual  := NewQual ifier;
  735     if NewQu al <> nil  then
  736       clbxQu alifiers.I tems.AddOb ject({Titl eCase}(New Qual.Capti on), NewQu al);
  737   end;
  738  
  739   procedure  TfrmGMV_Ma nager.actQ ualifierEd itExecute( Sender: TO bject);
  740   begin
  741     // vhais handria 05 0722
  742     acQuailf iersExecut e(nil);
  743     Exit;
  744  
  745     if Messa geDlg(
  746       'This  option is  only to be  used to c orrect mis s-spelling s' + #13 +
  747       'and/o r editing  of abbrevi ations.  C hanging th e name' +  #13 +
  748       'of a  qualifier  will chang e that qua lifier on  every Vita ls' + #13  +
  749       'Recor d on the s ystem, thu s changing  the perma nent' + #1 3 +
  750       'recor d with no  audits to  revert the  data back  to it''s'  + #13 +
  751       'origi nal form.'  + #13 + # 13 +
  752       'Do yo u want to  proceed ch anges?',
  753       mtWarn ing, [mbYe s,  mbCanc el], 0) =  mrYes then
  754       begin
  755         Edit Qualifier(
  756           TG MV_FileEnt ry(clbxQua lifiers.It ems.Object s[clbxQual ifiers.Ite mIndex]));
  757         clbx Qualifiers .Items[clb xQualifier s.ItemInde x] :=
  758           TG MV_FileEnt ry(clbxQua lifiers.It ems.Object s[clbxQual ifiers.Ite mIndex]).C aption;//A AN 07/18/2 002
  759         lvCa tegories.I temFocused .SubItems[ 1] := '['  + QualDisp layList +  ']';//AAN  07/18/2002
  760       end;
  761   end;
  762  
  763   procedure  TfrmGMV_Ma nager.actH elpIndexEx ecute(Send er: TObjec t);
  764   begin
  765     Applicat ion.HelpCo mmand(HELP _INDEX, 0) ;
  766   end;
  767  
  768   procedure  TfrmGMV_Ma nager.actH elpContent sExecute(S ender: TOb ject);
  769   begin
  770     Applicat ion.HelpCo mmand(HELP _CONTEXT,  1);
  771   end;
  772  
  773   procedure  TfrmGMV_Ma nager.tbsh tVitalsHiL oResize(Se nder: TObj ect);
  774   begin
  775     fraLowVa lue.Width  := (tbshtV italsHiLo. Width - (t bshtVitals HiLo.Borde rWidth * 4 )) div 2;
  776     fraHighV alue.Width  := (tbsht VitalsHiLo .Width - ( tbshtVital sHiLo.Bord erWidth *  4)) div 2;
  777   end;
  778  
  779   procedure  TfrmGMV_Ma nager.mnHe lpAboutCli ck(Sender:  TObject);
  780   begin
  781     GMVAbout Dlg.Execut e;
  782   end;
  783  
  784   //AAN 07/1 8/2002 --- ---------- ---------- ---------- ---------- ---------- ---- Begin
  785   function T frmGMV_Man ager.QualD isplayList :String;
  786   var
  787     i: Integ er;
  788     s: Strin g;
  789   begin
  790     result : = '';
  791     s := '';
  792     for i :=  0 to clbx Qualifiers .Items.Cou nt - 1 do
  793       if clb xQualifier s.Checked[ i] then
  794         begi n
  795           if  s <> '' t hen
  796              s := s + ' , ';
  797           s  := s + clb xQualifier s.Items[i] ;
  798         end;
  799     result : = s;
  800   end;
  801   //AAN 07/1 8/2002 --- ---------- ---------- ---------- ---------- ---------- ------ End
  802  
  803   procedure  TfrmGMV_Ma nager.clbx Qualifiers ClickCheck (Sender: T Object);
  804   var
  805     i: integ er;
  806     VitalIEN : string;
  807     Category IEN: strin g;
  808     Qualifie rIEN: stri ng;
  809   begin
  810   {$IFDEF DI SABLEQUALI FIERS}
  811      Exit;
  812   {$ENDIF}
  813  
  814  
  815   {$IFDEF GM V*5*8}
  816     actQuali fierEdit.E nabled :=  False;
  817   {$ELSE}
  818     actQuali fierEdit.E nabled :=  True;
  819   {$ENDIF}
  820  
  821     VitalIEN  := TGMV_F ileEntry(t v.Selected .Data).IEN ;
  822  
  823     Category IEN := lvC ategories. ItemFocuse d.SubItems [0];
  824     Qualifie rIEN := TG MV_FileEnt ry(clbxQua lifiers.It ems.Object s[clbxQual ifiers.Ite mIndex]).I EN;
  825  
  826     i := clb xQualifier s.ItemInde x;
  827     if clbxQ ualifiers. Checked[i]  then
  828        addQu alifier(Vi talIEN,Cat egoryIEN,Q ualifierIE N)
  829     else
  830        delQu alifier(Vi talIEN,Cat egoryIEN,Q ualifierIE N);
  831     lvCatego ries.ItemF ocused.Sub Items[1] : = '[' + Qu alDisplayL ist + ']';
  832   end;
  833  
  834   procedure  TfrmGMV_Ma nager.sbRe size(Sende r: TObject );
  835   begin
  836     sb.Panel s[0].Width  := Trunc( sb.Width *  0.5);
  837     sb.Panel s[1].Width  := sb.Wid th - sb.Pa nels[0].Wi dth;
  838   end;
  839  
  840   procedure  TfrmGMV_Ma nager.clbx Qualifiers Click(Send er: TObjec t);
  841   begin
  842     //vhaish andria 070 222
  843     // Disab ling the q ualifier u pdate
  844   {$IFDEF DI SABLEQUALI FIERS}
  845     if Sende r = clbxQu alifiers t hen
  846       begin
  847         Mess ageDLG(sMs gDisabledQ ualifiers, mtWarning, [mbOK],0);
  848         Exit ;
  849       end;
  850   {$ENDIF}
  851     actQuali fierEdit.E nabled :=  (clbxQuali fiers.Item Index <> - 1);
  852   end;
  853  
  854   procedure  TfrmGMV_Ma nager.actA bnormalSav eExecute(S ender: TOb ject);
  855   begin
  856     if fraHi ghValue.Vi sible and  not fraHig hValue.Che ckLimits t hen Exit;
  857     if fraLo wValue.Vis ible and n ot fraLowV alue.Check Limits the n Exit;
  858  
  859     if fraHi ghValue.Vi sible then
  860       if fra LowValue.H iLoValue <  fraHighVa lue.HiLoVa lue then
  861         begi n
  862           Me ssageDlg(
  863              'Your Low  Value is h igher than  the High  Value',
  864              mtError, [ mbok], 0);
  865           Ex it;
  866         end;
  867  
  868     fraLowVa lue.SaveVa lue;
  869     if fraHi ghValue.Vi sible then
  870       fraHig hValue.Sav eValue;
  871   end;
  872  
  873   procedure  TfrmGMV_Ma nager.actS aveParamet ersExecute (Sender: T Object);
  874   begin
  875     fraSyste mParameter s.SavePara meters;
  876     LoadTree View;
  877   end;
  878  
  879   procedure  TfrmGMV_Ma nager.actW ebLinkExec ute(Sender : TObject) ;
  880   var
  881     S: Strin g;
  882   begin
  883     s := get WebLinkAdd ress;
  884     if s <>  '' then
  885       ShellE xecute(0,  nil, PChar (S), nil,  nil, SW_NO RMAL)
  886   end;
  887  
  888   function T frmGMV_Man ager.Appli cationEven tsHelp(Com mand: Word ; Data: Na tiveInt;
  889     var Call Help: Bool ean): Bool ean;
  890   var
  891     s: Strin g;
  892     iHelp: I nteger;
  893   begin
  894     try
  895       Applic ationEvent s.CancelDi spatch;
  896       s := E xtractFile Dir(Applic ation.ExeN ame) + '\H elp\'+
  897         Chan geFileExt( ExtractFil eName(Appl ication.Ex eName),'.h lp');
  898       try
  899         iHel p := Activ eControl.H elpContext ;
  900       except
  901         iHel p := 1;
  902       end;
  903       if iHe lp = 0 the n iHelp :=  1;
  904  
  905       Applic ation.Help System.Sho wContextHe lp(iHelp,s );
  906       CallHe lp := Fals e;
  907       Result  := True;
  908     except
  909       CallHe lp := True ;
  910       Result  := False;
  911     end;
  912   end;
  913  
  914   procedure  TfrmGMV_Ma nager.lvCa tegoriesCl ick(Sender : TObject) ;
  915   var
  916     SL: TStr ingList;
  917     i: integ er;
  918     j: integ er;
  919     VitalIEN : string;
  920     Category IEN: strin g;
  921   begin
  922     if lvCat egories.It emFocused  <> nil the n
  923       begin
  924         for  i := 0 to  clbxQualif iers.Items .Count - 1  do
  925           cl bxQualifie rs.Checked [i] := Fal se;
  926  
  927         Vita lIEN := TG MV_FileEnt ry(tv.Sele cted.Data) .IEN;
  928         Cate goryIEN :=  lvCategor ies.ItemFo cused.SubI tems[0];
  929  
  930         SL : = getQuali fiers(Vita lIEN,Categ oryIEN);
  931         for  i := 1 to  SL.Count -  1 do
  932           be gin
  933              j := GMVQu als.IndexO fIEN(Piece (SL[i], '^ ', 1));
  934              if j > -1  then
  935                j := clb xQualifier s.Items.In dexOfObjec t(GMVQuals .Entries.O bjects[j]) ;
  936              if j > -1  then
  937                begin
  938                  clbxQu alifiers.C hecked[j]  := True;
  939                end;
  940           en d;
  941         SL.F ree;
  942         clbx Qualifiers .Enabled : = True;
  943       end
  944     else
  945       clbxQu alifiers.E nabled :=  False;
  946   end;
  947  
  948   procedure  TfrmGMV_Ma nager.lvCa tegoriesRe size(Sende r: TObject );
  949   begin
  950    // lvCate gories.Col umns[2].Wi dth := lvC ategories. Width - lv Categories .Columns[0 ].Width-4;
  951   end;
  952  
  953   procedure  TfrmGMV_Ma nager.lvCa tegoriesCh ange(Sende r: TObject ;
  954     Item: TL istItem; C hange: TIt emChange);
  955   begin
  956     lvCatego riesClick( Sender);
  957   end;
  958  
  959   procedure  TfrmGMV_Ma nager.acQu ailfiersEx ecute(Send er: TObjec t);
  960   begin
  961     ShowMess age(sMsgDi sabledQual ifiers);
  962   end;
  963  
  964  
  965   procedure  TfrmGMV_Ma nager.Form KeyDown(Se nder: TObj ect; var K ey: Word;
  966     Shift: T ShiftState );
  967   begin
  968     if Key =  word(VK_F 1) then
  969       Applic ation.Help Command(HE LP_CONTEXT , 0);
  970   end;
  971  
  972   procedure  TfrmGMV_Ma nager.acLo gExecute(S ender: TOb ject);
  973   begin
  974   {$IFDEF SH OWLOG}
  975     ShowRPCL og;
  976   {$ENDIF}
  977   end;
  978  
  979   procedure  TfrmGMV_Ma nager.Time r1Timer(Se nder: TObj ect);
  980   begin
  981   {$IFDEF SH OWLOG}
  982     try
  983       if Ass igned(Acti veControl)  then
  984         sb.S impleText  := 'Active  control:  '+ActiveCo ntrol.Name
  985       else
  986         sb.S impleText  := 'Active  control:  Unknown';
  987     except
  988     end;
  989   {$ENDIF}
  990   end;
  991  
  992   end.
  993  
  994