// ==================================================================== // Mystic BBS Software Copyright 1997-2013 By James Coyle // ==================================================================== // // This file is part of Mystic BBS. // // Mystic BBS is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation, either version 3 of the License, or // (at your option) any later version. // // Mystic BBS is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with Mystic BBS. If not, see . // // ==================================================================== // ========================================================================= // TESTBOX.MPS : MPL example of using the ANSI box class functions // ========================================================================= Procedure SetBoxDefaults (Handle: LongInt; Header: String); Begin // Mystic boxes default to the grey 3D style boxes used in the // configuration, but you can change all aspects of them if you want // to using the functions below. If Header <> '' Then BoxHeader (Handle, // Box class handle 0, // Header justify (0=center, 1=left, 2=right) 31, // Header attribute Header); // Header text // Available Box Frame types: // // 1 = ÚÄ¿³³ÀÄÙ // 2 = ÉÍ»ººÈͼ // 3 = ÖÄ·ººÓĽ // 4 = Õ͸³³Ô; // 5 = ÛßÛÛÛÛÜÛ // 6 = ÛßÜÛÛßÜÛ // 7 = // 8 = .-.||`-' // Box shadows (if enabled) will actually read the characters under them // and shade them using the shadow attribute. BoxOptions (Handle, // Box class handle 2, // Box frame type (1-8) False, // Use "3D" box shading effect 8, // Box attribute 8, // Box 3D effect attr1 (if on) 8, // Box 3D effect attr2 (if on) 8, // Box 3D effect attr3 (if on) True, // Use box shadowing 112); // Box shadow attribute End; Var BoxHandle : LongInt; Begin PurgeInput; ClrScr; WriteXY (20, 5, 12, 'This is a line of text that will have a window'); WriteXY (20, 6, 12, 'drawn over top of it. Press a key to draw a box'); ReadKey; ClassCreate (BoxHandle, 'box'); BoxOpen (BoxHandle, // Box class handle 20, // top X corner of box 5, // top Y corner of box 60, // bottom X corner of box 10); // bottom Y corner of box WriteXY (1, 1, 15, 'Press any key to close the box'); WriteXY (1, 2, 15, 'The screen contents under the box will be restored!'); ReadKey; // Closing a box will restore what was "under" it on the screen before the // box was created. You do not HAVE to close boxes if you dont want to. BoxClose (BoxHandle); WriteXY (1, 11, 11, 'Now lets change the box values. Press a key'); ReadKey; // Now lets change the defaults to the box and open another one SetBoxDefaults (BoxHandle, ' My Window Header '); BoxOpen (BoxHandle, 20, 5, 60, 10); ReadKey; BoxClose (BoxHandle); ClassFree (BoxHandle); WriteXY (1, 14, 10, 'Pretty cool huh? Press a key to exit.'); ReadKey; End.