home *** CD-ROM | disk | FTP | other *** search
- {
- here's some code to insert your one personal desktop in TurboVision.
- }
- {$L SBLOGO}
- Procedure Logo; external;
- {
- The only use of this Procedure is to link in the ansi drawing. It's a TP
- Compatible Object File (you can make them With TheDraw). But every video
- dump will do. This drawing should have the dimension 22 * 80.
- }
- Type
- PAnsiBackGround = ^TAnsiBackGround;
- TAnsiBackGround = Object (TBackGround)
- BckGrnd : Pointer;
- { This is the Pointer to your video dump }
-
- Constructor Init (Var Bounds : TRect; APattern : Char);
- Procedure Draw; Virtual;
- end;
-
- Constructor TAnsiBackGround.Init;
- begin
- TBackGround.Init (Bounds, APattern);
- BckGrnd := @Logo;
-
- end;
-
- Procedure TAnsiBackGround.Draw;
- begin
- TView.Draw;
- WriteBuf (0,0, 80, 23, BckGrnd^);
- { The TV buffer Type is nothing more then a dump of the video memory }
-
- end;
-
- Type
- PAnsiDesktop = ^TAnsiDesktop;
- TAnsiDesktop = Object (TDesktop)
- Procedure InitBackGround; Virtual;
- end;
-
- Procedure TAnsiDesktop.InitBackGround;
- Var
- R: TRect;
- AB : PAnsiBackGround;
- begin
- GetExtent(R);
- New (AB, Init(R, #176));
- BackGround := AB;
-
- end;
-
- { Your applications InitDesktop method should look like this : }
-
- Procedure TGenericApp.InitDesktop ;
- Var
- AB : PAnsiDesktop;
- R : TRect;
- begin
- GetExtent(R);
- Inc(R.A.Y);
- Dec(R.B.Y);
- New(AB, Init(R));
- Desktop := AB;
-
- end;
- {
- The only problem With this approach is that it doesn't work in 43 line mode
- since your background covers only 22 lines. if anyone has some nice code
- to move this ansi-picture in an buffer which fills up 43 lines mode I Really
- appreciate it !!
- }