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

  1. {************************************************}
  2. {                                                }
  3. {   Turbo Pascal 6.0                             }
  4. {   Turbo Vision Forms Demo                      }
  5. {   Copyright (c) 1990 by Borland International  }
  6. {                                                }
  7. {************************************************}
  8.  
  9. {$S-,D-}
  10.  
  11. { Run GENFORMS.BAT to generate data files for TVFORMS.PAS
  12.   (this unit is used in GENFORM.PAS).
  13. }
  14. unit GenPhone;
  15.  
  16. interface
  17.  
  18. uses Forms, DataColl;
  19.  
  20. const
  21.   RezFileName = 'PHONENUM.TVF';
  22.   NameWidth = 25;
  23.   CompanyWidth = 22;
  24.   RemarksWidth = 22;
  25.   PhoneWidth = 20;
  26.  
  27. type
  28.   TDataRec = record
  29.     Name: string[NameWidth];
  30.     Company: string[CompanyWidth];
  31.     Remarks: string[RemarksWidth];
  32.     Phone: string[PhoneWidth];
  33.     AcquaintType: Word;
  34.     Gender: Word;
  35.   end;
  36.  
  37. const
  38.   AllowDuplicates = True;
  39.   DataKeyType: KeyTypes = StringKey;
  40.   DataCount = 4;
  41.   Male      = 0;
  42.   Female    = 1;
  43.   Business  = $1;
  44.   Personal  = $2;
  45.   Data: array[1..DataCount] of TDataRec =
  46.     ((Name: 'Helton, Andrew'; Company: 'Asterisk International'; Remarks: 'Purch. Mgr.'; Phone: '(415) 868-3964';
  47.        AcquaintType: Business or Personal; Gender: Male),
  48.      (Name: 'White, Natalie'; Company: 'Exclamation, Inc.'; Remarks: 'VP sales'; Phone: '(408) 242-2030';
  49.        AcquaintType: Business; Gender: Female),
  50.      (Name: 'Stern, Peter';  Company: ''; Remarks: 'Decent violinist'; Phone: '(111) 222-5555';
  51.        AcquaintType: Personal; Gender: Male),
  52.      (Name: 'Whitcom, Hana O.'; Company: 'Nate''s girlfriend'; Remarks: 'Birthday: Jan 8, 1990'; Phone: '(408) 426-1234';
  53.        AcquaintType: Personal; Gender: Female)
  54.     );
  55.  
  56. function MakeForm: PForm;
  57.  
  58. implementation
  59.  
  60. uses Objects, Drivers, Views, Dialogs, FormCmds, Fields;
  61.  
  62. function MakeForm: PForm;
  63. const
  64.   FormX1 = 5;
  65.   FormY1 = 3;
  66.   FormWd = 41;
  67.   FormHt = 17;
  68.   LabelCol = 1;
  69.   LabelWid = 8;
  70.   InputCol = 11;
  71.   ButtonWd = 12;
  72.  
  73. var
  74.   F: PForm;
  75.   R: TRect;
  76.   X, Y: Integer;
  77.   Control: PView;
  78. begin
  79.   { Create a form }
  80.   R.Assign(FormX1, FormY1, FormX1 + FormWd, FormY1 + FormHt);
  81.   F := New(PForm, Init(R, 'Phone Numbers'));
  82.  
  83.   { Create and insert controls into the form }
  84.   Y := 2;
  85.   F^.KeyWidth := NameWidth + 2;
  86.   R.Assign(InputCol, Y, InputCol + NameWidth + 2, Y + 1);
  87.   Control := New(PKeyInputLine, Init(R, NameWidth));
  88.   F^.Insert(Control);
  89.   R.Assign(LabelCol, Y, LabelCol + LabelWid, Y + 1);
  90.   F^.Insert(New(PLabel, Init(R, '~N~ame', Control)));
  91.  
  92.   Inc(Y, 2);
  93.   R.Assign(InputCol, Y, InputCol + CompanyWidth + 2, Y + 1);
  94.   Control := New(PInputLine, Init(R, CompanyWidth));
  95.   F^.Insert(Control);
  96.   R.Assign(LabelCol, Y, LabelCol + LabelWid, Y + 1);
  97.   F^.Insert(New(PLabel, Init(R, '~C~ompany', Control)));
  98.  
  99.   Inc(Y, 2);
  100.   R.Assign(InputCol, Y, InputCol + RemarksWidth + 2, Y + 1);
  101.   Control := New(PInputLine, Init(R, RemarksWidth));
  102.   F^.Insert(Control);
  103.   R.Assign(LabelCol, Y, LabelCol + LabelWid, Y + 1);
  104.   F^.Insert(New(PLabel, Init(R, '~R~emarks', Control)));
  105.  
  106.   Inc(Y, 2);
  107.   R.Assign(InputCol, Y, InputCol + PhoneWidth + 2, Y + 1);
  108.   Control := New(PInputLine, Init(R, PhoneWidth));
  109.   F^.Insert(Control);
  110.   R.Assign(LabelCol, Y, LabelCol + LabelWid, Y + 1);
  111.   F^.Insert(New(PLabel, Init(R, '~P~hone', Control)));
  112.  
  113.   { Checkboxes }
  114.   X := InputCol;
  115.   Inc(Y, 3);
  116.   R.Assign(InputCol, Y, InputCol + Length('Business') + 6, Y + 2);
  117.   Control := New(PCheckBoxes, Init(R,
  118.     NewSItem('Business',
  119.     NewSItem('Personal',
  120.     nil))));
  121.   F^.Insert(Control);
  122.   R.Assign(X, Y - 1, X + LabelWid, Y);
  123.   F^.Insert(New(PLabel, Init(R, '~T~ype', Control)));
  124.  
  125.   { Radio buttons }
  126.   Inc(X, 15);
  127.   R.Assign(X, Y, X + Length('Female') + 6, Y + 2);
  128.   Control := New(PRadioButtons, Init(R,
  129.     NewSItem('Male',
  130.     NewSItem('Female', nil))));
  131.   F^.Insert(Control);
  132.   R.Assign(X, Y - 1, X + LabelWid, Y);
  133.   F^.Insert(New(PLabel, Init(R, '~G~ender', Control)));
  134.  
  135.   { Buttons }
  136.   Inc(Y, 3);
  137.   X := FormWd - 2 * (ButtonWd + 2);
  138.   R.Assign(X, Y, X + ButtonWd, Y + 2);
  139.   F^.Insert(New(PButton, Init(R, '~S~ave', cmFormSave, bfDefault)));
  140.  
  141.   X := FormWd - 1 * (ButtonWd + 2);
  142.   R.Assign(X, Y, X + ButtonWd, Y + 2);
  143.   F^.Insert(New(PButton, Init(R, 'Cancel', cmCancel, bfNormal)));
  144.  
  145.   F^.SelectNext(False);      { Select first field }
  146.  
  147.   MakeForm := F;
  148. end;
  149.  
  150. end.
  151.