home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Media Share 9
/
MEDIASHARE_09.ISO
/
clarion
/
bigclock.zip
/
BIGCLOCK.CLA
next >
Wrap
Text File
|
1990-09-16
|
4KB
|
109 lines
BIGCLOCK PROGRAM
!===============================================================================
! Here is a simple example of how to use arrays to produce a screen effect. I
! needed a simple technique that would display large numbers without using the
! Graphics LEM. Variations of this technique can be used to produce many kinds
! of numeric displays. Also, this is a good example of how to save Code by
! letting Data (Arrays) do most of the work.
!-------------------------------------------------------------------------------
! This technique is a part of our PTC TOOLKIT for Clarion. Please inquire.
!
! Randy Goodhew 09/15/90
! PROFESSIONAL TECHNOLOGIES CONSULTANTS
! 1005 Madison Avenue
! Covington, Kentucky 41011-3113
! (606)261-6819
!===============================================================================
MAP
PROC(ShowBigClock)
.
SCREEN SCREEN HUE(7,0,0)
ROW(1,1) STRING('<201>'),ENH
COL(2) STRING('<205{11},209,205{14},187>'),ENH
ROW(2,1) REPEAT(3);STRING('<186,0{11},179,0{14},186>'),ENH .
ROW(5,1) STRING('<200,205{11},207,205{14},188>'),ENH
ROW(1,29) STRING('<201,205{50},187>'),HUE(15,1)
ROW(2,29) REPEAT(3);STRING('<186,0{50},186>'),HUE(15,1) .
ROW(5,29) STRING('<200,205{50},188>'),HUE(15,1)
ROW(2,3) STRING('<201,205,203,205,203,205,203,205,184>') |
HUE(4,7)
ROW(3,3) STRING('<204,205,188,0,186,0,186>'),HUE(4,7)
ROW(4,3) STRING('<208,0{3},208,0,200,205,190>'),HUE(4,7)
ROW(6,1) REPEAT(19);STRING('<177{80}>') .
ROW(2,2) STRING(' '),HUE(4,7)
COL(12) STRING(' '),HUE(4,7)
COL(14) STRING(' PROFESSIONAL '),HUE(15,4)
COL(30) STRING(' {50}'),HUE(14,1)
ROW(3,2) STRING(' '),HUE(4,7)
COL(6) STRING(' '),HUE(4,7)
COL(8) STRING(' '),HUE(4,7)
COL(10) STRING(' '),HUE(4,7)
COL(14) STRING(' TECHNOLOGIES '),HUE(1,7)
COL(30) STRING(' {8}Demonstration of BigClock Technique {7}')|
HUE(14,1)
ROW(4,2) STRING(' '),HUE(4,7)
COL(4) STRING(' '),HUE(4,7)
COL(8) STRING(' '),HUE(4,7)
COL(12) STRING(' '),HUE(4,7)
COL(14) STRING(' CONSULTANTS '),HUE(15,1)
COL(30) STRING(' {50}'),HUE(14,1)
ROW(25,1) STRING(' {32}Press Esc to Exit {31}'),HUE(4,7)
.
CODE
SETHUE(7,0,0)
BLANK
SETHUE
OPEN(Screen)
LOOP
ShowBigClock(14,27,15,0) !Call Big Clock Procedure
IF KEYCODE() = 256 THEN BREAK. !Exit in Esc Key
LOOP WHILE KEYBOARD() ; ASK . !Clear Keyboard Buffer
END
BEEP
!-------------------------------------------------------------------------------
ShowBigClock PROCEDURE(CRow,CCOL,FG,BG)
CRow BYTE !Clock Row
CCOL BYTE !Clock Column
FG BYTE !ForeGround Color
BG BYTE !BackGround Color
NumbersData GROUP, !Big Numbers Data
STRING('┌─┐ ┐ ┌─┐┌─┐┐ ┌┌─ ┌─┐┌─┐┌─┐┌─┐') ! 1 - 10
STRING('│ │ │ ┌─┘ ─┤└─┼└─┐├─┐ ┌┘├─┤└─┤') !11 - 20
STRING('└─┘ ┴ └─┘└─┘ ┴└─┘└─┘ ┴ └─┘ ┴') !21 - 30
END
NumbersArray STRING(3),DIM(30),OVER(NumbersData) !Big Numbers Array
ClockData GROUP, !Big Clock Data
C1 STRING('┌─┐┌─┐ ┌─┐┌─┐ ┌─┐┌─┐') ! 1 - 8
C2 STRING('│ ││ │ ▀ │ ││ │ ▀ │ ││ │') ! 9 - 16
C3 STRING('└─┘└─┘ ▀ └─┘└─┘ ▀ └─┘└─┘') !17 - 24
END
ClockArray STRING(3),DIM(24),OVER(ClockData) !Big Clock Array
Time STRING(8) !Formatted Time String
J LONG !Loop/Position Counter
Number String(1) !Number Element
CODE
IF OMITTED(1) OR CRow > 23 THEN CRow = 23. !Test for parameters and
IF OMITTED(2) OR CCol > 57 THEN CCol = 57. ! set defaults.
IF OMITTED(3) OR NOT INRANGE(FG,0,31) THEN FG = 7. !
IF OMITTED(4) OR NOT INRANGE(BG,0,7) THEN BG = 0. !
SETHUE(FG,BG)
Time = FORMAT(CLOCK(),@t4) !Get current time
LOOP J = 8 TO 1 BY -1 !Create Big Clock Display
IF J = 6 OR J = 3 THEN CYCLE. !Skip Colons
Number = SUB(Time,J,1) !Extract a number element
ClockArray[J] = NumbersArray[Number+1] !Load Array
ClockArray[J+8] = NumbersArray[Number+11] !
ClockArray[J+16] = NumbersArray[Number+21] !
END !loop
SHOW(CRow,CCol,C1) !Show Big Clock
SHOW(CRow+1,CCol,C2) !
SHOW(CRow+2,CCol,C3) !
SETHUE
RETURN