home *** CD-ROM | disk | FTP | other *** search
/ DOS Wares / doswares.zip / doswares / DATABASE / DBASE4NL / SAMPLES.ZIP / VRPLVENS.PRG < prev    next >
Encoding:
Text File  |  1993-05-18  |  3.9 KB  |  109 lines

  1. PROCEDURE Vrplvens
  2. *--------------------------------------------------------------------
  3. * OMSCHRIJVING
  4. *   MoveWin toont een techniek die het mogelijk maakt een venster met
  5. *   de muis over het scherm te bewegen.
  6. *--------------------------------------------------------------------
  7.  
  8.   SET TRAP OFF
  9.   SET ESCAPE OFF
  10.   SET TALK OFF
  11.   SET CURSOR OFF
  12.   SET COLOR TO W+/B
  13.   SET STATUS OFF
  14.   nRow = 5                              && Bovenste vensterrij
  15.   nCol = 10                             && Linker vensterkolom
  16.   nWidth = 40                           && Vensterbreedte
  17.   nHigh = 10                            && Vensterhoogte
  18.   DEFINE WINDOW Foo FROM nRow, nCol TO nRow + nHigh, nCol + nWidth NONE COLOR n/w
  19.   ACTIVATE WINDOW Foo
  20.   @ 0,0 TO nHigh,nWidth  DOUBLE COLOR w+/w
  21.  
  22.   *------------------------
  23.   *-- 'Venster sluiten' knop
  24.   *------------------------
  25.   @ 0, 2 SAY "[ ]" COLOR w+/w
  26.   @ 0, 3 SAY CHR( 254 ) COLOR g+/w
  27.  
  28.   *--------------------------------
  29.   *-- Toon uitleg over het gebruik
  30.   *--------------------------------
  31.   @ 1,1 SAY " Klik bovenste grens om te verplaatsen,"
  32.   @ 2,1 SAY " nogmaals klikken verankert."
  33.   @ 3,1 SAY " Klik linksboven of gebruik ESC om te"
  34.   @ 4,1 SAY " stoppen."
  35.  
  36.   nMess = 0
  37.   DO WHILE nMess <> 27                  && Lus totdat ESC of sluiten
  38.  
  39.     DO MSDummy                          && Verwijder bij LASTKEY() = -100
  40.                                         && 
  41.     SET CONSOLE OFF
  42.     WAIT                                && Wacht op een muisklik,
  43.     SET CONSOLE ON
  44.     nMess = LASTKEY()                   && Vraag de laatste toets of muis-
  45.                         && klik op
  46.     nMRow = MROW()                      && Neem de rij en kolom van de muis-
  47.                     && positie over
  48.     nMCol = MCOL()
  49.     IF nMess <= -100                    && Bij muisklik
  50.       IF nMRow = nRow                   && Is het de bovenste rij?
  51.         IF nMCol >= nCol + 2 .AND. nMCol <= nCol + 4
  52.           nMess = 27                    && Sluitknop was aangeklikt
  53.         ELSE                            && dus einde lus
  54.           IF nMCol >= nCol .AND. nMCol <= nCol + nWidth
  55.             *-- Begin met verplaatsen van venster
  56.             @ 0,0 TO nHigh,nWidth DOUBLE COLOR w+/w*
  57.             nDelX = nMRow
  58.             nDelY = nMCol
  59.             SET CONSOLE OFF
  60.             WAIT                        && Wacht op de volgende klik
  61.             SET CONSOLE ON
  62.             nMRow = MROW()              && Neem de rij en klom van de muis-
  63.                     && positie over om de nieuwe lokatie
  64.             nMCol = MCOL()              && te bepalen
  65.             nDelX = nMRow - nDelX       && Bepaal het verschil in positie 
  66.             nDelY = nMCol - nDelY       && tussen deze en oude positie
  67.             lMoveOk = .T.               && Foutvlag voor Verplaats Venster- 
  68.                     && opdracht
  69.             ON ERROR lMoveOk = .F.      && Zet deze vlag bij een fout
  70.             MOVE WINDOW Foo BY nDelX, nDelY
  71.             IF lMoveOk                  && Verplaatsen OK?, dan de nieuwe bo-
  72.               nRow = nRow + nDelX       && venste rij en linker kolom coor-
  73.               nCol = nCol + nDelY       && dinaten voor venster bepalen
  74.             ENDIF
  75.             *-- Kader opnieuw tekenen
  76.             @ 0,0 TO nHigh, nWidth DOUBLE COLOR w+/w
  77.             *-- 'Venster sluiten'-knop opnieuw tonen
  78.             @ 0, 2 SAY "[ ]" COLOR w+/w
  79.             @ 0, 3 SAY CHR( 254 ) COLOR g+/w
  80.           ENDIF
  81.         ENDIF
  82.       ENDIF
  83.     ENDIF
  84.   ENDDO
  85.  
  86.   RELEASE WINDOW FOO
  87.   SET CURSOR ON
  88.   SET TRAP ON
  89.   SET ESCAPE ON
  90.   SET TALK ON
  91.  
  92. RETURN
  93. *-- EOP: Vrplvens
  94.  
  95.  
  96. PROCEDURE MSDummy
  97. *----------------------------------------------------------------------
  98. * OMSCHRIJVING
  99. *   Verwijder deze procedure indien LASTKEY() = -100 nadat een muisklik
  100. *   in dBASE is geïmplementeerd.
  101. *--------------------------------------------------------------------
  102.   SET CONSOLE OFF
  103.   KEYBOARD "{Alt-1}"
  104.   WAIT
  105.   SET CONSOLE ON
  106. RETURN
  107. *-- MSDummy
  108.  
  109.