home *** CD-ROM | disk | FTP | other *** search
- PROCEDURE Vrplvens
- *--------------------------------------------------------------------
- * OMSCHRIJVING
- * MoveWin toont een techniek die het mogelijk maakt een venster met
- * de muis over het scherm te bewegen.
- *--------------------------------------------------------------------
-
- SET TRAP OFF
- SET ESCAPE OFF
- SET TALK OFF
- SET CURSOR OFF
- SET COLOR TO W+/B
- SET STATUS OFF
- nRow = 5 && Bovenste vensterrij
- nCol = 10 && Linker vensterkolom
- nWidth = 40 && Vensterbreedte
- nHigh = 10 && Vensterhoogte
- DEFINE WINDOW Foo FROM nRow, nCol TO nRow + nHigh, nCol + nWidth NONE COLOR n/w
- ACTIVATE WINDOW Foo
- @ 0,0 TO nHigh,nWidth DOUBLE COLOR w+/w
-
- *------------------------
- *-- 'Venster sluiten' knop
- *------------------------
- @ 0, 2 SAY "[ ]" COLOR w+/w
- @ 0, 3 SAY CHR( 254 ) COLOR g+/w
-
- *--------------------------------
- *-- Toon uitleg over het gebruik
- *--------------------------------
- @ 1,1 SAY " Klik bovenste grens om te verplaatsen,"
- @ 2,1 SAY " nogmaals klikken verankert."
- @ 3,1 SAY " Klik linksboven of gebruik ESC om te"
- @ 4,1 SAY " stoppen."
-
- nMess = 0
- DO WHILE nMess <> 27 && Lus totdat ESC of sluiten
-
- DO MSDummy && Verwijder bij LASTKEY() = -100
- &&
- SET CONSOLE OFF
- WAIT && Wacht op een muisklik,
- SET CONSOLE ON
- nMess = LASTKEY() && Vraag de laatste toets of muis-
- && klik op
- nMRow = MROW() && Neem de rij en kolom van de muis-
- && positie over
- nMCol = MCOL()
- IF nMess <= -100 && Bij muisklik
- IF nMRow = nRow && Is het de bovenste rij?
- IF nMCol >= nCol + 2 .AND. nMCol <= nCol + 4
- nMess = 27 && Sluitknop was aangeklikt
- ELSE && dus einde lus
- IF nMCol >= nCol .AND. nMCol <= nCol + nWidth
- *-- Begin met verplaatsen van venster
- @ 0,0 TO nHigh,nWidth DOUBLE COLOR w+/w*
- nDelX = nMRow
- nDelY = nMCol
- SET CONSOLE OFF
- WAIT && Wacht op de volgende klik
- SET CONSOLE ON
- nMRow = MROW() && Neem de rij en klom van de muis-
- && positie over om de nieuwe lokatie
- nMCol = MCOL() && te bepalen
- nDelX = nMRow - nDelX && Bepaal het verschil in positie
- nDelY = nMCol - nDelY && tussen deze en oude positie
- lMoveOk = .T. && Foutvlag voor Verplaats Venster-
- && opdracht
- ON ERROR lMoveOk = .F. && Zet deze vlag bij een fout
- MOVE WINDOW Foo BY nDelX, nDelY
- IF lMoveOk && Verplaatsen OK?, dan de nieuwe bo-
- nRow = nRow + nDelX && venste rij en linker kolom coor-
- nCol = nCol + nDelY && dinaten voor venster bepalen
- ENDIF
- *-- Kader opnieuw tekenen
- @ 0,0 TO nHigh, nWidth DOUBLE COLOR w+/w
- *-- 'Venster sluiten'-knop opnieuw tonen
- @ 0, 2 SAY "[ ]" COLOR w+/w
- @ 0, 3 SAY CHR( 254 ) COLOR g+/w
- ENDIF
- ENDIF
- ENDIF
- ENDIF
- ENDDO
-
- RELEASE WINDOW FOO
- SET CURSOR ON
- SET TRAP ON
- SET ESCAPE ON
- SET TALK ON
-
- RETURN
- *-- EOP: Vrplvens
-
-
- PROCEDURE MSDummy
- *----------------------------------------------------------------------
- * OMSCHRIJVING
- * Verwijder deze procedure indien LASTKEY() = -100 nadat een muisklik
- * in dBASE is geïmplementeerd.
- *--------------------------------------------------------------------
- SET CONSOLE OFF
- KEYBOARD "{Alt-1}"
- WAIT
- SET CONSOLE ON
- RETURN
- *-- MSDummy
-