home *** CD-ROM | disk | FTP | other *** search
/ The Devil's Doorknob BBS Capture (1996-2003) / devilsdoorknobbbscapture1996-2003.iso / Dloads / OTHERUTI / TPASCAL3.ZIP / TVDEMOS.ZIP / GENPARTS.PAS < prev    next >
Pascal/Delphi Source File  |  1991-06-11  |  4KB  |  152 lines

  1. {************************************************}
  2. {                                                }
  3. {   Turbo Pascal 6.0                             }
  4. {   Turbo Vision Forms Demo                      }
  5. {   Copyright (c) 1990 by Borland International  }
  6. {                                                }
  7. {************************************************}
  8.  
  9. {$D-,S-}
  10.  
  11. { Run GENFORMS.BAT to generate data files for TVFORMS.PAS
  12.   (this unit is used in GENFORM.PAS).
  13. }
  14.  
  15. unit GenParts;
  16.  
  17. interface
  18.  
  19. uses Forms, DataColl;
  20.  
  21. const
  22.   RezFileName = 'PARTS.TVF';
  23.   PartNumWidth   =   6;
  24.   DescrWidth     =  30;
  25.   QtyWidth       =   6;
  26.  
  27.   DescrLen       = 512;            { Length of text array }
  28.  
  29. type
  30.   TDescrRec = record
  31.     TextLen: Word;
  32.     TextData: array[1..DescrLen] of Char;
  33.   end;
  34.  
  35.   TDataRec = record
  36.     PartNum: LongInt;
  37.     Qty: LongInt;
  38.     Descr: TDescrRec;
  39.   end;
  40.  
  41. const
  42.   AllowDuplicates = False;
  43.   DataKeyType: KeyTypes = LongIntKey;
  44.   DataCount = 5;
  45.   Data: array[1..DataCount] of TDataRec =
  46.     ((PartNum: 1; Qty: 1036),
  47.      (PartNum: 2035; Qty: 33),
  48.      (PartNum: 2034; Qty: 13),
  49.      (PartNum: 2; Qty: -123),
  50.      (PartNum: 45; Qty: 8567)
  51.     );
  52.   Descriptions: array[1..DataCount] of String =
  53.     (('Government standard issue'#13#10 +
  54.       'and certified by FAA for'#13#10 +
  55.       'international use.'),
  56.      ('Warbling mini version with'#13#10 +
  57.       'modified mechanisms for'#13#10 +
  58.       'handling streamliners.'),
  59.      ('Hybrid version.'),
  60.      ('Catalytic version for'#13#10 +
  61.       'meeting stricter emission'#13#10 +
  62.       'standards in industrial areas.'),
  63.      ('Prototype for new model.')
  64.     );
  65.  
  66.  
  67. function MakeForm: PForm;
  68.  
  69. implementation
  70.  
  71. uses Objects, Drivers, Views, FormCmds, Dialogs, Fields, Editors;
  72.  
  73. function MakeForm: PForm;
  74. const
  75.   FormX1 = 1;
  76.   FormY1 = 1;
  77.   FormWd = 36;
  78.   FormHt = 17;
  79.   LabelCol = 1;
  80.   LabelWid = 8;
  81.   InputCol = 11;
  82.   ButtonRow = FormHt - 3;
  83.   ButtonWd = 12;
  84.   DescrHt = 6;
  85.  
  86. var
  87.   F: PForm;
  88.   R: TRect;
  89.   X, Y: Integer;
  90.   C: PView;
  91. begin
  92.   { Create a form }
  93.   R.Assign(FormX1, FormY1, FormX1 + FormWd, FormY1 + FormHt);
  94.   F := New(PForm, Init(R, 'Parts'));
  95.  
  96.   { Create and insert controls into the form }
  97.   F^.KeyWidth := PartNumWidth + 2;
  98.   Y := 2;
  99.   R.Assign(InputCol, Y, InputCol + PartNumWidth + 2, Y + 1);
  100.   C := New(PNumInputLine, Init(R, PartNumWidth, 0, 9999));
  101.   F^.Insert(C);
  102.   R.Assign(LabelCol, Y, LabelCol + LabelWid, Y + 1);
  103.   F^.Insert(New(PLabel, Init(R, '~P~art', C)));
  104.  
  105.   Inc(Y, 2);
  106.   R.Assign(InputCol, Y, InputCol + QtyWidth + 2, Y + 1);
  107.   C := New(PNumInputLine, Init(R, QtyWidth, -99999, 99999));
  108.   F^.Insert(C);
  109.   R.Assign(LabelCol, Y, LabelCol + QtyWidth, Y + 1);
  110.   F^.Insert(New(PLabel, Init(R, '~Q~ty', C)));
  111.  
  112.   Inc(Y, 3);
  113.   R.Assign(LabelCol + DescrWidth + 1, Y, LabelCol + DescrWidth + 2, Y + DescrHt);
  114.   C := New(PScrollBar, Init(R));
  115.   F^.Insert(C);
  116.   R.Assign(LabelCol + 1, Y, LabelCol + DescrWidth + 1, Y + DescrHt);
  117.   C := New(PMemo, Init(R, nil, PScrollBar(C), nil, DescrLen));
  118.   F^.Insert(C);
  119.   R.Assign(LabelCol, Y - 1, LabelCol + Length('Description') + 1, Y);
  120.   F^.Insert(New(PLabel, Init(R, '~D~escription', C)));
  121.  
  122.   { Buttons }
  123.   Inc(Y, DescrHt + 1);
  124.   X := FormWd - 2 * (ButtonWd + 2);
  125.   R.Assign(X, Y, X + ButtonWd, Y + 2);
  126.   F^.Insert(New(PButton, Init(R, '~S~ave', cmFormSave, bfDefault)));
  127.  
  128.   X := FormWd - 1 * (ButtonWd + 2);
  129.   R.Assign(X, Y, X + ButtonWd, Y + 2);
  130.   F^.Insert(New(PButton, Init(R, 'Cancel', cmCancel, bfNormal)));
  131.  
  132.   F^.SelectNext(False);      { Select first field }
  133.  
  134.   MakeForm := F;
  135. end;
  136.  
  137. procedure StuffDescriptions;
  138. var
  139.   i: Integer;
  140. begin
  141.   for i := 1 to DataCount do
  142.     with Data[i].Descr do
  143.     begin
  144.       TextLen := Length(Descriptions[i]);
  145.       Move(Descriptions[i][1], TextData, TextLen)
  146.     end;
  147. end;
  148.  
  149. begin
  150.   StuffDescriptions;
  151. end.
  152.