2012-04-18 15:14 UTC+0200 Viktor Szakats (harbour syenar.net)
* contrib/xhb/hblognet.prg
* contrib/hbssl/tests/test.prg
* tests/server.prg
! replaced hb_inetCRLF() with CRLF literals (via macro or variable)
now it's not used anywhere in Harbour SVN
* tests/parseini.prg
* tests/sbartest.prg
* tests/server.prg
* tests/ac_test.prg
* tests/mousetst.prg
* formatting
* deleted legacy comments (*)
This commit is contained in:
@@ -16,6 +16,21 @@
|
||||
The license applies to all entries newer than 2009-04-28.
|
||||
*/
|
||||
|
||||
2012-04-18 15:14 UTC+0200 Viktor Szakats (harbour syenar.net)
|
||||
* contrib/xhb/hblognet.prg
|
||||
* contrib/hbssl/tests/test.prg
|
||||
* tests/server.prg
|
||||
! replaced hb_inetCRLF() with CRLF literals (via macro or variable)
|
||||
now it's not used anywhere in Harbour SVN
|
||||
|
||||
* tests/parseini.prg
|
||||
* tests/sbartest.prg
|
||||
* tests/server.prg
|
||||
* tests/ac_test.prg
|
||||
* tests/mousetst.prg
|
||||
* formatting
|
||||
* deleted legacy comments (*)
|
||||
|
||||
2012-04-18 04:39 UTC+0200 Viktor Szakats (harbour syenar.net)
|
||||
* contrib/hbcurl/hbcurl.ch
|
||||
* contrib/hbcurl/core.c
|
||||
|
||||
@@ -11,6 +11,8 @@
|
||||
|
||||
#include "hbssl.ch"
|
||||
|
||||
#define CRLF Chr( 13 ) + Chr( 10 )
|
||||
|
||||
PROCEDURE Main()
|
||||
LOCAL ssl_ctx
|
||||
LOCAL ssl
|
||||
@@ -33,7 +35,7 @@ PROCEDURE Main()
|
||||
? "INETCONN", hb_inetConnect( "www.fortify.net", 80, socket )
|
||||
? "INETERR", hb_inetErrorCode( socket )
|
||||
? "INETFD", hb_inetFD( socket )
|
||||
? "INETSEND", hb_inetSend( socket, "GET / http/1.1" + hb_inetCRLF() + "Host: " + "www.syenar.net" + hb_inetCRLF() + hb_inetCRLF() )
|
||||
? "INETSEND", hb_inetSend( socket, "GET / http/1.1" + CRLF + "Host: " + "syenar.net" + CRLF + CRLF )
|
||||
? "INETERR", hb_inetErrorCode( socket )
|
||||
buffer := Space( 1024 )
|
||||
? "INETRECVALL", hb_inetRecvAll( socket, @buffer, Len( buffer ) )
|
||||
@@ -93,7 +95,7 @@ PROCEDURE Main()
|
||||
? "SSL_CIPHER_GET_BITS" , SSL_CIPHER_GET_BITS( cipher, @bits ), bits
|
||||
? "SSL_CIPHER_DESCRIPTION", SSL_CIPHER_DESCRIPTION( cipher )
|
||||
|
||||
? "SSL_WRITE", tmp := SSL_WRITE( ssl, "GET / http/1.1" + hb_inetCRLF() + "Host: " + "www.fortify.net" + hb_inetCRLF() + hb_inetCRLF() )
|
||||
? "SSL_WRITE", tmp := SSL_WRITE( ssl, "GET / http/1.1" + CRLF + "Host: " + "www.fortify.net" + CRLF + CRLF )
|
||||
? "SSL_GET_ERROR", SSL_GET_ERROR( ssl, tmp )
|
||||
buffer := Space( 1024 )
|
||||
? "SSL_READ", tmp := SSL_READ( ssl, @buffer )
|
||||
|
||||
@@ -52,6 +52,8 @@
|
||||
#include "hbclass.ch"
|
||||
#include "common.ch"
|
||||
|
||||
#define CRLF Chr( 13 ) + Chr( 10 )
|
||||
|
||||
#define HB_THREAD_SUPPORT
|
||||
|
||||
CLASS HB_LogEmail FROM HB_LogChannel
|
||||
@@ -139,34 +141,34 @@ METHOD Send( nStyle, cMessage, cName, nPriority ) CLASS HB_LogEmail
|
||||
RETURN .F.
|
||||
ENDIF
|
||||
|
||||
hb_inetSendAll( skCon, "HELO " + ::cHelo + hb_inetCRLF() )
|
||||
hb_inetSendAll( skCon, "HELO " + ::cHelo + CRLF )
|
||||
IF ! ::GetOk( skCon )
|
||||
RETURN .F.
|
||||
ENDIF
|
||||
|
||||
hb_inetSendAll( skCon, "MAIL FROM: <" + ::cAddress +">" + hb_inetCRLF() )
|
||||
hb_inetSendAll( skCon, "MAIL FROM: <" + ::cAddress +">" + CRLF )
|
||||
IF ! ::GetOk( skCon )
|
||||
RETURN .F.
|
||||
ENDIF
|
||||
|
||||
hb_inetSendAll( skCon, "RCPT TO: <" + ::cSendTo +">" + hb_inetCRLF() )
|
||||
hb_inetSendAll( skCon, "RCPT TO: <" + ::cSendTo +">" + CRLF )
|
||||
IF ! ::GetOk( skCon )
|
||||
RETURN .F.
|
||||
ENDIF
|
||||
|
||||
hb_inetSendAll( skCon, "DATA" + hb_inetCRLF() )
|
||||
hb_inetSendAll( skCon, "DATA" + CRLF )
|
||||
IF ! ::GetOk( skCon )
|
||||
RETURN .F.
|
||||
ENDIF
|
||||
|
||||
cMessage := ::Prepare( nStyle, cMessage, cName, nPriority )
|
||||
|
||||
hb_inetSendAll( skCon, cMessage + hb_inetCRLF() + "." + hb_inetCRLF() )
|
||||
hb_inetSendAll( skCon, cMessage + CRLF + "." + CRLF )
|
||||
IF ! ::GetOk( skCon )
|
||||
RETURN .F.
|
||||
ENDIF
|
||||
|
||||
hb_inetSendAll( skCon, "QUIT" + hb_inetCRLF() )
|
||||
hb_inetSendAll( skCon, "QUIT" + CRLF )
|
||||
|
||||
RETURN ::GetOk( skCon ) // if quit fails, the mail does not go!
|
||||
|
||||
@@ -185,18 +187,18 @@ RETURN .T.
|
||||
|
||||
METHOD Prepare( nStyle, cMessage, cName, nPriority ) CLASS HB_LogEmail
|
||||
LOCAL cPre
|
||||
cPre := "FROM: " + ::cAddress + hb_inetCRLF() + ;
|
||||
"TO: " + ::cSendTo + hb_inetCRLF() +;
|
||||
"Subject:" + ::cSubject + hb_inetCRLF() + hb_inetCRLF()
|
||||
cPre := "FROM: " + ::cAddress + CRLF + ;
|
||||
"TO: " + ::cSendTo + CRLF +;
|
||||
"Subject:" + ::cSubject + CRLF + CRLF
|
||||
|
||||
IF ! Empty( ::cPrefix )
|
||||
cPre += ::cPrefix + hb_inetCRLF() + hb_inetCRLF()
|
||||
cPre += ::cPrefix + CRLF + CRLF
|
||||
ENDIF
|
||||
|
||||
cPre += ::Format( nStyle, cMessage, cName, nPriority )
|
||||
|
||||
IF ! Empty( ::cPostfix )
|
||||
cPre += hb_inetCRLF() +hb_inetCRLF() + ::cPostfix + hb_inetCRLF()
|
||||
cPre += CRLF +CRLF + ::cPostfix + CRLF
|
||||
ENDIF
|
||||
|
||||
RETURN cPre
|
||||
@@ -318,7 +320,7 @@ METHOD Send( nStyle, cMessage, cName, nPriority ) CLASS HB_LogInetPort
|
||||
nCount := 1
|
||||
DO WHILE nCount <= Len( ::aListeners )
|
||||
sk := ::aListeners[ nCount ]
|
||||
hb_inetSendAll( sk, cMessage + hb_inetCRLF() )
|
||||
hb_inetSendAll( sk, cMessage + CRLF )
|
||||
// if there is an error, we remove the listener
|
||||
IF hb_inetErrorCode( sk ) != 0
|
||||
ADel( ::aListeners, nCount )
|
||||
|
||||
@@ -180,7 +180,7 @@ aPermits[ 34 ] := .F.
|
||||
nChoice := achoice( 5, 10, 20, 70, aPrompts, aPermits, "cUserFunction" )
|
||||
|
||||
setpos( 0, 0 )
|
||||
* clear screen
|
||||
// clear screen
|
||||
? nChoice
|
||||
|
||||
if nChoice > 0
|
||||
|
||||
@@ -1,32 +1,34 @@
|
||||
//
|
||||
// $Id$
|
||||
//
|
||||
/*
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
/*
|
||||
* Copyright 2000 Alejandro de Garate <alex_degarate@hotmail.com>
|
||||
*
|
||||
* Test mouse for Harbour
|
||||
*/
|
||||
*/
|
||||
|
||||
#include "inkey.ch"
|
||||
|
||||
PROCEDURE main()
|
||||
LOCAL nR := 5, nC := 38
|
||||
|
||||
LOCAL nR := 5, nC := 38
|
||||
|
||||
SET CURSOR OFF
|
||||
? "."; CLS
|
||||
IF ! MPRESENT()
|
||||
IF ! MPresent()
|
||||
? " No mouse present !"
|
||||
QUIT
|
||||
ENDIF
|
||||
|
||||
@ 0, 0 TO MAXROW(),MAXCOL() DOUBLE
|
||||
@ MAXROW()-2, 0 TO MAXROW(), 18 DOUBLE
|
||||
@ MAXROW()-1,02 SAY "Y:"
|
||||
@ MAXROW()-1,10 SAY "X:"
|
||||
@ 0, 0 TO MaxRow(), MaxCol() DOUBLE
|
||||
@ MaxRow() - 2, 0 TO MaxRow(), 18 DOUBLE
|
||||
@ MaxRow() - 1, 2 SAY "Y:"
|
||||
@ MaxRow() - 1, 10 SAY "X:"
|
||||
|
||||
@ nR , 02 SAY "Mouse Type : "
|
||||
@ nR+1, 02 SAY "Buttons number: "
|
||||
@ nR+1, 18 SAY NUMBUTTONS() PICT "9"
|
||||
@ nR , 2 SAY "Mouse Type : "
|
||||
@ nR + 1, 2 SAY "Buttons number: "
|
||||
@ nR + 1, 18 SAY NUMBUTTONS() PICT "9"
|
||||
|
||||
IF NUMBUTTONS() == 2
|
||||
@ nR, 18 SAY "Micros*ft mouse"
|
||||
@@ -34,8 +36,8 @@ LOCAL nR := 5, nC := 38
|
||||
@ nR, 18 SAY "Mouse System"
|
||||
ENDIF
|
||||
|
||||
@ MAXROW()-2,68 TO MAXROW(),MAXCOL() DOUBLE
|
||||
@ MAXROW()-1,70 SAY "Exit"
|
||||
@ MaxRow() - 2, 68 TO MaxRow(), MaxCol() DOUBLE
|
||||
@ MaxRow() - 1, 70 SAY "Exit"
|
||||
|
||||
@ 10, 02 SAY " -- Checkings -- "
|
||||
@ 11, 02 SAY "Window Boundaries :"
|
||||
@@ -47,222 +49,220 @@ LOCAL nR := 5, nC := 38
|
||||
|
||||
TEST2( nR, nC )
|
||||
|
||||
@ 24,0 SAY ""
|
||||
@ 24, 0 SAY ""
|
||||
|
||||
SET CURSOR ON
|
||||
?
|
||||
RETURN
|
||||
SET CURSOR ON
|
||||
?
|
||||
|
||||
RETURN
|
||||
|
||||
******************
|
||||
FUNCTION MUPDATE()
|
||||
@ MAXROW()-1,04 SAY MROW() PICT "9999"
|
||||
@ MAXROW()-1,12 SAY MCOL() PICT "9999"
|
||||
RETURN 0
|
||||
|
||||
@ MaxRow() - 1, 04 SAY MRow() PICT "9999"
|
||||
@ MaxRow() - 1, 12 SAY MCol() PICT "9999"
|
||||
|
||||
*********************************************
|
||||
FUNCTION MINRECT( nTop, nLeft, nBott, nRight)
|
||||
LOCAL lInside := .F.
|
||||
IF MROW() >= nTop .AND. MROW() <= nBott
|
||||
IF MCOL() >= nLeft .AND. MCOL() <= nRight
|
||||
lInside := .T.
|
||||
RETURN 0
|
||||
|
||||
FUNCTION MINRECT( nTop, nLeft, nBott, nRight )
|
||||
|
||||
LOCAL lInside := .F.
|
||||
|
||||
IF MRow() >= nTop .AND. MRow() <= nBott
|
||||
IF MCol() >= nLeft .AND. MCol() <= nRight
|
||||
lInside := .T.
|
||||
ENDIF
|
||||
ENDIF
|
||||
ENDIF
|
||||
|
||||
RETURN( lInside )
|
||||
RETURN lInside
|
||||
|
||||
// First test: Check the boundaries of the main window
|
||||
|
||||
|
||||
***************
|
||||
PROCEDURE TEST1
|
||||
* First test: Check the boundaries of the main window
|
||||
LOCAL nKey
|
||||
|
||||
@ MAXROW()-3,25 SAY "Move the cursor until the UPPER side "
|
||||
LOCAL nKey
|
||||
|
||||
@ MaxRow() - 3, 25 SAY "Move the cursor until the UPPER side "
|
||||
MUPDATE()
|
||||
|
||||
WHILE (nKey := INKEY( 0, INKEY_ALL )) != K_TAB
|
||||
DO WHILE ( nKey := Inkey( 0, INKEY_ALL ) ) != K_TAB
|
||||
MUPDATE()
|
||||
IF nKey == K_MOUSEMOVE
|
||||
IF MROW() < 1
|
||||
IF MRow() < 1
|
||||
EXIT
|
||||
ENDIF
|
||||
CHECKEXIT()
|
||||
ENDIF
|
||||
END WHILE
|
||||
ENDDO
|
||||
|
||||
@ MAXROW()-3,25 SAY "Move the cursor until the BOTTOM side "
|
||||
@ MaxRow() - 3, 25 SAY "Move the cursor until the BOTTOM side "
|
||||
|
||||
WHILE (nKey := INKEY( 0, INKEY_ALL )) != K_TAB
|
||||
DO WHILE ( nKey := Inkey( 0, INKEY_ALL ) ) != K_TAB
|
||||
MUPDATE()
|
||||
IF nKey == K_MOUSEMOVE
|
||||
IF MROW() > MAXROW()-1
|
||||
IF MRow() > MaxRow() - 1
|
||||
EXIT
|
||||
ENDIF
|
||||
CHECKEXIT()
|
||||
ENDIF
|
||||
END WHILE
|
||||
ENDDO
|
||||
|
||||
|
||||
@ MAXROW()-3,25 SAY "Move the cursor until the LEFT side "
|
||||
@ MaxRow() - 3, 25 SAY "Move the cursor until the LEFT side "
|
||||
|
||||
WHILE (nKey := INKEY( 0, INKEY_ALL )) != K_TAB
|
||||
DO WHILE ( nKey := Inkey( 0, INKEY_ALL ) ) != K_TAB
|
||||
MUPDATE()
|
||||
IF nKey == K_MOUSEMOVE
|
||||
IF MCOL() < 1
|
||||
IF MCol() < 1
|
||||
EXIT
|
||||
ENDIF
|
||||
CHECKEXIT()
|
||||
ENDIF
|
||||
END WHILE
|
||||
ENDDO
|
||||
|
||||
|
||||
@ MAXROW()-3,25 SAY "Move the cursor until the RIGHT side "
|
||||
@ MaxRow() - 3, 25 SAY "Move the cursor until the RIGHT side "
|
||||
|
||||
WHILE (nKey := INKEY( 0, INKEY_ALL )) != K_TAB
|
||||
DO WHILE ( nKey := Inkey( 0, INKEY_ALL ) ) != K_TAB
|
||||
MUPDATE()
|
||||
IF nKey == K_MOUSEMOVE
|
||||
IF MCOL() > MAXCOL()-1
|
||||
IF MCol() > MaxCol() - 1
|
||||
EXIT
|
||||
ENDIF
|
||||
CHECKEXIT()
|
||||
ENDIF
|
||||
END WHILE
|
||||
ENDDO
|
||||
|
||||
@ MAXROW()-3,20 SAY SPACE(50)
|
||||
@ 11, 22 SAY "Pass"
|
||||
RETURN
|
||||
@ MaxRow() - 3, 20 SAY Space( 50 )
|
||||
@ 11, 22 SAY "Pass"
|
||||
|
||||
RETURN
|
||||
|
||||
// Second test: check the button pressing
|
||||
|
||||
************************
|
||||
PROCEDURE TEST2 (nR, nC)
|
||||
* Second test: check the button pressing
|
||||
PROCEDURE TEST2 ( nR, nC )
|
||||
|
||||
LOCAL cSkip := "", nKey, nPress := 0
|
||||
LOCAL cSkip := "", nKey, nPress := 0
|
||||
|
||||
@ nR ,nC SAY "ÚÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄ¿"
|
||||
@ nR+ 1,nC SAY "³ ÉÍÍÍ» ÉÍÍÍ» ³"
|
||||
@ nR+ 2,nC SAY "³ º º º º ³"
|
||||
@ nR+ 3,nC SAY "³ º º º º ³"
|
||||
@ nR+ 4,nC SAY "³ ÈÍÍͼ ÈÍÍͼ ³"
|
||||
@ nR+ 5,nC SAY "ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´"
|
||||
@ nR+ 6,nC SAY "³ Up Up ³"
|
||||
@ nR+ 7,nC SAY "³ ³"
|
||||
@ nR+ 8,nC SAY "³ ³"
|
||||
@ nR+ 9,nC SAY "³ Harbour ³"
|
||||
@ nR+10,nC SAY "³ mouse ³"
|
||||
@ nR+11,nC SAY "ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ"
|
||||
@ nR , nC SAY "ÚÄÄÄÄÄÄÄÄÄÁÄÄÄÄÄÄÄÄÄ¿"
|
||||
@ nR + 1, nC SAY "³ ÉÍÍÍ» ÉÍÍÍ» ³"
|
||||
@ nR + 2, nC SAY "³ º º º º ³"
|
||||
@ nR + 3, nC SAY "³ º º º º ³"
|
||||
@ nR + 4, nC SAY "³ ÈÍÍͼ ÈÍÍͼ ³"
|
||||
@ nR + 5, nC SAY "ÃÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ´"
|
||||
@ nR + 6, nC SAY "³ Up Up ³"
|
||||
@ nR + 7, nC SAY "³ ³"
|
||||
@ nR + 8, nC SAY "³ ³"
|
||||
@ nR + 9, nC SAY "³ Harbour ³"
|
||||
@ nR + 10, nC SAY "³ mouse ³"
|
||||
@ nR + 11, nC SAY "ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ"
|
||||
|
||||
IF NUMBUTTONS() == 3
|
||||
@ nR+ 1,nC SAY "³ ÉÍÍÍ» ÉÍÍÍ» ÉÍÍÍ» ³"
|
||||
@ nR+ 2,nC SAY "³ º º º º º º ³"
|
||||
@ nR+ 3,nC SAY "³ º º º º º º ³"
|
||||
@ nR+ 4,nC SAY "³ ÈÍÍͼ ÈÍÍͼ ÈÍÍͼ ³"
|
||||
@ nR+ 6,nC SAY "³ Up Up Up ³"
|
||||
@ nR + 1, nC SAY "³ ÉÍÍÍ» ÉÍÍÍ» ÉÍÍÍ» ³"
|
||||
@ nR + 2, nC SAY "³ º º º º º º ³"
|
||||
@ nR + 3, nC SAY "³ º º º º º º ³"
|
||||
@ nR + 4, nC SAY "³ ÈÍÍͼ ÈÍÍͼ ÈÍÍͼ ³"
|
||||
@ nR + 6, nC SAY "³ Up Up Up ³"
|
||||
ENDIF
|
||||
|
||||
SET(_SET_EVENTMASK, INKEY_ALL)
|
||||
Set( _Set_EVENTMASK, INKEY_ALL )
|
||||
|
||||
IF ! EMPTY( cSkip )
|
||||
IF UPPER( cSkip ) == "BREAK"
|
||||
SETCANCEL( .T. )
|
||||
IF ! Empty( cSkip )
|
||||
IF Upper( cSkip ) == "BREAK"
|
||||
SetCancel( .T. )
|
||||
ELSE
|
||||
SETCANCEL( .F. )
|
||||
SetCancel( .F. )
|
||||
END IF
|
||||
END IF
|
||||
|
||||
MUPDATE()
|
||||
|
||||
WHILE (nKey := INKEY( 0, INKEY_ALL )) != K_TAB
|
||||
WHILE ( nKey := Inkey( 0, INKEY_ALL ) ) != K_TAB
|
||||
|
||||
DO CASE
|
||||
CASE nKey == K_MOUSEMOVE
|
||||
* mouse has been moved
|
||||
IF MINRECT( 19, 40, 22, 60)
|
||||
MHIDE()
|
||||
ELSE
|
||||
MSHOW()
|
||||
ENDIF
|
||||
CHECKEXIT()
|
||||
MUPDATE()
|
||||
CASE nKey == K_MOUSEMOVE
|
||||
// mouse has been moved
|
||||
IF MINRECT( 19, 40, 22, 60 )
|
||||
MHide()
|
||||
ELSE
|
||||
MShow()
|
||||
ENDIF
|
||||
CHECKEXIT()
|
||||
MUPDATE()
|
||||
|
||||
CASE nKey == K_LBUTTONDOWN
|
||||
* Left mouse button was pushed
|
||||
@ nR+2,nC+3 SAY "°°°"
|
||||
@ nR+3,nC+3 SAY "°°°"
|
||||
@ nR+6,nC+3 SAY "Down"
|
||||
nPress ++
|
||||
CASE nKey == K_LBUTTONDOWN
|
||||
// Left mouse button was pushed
|
||||
@ nR + 2, nC + 3 SAY "°°°"
|
||||
@ nR + 3, nC + 3 SAY "°°°"
|
||||
@ nR + 6, nC + 3 SAY "Down"
|
||||
nPress ++
|
||||
|
||||
CASE nKey == K_LBUTTONUP
|
||||
* Left mouse button was released
|
||||
@ nR+2,nC+3 SAY " "
|
||||
@ nR+3,nC+3 SAY " "
|
||||
@ nR+6,nC+3 SAY "Up "
|
||||
CASE nKey == K_LBUTTONUP
|
||||
// Left mouse button was released
|
||||
@ nR + 2, nC + 3 SAY " "
|
||||
@ nR + 3, nC + 3 SAY " "
|
||||
@ nR + 6, nC + 3 SAY "Up "
|
||||
|
||||
CASE nKey == K_MBUTTONDOWN
|
||||
* Middle mouse button was pushed
|
||||
@ nR+2,nC+10 SAY "°°°"
|
||||
@ nR+3,nC+10 SAY "°°°"
|
||||
@ nR+6,nC+10 SAY "Down"
|
||||
nPress ++
|
||||
CASE nKey == K_MBUTTONDOWN
|
||||
// Middle mouse button was pushed
|
||||
@ nR + 2, nC + 10 SAY "°°°"
|
||||
@ nR + 3, nC + 10 SAY "°°°"
|
||||
@ nR + 6, nC + 10 SAY "Down"
|
||||
nPress ++
|
||||
|
||||
CASE nKey == K_MBUTTONUP
|
||||
* Middle mouse button was released
|
||||
@ nR+6,nC+10 SAY "Up "
|
||||
CASE nKey == K_MBUTTONUP
|
||||
// Middle mouse button was released
|
||||
@ nR + 6, nC + 10 SAY "Up "
|
||||
|
||||
CASE nKey == K_RBUTTONDOWN
|
||||
* Right mouse button was pushed
|
||||
@ nR+2,nC+15 SAY "°°°"
|
||||
@ nR+3,nC+15 SAY "°°°"
|
||||
@ nR+6,nC+15 SAY "Down"
|
||||
nPress ++
|
||||
CASE nKey == K_RBUTTONDOWN
|
||||
// Right mouse button was pushed
|
||||
@ nR + 2, nC + 15 SAY "°°°"
|
||||
@ nR + 3, nC + 15 SAY "°°°"
|
||||
@ nR + 6, nC + 15 SAY "Down"
|
||||
nPress ++
|
||||
|
||||
CASE nKey == K_RBUTTONUP
|
||||
* Right mouse button was released
|
||||
@ nR+2,nC+15 SAY " "
|
||||
@ nR+3,nC+15 SAY " "
|
||||
@ nR+6,nC+15 SAY "Up "
|
||||
CASE nKey == K_RBUTTONUP
|
||||
// Right mouse button was released
|
||||
@ nR + 2, nC + 15 SAY " "
|
||||
@ nR + 3, nC + 15 SAY " "
|
||||
@ nR + 6, nC + 15 SAY "Up "
|
||||
|
||||
CASE nKey == K_LDBLCLK
|
||||
* "The left mouse button was double-clicked."
|
||||
@ 13, 22 SAY "Pass"
|
||||
CASE nKey == K_LDBLCLK
|
||||
// "The left mouse button was double-clicked."
|
||||
@ 13, 22 SAY "Pass"
|
||||
|
||||
CASE nKey == K_RDBLCLK
|
||||
* "The right mouse button was double-clicked."
|
||||
@ 14, 22 SAY "Pass"
|
||||
CASE nKey == K_RDBLCLK
|
||||
// "The right mouse button was double-clicked."
|
||||
@ 14, 22 SAY "Pass"
|
||||
|
||||
OTHERWISE
|
||||
@ MAXROW(),20 SAY "A keyboard key was pressed: "
|
||||
@ MAXROW(),48 SAY nKey
|
||||
@ MAXROW(),58 SAY iif( nKey >= 32 .AND. nKey <= 255, CHR( nKey ), "" )
|
||||
@ MaxRow(), 20 SAY "A keyboard key was pressed: "
|
||||
@ MaxRow(), 48 SAY nKey
|
||||
@ MaxRow(), 58 SAY iif( nKey >= 32 .AND. nKey <= 255, Chr( nKey ), "" )
|
||||
END CASE
|
||||
|
||||
IF nPress > 6
|
||||
EXIT
|
||||
ENDIF
|
||||
|
||||
END WHILE
|
||||
ENDDO
|
||||
|
||||
@ MAXROW()-3,20 SAY SPACE(50)
|
||||
@ MaxRow() - 3, 20 SAY Space( 50 )
|
||||
@ 12, 22 SAY "Pass"
|
||||
|
||||
SET CURSOR ON
|
||||
|
||||
@ 20,01 SAY "MOUSE TEST FINISH!"
|
||||
@ 20, 01 SAY "MOUSE TEST FINISH!"
|
||||
?
|
||||
RETURN
|
||||
|
||||
|
||||
|
||||
RETURN
|
||||
|
||||
PROCEDURE CHECKEXIT()
|
||||
IF ! MINRECT( MAXROW()-2, MAXCOL()-11, MAXROW(), MAXCOL() )
|
||||
RETURN
|
||||
ENDIF
|
||||
SET CURSOR ON
|
||||
CLS
|
||||
? "MOUSE TEST FINISH!"
|
||||
?
|
||||
QUIT
|
||||
|
||||
IF ! MINRECT( MaxRow() - 2, MaxCol() - 11, MaxRow(), MaxCol() )
|
||||
RETURN
|
||||
ENDIF
|
||||
SET CURSOR ON
|
||||
CLS
|
||||
? "MOUSE TEST FINISH!"
|
||||
?
|
||||
QUIT
|
||||
|
||||
@@ -2,32 +2,33 @@
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
******************************************************************
|
||||
* Test for Ini file reading/writing
|
||||
*
|
||||
* Giancarlo Niccolai
|
||||
*
|
||||
/******************************************************************
|
||||
* Test for Ini file reading/writing
|
||||
*
|
||||
* Giancarlo Niccolai
|
||||
*/
|
||||
|
||||
PROCEDURE Main( cName )
|
||||
|
||||
LOCAL hIni, aSect, cIni
|
||||
LOCAL cSection
|
||||
LOCAL cKey
|
||||
LOCAL nRow := 1
|
||||
|
||||
set color to w+/b
|
||||
SET COLOR TO w +/ b
|
||||
CLEAR SCREEN
|
||||
@nRow++,20 SAY "H A R B O U R - .ini file parser test"
|
||||
@nRow++,5 SAY "Call from command line using a .ini filename as the only parameter"
|
||||
@ nRow++, 20 SAY "H A R B O U R - .ini file parser test"
|
||||
@ nRow++, 5 SAY "Call from command line using a .ini filename as the only parameter"
|
||||
nRow++
|
||||
|
||||
IF Empty( cName )
|
||||
cName := "parseini.ini"
|
||||
@nRow++, 5 SAY "Using default parseini.ini file"
|
||||
@nRow++ , 5 SAY "Using default parseini.ini file"
|
||||
ENDIF
|
||||
|
||||
hIni := hb_IniRead( cName )
|
||||
hIni := hb_iniRead( cName )
|
||||
|
||||
@nRow, 0
|
||||
@ nRow, 0
|
||||
|
||||
? "Content of " + cName
|
||||
|
||||
@@ -51,22 +52,24 @@ PROCEDURE Main( cName )
|
||||
hIni[ "Added" ][ "NEW" ] := "new"
|
||||
|
||||
? "Writing output to parseini_out.ini"
|
||||
IF hb_IniWrite( "parseini_out.ini", hIni, "#Generated file; don't touch", "#End of file")
|
||||
IF hb_iniWrite( "parseini_out.ini", hIni, "#Generated file; don't touch", "#End of file" )
|
||||
? "File written"
|
||||
ELSE
|
||||
? "Can't write file"
|
||||
ENDIF
|
||||
?
|
||||
? "Press any key to next text."
|
||||
Inkey(0)
|
||||
Inkey( 0 )
|
||||
|
||||
nRow := 3
|
||||
@nRow, 0 CLEAR
|
||||
@ nRow, 0 CLEAR
|
||||
?
|
||||
? "REPEATING TESTS WITHOUT AUTOMATIC MAIN SECTION"
|
||||
?
|
||||
|
||||
hIni := hb_IniRead( cName, /*default case*/ , /*Default key indicators */ , .F. )
|
||||
hIni := hb_iniRead( cName, /* default case */
|
||||
, /* default key indicators */
|
||||
, .F. )
|
||||
|
||||
? "Content of " + cName
|
||||
|
||||
@@ -77,7 +80,7 @@ PROCEDURE Main( cName )
|
||||
/* Now (without automatic main), toplevel options may be in the root hash */
|
||||
aSect := hIni[ cSection ]
|
||||
|
||||
IF HB_IsHash( aSect )
|
||||
IF hb_isHash( aSect )
|
||||
/* It's a section */
|
||||
?
|
||||
? "Section [" + cSection + "]"
|
||||
@@ -99,18 +102,18 @@ PROCEDURE Main( cName )
|
||||
|
||||
? "Writing output to parseini_out1.ini"
|
||||
IF hb_IniWrite( "parseini_out1.ini", hIni,;
|
||||
"#Generated file without main auto section; don't touch", "#End of file",;
|
||||
.F. )
|
||||
"#Generated file without main auto section; don't touch", "#End of file",;
|
||||
.F. )
|
||||
? "File written"
|
||||
ELSE
|
||||
? "Can't write file"
|
||||
ENDIF
|
||||
?
|
||||
? "Press any key to next text."
|
||||
Inkey(0)
|
||||
Inkey( 0 )
|
||||
|
||||
nRow := 3
|
||||
@nRow, 0 CLEAR
|
||||
@ nRow, 0 CLEAR
|
||||
?
|
||||
? "WRITING INI TO A STRING"
|
||||
?
|
||||
@@ -122,15 +125,17 @@ PROCEDURE Main( cName )
|
||||
? cIni
|
||||
?
|
||||
? "Press any key to next text."
|
||||
Inkey(0)
|
||||
Inkey( 0 )
|
||||
|
||||
nRow := 3
|
||||
@nRow, 0 CLEAR
|
||||
@ nRow, 0 CLEAR
|
||||
?
|
||||
? "READING INI FILE FROM A STRING"
|
||||
?
|
||||
|
||||
hIni := hb_IniReadStr( cIni, /*default case*/ , /*Default key indicators */ , .F. )
|
||||
hIni := hb_IniReadStr( cIni, /*default case*/
|
||||
, /*Default key indicators */
|
||||
, .F. )
|
||||
|
||||
? "Content: "
|
||||
|
||||
@@ -141,7 +146,7 @@ PROCEDURE Main( cName )
|
||||
/* Now (without automatic main), toplevel options may be in the root hash */
|
||||
aSect := hIni[ cSection ]
|
||||
|
||||
IF HB_IsHash( aSect )
|
||||
IF hb_isHash( aSect )
|
||||
/* It's a section */
|
||||
?
|
||||
? "Section [" + cSection + "]"
|
||||
@@ -158,10 +163,10 @@ PROCEDURE Main( cName )
|
||||
|
||||
?
|
||||
? "Press any key to next text."
|
||||
Inkey(0)
|
||||
Inkey( 0 )
|
||||
|
||||
nRow := 3
|
||||
@nRow, 0 CLEAR
|
||||
@ nRow, 0 CLEAR
|
||||
?
|
||||
? "WRITING INI FILE TO A STRING "
|
||||
?
|
||||
@@ -173,7 +178,6 @@ PROCEDURE Main( cName )
|
||||
? cIni
|
||||
?
|
||||
? "Press any key to next text."
|
||||
Inkey(0)
|
||||
Inkey( 0 )
|
||||
|
||||
|
||||
RETURN
|
||||
RETURN
|
||||
|
||||
@@ -3,108 +3,110 @@
|
||||
*/
|
||||
|
||||
/*
|
||||
* ScrollBar class test
|
||||
* ScrollBar class test
|
||||
*
|
||||
* Harbour Project source code
|
||||
* http://harbour-project.org/
|
||||
*
|
||||
* Example donated by Diego Pego,
|
||||
* modified by Alejandro de Garate
|
||||
* Example donated by Diego Pego,
|
||||
* modified by Alejandro de Garate
|
||||
*/
|
||||
|
||||
#include "directry.ch"
|
||||
#include "achoice.ch"
|
||||
#include "inkey.ch"
|
||||
#include "directry.ch"
|
||||
#include "achoice.ch"
|
||||
#include "inkey.ch"
|
||||
|
||||
#define B_THIN ( CHR( 219 ) + CHR( 223 ) + CHR( 219 ) + CHR( 219 ) + ;
|
||||
CHR( 219 ) + CHR( 220 ) + CHR( 219 ) + CHR( 219 ) )
|
||||
#define B_THIN ( Chr( 219 ) + Chr( 223 ) + Chr( 219 ) + Chr( 219 ) + ;
|
||||
Chr( 219 ) + Chr( 220 ) + Chr( 219 ) + Chr( 219 ) )
|
||||
|
||||
procedure main()
|
||||
PROCEDURE main()
|
||||
|
||||
InitScrlBar()
|
||||
InitScrlBar()
|
||||
|
||||
RETURN
|
||||
RETURN
|
||||
|
||||
FUNCTION InitScrlBar()
|
||||
|
||||
FUNCTION InitScrlBar()
|
||||
LOCAL tmpFileList := {}, i
|
||||
MEMVAR aFileList, filesScroll
|
||||
PRIVATE aFileList := {}, filesScroll
|
||||
|
||||
LOCAL tmpFileList := {}, i
|
||||
MEMVAR aFileList, filesScroll
|
||||
PRIVATE aFileList := {}, filesScroll
|
||||
CLS
|
||||
SetBlink( .F. )
|
||||
@ 0, 0, 24, 79 BOX REPLIC( Chr( 178 ), 9 ) COLOR "GR+/W*"
|
||||
@ 4, 28 SAY " Directory " COLOR "W+/B"
|
||||
@ 5, 28, 15, 60 BOX B_THIN + " " COLOR "W/W*"
|
||||
|
||||
CLS
|
||||
SETBLINK(.F.)
|
||||
@ 00,00,24,79 BOX REPLIC( CHR(178), 9) COLOR "GR+/W*"
|
||||
@ 04,28 SAY " Directory " COLOR "W+/B"
|
||||
@ 05,28,15,60 BOX B_THIN + " " COLOR "W/W*"
|
||||
// get the current folder files to display on the aChoice menu
|
||||
tmpFileList := Directory()
|
||||
|
||||
// get the current folder files to display on the aChoice menu
|
||||
tmpFileList := directory()
|
||||
FOR i := 1 TO Len( tmpFileList )
|
||||
AAdd( aFileList, tmpFileList[ i ][ F_NAME ] )
|
||||
NEXT
|
||||
|
||||
FOR i := 1 TO LEN( tmpFileList )
|
||||
AADD( aFileList, tmpFileList[ i ][ F_NAME ])
|
||||
NEXT
|
||||
filesScroll := ScrollBar( 06, 14, 60, NIL, 1 )
|
||||
|
||||
filesScroll := ScrollBar( 06, 14, 60, NIL, 1 )
|
||||
filesScroll:total := Len( aFileList )
|
||||
|
||||
filesScroll:total := LEN( aFileList )
|
||||
filesScroll:SetColor( "W+/W, W+/W" ) // New method!
|
||||
SET COLOR TO "N/W*, W+/B,,,W/N"
|
||||
|
||||
filesScroll:SetColor("W+/W, W+/W") // New method!
|
||||
SET COLOR TO "N/W*, W+/B,,,W/N"
|
||||
filesScroll:display()
|
||||
|
||||
filesScroll:display()
|
||||
i := AChoice( 06, 29, 14, 59, aFileList, , "updateFilesScroll" )
|
||||
|
||||
i := ACHOICE( 06, 29, 14, 59, aFileList, , "updateFilesScroll")
|
||||
@ 23, 0 SAY iif( i < 1, "", aFileList[ i ] ) COLOR "N/W*"
|
||||
SET COLOR TO
|
||||
@ 24, 0
|
||||
|
||||
@ 23,0 SAY IIF( i < 1,"", aFileList[ i ]) COLOR "N/W*"
|
||||
SET COLOR TO
|
||||
@ 24,0
|
||||
RETURN 0
|
||||
RETURN 0
|
||||
|
||||
// function used to update scrollbar
|
||||
|
||||
// function used to update scrollbar
|
||||
FUNCTION updateFilesScroll( modo )
|
||||
FUNCTION updateFilesScroll( modo )
|
||||
|
||||
LOCAL newPos, valRet := AC_CONT, ; // Default to continue
|
||||
ultTecla := LASTKEY()
|
||||
MEMVAR filesScroll
|
||||
newPos := filesScroll:current
|
||||
LOCAL newPos, valRet := AC_CONT // Default to continue
|
||||
LOCAL ultTecla := LastKey()
|
||||
|
||||
DO CASE
|
||||
CASE ultTecla == K_CTRL_PGUP
|
||||
newPos := 1
|
||||
CASE ultTecla == K_CTRL_PGDN
|
||||
newPos := filesScroll:total
|
||||
CASE ultTecla == K_CTRL_HOME
|
||||
newPos := newPos - (filesScroll:barLength + 1)
|
||||
CASE ultTecla == K_CTRL_END
|
||||
newPos := newPos + (filesScroll:barLength + 1)
|
||||
CASE ultTecla == K_PGUP
|
||||
newPos := newPos - (filesScroll:barLength + 1)
|
||||
CASE ultTecla == K_PGDN
|
||||
newPos := newPos + (filesScroll:barLength + 1)
|
||||
CASE ultTecla == K_UP
|
||||
newPos--
|
||||
CASE ultTecla == K_DOWN
|
||||
newPos++
|
||||
CASE modo == AC_EXCEPT
|
||||
DO CASE
|
||||
case ultTecla == K_RETURN
|
||||
valRet := AC_SELECT
|
||||
CASE ultTecla == K_ESC
|
||||
valRet := AC_ABORT
|
||||
OTHERWISE
|
||||
valRet := AC_GOTO
|
||||
ENDCASE
|
||||
ENDCASE
|
||||
MEMVAR filesScroll
|
||||
|
||||
IF (newPos < 1)
|
||||
newPos := 1
|
||||
ELSEIF (newPos >= filesScroll:total)
|
||||
newPos := filesScroll:total
|
||||
ENDIF
|
||||
newPos := filesScroll:current
|
||||
|
||||
filesScroll:current := newPos
|
||||
filesScroll:update()
|
||||
DO CASE
|
||||
CASE ultTecla == K_CTRL_PGUP
|
||||
newPos := 1
|
||||
CASE ultTecla == K_CTRL_PGDN
|
||||
newPos := filesScroll:total
|
||||
CASE ultTecla == K_CTRL_HOME
|
||||
newPos := newPos - ( filesScroll:barLength + 1 )
|
||||
CASE ultTecla == K_CTRL_END
|
||||
newPos := newPos + ( filesScroll:barLength + 1 )
|
||||
CASE ultTecla == K_PGUP
|
||||
newPos := newPos - ( filesScroll:barLength + 1 )
|
||||
CASE ultTecla == K_PGDN
|
||||
newPos := newPos + ( filesScroll:barLength + 1 )
|
||||
CASE ultTecla == K_UP
|
||||
newPos--
|
||||
CASE ultTecla == K_DOWN
|
||||
newPos++
|
||||
CASE modo == AC_EXCEPT
|
||||
DO CASE
|
||||
CASE ultTecla == K_RETURN
|
||||
valRet := AC_SELECT
|
||||
CASE ultTecla == K_ESC
|
||||
valRet := AC_ABORT
|
||||
OTHERWISE
|
||||
valRet := AC_GOTO
|
||||
ENDCASE
|
||||
ENDCASE
|
||||
|
||||
RETURN valRet
|
||||
IF newPos < 1
|
||||
newPos := 1
|
||||
ELSEIF newPos >= filesScroll:total
|
||||
newPos := filesScroll:total
|
||||
ENDIF
|
||||
|
||||
filesScroll:current := newPos
|
||||
filesScroll:update()
|
||||
|
||||
RETURN valRet
|
||||
|
||||
@@ -2,20 +2,20 @@
|
||||
* $Id$
|
||||
*/
|
||||
|
||||
***************************************************
|
||||
* Harbour Inet demo server program
|
||||
*
|
||||
* Giancarlo Niccolai
|
||||
*
|
||||
* In this program, the server uses just one thread
|
||||
* to demonstrate how to use timeout sockets.
|
||||
*
|
||||
/***************************************************
|
||||
* Harbour Inet demo server program
|
||||
*
|
||||
* Giancarlo Niccolai
|
||||
*
|
||||
* In this program, the server uses just one thread
|
||||
* to demonstrate how to use timeout sockets.
|
||||
*/
|
||||
|
||||
PROCEDURE Main( cPort )
|
||||
LOCAL Socket, s
|
||||
LOCAL nResponse, cResponse
|
||||
LOCAL nTurn := 0, nTurn1 := 0
|
||||
LOCAL CRLF := hb_InetCRLF()
|
||||
LOCAL CRLF := Chr( 13 ) + Chr( 10 )
|
||||
LOCAL bCont := .T.
|
||||
|
||||
CLS
|
||||
@@ -24,14 +24,14 @@ PROCEDURE Main( cPort )
|
||||
cPort := "2000"
|
||||
ENDIF
|
||||
|
||||
hb_InetInit()
|
||||
hb_inetInit()
|
||||
|
||||
@ 1, 15 SAY "H A R B O U R - Inet Api Server Demo"
|
||||
@ 2, 5 SAY "Contact this server using telnet or the Harbour Inet Client demo"
|
||||
@ 3, 5 SAY "Press a [KEY] to terminate the program"
|
||||
@ 5, 5 SAY "Server listening on port " + cPort + "..."
|
||||
Socket := hb_InetServer( Val( cPort ) )
|
||||
hb_InetTimeout( Socket, 500 )
|
||||
@ 2, 5 SAY "Contact this server using telnet or the Harbour Inet Client demo"
|
||||
@ 3, 5 SAY "Press a [KEY] to terminate the program"
|
||||
@ 5, 5 SAY "Server listening on port " + cPort + "..."
|
||||
Socket := hb_inetServer( Val( cPort ) )
|
||||
hb_inetTimeout( Socket, 500 )
|
||||
|
||||
DO WHILE bCont
|
||||
|
||||
@@ -41,15 +41,15 @@ PROCEDURE Main( cPort )
|
||||
@ 9, 5 SAY Space( 70 )
|
||||
@ 6, 5
|
||||
|
||||
* Accepting a connection
|
||||
// Accepting a connection
|
||||
DO WHILE bCont
|
||||
Progress( @nTurn, 5, 39 )
|
||||
s := hb_InetAccept( Socket )
|
||||
IF hb_InetErrorCode( Socket ) == 0
|
||||
s := hb_inetAccept( Socket )
|
||||
IF hb_inetErrorCode( Socket ) == 0
|
||||
EXIT
|
||||
ENDIF
|
||||
IF Inkey() != 0
|
||||
bCont := .f.
|
||||
bCont := .F.
|
||||
ENDIF
|
||||
ENDDO
|
||||
|
||||
@@ -57,60 +57,59 @@ PROCEDURE Main( cPort )
|
||||
EXIT
|
||||
ENDIF
|
||||
|
||||
hb_InetTimeout( s, 500 )
|
||||
hb_inetTimeout( s, 500 )
|
||||
|
||||
@ 6, 5 SAY "Connection from: " + hb_InetAddress( s ) + ":" + Str( hb_InetPort( s ), 5 )
|
||||
@ 6, 5 SAY "Connection from: " + hb_inetAddress( s ) + ":" + Str( hb_inetPort( s ), 5 )
|
||||
@ 7, 5 SAY "Receiving: "
|
||||
@ 8, 5
|
||||
|
||||
nResponse := hb_InetSend( s, "Welcome to my server!" + CRLF )
|
||||
nResponse := hb_inetSend( s, "Welcome to my server!" + CRLF )
|
||||
|
||||
DO WHILE bCont
|
||||
// This timeout ...
|
||||
hb_InetTimeout( s, 250 )
|
||||
hb_inetTimeout( s, 250 )
|
||||
// ... will trigger this periodic callback,
|
||||
hb_InetPeriodCallback( s, { @Progress(), @nTurn, 6, 39 } )
|
||||
hb_inetPeriodCallback( s, { @Progress(), @nTurn, 6, 39 } )
|
||||
// that will be called each TIMEOUT Milliseconds.
|
||||
cResponse := hb_InetRecvLine( s, @nResponse )
|
||||
// hb_InetRecvLine won't return until the periodic callback returns .F.,
|
||||
cResponse := hb_inetRecvLine( s, @nResponse )
|
||||
// hb_inetRecvLine won't return until the periodic callback returns .F.,
|
||||
// or the Timelimit has been reached. Timelimit is currently -1, so
|
||||
// hb_InetRecvLine will wait forever.
|
||||
// hb_inetRecvLine will wait forever.
|
||||
|
||||
DO CASE
|
||||
CASE hb_InetErrorCode( s ) == 0
|
||||
IF Lower( cResponse ) == "quit"
|
||||
bCont := .F.
|
||||
ENDIF
|
||||
@ 8, 5 SAY space(70)
|
||||
@ 8, 5 SAY cResponse
|
||||
cResponse := "Count: " + Str( nResponse ) + " characters" + CRLF
|
||||
hb_InetSend( s, cResponse )
|
||||
CASE hb_inetErrorCode( s ) == 0
|
||||
IF Lower( cResponse ) == "quit"
|
||||
bCont := .F.
|
||||
ENDIF
|
||||
@ 8, 5 SAY space(70)
|
||||
@ 8, 5 SAY cResponse
|
||||
cResponse := "Count: " + Str( nResponse ) + " characters" + CRLF
|
||||
hb_inetSend( s, cResponse )
|
||||
|
||||
CASE hb_InetErrorCode( s ) == -1
|
||||
* idle (timed out)
|
||||
Progress( @nTurn1, 7, 17 )
|
||||
CASE hb_inetErrorCode( s ) == -1
|
||||
// idle (timed out)
|
||||
Progress( @nTurn1, 7, 17 )
|
||||
|
||||
OTHERWISE
|
||||
@7, 5 SAY "Received Error " + Str( hb_InetErrorCode( s ) ) + ": " + hb_InetErrorDesc( s )
|
||||
@ 8, 5 SAY space(70)
|
||||
@ 9, 5 SAY space(70)
|
||||
@ 9, 5 SAY "Press a key to continue"
|
||||
Inkey( 0 )
|
||||
EXIT
|
||||
OTHERWISE
|
||||
@ 7, 5 SAY "Received Error " + Str( hb_inetErrorCode( s ) ) + ": " + hb_inetErrorDesc( s )
|
||||
@ 8, 5 SAY Space( 70 )
|
||||
@ 9, 5 SAY Space( 70 )
|
||||
@ 9, 5 SAY "Press a key to continue"
|
||||
Inkey( 0 )
|
||||
EXIT
|
||||
|
||||
END CASE
|
||||
ENDCASE
|
||||
|
||||
IF Inkey() != 0
|
||||
bCont := .f.
|
||||
bCont := .F.
|
||||
ENDIF
|
||||
ENDDO
|
||||
ENDDO
|
||||
|
||||
hb_InetCleanup()
|
||||
hb_inetCleanup()
|
||||
|
||||
RETURN
|
||||
|
||||
|
||||
PROCEDURE Progress( nProgress, nDrow, nDcol )
|
||||
|
||||
LOCAL nRow := Row(), nCol := Col()
|
||||
@@ -118,14 +117,14 @@ PROCEDURE Progress( nProgress, nDrow, nDcol )
|
||||
@ nDrow, nDcol SAY "[ ]"
|
||||
|
||||
DO CASE
|
||||
CASE nProgress = 0
|
||||
@ nDrow, nDcol + 1 SAY "-"
|
||||
CASE nProgress = 1
|
||||
@ nDrow, nDcol + 1 SAY "\"
|
||||
CASE nProgress = 2
|
||||
@ nDrow, nDcol + 1 SAY "|"
|
||||
CASE nProgress = 3
|
||||
@ nDrow, nDcol + 1 SAY "/"
|
||||
CASE nProgress == 0
|
||||
@ nDrow, nDcol + 1 SAY "-"
|
||||
CASE nProgress == 1
|
||||
@ nDrow, nDcol + 1 SAY "\"
|
||||
CASE nProgress == 2
|
||||
@ nDrow, nDcol + 1 SAY "|"
|
||||
CASE nProgress == 3
|
||||
@ nDrow, nDcol + 1 SAY "/"
|
||||
ENDCASE
|
||||
|
||||
nProgress++
|
||||
|
||||
Reference in New Issue
Block a user