Category : Pascal Source Code
Archive   : TOTDEMO.ZIP
Filename : TBROWSE.PAS

 
Output of file : TBROWSE.PAS contained in archive : TOTDEMO.ZIP
program tot_Browse;

{ This demo program written using substantial portions of the }
{ Technojock Object Toolkit in order to demonstrate how various }
{ objects and their methods can be integrated. }
{ }
{ Copyright 1991 by George L. Butts Small Systems Development }
{ Springfield, Oregon }
{ This and other programs utilizing TOT can be found on }
{ The Buffer Board, a public BBS specializing in support of }
{ programmers at (503) 747-7636 300-14400 Baud 24 hours }

uses
Dos, Crt, totLink, totList, totInput, totDir, totIO1, totFast,
totMsg, Printer, totMisc, totDate, totStr, totWin, totLook;

var
MyScreen : WinObj;
OldX : Byte;
OldY : Byte;
FileList : StrDLLObj;
LineNo : Word;
PageNo : Word;
WinActive : Boolean;
InFile : Text;
Line : String;
RetCode : Integer;
I : Integer;
FName : String;
BrowseList : BrowseLinkObj;
DirWin : DirWinObj;
Result : tAction;

{$F+}
procedure Error_Message( Line : String );
Var
MsgWin : ButtonMessageObj;
begin
With MsgWin do
begin
Init(1,' Error ' );
AddLine('');
AddLine( Line );
AddLine('');
Show;
Done;
end;
end;

Procedure LoadFile( FName : String; Var LList : StrDLLObj );
begin
Assign( InFile , FName );
Reset( InFile );
With LList do
begin
Init;
RetCode := 0;
While (NOT EOF(InFile)) AND (RetCode = 0) do
begin
ReadLn(InFile,Line);
RetCode := Add(Line);
end;
end;
If RetCode = 2
then
Error_Message( 'Unable to Load Entire File' );
Close(InFile);
end;

Procedure SelectFile( Var FName : String; Var Result : tAction );
begin
DirWin.Init;
DirWin.Win^.SetColors(112,112,113,112); { Set the Directory window colors}
DirWin.SetFileDetails('','*.pas',Archive);
With IOTot^ do
begin
SetColLabel(120,113,112,113);
SetColList(63,23,31,127);
SetColField(23,31,23,23);
SetColButton(23,26,31,26);
SetColMsg(116);
end;
Result := DirWin.Go;
If Result = Finished
then
FName := DirWin.GetChosenFile
else
FName := '';
DirWin.Done;
end;

Procedure Display_Date_Time;
begin
with Screen do
begin
SetWinIgnore(true);
WriteAt(2,25,112,FancyDateStr(TodayInJul,False,False));
WriteRight(79,25,112,CurrentTime);
SetWinIgnore(false);
end;
end;

Procedure Display_Interface;
begin
With MyScreen do
begin
LookTot^.SetWindow(112,112,113,113);
Init;
SetSize(1,1,80,25,0);
Setcolors(23,23,23,23);
SetClose(False);
SetRemove(True);
Draw;
With Screen do
begin
CursOff;
Box(1,2,80,24,23,1);
Attrib(1,1,80,1,112);
Attrib(1,25,80,25,112);
WriteBetween(1,80,1,112,'t o t B r o w s e');
end;
end;
end;


Procedure NewPage;
begin
Inc(PageNo);
WriteLn(Lst);
WriteLn(Lst,PadLeft(SetProper(FileName(FName)) + '.' +
SetProper(FileExt(FName)),20,' ') +
PadCenter(FancyDateStr(TodayInJul,True,False),35,' ') +
PadRight(CurrentTime,20,' ') );
WriteLn(Lst,Replicate(75,'_'));
WriteLn(Lst);
LineNo := 4;
end;

Procedure FinishPage;
begin
WriteLn(Lst,Replicate(75,'_'));
WriteLn(Lst,'Small Systems Development' + Replicate(42,' ') + 'Page: '

+ PadRight(IntToStr(PageNo),2,' ') );
WriteLn(Lst,Chr(12));
end;

Procedure Print_Line( Line : String );
begin
Inc(LineNo);
If LineNo = 62
then
begin
FinishPage;
NewPage;
end;
WriteLn(Lst, Squeeze('R',Line,76) );
end;

Procedure Print_File_Listing;
Var
I : Word;
begin
NewPage;
With FileList do
begin
For I := 1 to TotalNodes do
Print_Line( GetStr(NodePtr(I),0,0) );
end;
For I := LineNo to 61 do
WriteLn(Lst);
FinishPage;
end;

Procedure KeyPressedProcedure( Var KeyVal : Word );
begin
Case KeyVal of
317 : begin { F3 - Load a different File }
SelectFile( FName , Result );
If Result = Finished
then
begin
LoadFile( FName , FileList );
BrowseList.AssignList(FileList);
BrowseList.SetTopPick(2);
KeyVal := 329;
end;
end;
321 : begin { F7 - Print File }
Print_File_Listing;
end;
end;
end;
{$F-}


begin
OldX := WhereX;
OldY := WhereY;
PageNo := 0;
LineNo := 0;
Key.AssignIdleHook( Display_Date_Time );
Key.setFast;
Shadowtot^.SetShadowSize(0,0);
Display_Interface;
SelectFile( FNAme , Result );
If FName <> ''
then
begin
LoadFile( FName , FileList );
Key.AssignPressedHook( KeypressedProcedure );
With BrowseList do
begin
Init;
Win^.SetAllowStretch(False);
Win^.SetBoundary(1,2,80,24);
Win^.SetSize(1,2,80,24,1);
Win^.SetMinSize(80,23);
Win^.SetColors(31,31,31,18);
AssignList( FileList );
Go;
Done;
end;
FileList.Done;
end;
MyScreen.Done;
ResetStartUpMode;
end.


  3 Responses to “Category : Pascal Source Code
Archive   : TOTDEMO.ZIP
Filename : TBROWSE.PAS

  1. Very nice! Thank you for this wonderful archive. I wonder why I found it only now. Long live the BBS file archives!

  2. This is so awesome! 😀 I’d be cool if you could download an entire archive of this at once, though.

  3. But one thing that puzzles me is the “mtswslnkmcjklsdlsbdmMICROSOFT” string. There is an article about it here. It is definitely worth a read: http://www.os2museum.com/wp/mtswslnk/