home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 4 / Apprentice-Release4.iso / Source Code / Libraries / PNL Libraries / MyVersionResource.p < prev    next >
Encoding:
Text File  |  1995-10-22  |  1.5 KB  |  70 lines  |  [TEXT/CWIE]

  1. unit MyVersionResource;
  2.  
  3. interface
  4.  
  5.     uses
  6.         Types;
  7.  
  8.     type
  9.         versionRecord = packed record
  10.                 numericVersion: NumVersion;
  11.                 countryCode: integer;
  12.                 shortVersion: str15;
  13.                 longVersion: Str255;
  14.                 name: str63;
  15.             end;
  16.  
  17.     procedure GetVersion (var vers: versionRecord);
  18.     procedure SetVersionParamText (c3: Str255);
  19.  
  20. implementation
  21.  
  22.     uses
  23.         Resources, Memory, Dialogs, MyStrings;
  24.  
  25.     procedure GetVersion (var vers: versionRecord);
  26.         var
  27.             vh: handle;
  28.             p: integer;
  29.     begin
  30.         with vers do begin
  31.             vh := GetResource('vers', 1);
  32.             if vh = nil then begin
  33.                 longint(numericVersion) := $00002000;
  34.                 countryCode := 0;
  35.                 shortVersion := '0.0.0';
  36.                 longVersion := 'Unknown v0.0.0';
  37.                 name := 'Unknown';
  38.             end
  39.             else begin
  40.                 BlockMoveData(vh^, @vers, sizeof(vers));
  41.                 BlockMoveData(Ptr(longint(vh^) + (longint(@shortVersion) - longint(@vers)) + length(shortVersion) + 1), @longVersion, sizeof(longVersion));
  42.                 if length(shortVersion) >= sizeof(shortVersion) then begin
  43. {$PUSH}
  44.  {$R-}
  45.                     shortVersion[0] := chr(sizeof(shortVersion) - 1);
  46. {$POP}
  47.                 end;
  48.                 ReleaseResource(vh);
  49.             end;
  50.             p := TPPos(shortVersion, longVersion);
  51.             while (p > 0) & (vers.longVersion[p] <> ' ') do begin
  52.                 p := p - 1;
  53.             end;
  54.             p := p - 1;
  55.             if p < 1 then begin
  56.                 p := 255;
  57.             end;
  58.             name := TPcopy(vers.longVersion, 1, p);
  59.         end;
  60.     end;
  61.  
  62.     procedure SetVersionParamText (c3: Str255);
  63.         var
  64.             vers: versionRecord;
  65.     begin
  66.         GetVersion(vers);
  67.         ParamText(vers.shortVersion, vers.longVersion, vers.name, c3);
  68.     end;
  69.  
  70. end.