43. EPMO Open Source Coordination Office Redaction File Detail Report

Produced by Araxis Merge on 3/31/2017 10:45:43 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.

43.1 Files compared

# Location File Last Modified
1 CPRS v31A.zip\CPRS v31A\VITL5_P34_src.zip\Source\VITALSUTILS uGMV_VersionInfo.pas Tue Dec 13 18:26:08 2016 UTC
2 CPRS v31A.zip\CPRS v31A\VITL5_P34_src.zip\Source\VITALSUTILS uGMV_VersionInfo.pas Fri Mar 31 15:01:47 2017 UTC

43.2 Comparison summary

Description Between
Files 1 and 2
Text Blocks Lines
Unchanged 4 978
Changed 3 6
Inserted 0 0
Removed 0 0

43.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

43.4 Active regular expressions

No regular expressions were active.

43.5 Comparison detail

  1   { ******** ********** ********** ********** ********** ********** ********** **********  }
  2   { }
  3   { GMV_Vita lsViewEnte r }
  4   { }
  5   { Updated  Version in formation  to be pull ed from th e actual f ile }
  6   DN S      BELLC 1/27 /2015 }
  7   { ******** ********** ********** ********** ********** ********** ********** **********  }
  8  
  9   unit uGMV_ VersionInf o;
  10  
  11   interface
  12  
  13   uses
  14     Windows,
  15     SysUtils ,
  16     Classes,
  17     Graphics ,
  18     Forms,
  19     Controls ,
  20     StdCtrls ,
  21     Buttons,
  22     ExtCtrls ,
  23     uGMV_Com mon
  24       ;
  25  
  26   const
  27     VersionI nfoKeys: a rray [1 ..  13] of st ring = (
  28       'Compa nyName',
  29       'FileD escription ',
  30       'FileV ersion',
  31       'Inter nalName',
  32       'Legal CopyRight' ,
  33       'Origi nalFileNam e',
  34       'Produ ctName',
  35       'Produ ctVersion' ,
  36       'Comme nts',
  37       'VARel easeDate',
  38       'VANam espace',
  39       'VASou rceInforma tion',
  40         'PreviousV ersion' //   DN S      BELLC 1/27 /2015
  41       );
  42  
  43     USEnglis h = $04090 4E4;
  44  
  45   type
  46     TVersion Info = cla ss(TCompon ent)
  47       (*
  48         Retr ieves Vers ion Info d ata about  a given bi nary file.
  49       *)
  50     private
  51       FFileN ame: strin g;
  52       FLangu ageID: DWo rd;
  53       FInfo:  pointer;
  54       FInfoS ize: longi nt;
  55  
  56       FCtlCo mpanyName:  TControl;
  57       FCtlFi leDescript ion: TCont rol;
  58       FCtlFi leVersion:  TControl;
  59       FCtlIn ternalName : TControl ;
  60       FCtlLe galCopyRig ht: TContr ol;
  61       FCtlOr iginalFile Name: TCon trol;
  62       FCtlPr oductName:  TControl;
  63       FCtlPr oductVersi on: TContr ol;
  64       FCtlCo mments: TC ontrol;
  65       FCtlVA ReleaseDat e: TContro l;
  66       FCtlVA Namespace:  TControl;
  67       FCtlVA SourceInfo rmation: T Control;
  68  
  69       proced ure SetFil eName(Valu e: string) ;
  70       proced ure SetVer Prop(index : Integer;  Value: TC ontrol);
  71       functi on GetVerP rop(index:  Integer):  TControl;
  72       functi on GetInde xKey(index : Integer) : string;
  73       // fun ction GetK ey(const K Name: stri ng): strin g;
  74       functi on GetComp ileDateTim e: TDateTi me;
  75       functi on GetVAPa tchNumber:  string;
  76       functi on GetVASe rverVersio n: string;
  77       functi on GetVATe stVersion:  Boolean;
  78       proced ure Refres h;
  79     protecte d
  80       proced ure Notifi cation(ACo mponent: T Component;  Operation : TOperati on); overr ide;
  81     public
  82       Intern alVersion:  String;
  83  
  84       functi on GetKey( const KNam e: string) : string;
  85  
  86       proper ty FileNam e: string  read FFile Name write  SetFileNa me;
  87       proper ty Languag eID: DWord  read FLan guageID wr ite FLangu ageID;
  88       proper ty Compile DateTime:  TDateTime  read GetCo mpileDateT ime;
  89  
  90       proper ty Company Name: stri ng index 1  read GetI ndexKey;
  91       proper ty FileDes cription:  string ind ex 2 read  GetIndexKe y;
  92       proper ty FileVer sion: stri ng index 3  read GetI ndexKey;
  93       proper ty Interna lName: str ing index  4 read Get IndexKey;
  94       proper ty LegalCo pyRight: s tring inde x 5 read G etIndexKey ;
  95       proper ty Origina lFileName:  string in dex 6 read  GetIndexK ey;
  96       proper ty Product Name: stri ng index 7  read GetI ndexKey;
  97       proper ty Product Version: s tring inde x 8 read G etIndexKey ;
  98       proper ty Comment s: string  index 9 re ad GetInde xKey;
  99       proper ty VARelea seDate: st ring index  10 read G etIndexKey ;
  100       proper ty VANames pace: stri ng index 1 1 read Get IndexKey;
  101       proper ty VASourc eInformati on: string  index 12  read GetIn dexKey; //  AAN 08/05 /2002
  102         property P reviousVer sion: stri ng index 1 3 read Get IndexKey;  //  DN S      BELLC 1/27 /2015
  103       proper ty VAPatch Number: st ring read  GetVAPatch Number;
  104       proper ty VAServe rVersion:  string rea d GetVASer verVersion ;
  105       proper ty VATestV ersion: Bo olean read  GetVATest Version;
  106  
  107       constr uctor Crea te(AOwner:  TComponen t); overri de;
  108       (*
  109         Allo cates memo ry and ini tializes v ariables f or the obj ect.
  110       *)
  111  
  112       destru ctor Destr oy; overri de;
  113       (*
  114         Rele ases all m emory allo cated for  the object .
  115       *)
  116  
  117       proced ure OpenFi le(FName:  string);
  118       (*
  119         Uses  method Ge tFileVersi onInfo to  retrieve v ersion inf ormation f or file
  120         FNam e.  If FNa me is blan k, version  informati on is obta ined for t he
  121         curr ent execut able (Appl ication.Ex eName).
  122       *)
  123  
  124       proced ure Close;
  125       (*
  126         Rele ases memor y allocate d and clea rs all sto rage varia bles.
  127       *)
  128  
  129     publishe d
  130       proper ty CtlComp anyName: T Control in dex 1 read  GetVerPro p write Se tVerProp;
  131       proper ty CtlFile Descriptio n: TContro l index 2  read GetVe rProp writ e SetVerPr op;
  132       proper ty CtlFile Version: T Control in dex 3 read  GetVerPro p write Se tVerProp;
  133       proper ty CtlInte rnalName:  TControl i ndex 4 rea d GetVerPr op write S etVerProp;
  134       proper ty CtlLega lCopyRight : TControl  index 5 r ead GetVer Prop write  SetVerPro p;
  135       proper ty CtlOrig inalFileNa me: TContr ol index 6  read GetV erProp wri te SetVerP rop;
  136       proper ty CtlProd uctName: T Control in dex 7 read  GetVerPro p write Se tVerProp;
  137       proper ty CtlProd uctVersion : TControl  index 8 r ead GetVer Prop write  SetVerPro p;
  138       proper ty CtlComm ents: TCon trol index  9 read Ge tVerProp w rite SetVe rProp;
  139       proper ty CtlVARe leaseDate:  TControl  index 10 r ead GetVer Prop write  SetVerPro p;
  140       proper ty CtlVANa mespace: T Control in dex 11 rea d GetVerPr op write S etVerProp;
  141       proper ty CtlVASo urceInfo:  TControl i ndex 12 re ad GetVerP rop write  SetVerProp ;
  142     end;
  143  
  144   function C urrentExeN ameAndVers ion: strin g;
  145   function R equiredSer verVersion : string;
  146  
  147   function C urrentDllN ameAndVers ion: strin g;
  148   function P revDllName AndVersion : string;
  149  
  150   implementa tion
  151  
  152   uses
  153     Dialogs,
  154     TypInfo,
  155     uGMV_Con st;
  156  
  157   function R equiredSer verVersion : string;
  158   begin
  159     with TVe rsionInfo. Create(App lication)  do
  160       try
  161         Open File(Appli cation.Exe Name);
  162         Resu lt := VASe rverVersio n;
  163         if V APatchNumb er <> '' t hen
  164           Re sult := Re sult + ' w ith patch  ' + VAPatc hNumber;
  165       finall y
  166         free ;
  167       end;
  168   end;
  169  
  170   function C urrentExeN ameAndVers ion: strin g;
  171   begin
  172     with TVe rsionInfo. Create(App lication)  do
  173       try
  174         Open File(Appli cation.Exe Name);
  175   {$IFDEF IG NOREEXENAM E}
  176         Resu lt := Uppe rCase('Vit als.exe:'  + FileVers ion);
  177   {$ELSE}
  178         Resu lt := Uppe rCase(Extr actFileNam e(Applicat ion.ExeNam e) + ':' +  FileVersi on);
  179   {$ENDIF}
  180       finall y
  181         free ;
  182       end;
  183   end;
  184  
  185   function P revDllName AndVersion : string;
  186   begin
  187     // Resul t := 'GMV_ VITALSVIEW ENTER.DLL: v. 09/06/0 5 11:29';   // Max-Mi n error co rrected
  188     // Resul t := 'GMV_ VITALSVIEW ENTER.DLL: v. 09/22/0 5 11:43';
  189     // Resul t := 'GMV_ VITALSVIEW ENTER.DLL: v. 10/18/0 5 10:50';   // T12
  190     // Resul t := 'GMV_ VITALSVIEW ENTER.DLL: v. 11/03/0 5 11:47';
  191     // Resul t := 'GMV_ VITALSVIEW ENTER.DLL: v. 11/21/0 5 15:53';   //T14
  192     // Resul t := 'GMV_ VITALSVIEW ENTER.DLL: v. 11/30/0 5 18:00';   //T15
  193     // Resul t := 'GMV_ VITALSVIEW ENTER.DLL: v. 12/29/0 5 16:20';   //T16
  194     // Resul t := 'GMV_ VITALSVIEW ENTER.DLL: v. 01/20/0 6 09:08';   //T17
  195     // Resul t := 'GMV_ VITALSVIEW ENTER.DLL: v. 02/15/0 6 15:55';   //T18
  196     // Resul t := 'GMV_ VITALSVIEW ENTER.DLL: v. 10/04/0 7 16:52';   //T22 - w as not rel eased only  tested
  197     // Resul t := 'GMV_ VITALSVIEW ENTER.DLL: v. 01/03/0 8 11:04';   //T22.2
  198   {$IFDEF PA TCH_5_0_22 } Result : = 'GMV_VIT ALSVIEWENT ER.DLL:v.  03/14/06 1 6:35'; {$E NDIF}
  199     // { $IF DEF PATCH_ 5_0_23 }   Result :=  'DUMMY';{$ ENDIF} //  T23.1
  200     // Patch  23 does n ot support  any previ ous versio ns of dll
  201     // { $IF DEF PATCH_ 5_0_23}  R esult := ' GMV_VITALS VIEWENTER. DLL:v. 10/ 14/08 15:4 2';{$ENDIF } // T23.4
  202     // {$IFD EF PATCH_5 _0_23}  Re sult := 'G MV_VITALSV IEWENTER.D LL:v. 01/2 0/09 16:30 '; {$ENDIF } //T23.5
  203     // {$IFD EF PATCH_5 _0_23}  Re sult := 'G MV_VITALSV IEWENTER.D LL:v. 08/1 1/09 15:00 '; {$ENDIF } //T23.8
  204   {$IFDEF PA TCH_5_0_23 } Result : = 'GMV_VIT ALSVIEWENT ER.DLL:v.  01/21/11 1 2:52'; {$E NDIF} // T 26.1
  205   end;
  206  
  207   function C urrentDllN ameAndVers ion: strin g;
  208   begin
  209     // Resul t := 'GMV_ VITALSVIEW ENTER.DLL: v. 09/22/0 5 11:43';   // Max-Mi n error co rrected
  210     // Resul t := 'GMV_ VITALSVIEW ENTER.DLL: v. 10/18/0 5 10:50';
  211     // Resul t := 'GMV_ VITALSVIEW ENTER.DLL: v. 11/03/0 5 11:47';   //T13
  212     // Resul t := 'GMV_ VITALSVIEW ENTER.DLL: v. 11/21/0 5 15:53';   //T14
  213     // Resul t := 'GMV_ VITALSVIEW ENTER.DLL: v. 11/30/0 5 18:00';   //T15
  214     // Resul t := 'GMV_ VITALSVIEW ENTER.DLL: v. 12/29/0 5 16:20';   //T16
  215     // Resul t := 'GMV_ VITALSVIEW ENTER.DLL: v. 01/20/0 6 09:08';   //T17
  216     // Resul t := 'GMV_ VITALSVIEW ENTER.DLL: v. 02/15/0 6 15:55';   //T18 - i gnores CCO W Cancel p atient cha nge
  217     // Resul t := 'GMV_ VITALSVIEW ENTER.DLL: v. 03/14/0 6 16:35';   //T19
  218     // Resul t := 'GMV_ VITALSVIEW ENTER.DLL: v. 10/04/0 7 16:52';   //T22 - w as not rel eased only  tested
  219     // Resul t := 'GMV_ VITALSVIEW ENTER.DLL: v. 01/03/0 8 11:04';   //T22.2 -  was notre leased
  220     // { $IF DEF PATCH_ 5_0_22}  R esult := ' GMV_VITALS VIEWENTER. DLL:v. 05/ 12/08 08:4 4'; {$ENDI F} //T22.6
  221     // { $IF DEF PATCH_ 5_0_23}  R esult := ' GMV_VITALS VIEWENTER. DLL:v. 05/ 13/08 09:2 7'; {$ENDI F} //T23.1
  222     // {$IFD EF PATCH_5 _0_23}  Re sult := 'G MV_VITALSV IEWENTER.D LL:v. 04/0 7/09 16:30 '; {$ENDIF } //T23.7
  223     // {$IFD EF PATCH_5 _0_23}  Re sult := 'G MV_VITALSV IEWENTER.D LL:v. 08/1 1/09 15:00 '; {$ENDIF } //T23.8
  224   {$IFDEF PA TCH_5_0_23 } Result : = 'GMV_VIT ALSVIEWENT ER.DLL:v.  11/05/13 1 0:00'; {$E NDIF} // T 28.1
  225   end;
  226  
  227   (* === TVe rsionInfo  Methods == ========== ========== ========== ========== ======== * )
  228  
  229   constructo r TVersion Info.Creat e(AOwner:  TComponent );
  230   begin
  231     inherite d Create(A Owner);
  232     FLanguag eID := USE nglish;
  233   {$IFDEF DL L}
  234     SetFileN ame('GMV_V italsViewE nter.dll') ;
  235   {$ELSE}
  236     SetFileN ame(EmptyS tr);
  237   {$ENDIF}
  238  
  239   end;
  240  
  241   destructor  TVersionI nfo.Destro y;
  242   begin
  243     if FInfo Size > 0 t hen
  244       FreeMe m(FInfo, F InfoSize);
  245     inherite d Destroy;
  246   end;
  247  
  248   procedure  TVersionIn fo.SetFile Name(Value : string);
  249   begin
  250     FFileNam e := Value ;
  251     if Value  = EmptySt r then
  252       FFileN ame := Ext ractFileNa me(Applica tion.ExeNa me);
  253     if csDes igning in  ComponentS tate then
  254       Refres h
  255     else
  256       OpenFi le(Value);
  257   end;
  258  
  259   procedure  TVersionIn fo.OpenFil e(FName: s tring);
  260   var
  261     vlen: DW ord;
  262   begin
  263     if FInfo Size > 0 t hen
  264       FreeMe m(FInfo, F InfoSize);
  265     if Lengt h(FName) < = 0 then
  266       FName  := Applica tion.ExeNa me;
  267     FInfoSiz e := GetFi leVersionI nfoSize(pc har(FName) , vlen);
  268     if FInfo Size > 0 t hen
  269       begin
  270         GetM em(FInfo,  FInfoSize) ;
  271         if n ot GetFile VersionInf o(pchar(FN ame), vlen , FInfoSiz e, FInfo)  then
  272           ra ise Except ion.Create ('Cannot r etrieve Ve rsion Info rmation fo r ' + FNam e);
  273         Refr esh;
  274       end;
  275   end;
  276  
  277   procedure  TVersionIn fo.Close;
  278   begin
  279     if FInfo Size > 0 t hen
  280       FreeMe m(FInfo, F InfoSize);
  281     FInfoSiz e := 0;
  282     FFileNam e := Empty Str;
  283   end;
  284  
  285   const
  286     vqvFmt =  '\StringF ileInfo\%8 .8x\%s';
  287  
  288   function T VersionInf o.GetKey(c onst KName : string):  string;
  289   var
  290     vptr: pc har;
  291     vlen: DW ord;
  292   begin
  293     Result : = EmptyStr ;
  294     if FInfo Size <= 0  then
  295       exit;
  296     if VerQu eryValue(F Info, pcha r(Format(v qvFmt, [FL anguageID,  KName])),  pointer(v ptr), vlen ) then
  297       Result  := vptr;
  298   end;
  299  
  300   function T VersionInf o.GetIndex Key(index:  Integer):  string;
  301   begin
  302     Result : = GetKey(V ersionInfo Keys[index ]);
  303   end;
  304  
  305   function T VersionInf o.GetVerPr op(index:  Integer):  TControl;
  306   begin
  307     case ind ex of
  308       1:
  309         Resu lt := FCtl CompanyNam e;
  310       2:
  311         Resu lt := FCtl FileDescri ption;
  312       3:
  313         Resu lt := FCtl FileVersio n;
  314       4:
  315         Resu lt := FCtl InternalNa me;
  316       5:
  317         Resu lt := FCtl LegalCopyR ight;
  318       6:
  319         Resu lt := FCtl OriginalFi leName;
  320       7:
  321         Resu lt := FCtl ProductNam e;
  322       8:
  323         Resu lt := FCtl ProductVer sion;
  324       9:
  325         Resu lt := FCtl Comments;
  326       10:
  327         Resu lt := FCtl VAReleaseD ate;
  328       11:
  329         Resu lt := FCtl VANamespac e;
  330       12:
  331         Resu lt := FCtl VASourceIn formation;
  332     else
  333       Result  := nil;
  334     end;
  335   end;
  336  
  337   procedure  TVersionIn fo.SetVerP rop(index:  Integer;  Value: TCo ntrol);
  338   begin
  339     case ind ex of
  340       1:
  341         FCtl CompanyNam e := Value ;
  342       2:
  343         FCtl FileDescri ption := V alue;
  344       3:
  345         FCtl FileVersio n := Value ;
  346       4:
  347         FCtl InternalNa me := Valu e;
  348       5:
  349         FCtl LegalCopyR ight := Va lue;
  350       6:
  351         FCtl OriginalFi leName :=  Value;
  352       7:
  353         FCtl ProductNam e := Value ;
  354       8:
  355         FCtl ProductVer sion := Va lue;
  356       9:
  357         FCtl Comments : = Value;
  358       10:
  359         FCtl VAReleaseD ate := Val ue;
  360       11:
  361         FCtl VANamespac e := Value ;
  362       12:
  363         FCtl VASourceIn formation  := Value;
  364     end;
  365     Refresh;
  366   end;
  367  
  368   procedure  TVersionIn fo.Notific ation(ACom ponent: TC omponent;  Operation:  TOperatio n);
  369   begin
  370     if Opera tion = opR emove then
  371       begin
  372         if A Component  = FCtlComp anyName th en
  373           FC tlCompanyN ame := nil
  374         else  if ACompo nent = FCt lFileDescr iption the n
  375           FC tlFileDesc ription :=  nil
  376         else  if ACompo nent = FCt lFileVersi on then
  377           FC tlFileVers ion := nil
  378         else  if ACompo nent = FCt lInternalN ame then
  379           FC tlInternal Name := ni l
  380         else  if ACompo nent = FCt lLegalCopy Right then
  381           FC tlLegalCop yRight :=  nil
  382         else  if ACompo nent = FCt lOriginalF ileName th en
  383           FC tlOriginal FileName : = nil
  384         else  if ACompo nent = FCt lProductNa me then
  385           FC tlProductN ame := nil
  386         else  if ACompo nent = FCt lProductVe rsion then
  387           FC tlProductV ersion :=  nil
  388         else  if ACompo nent = FCt lComments  then
  389           FC tlComments  := nil
  390         else  if ACompo nent = FCt lVARelease Date then
  391           FC tlVAReleas eDate := n il
  392         else  if ACompo nent = FCt lVANamespa ce then
  393           FC tlVANamesp ace := nil
  394         else  if ACompo nent = FCt lVASourceI nformation  then
  395           FC tlVASource Informatio n := nil;
  396       end;
  397   end;
  398  
  399   procedure  TVersionIn fo.Refresh ;
  400   var
  401     PropInfo : PPropInf o;
  402  
  403     procedur e AssignTe xt(Actl: T Component;  txt: stri ng);
  404     begin
  405       if Ass igned(Actl ) then
  406         begi n
  407           Pr opInfo :=  GetPropInf o(Actl.Cla ssInfo, 'C aption');
  408           if  PropInfo  <> nil the n
  409              SetStrProp (Actl, Pro pInfo, txt )
  410           el se
  411              begin
  412                PropInfo  := GetPro pInfo(Actl .ClassInfo , 'Text');
  413                if PropI nfo <> nil  then
  414                  SetStr Prop(Actl,  PropInfo,  txt)
  415              end;
  416         end;
  417     end;
  418  
  419   begin
  420     if csDes igning in  ComponentS tate then
  421       begin
  422         Assi gnText(FCt lCompanyNa me, Versio nInfoKeys[ 1]);
  423         Assi gnText(FCt lFileDescr iption, Ve rsionInfoK eys[2]);
  424         Assi gnText(FCt lFileVersi on, Versio nInfoKeys[ 3]);
  425         Assi gnText(FCt lInternalN ame, Versi onInfoKeys [4]);
  426         Assi gnText(FCt lLegalCopy Right, Ver sionInfoKe ys[5]);
  427         Assi gnText(FCt lOriginalF ileName, V ersionInfo Keys[6]);
  428         Assi gnText(FCt lProductNa me, Versio nInfoKeys[ 7]);
  429         Assi gnText(FCt lProductVe rsion, Ver sionInfoKe ys[8]);
  430         Assi gnText(FCt lComments,  VersionIn foKeys[9]) ;
  431         Assi gnText(FCt lVARelease Date, Vers ionInfoKey s[10]);
  432         Assi gnText(FCt lVANamespa ce, Versio nInfoKeys[ 11]);
  433         Assi gnText(FCt lVASourceI nformation , VersionI nfoKeys[12 ]);
  434       end
  435     else
  436       begin
  437         Assi gnText(FCt lCompanyNa me, Compan yName);
  438         Assi gnText(FCt lFileDescr iption, Fi leDescript ion);
  439         Assi gnText(FCt lFileVersi on, FileVe rsion);
  440         Assi gnText(FCt lInternalN ame, Inter nalName);
  441         Assi gnText(FCt lLegalCopy Right, Leg alCopyRigh t);
  442         Assi gnText(FCt lOriginalF ileName, O riginalFil eName);
  443         Assi gnText(FCt lProductNa me, Produc tName);
  444         Assi gnText(FCt lProductVe rsion, Pro ductVersio n);
  445         Assi gnText(FCt lComments,  Comments) ;
  446         Assi gnText(FCt lVARelease Date, VARe leaseDate) ;
  447         Assi gnText(FCt lVANamespa ce, VAName space);
  448         Assi gnText(FCt lVASourceI nformation , VASource Informatio n);
  449       end;
  450   end;
  451  
  452   function T VersionInf o.GetCompi leDateTime : TDateTim e;
  453   begin
  454   {$IFDEF DL L}
  455     Result : = FileDate ToDateTime (FileAge(G etProgramF ilesPath +  '\Vista\C ommon File s\GMV_Vita lsViewEnte r.dll'));
  456   {$ELSE}
  457     Result : = FileDate ToDateTime (FileAge(A pplication .ExeName)) ;
  458   {$ENDIF}
  459   end;
  460  
  461   function T VersionInf o.GetVAPat chNumber:  string;
  462   begin
  463     if StrTo IntDef(Pie ce(FileVer sion, '.',  3), 0) >  0 then
  464       begin
  465         Resu lt := VANa mespace +  '*' + VASe rverVersio n + '*' +  Piece(File Version, ' .', 3);
  466         // i f StrToInt Def(Piece( FileVersio n, '.', 4) , 0) > 0 t hen // vha ishandria  060223
  467         // R esult := R esult + 'T ' + Piece( FileVersio n, '.', 4) ; // vhais handria 06 0223
  468         // R esult := ' GMRV*5.0*3 T7'; // 6
  469         // R esult := ' GMRV*5.0*3 T8'; // 7
  470         // R esult := ' GMRV*5.0*3 T9'; // 8
  471         // R esult := ' GMRV*5.0*3 T12';
  472         // R esult := ' GMRV*5.0*3 T13';
  473         // R esult := ' GMRV*5.0*3 T14';
  474         // R esult := ' GMRV*5.0*3 T16';
  475         // R esult := ' GMRV*5.0*3 T17';
  476         // R esult := ' GMRV*5.0*3 T18'; // v haishandri a 060223
  477       end
  478     else
  479       Result  := '';
  480   end;
  481  
  482   function T VersionInf o.GetVASer verVersion : string;
  483   begin
  484     Result : = Piece(Fi leVersion,  '.', 1) +  '.' + Pie ce(FileVer sion, '.',  2);
  485   end;
  486  
  487   function T VersionInf o.GetVATes tVersion:  Boolean;
  488   begin
  489     Result : = False;
  490   end;
  491  
  492   end.