home *** CD-ROM | disk | FTP | other *** search
- program Beispiel22;
-
- uses GDecl,
- GDrivers,
- GEvent,
- GViews,
- GDlg,
- GApp,
- Graph;
-
-
-
- const cmErfassen = 101;
- cmBlaettern = 102;
-
- cmSaveData = 21;
- cmLeft = 22;
- cmRight = 23;
-
-
- type TApplication=object(TApp)
- procedure InitMenuBar; virtual;
- procedure SetDialogData; virtual;
- procedure HandleEvent; virtual;
- procedure Erfassen(DInput:boolean);
- end;
-
- PAdressWindow=^TAdressWindow;
- TAdressWindow=object(TDlgWindow)
- PosIndex:word;
- constructor Init(var Bounds:TRect;ATitle:str80;AType:byte;DInput:boolean);
- destructor Done; virtual;
- procedure HandleEvent; virtual;
- end;
-
- tAdressData=record
- Schalter : string[9];
- Firma : string[40];
- Ort : string[25];
- Strasse : string[30];
- Telefon : string[20];
- end;
-
- var MyProg:TApplication;
- Adresse:tAdressData;
- Dat : file of tAdressData;
-
- {Implementation TApplication}
-
- procedure TApplication.InitMenuBar;
- begin
- Palette[1]:=#14;
- Palette[5]:=#14;
- Palette[4]:=#4;
- Palette[12]:=#4;
- MainMenu('~F~enster',0);
- SubMenu('~E~rfassen F2',cmErfassen,0,kbF2,false,false);
- SubMenu('~B~lättern F3',cmBlaettern,0,kbF3,false,false);
- SubMenu('E~x~it Alt-X',cmCloseApplication,0,altX,false,false);
- end;
-
- procedure TApplication.SetDialogData;
- begin
- with Adresse do
- begin
- Schalter:='TTTTLLLLS';
- FillChar(Firma,SizeOf(Firma),' ');
- FillChar(Ort,SizeOf(Ort),' ');
- FillChar(Strasse,SizeOf(Strasse),' ');
- FillChar(Telefon,SizeOf(Telefon),' ');
- end;
- end;
-
- procedure TApplication.HandleEvent;
- begin
- Heap^.ShowHeapStatus(523,8,White);
- TProgram.HandleEvent;
- case Event.Command of
- cmErfassen : Erfassen(true);
- cmBlaettern : Erfassen(false);
- end; {case}
- end;
-
-
- procedure TApplication.Erfassen(DInput:boolean);
- var R:TRect;
- Window:PAdressWindow;
- begin
- R.Assign(60,80,440,350);
- Window:=new(PAdressWindow, Init(R,'Beispiel 22 : Mini-Adressdatenbank',
- winDouble+winPanel,DInput));
- with Window^ do
- begin
- SetPushButton(150,220,80,22,'OK',cmCloseWindow);
- SetPushButton(40,220,80,22,'Sichern',cmSaveData);
- if not DInput then SetDisabled;
- SetPushButton(260,220,40,22,'<<',cmLeft);
- if DInput then SetDisabled;
- SetPushButton(310,220,40,22,'>>',cmRight);
- if DInput then SetDisabled;
- SetInputLine(140,95,25,'~F~irma :',40,ASCII);
- if not DInput then SetDisabled;
- SetInputLine(140,120,20,'~O~rt :',25,ASCII);
- if not DInput then SetDisabled;
- SetInputLine(140,145,20,'~S~traße :',30,ASCII);
- if not DInput then SetDisabled;
- SetInputLine(140,170,20,'~T~elefon :',20,ASCII);
- if not DInput then SetDisabled;
- if DInput then SetStaticText(40,35,'Adressenerfassung',LeftText)
- else SetStaticText(40,35,'Blättern in der Datei',LeftText);
- SetTextParameters(TriplexFont,HorizDir,2);
- ChangePalColor(10,Red);
- SetData(Adresse);
- end;
- InsertDesktop(Window);
- end;
-
- {Implementation TAdressWindow}
-
- constructor TAdressWindow.Init(var Bounds:TRect;ATitle:str80;AType:byte;DInput:boolean);
- begin
- TDlgWindow.Init(Bounds,ATitle,AType);
- PosIndex:=0;
- assign(Dat,'ADRESS.DAT');
- reset(Dat);
- if not DInput then
- begin
- read(Dat,Adresse);
- SetData(Adresse);
- end;
- end;
-
- destructor TAdressWindow.Done;
- begin
- TDlgWindow.Done;
- close(Dat);
- end;
-
- procedure TAdressWindow.HandleEvent;
- var k:word;
-
- procedure DeleteDataRecord;
- begin
- with Adresse do
- begin
- FillChar(Firma,SizeOf(Firma),' ');
- FillChar(Ort,SizeOf(Ort),' ');
- FillChar(Strasse,SizeOf(Strasse),' ');
- FillChar(Telefon,SizeOf(Telefon),' ');
- end;
- end;
-
- procedure ReadDataRecord;
- begin
- seek(Dat,PosIndex);
- read(Dat,Adresse);
- SetData(Adresse);
- DrawMask;
- Event.Command:=cmNothing;
- end;
-
- begin
- TDlgWindow.HandleEvent;
- if Event.Command=cmSaveData then
- begin
- write(Dat,Adresse);
- DeleteDataRecord;
- SetData(Adresse);
- DrawMask;
- Event.Command:=cmNothing;
- Exit;
- end;
- if Event.Command=cmRight then
- if FilePos(Dat)<FileSize(Dat) then
- begin
- inc(PosIndex);
- ReadDataRecord;
- Exit;
- end;
- if Event.Command=cmLeft then
- if PosIndex>0 then
- begin
- dec(PosIndex);
- ReadDataRecord;
- Exit;
- end;
- end;
-
-
- {--- Hauptprogramm ---}
-
- begin
- MyProg.Init('Beispiel 22');
- MyProg.Run;
- MyProg.Done;
- end.