home *** CD-ROM | disk | FTP | other *** search
- {
- ms> Does anybody have a database scroling rutine. When I say a database
- ms> scroling rutine I mean that you have som records which is longer than the
- ms> screen and then you need to scroll up or down to view the rest of it.
-
- ms> In the rutine you should could scroll up and down.
-
- Here is a copy of a sort of generic viewing routine incorporating most of
- the VT100 keyboard commands, including home/end and pgup/pgdn.
- }
-
- Procedure PrintScr;
-
- Type
- GenFile : String[80];
-
- Var
- QuitBrowse : Boolean;
- BalString : String[80];
- M, Lin, Top : Integer;
- Com, Key : Char;
- DtaLen : Word;
- ViewFile : File of GenFile;
-
- Begin
- ClrScr;
- QuitBrowse := False;
- Top := 0;
-
- Assign(ViewFile,'yourfile.txt');
- Reset(ViewFile);
- DtaLen := Filesize(ViewFile) -1;
-
- While Not QuitBrowse Do
- Begin
- For Lin := Top to (Top+24) Do
- Begin
- Seek(ViewFile,Lin);
- Read(ViewFile,LineData);
- RetrLine(DtaHandle,Lin);
- BalString[0] := #80;
- For M := 1 to 80 Do
- BalString[M] := LineData[M];
- QWrite((Lin-Top)+1,1,CfgData.IFo+CfgData.IBa,BalString);
- End;
- Com := ReadKey;
- Case Com Of
- #0:
- Begin
- Key := ReadKey;
- Case Key Of
- #73 : { PgUp }
- Begin
- Top := Top -24;
- If Top < 0 Then Top := 0;
- End;
- #81 : { PgDn }
- Begin
- Top := Top +24;
- If Top > DtaLen Then
- Top := DtaLen;
- End;
- #72 : { Up Arrow }
- Begin
- Dec(Top);
- If Top < 0 Then Top := 0;
- End;
- #80 : { Dn Arrow }
- Begin
- Inc(Top);
- If Top > DtaLen Then
- Top := DtaLen;
- End;
- #119,#132 : { ^Home / ^PgUp }
- Top := 0;
- #117,#118 : { ^End / ^PgDn }
- Begin
- Top := DtaLen -5;
- If Top < 0 Then Top := 0;
- End;
- End; { Case Key }
- End; { Case #0 }
-
- #27: { ESC }
- QuitBrowse := True;
-
- End; { Case Com }
- End;
-
- End; { Procedure PrintScr }
-
-
- You will, of course, need to modify the parameters and such to fit your own
- needs. As a rule, I use this as a pattern for viewing routines, adjusting as
- required for the type of material being displayed.
-
- Good luck,
-
- RB
-