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

  1. {************************************************}
  2. {                                                }
  3. {   Turbo Pascal 6.0                             }
  4. {   Turbo Vision Forms Demo                      }
  5. {   Copyright (c) 1990 by Borland International  }
  6. {                                                }
  7. {************************************************}
  8.  
  9. {$M 16384,8192,655360}
  10.  
  11. { This program uses GENPHONE and GENPARTS to generate forms data
  12.   files for use by TVFORMS.PAS. Run the batch file, GENFORMS.BAT
  13.   to make data files for TVFORMS.PAS.
  14. }
  15.  
  16. program GenForm;
  17.  
  18. uses
  19.   Objects, Drivers, Views, Menus, Dialogs, App,
  20.   DataColl, Forms, Fields, Editors,
  21. {$IFDEF PHONENUM}
  22.   GenPhone;
  23. {$ELSE}
  24. {$IFDEF PARTS}
  25.   GenParts;
  26. {$ELSE}
  27.   Error: Specify PHONENUM or PARTS as a conditional define, compile and then run.
  28. {$ENDIF}
  29. {$ENDIF}
  30.  
  31. type
  32.   PReportStream = ^TReportStream;
  33.   TReportStream = object(TBufStream)
  34.     procedure Error(Code, Info: Integer); virtual;
  35.   end;
  36.  
  37. procedure TReportStream.Error(Code, Info: Integer);
  38. begin
  39.   Writeln('Stream error: ', Code, ' (',Info,')');
  40.   Halt(1);
  41. end;
  42.  
  43. var
  44.   Collection: PSortedCollection;
  45.   i: Integer;
  46.   F: PForm;
  47.   P: Pointer;
  48.   R: TResourceFile;
  49.   S: PBufStream;
  50.  
  51. begin
  52.   Writeln('Creating ', RezFileName);
  53.  
  54.   { Stream registration }
  55.   RegisterObjects;
  56.   RegisterViews;
  57.   RegisterDialogs;
  58.   RegisterDataColl;
  59.   RegisterForms;
  60.   RegisterFields;
  61.   RegisterEditors;
  62.  
  63.   { Init stream and resource }
  64.   S := New(PReportStream, Init(RezFileName, stCreate, 1024));
  65.   R.Init(S);
  66.  
  67.   { Form }
  68.   F := MakeForm;
  69.   R.Put(F, 'FormDialog');
  70.  
  71.   { Data }
  72.   Collection := New(PDataCollection,
  73.     Init(DataCount + 10, 5, SizeOf(TDataRec), DataKeyType));
  74.   Collection^.Duplicates := AllowDuplicates;
  75.   for i := 1 to DataCount do
  76.   begin
  77.     GetMem(P, SizeOf(TDataRec));       { allocate }
  78.     F^.SetData(Data[i]);               { move into object }
  79.     F^.GetData(P^);                    { move onto heap }
  80.     Collection^.Insert(P);             { insert in sorted order }
  81.   end;
  82.   R.Put(Collection, 'FormData');
  83.  
  84.   { Done }
  85.   Dispose(F, Done);
  86.   Dispose(Collection, Done);
  87.   R.Done;
  88. end.
  89.