home *** CD-ROM | disk | FTP | other *** search
/ Best of German Only 1 / romside_best_of_german_only_1.iso / wissen / dos / wgraph / entpack.exe / WGDEMOQ!.EXE / GMINIDB.PAS < prev    next >
Pascal/Delphi Source File  |  1992-12-19  |  2KB  |  110 lines

  1. {$A+,B-,D-,E-,F+,I-,L-,N-,O+,R-,S-,V-}
  2. UNIT GMiniDB;
  3.  
  4. INTERFACE
  5.  
  6. uses GDecl,
  7.      GDrivers,
  8.      GEvent,
  9.      GViews,
  10.      GDlg,
  11.      Graph;
  12.  
  13. const cmSaveData = 21;
  14.       cmLeft     = 22;
  15.       cmRight    = 23;
  16.  
  17. type PAdressWindow=^TAdressWindow;
  18.      TAdressWindow=object(TDlgWindow)
  19.        PosIndex:word;
  20.        constructor Init(var Bounds:TRect;ATitle:str80;AType:byte;DInput:boolean);
  21.        destructor Done; virtual;
  22.        procedure HandleEvent; virtual;
  23.      end;
  24.  
  25.      tAdressData=record
  26.                    Schalter : string[9];
  27.                    Firma    : string[40];
  28.                    Ort      : string[25];
  29.                    Strasse  : string[30];
  30.                    Telefon  : string[20];
  31.                  end;
  32.  
  33. var Adresse:tAdressData;
  34.     Dat : file of tAdressData;
  35.  
  36. IMPLEMENTATION
  37.  
  38. {Implementation TAdressWindow}
  39.  
  40. constructor TAdressWindow.Init(var Bounds:TRect;ATitle:str80;AType:byte;DInput:boolean);
  41. begin
  42.   TDlgWindow.Init(Bounds,ATitle,AType);
  43.   PosIndex:=0;
  44.   assign(Dat,'ADRESS.DAT');
  45.   reset(Dat);
  46.   if not DInput then
  47.    begin
  48.      read(Dat,Adresse);
  49.      SetData(Adresse);
  50.    end;
  51. end;
  52.  
  53. destructor TAdressWindow.Done;
  54. begin
  55.   TDlgWindow.Done;
  56.   close(Dat);
  57. end;
  58.  
  59. procedure TAdressWindow.HandleEvent;
  60. var k:word;
  61.  
  62. procedure DeleteDataRecord;
  63. begin
  64.   with Adresse do
  65.    begin
  66.      FillChar(Firma,SizeOf(Firma),' ');
  67.      FillChar(Ort,SizeOf(Ort),' ');
  68.      FillChar(Strasse,SizeOf(Strasse),' ');
  69.      FillChar(Telefon,SizeOf(Telefon),' ');
  70.    end;
  71. end;
  72.  
  73. procedure ReadDataRecord;
  74. begin
  75.   seek(Dat,PosIndex);
  76.   read(Dat,Adresse);
  77.   SetData(Adresse);
  78.   DrawMask;
  79.   Event.Command:=cmNothing;
  80. end;
  81.  
  82. begin
  83.   TDlgWindow.HandleEvent;
  84.   if Event.Command=cmSaveData then
  85.    begin
  86.      write(Dat,Adresse);
  87.      DeleteDataRecord;
  88.      SetData(Adresse);
  89.      DrawMask;
  90.      Event.Command:=cmNothing;
  91.      Exit;
  92.    end;
  93.   if Event.Command=cmRight then
  94.    if FilePos(Dat)<FileSize(Dat) then
  95.     begin
  96.       inc(PosIndex);
  97.       ReadDataRecord;
  98.       Exit;
  99.     end;
  100.   if Event.Command=cmLeft then
  101.    if PosIndex>0 then
  102.     begin
  103.       dec(PosIndex);
  104.       ReadDataRecord;
  105.       Exit;
  106.     end;
  107. end;
  108.  
  109. END.
  110.