home *** CD-ROM | disk | FTP | other *** search
/ CD-ROM Aktiv 1 / CDA1_96.ISO / clipper / fen3d.prg < prev    next >
Text File  |  1996-01-06  |  3KB  |  90 lines

  1. /*
  2.         AVARGUES Jean-Christophe 1995
  3.          12 Rue des Flots
  4.          66000 PERPIGNAN
  5.          FRANCE
  6.          Tel : 68-67-07-90
  7.  
  8.          Compilation : CLIPPER FEN3D /M/N/W/A /DTEST
  9.          Link        : BLINKER FI FEN3D
  10.  
  11. */
  12.  
  13. #ifdef TEST
  14.        FUNCTION MAIN()
  15.                 /*
  16.                 */
  17.                 SETCOLOR("N/N")
  18.                 CLS
  19.                 SETCURSOR(0)
  20.                 SETCOLOR("W+/N")
  21.                 Msg3D(2,"AVARGUES Jean-Christophe","W+/G",{"G+/G","N/G"},0.1,.F.)
  22.                 Fen3D(0,63,15,75,{"BG+/BG","N/BG"})
  23.                 Fen3D(7,17,15,67,{"RB+/RB","N/RB"})
  24.                 Msg3D(21,"Appuyez sur une Touche","W+/B",{"B+/B","N/B"},0,.T.)
  25.                 SETCOLOR("W+/N")
  26.                 @ 24,0 SAY ""
  27.        RETURN(NIL)
  28. #endif
  29.  
  30. FUNCTION Fen3D(nHaut,nGauche,nBas,nDroit,aCoul)
  31.          /*
  32.          Coordonnées de la fenetre.
  33.          aCoul : Tableau des Couleur ( 2 Couleurs )
  34.          ex : {"R+/R","N/R"}     Rouge
  35.               {"G+/G","N/G"}     Vert
  36.               {"B+/B","N/B"}     Bleu
  37.               {"W+/W","N/W"}     Gris
  38.               {"W+/N","W/N"}     Noir
  39.               {"BG+/BG","N/BG"}  Cyan
  40.               {"GR+/GR","N/GR"}  Orange
  41.               {"RB+/RB","N/RB"}  Violet
  42.          */
  43.          DISPBEGIN()
  44.          @ nHaut+1,nGauche+1,nBas-1,nDroit-1 BOX SPACE(9) COLOR aCoul[1]
  45.          Bord(nHaut,nGauche,nBas,nDroit,aCoul,.T.)
  46.          DISPEND()
  47. RETURN(NIL)
  48.  
  49. STATIC FUNCTION Bord(nHaut,nGauche,nBas,nDroit,aCoul,Sens)
  50.        /*
  51.        */
  52.        LOCAL X
  53.        @ nHaut,nGauche+1 SAY REPLICATE("─",nDroit-nGauche-1) COLOR aCoul[ IIF(Sens,1,2) ]
  54.        @ nBas,nGauche+1  SAY REPLICATE("─",nDroit-nGauche-1) COLOR aCoul[ IIF(Sens,2,1)]
  55.        FOR X:=nHaut+1 TO nBas-1
  56.            @ X,nGauche SAY "│" COLOR aCoul[IIF(Sens,1,2)]
  57.            @ X,nDroit  SAY "│" COLOR aCoul[IIF(Sens,2,1)]
  58.        NEXT
  59.        @ nHaut,nGauche SAY "┌" COLOR aCoul[IIF(Sens,1,2)]
  60.        @ nBas,nGauche  SAY "└" COLOR aCoul[IIF(Sens,1,2)]
  61.        @ nHaut,nDroit  SAY "┐" COLOR aCoul[IIF(Sens,2,1)]
  62.        @ nBas,nDroit   SAY "┘" COLOR aCoul[IIF(Sens,2,1)]
  63. RETURN(NIL)
  64.  
  65. FUNCTION Msg3d(nLig,Message,CoulMes,CoulFen,Temps,Efface)
  66.          /*
  67.          */
  68.          LOCAL nHaut,nGauche,nBas,nDroit,MsgEcran
  69.          LOCAL MsgCur:=SetCursor(0)
  70.          LOCAL Sav_Set:=SET(20,"SCREEN")
  71.          nGauche:=(80-LEN(Message))/2
  72.          nHaut  :=nLig-1
  73.          nBas   :=nLig+2
  74.          nDroit :=nGauche+LEN(Message)+3
  75.          MsgEcran:=SaveScreen(nHaut,nGauche-2,nBas,nDroit)
  76.          Fen3D(nHaut,nGauche-2,nBas-1,nDroit-2,CoulFen)
  77.          @ nLig,nGauche SAY Message COLOR CoulMes
  78.          IF Temps!=NIL
  79.             InKey(Temps)
  80.          ENDIF
  81.          IF EFFACE<>.F.
  82.             Bord(nHaut,nGauche-2,nBas-1,nDroit-2,CoulFen,.F.)
  83.             INKEY(.25)
  84.             RESTSCREEN(nHaut,nGauche-2,nBas,nDroit,MsgEcran)
  85.          ENDIF
  86.          SetCursor(MsgCur)
  87.          SET(20,Sav_Set)
  88. RETURN(NIL)
  89.  
  90. /* FIN DU PROGRAMME */