2012-10-19 15:18 UTC+0200 Viktor Szakats (harbour syenar.net)

* contrib/hbct/ctchksum.c
  * contrib/hbct/ctcrypt.c
  * contrib/hbct/ctnet.c
  * contrib/hbct/ctdummy.prg
  * contrib/hbct/ctmisc.prg
  * contrib/hbct/ctrand.prg
  * contrib/hbct/cttime.prg
  * contrib/hbct/fcopy.prg
  * contrib/hbct/getinfo.prg
  * contrib/hbct/getinput.prg
  * contrib/hbct/keysave.prg
  * contrib/hbct/keysec.prg
  * contrib/hbct/keytime.prg
  * contrib/hbct/kxlat.prg
  * contrib/hbct/screen3.prg
  * contrib/hbct/scrmark.prg
  * contrib/hbct/showtime.prg
  * contrib/hbct/tempfile.prg
    * hbformatted (using it with Maurizio's patch)
      (with few minor corrections - vert.alignment, '/' operator)
    * CA-T*ols

  * contrib/hbct/readme.txt
    * deleted multiple ending EOLs
This commit is contained in:
Viktor Szakats
2012-10-19 13:23:11 +00:00
parent 20167f265c
commit 6bfaa2d619
20 changed files with 180 additions and 94 deletions

View File

@@ -16,6 +16,32 @@
The license applies to all entries newer than 2009-04-28.
*/
2012-10-19 15:18 UTC+0200 Viktor Szakats (harbour syenar.net)
* contrib/hbct/ctchksum.c
* contrib/hbct/ctcrypt.c
* contrib/hbct/ctnet.c
* contrib/hbct/ctdummy.prg
* contrib/hbct/ctmisc.prg
* contrib/hbct/ctrand.prg
* contrib/hbct/cttime.prg
* contrib/hbct/fcopy.prg
* contrib/hbct/getinfo.prg
* contrib/hbct/getinput.prg
* contrib/hbct/keysave.prg
* contrib/hbct/keysec.prg
* contrib/hbct/keytime.prg
* contrib/hbct/kxlat.prg
* contrib/hbct/screen3.prg
* contrib/hbct/scrmark.prg
* contrib/hbct/showtime.prg
* contrib/hbct/tempfile.prg
* hbformatted (using it with Maurizio's patch)
(with few minor corrections - vert.alignment, '/' operator)
* CA-T*ols
* contrib/hbct/readme.txt
* deleted multiple ending EOLs
2012-10-19 13:59 UTC+0200 Viktor Szakats (harbour syenar.net)
* contrib/hbct/getsecrt.prg
* SET() -> Set()

View File

@@ -4,7 +4,7 @@
/*
* Harbour Project source code:
* CHECKSUM() CA-Tools function
* CHECKSUM() CA-T*ols function
*
* Copyright 1999-2001 Viktor Szakats (harbour syenar.net)
* www - http://harbour-project.org

View File

@@ -4,7 +4,7 @@
/*
* Harbour Project source code:
* CRYPT() CA-Tools compatible function
* CRYPT() CA-T*ols compatible function
*
* Copyright 1999-2001 Viktor Szakats (harbour syenar.net)
* www - http://harbour-project.org

View File

@@ -4,7 +4,7 @@
/*
* Harbour Project source code:
* Dummy CA-Tools functions
* Dummy CA-T*ols functions
*
* Copyright 2008 Viktor Szakats (harbour syenar.net)
* www - http://harbour-project.org
@@ -51,6 +51,7 @@
*/
FUNCTION dsetkbios( lNewKeyboardMode )
THREAD STATIC t_lKeyboardMode := .T.
HB_SYMBOL_UNUSED( lNewKeyboardMode )

View File

@@ -4,7 +4,7 @@
/*
* Harbour Project source code:
* Misc CA-Tools functions
* Misc CA-T*ols functions
*
* Copyright 1999-2001 Viktor Szakats (harbour syenar.net)
* www - http://harbour-project.org
@@ -55,8 +55,6 @@
#include "hbmemory.ch"
MEMVAR GetList
FUNCTION AlloFree( lMode )
IF ! HB_ISLOGICAL( lMode )
@@ -66,6 +64,7 @@ FUNCTION AlloFree( lMode )
RETURN Memory( iif( lMode, HB_MEM_CHAR, HB_MEM_BLOCK ) )
FUNCTION CENTER( c, n, p, lMode )
LOCAL cRet
IF ! HB_ISNUMERIC( n )
@@ -97,23 +96,28 @@ FUNCTION CSETCURS( l )
RETURN SetCursor( iif( l, SC_NORMAL, SC_NONE ) ) != SC_NONE
FUNCTION CSETKEY( n )
RETURN SetKey( n )
FUNCTION CSETCENT( nCentury )
RETURN __SETCENTURY( nCentury )
RETURN __SetCentury( nCentury )
FUNCTION LTOC( l )
RETURN iif( l, "T", "F" )
FUNCTION DOSPARAM()
LOCAL cRet := ""
LOCAL nCount := HB_ARGC(), i
LOCAL nCount := hb_argc(), i
FOR i := 1 TO nCount
cRet += iif( i == 1, "", " " ) + HB_ARGV( i )
cRet += iif( i == 1, "", " " ) + hb_argv( i )
NEXT
RETURN cRet
FUNCTION EXENAME()
RETURN HB_PROGNAME()
RETURN hb_ProgName()

View File

@@ -73,7 +73,7 @@
* Return the shared resource name connected to a <cLocalDevice>.
* The original parameter <nDevice> in CA-Cl*pper Tools was changed to <cLocalName> in
* xHarbour because in Windows Network I didn't find a number table like in MS-DOS. See
* CA-Tools help for more details.
* CA-T*ols help for more details.
*
* NETWORK() -> lSuccess
* Return true if a PC-LAN/MS-NET or Netware type is active.

View File

@@ -51,11 +51,14 @@
*/
FUNCTION Random( lMode )
RETURN iif( HB_ISLOGICAL( lMode ) .AND. lMode, ;
HB_RandomInt( -32768, 32767 ), HB_RandomInt( 0, 65535 ) )
hb_RandomInt( -32768, 32767 ), hb_RandomInt( 0, 65535 ) )
FUNCTION Rand( nStart )
IF nStart != NIL
HB_RandomSeed( nStart )
hb_RandomSeed( nStart )
ENDIF
RETURN HB_Random()
RETURN hb_Random()

View File

@@ -52,6 +52,7 @@
*/
FUNCTION TIMETOSEC( cTime )
LOCAL nSec := 0
LOCAL nLen, i, aLim, aMod, nInd, n
@@ -64,7 +65,7 @@ FUNCTION TIMETOSEC( cTime )
aLim := { 24, 60, 60, 100 }
aMod := { 3600, 60, 1, 1 / 100 }
FOR i := 1 TO nLen STEP 3
IF IsDigit( SubStr( cTime, i, 1 ) ) .AND. ;
IF IsDigit( SubStr( cTime, i , 1 ) ) .AND. ;
IsDigit( SubStr( cTime, i + 1, 1 ) ) .AND. ;
( i == nLen - 1 .OR. SubStr( cTime, i + 2, 1 ) == ":" ) .AND. ;
( n := Val( SubStr( cTime, i, 2 ) ) ) < aLim[ nInd ]
@@ -81,6 +82,7 @@ FUNCTION TIMETOSEC( cTime )
RETURN Round( nSec, 2 ) /* round FL val to be sure that you can compare it */
FUNCTION SECTOTIME( nSec, lHundr )
LOCAL i, h, n
n := iif( ! HB_ISNUMERIC( nSec ), Seconds(), nSec )
@@ -101,5 +103,7 @@ FUNCTION SECTOTIME( nSec, lHundr )
RETURN h
FUNCTION MILLISEC( nDelay )
HB_IDLESLEEP( nDelay / 1000 )
hb_idleSleep( nDelay / 1000 )
RETURN ""

View File

@@ -10,7 +10,7 @@
* Author...: Frederic J. Bell
* Dated....: Jun,17 94
* Revised..: Sep,20 94
* Purpose..: Replaces the following ca-tools functions which generate GPF's
* Purpose..: Replaces the following CA-T*ols functions which generate GPF's
* FileCopy(), FileCOpen() & FileAppend()!
* Relies on: Clipper (can you believe it!)
* Compile..: /n /m /w /[/p /b /l] /es2
@@ -76,12 +76,14 @@ THREAD STATIC t_fileTime
/*
* FileCopy()
* This is a replacement for the CA-tools III function of the
* This is a replacement for the CA-T*ols III function of the
* same name that causes GPF's.
*/
FUNCTION FILECOPY( cSource, cDest, lMode )
LOCAL hDstFile
LOCAL cBuffer := SPACE( F_BLOCK )
LOCAL cBuffer := Space( F_BLOCK )
LOCAL lDone := .F.
LOCAL nSrcBytes, nDstBytes, nTotBytes := 0
@@ -89,19 +91,19 @@ FUNCTION FILECOPY( cSource, cDest, lMode )
lMode := .F.
ENDIF
IF t_hSrcFile != F_ERROR
FCLOSE( t_hSrcFile )
FClose( t_hSrcFile )
ENDIF
t_hSrcFile := FOPEN( cSource, FO_READ )
t_hSrcFile := FOpen( cSource, FO_READ )
IF t_hSrcFile != F_ERROR
hDstFile := FCREATE( cDest )
hDstFile := FCreate( cDest )
IF hDstFile != F_ERROR
DO WHILE !lDone
nSrcBytes := FREAD( t_hSrcFile, @cBuffer, F_BLOCK )
nSrcBytes := FRead( t_hSrcFile, @cBuffer, F_BLOCK )
IF nSrcBytes == 0
lDone := .T.
EXIT
ENDIF
nDstBytes := FWRITE( hDstFile, cBuffer, nSrcBytes )
nDstBytes := FWrite( hDstFile, cBuffer, nSrcBytes )
IF nDstBytes > 0
nTotBytes += nDstBytes
ENDIF
@@ -109,9 +111,9 @@ FUNCTION FILECOPY( cSource, cDest, lMode )
EXIT
ENDIF
ENDDO
FCLOSE( hDstFile )
FClose( hDstFile )
IF lDone .OR. !lMode
FCLOSE( t_hSrcFile )
FClose( t_hSrcFile )
t_hSrcFile := F_ERROR
ENDIF
t_fileDate := FILEDATE( cSource )
@@ -120,16 +122,19 @@ FUNCTION FILECOPY( cSource, cDest, lMode )
SETFDATI( cDest, t_fileDate, t_fileTime )
ENDIF
ELSE
FCLOSE( t_hSrcFile )
FClose( t_hSrcFile )
t_hSrcFile := F_ERROR
ENDIF
ENDIF
RETURN nTotBytes
FUNCTION FILECOPEN()
RETURN t_hSrcFile != F_ERROR
FUNCTION FILECDATI( lNewMode )
LOCAL lOldMode := t_lSetDaTi
IF HB_ISLOGICAL( lNewMode )
@@ -139,21 +144,22 @@ FUNCTION FILECDATI( lNewMode )
RETURN lOldMode
FUNCTION FILECCONT( cDest )
LOCAL hDstFile
LOCAL cBuffer := SPACE( F_BLOCK )
LOCAL cBuffer := Space( F_BLOCK )
LOCAL lDone := .F.
LOCAL nSrcBytes, nDstBytes, nTotBytes := 0
IF t_hSrcFile != F_ERROR
hDstFile := FCREATE( cDest )
hDstFile := FCreate( cDest )
IF hDstFile != F_ERROR
DO WHILE !lDone
nSrcBytes := FREAD( t_hSrcFile, @cBuffer, F_BLOCK )
nSrcBytes := FRead( t_hSrcFile, @cBuffer, F_BLOCK )
IF nSrcBytes == 0
lDone := 0
EXIT
ENDIF
nDstBytes := FWRITE( hDstFile, cBuffer, nSrcBytes )
nDstBytes := FWrite( hDstFile, cBuffer, nSrcBytes )
IF nDstBytes > 0
nTotBytes += nDstBytes
ENDIF
@@ -161,9 +167,9 @@ FUNCTION FILECCONT( cDest )
EXIT
ENDIF
ENDDO
FCLOSE( hDstFile )
FClose( hDstFile )
IF lDone
FCLOSE( t_hSrcFile )
FClose( t_hSrcFile )
t_hSrcFile := F_ERROR
ENDIF
IF t_lSetDaTi
@@ -171,44 +177,49 @@ FUNCTION FILECCONT( cDest )
ENDIF
ENDIF
ENDIF
RETURN nTotBytes
FUNCTION FILECCLOSE()
IF t_hSrcFile != F_ERROR
FCLOSE( t_hSrcFile )
FClose( t_hSrcFile )
t_hSrcFile := F_ERROR
RETURN .T.
ENDIF
RETURN .F.
FUNCTION FILEAPPEND( cSrc, cDest )
LOCAL cBuffer := Space( F_BLOCK )
LOCAL hSrcFile, hDstFile
LOCAL nSrcBytes, nDstBytes, nTotBytes := 0
hSrcFile := FOPEN( cSrc, FO_READ )
hSrcFile := FOpen( cSrc, FO_READ )
IF hSrcFile != F_ERROR
IF !hb_FileExists( cDest )
hDstFile := FCREATE( cDest )
hDstFile := FCreate( cDest )
ELSE
hDstFile := FOPEN( cDest, FO_WRITE )
FSEEK( hDstFile, 0, FS_END )
hDstFile := FOpen( cDest, FO_WRITE )
FSeek( hDstFile, 0, FS_END )
ENDIF
IF hDstFile != F_ERROR
DO WHILE .T.
nSrcBytes := FREAD( hSrcFile, @cBuffer, F_BLOCK )
nSrcBytes := FRead( hSrcFile, @cBuffer, F_BLOCK )
IF nSrcBytes == 0
EXIT
ENDIF
nDstBytes := FWRITE( hDstFile, cBuffer, nSrcBytes )
nDstBytes := FWrite( hDstFile, cBuffer, nSrcBytes )
IF nDstBytes < nSrcBytes
EXIT
ENDIF
nTotBytes += nDstBytes
ENDDO
FCLOSE( hDstFile )
FClose( hDstFile )
ENDIF
FCLOSE( hSrcFile )
FClose( hSrcFile )
ENDIF
RETURN nTotBytes

View File

@@ -56,43 +56,59 @@
MEMVAR GetList
FUNCTION SAVEGETS()
LOCAL aGetList := GetList
GetList := {}
RETURN aGetList
FUNCTION RESTGETS( aGetList )
RETURN ( GetList := aGetList ) != NIL
FUNCTION COUNTGETS()
RETURN LEN( GetList )
RETURN Len( GetList )
FUNCTION CURRENTGET()
LOCAL oActive := GetActive()
RETURN ASCAN( GetList, {| oGet | oGet == oActive } )
RETURN AScan( GetList, {| oGet | oGet == oActive } )
FUNCTION GETFLDROW( nField )
LOCAL oGet
IF ! HB_ISNUMERIC( nField )
oGet := GetActive()
ELSEIF nField >= 1 .AND. nField <= LEN( GetList )
ELSEIF nField >= 1 .AND. nField <= Len( GetList )
oGet := GetList[ nField ]
ENDIF
RETURN iif( oGet != NIL, oGet:Row, -1 )
FUNCTION GETFLDCOL( nField )
LOCAL oGet
IF ! HB_ISNUMERIC( nField )
oGet := GetActive()
ELSEIF nField >= 1 .AND. nField <= LEN( GetList )
ELSEIF nField >= 1 .AND. nField <= Len( GetList )
oGet := GetList[ nField ]
ENDIF
RETURN iif( oGet != NIL, oGet:Col, -1 )
FUNCTION GETFLDVAR( nField )
LOCAL oGet
IF ! HB_ISNUMERIC( nField )
oGet := GetActive()
ELSEIF nField >= 1 .AND. nField <= LEN( GetList )
ELSEIF nField >= 1 .AND. nField <= Len( GetList )
oGet := GetList[ nField ]
ENDIF
RETURN iif( oGet != NIL, oGet:Name, -1 )

View File

@@ -54,8 +54,9 @@
*/
FUNCTION GETINPUT( xVar, nRow, nCol, lSay, xPrompt )
LOCAL nCursorRow := ROW()
LOCAL nCursorCol := COL()
LOCAL nCursorRow := Row()
LOCAL nCursorCol := Col()
LOCAL GetList := {}
IF ! HB_ISNUMERIC( nRow )
@@ -68,21 +69,21 @@ FUNCTION GETINPUT( xVar, nRow, nCol, lSay, xPrompt )
lSay := .F.
ENDIF
SETPOS( nRow, nCol )
SetPos( nRow, nCol )
IF xPrompt != Nil
DEVOUT( xPrompt )
nRow := ROW()
nCol := COL() + 1
DevOut( xPrompt )
nRow := Row()
nCol := Col() + 1
ENDIF
@ nRow, nCol GET xVar
READ
IF lSay
SETPOS( nRow, nCol )
DEVOUT( xVar )
SetPos( nRow, nCol )
DevOut( xVar )
ENDIF
SETPOS( nCursorRow, nCursorCol )
SetPos( nCursorRow, nCursorCol )
RETURN xVar

View File

@@ -50,8 +50,11 @@
*/
FUNCTION SAVESETKEY()
RETURN HB_SETKEYSAVE()
RETURN hb_SetKeySave()
FUNCTION RESTSETKEY( aSavedTraps )
HB_SETKEYSAVE( aSavedTraps )
hb_SetKeySave( aSavedTraps )
RETURN .T.

View File

@@ -53,6 +53,7 @@
THREAD STATIC t_hIdle
FUNCTION KeySec( nKey, nTime, nCounter, lMode )
LOCAL nSeconds
IF t_hIdle != NIL
@@ -76,13 +77,14 @@ FUNCTION KeySec( nKey, nTime, nCounter, lMode )
nSeconds := hb_milliSeconds()
t_hIdle := hb_idleAdd( {|| doKeySec( nKey, nTime, lMode, ;
@nCounter, @nSeconds ) } )
@nCounter, @nSeconds ) } )
RETURN .T.
ENDIF
RETURN .F.
STATIC PROCEDURE doKeySec( nKey, nTime, lMode, nCounter, nSeconds )
LOCAL nSec := hb_milliSeconds()
IF lMode .AND. ! Empty( NextKey() )

View File

@@ -53,6 +53,7 @@
THREAD STATIC t_hIdle
FUNCTION KeyTime( nKey, cClockTime )
LOCAL nHour, nMin, nSec, nLast
IF t_hIdle != NIL
@@ -62,17 +63,18 @@ FUNCTION KeyTime( nKey, cClockTime )
IF HB_ISNUMERIC( nKey ) .AND. HB_ISSTRING( cClockTime )
nHour := Val( SubStr( cClockTime, 1, 2 ) )
nMin := Val( SubStr( cClockTime, 4, 2 ) )
nSec := Val( SubStr( cClockTime, 7, 2 ) )
nMin := Val( SubStr( cClockTime, 4, 2 ) )
nSec := Val( SubStr( cClockTime, 7, 2 ) )
nLast := -1
t_hIdle := hb_idleAdd( {|| doKeyTime( nKey, cClockTime, nHour, nMin, nSec, ;
@nLast ) } )
@nLast ) } )
RETURN .T.
ENDIF
RETURN .F.
STATIC PROCEDURE doKeyTime( nKey, cClockTime, nHour, nMin, nSec, nLast )
LOCAL ccTime := Time()
LOCAL nHr := Val( SubStr( ccTime, 1, 2 ) )
LOCAL nMn := Val( SubStr( ccTime, 4, 2 ) )

View File

@@ -4,7 +4,7 @@
/*
* Harbour Project source code:
* [S|G]ETKX[LAT|TAB] CA-Tools functions (USE IT AT YOUR OWN RISK)
* [S|G]ETKX[LAT|TAB] CA-T*ols functions (USE IT AT YOUR OWN RISK)
*
* Copyright 2012 Viktor Szakats (harbour syenar.net)
* www - http://harbour-project.org
@@ -64,7 +64,7 @@
STATIC s_hTrs := { => }
STATIC s_hMutex := hb_mutexCreate()
STATIC sc_hCnv := {;
STATIC sc_hCnv := { ;
KS_DISABLE => 0 ,;
KS_A => hb_keyCode( "A" ) ,;
KS_B => hb_keyCode( "B" ) ,;
@@ -330,6 +330,7 @@ FUNCTION __hbct_key_c_to_n( cKey )
RETURN NIL
FUNCTION __hbct_key_n_to_c( nKey )
LOCAL hKey
IF HB_ISNUMERIC( nKey )
@@ -352,6 +353,7 @@ FUNCTION setkxlat( cOrgKeyValue, cNewKeyValue )
RETURN hbct_setkxlat( __hbct_key_c_to_n( cOrgKeyValue ), __hbct_key_c_to_n( cNewKeyValue ) )
FUNCTION getkxlat( cKeyValue )
LOCAL xKey := hbct_getkxlat( __hbct_key_c_to_n( cKeyValue ) )
/* doc is unclear. should this return a numeric in these cases? */
@@ -362,6 +364,7 @@ FUNCTION getkxlat( cKeyValue )
RETURN __hbct_key_n_to_c( xKey )
FUNCTION setkxtab( cTrs )
LOCAL hTrs := { => }
LOCAL tmp
@@ -374,6 +377,7 @@ FUNCTION setkxtab( cTrs )
RETURN hbct_setkxtab( hTrs )
FUNCTION getkxtab()
LOCAL cTrs := ""
LOCAL hTrs := hbct_getkxtab()
LOCAL hKey
@@ -387,6 +391,7 @@ FUNCTION getkxtab()
/* Harbour extensions using standard numeric key values */
FUNCTION hbct_setkxlat( nOrgKeyValue, nNewKeyValue )
LOCAL lAccepted := .F.
IF PCount() == 0
@@ -427,6 +432,7 @@ FUNCTION hbct_setkxlat( nOrgKeyValue, nNewKeyValue )
RETURN lAccepted
FUNCTION hbct_getkxlat( nKeyValue )
LOCAL nNewValue := 0
IF HB_ISNUMERIC( nKeyValue )
@@ -444,6 +450,7 @@ FUNCTION hbct_getkxlat( nKeyValue )
RETURN nNewValue
FUNCTION hbct_setkxtab( hTrs )
LOCAL lAccepted := .F.
IF HB_ISHASH( hTrs )
@@ -465,6 +472,7 @@ FUNCTION hbct_setkxtab( hTrs )
RETURN lAccepted
FUNCTION hbct_getkxtab()
LOCAL xRetVal
IF hb_mutexLock( s_hMutex )

View File

@@ -5,7 +5,7 @@
CA-T**ls Compatible Library for Harbour
=======================================
The goal of this library is to provide the functionality
The goal of this library is to provide the functionality
of the original CA-T**ls 3 Library for CA-Cl*pper.
Viktor Szakats (harbour syenar.net)
@@ -19,7 +19,7 @@ Directories: ./ contains all the source files, include files, make files
alt contains alternative function implementations (not
all are complete, be aware !), mostly in
Harbour, if the function is implemented in C and vice
versa.
versa.
Changes and Enhancements over the original CA-T**ls 3 Library
Martin Vogel <vogel@inttec.de>
@@ -47,7 +47,7 @@ Martin Vogel <vogel@inttec.de>
+ CHARSUB() subtracts corresponding ASCII values
+ COSH() hyperbolic cosine
+ COSH() hyperbolic cosine
+ CSETARGERR() set behaviour on argument errors
@@ -71,7 +71,7 @@ Martin Vogel <vogel@inttec.de>
+ SINH() hyperbolic sine
* TABPACK() new 4th, 5th and 6th parameter to let one set the carriage-return-line-feed string,
* TABPACK() new 4th, 5th and 6th parameter to let one set the carriage-return-line-feed string,
* TABEXPAND() the tab character and the chr(141)[soft line feed] behaviour
+ TANH() hyperbolic tangent
@@ -93,9 +93,6 @@ Martin Vogel <vogel@inttec.de>
* TOKENUPPER() New 4th parameter <nSkipWidth>
* WEEK() New 2nd parameter <lSWN>; week() function can either return
"simple week number" of week number defined by ISO 6801
"simple week number" of week number defined by ISO 6801
+ WORDREM() remove double characters from a string

View File

@@ -54,16 +54,21 @@
*/
FUNCTION CLEAREOL( nRow, nCol, xAttr, xChar )
IF ! HB_ISNUMERIC( nRow )
nRow := ROW()
nRow := Row()
ENDIF
RETURN CLEARWIN( nRow, nCol, nRow, /*MAXCOL()*/, xAttr, xChar )
RETURN CLEARWIN( nRow, nCol, nRow, /* MaxCol() */, xAttr, xChar )
FUNCTION CLEOL( nRow, nCol )
IF ! HB_ISNUMERIC( nRow )
nRow := ROW()
nRow := Row()
ENDIF
RETURN CLEARWIN( nRow, nCol, nRow, /*MAXCOL()*/, 7 /*"W/N"*/, " " )
RETURN CLEARWIN( nRow, nCol, nRow, /* MaxCol() */, 7 /* "W/N" */, " " )
FUNCTION CLWIN( nRow, nCol )
RETURN CLEARWIN( nRow, nCol, /*MAXROW()*/, /*MAXCOL()*/, 7 /*"W/N"*/, " " )
RETURN CLEARWIN( nRow, nCol, /* MaxRow() */, /* MaxCol() */, 7 /* "W/N" */, " " )

View File

@@ -56,6 +56,7 @@
*/
FUNCTION SCREENMARK( cSearch, xAttr, lUpperLower, lAll, cForward, cTrailing )
LOCAL lFound := .F.
LOCAL nCount := 1
LOCAL nAt, nLen, nLast, nRow, nCol, nEnd, nCols
@@ -74,26 +75,26 @@ FUNCTION SCREENMARK( cSearch, xAttr, lUpperLower, lAll, cForward, cTrailing )
cTrailing := NIL
ENDIF
nCols := MAXCOL()
cScreen := SCREENTEXT( 0, 0, MAXROW(), nCols++ )
nLen := LEN( cSearch )
nLast := LEN( cScreen ) - nLen + 1
nCols := MaxCol()
cScreen := SCREENTEXT( 0, 0, MaxRow(), nCols++ )
nLen := Len( cSearch )
nLast := Len( cScreen ) - nLen + 1
IF ! lUpperLower
cSearch := UPPER( cSearch )
cScreen := UPPER( cScreen )
cSearch := Upper( cSearch )
cScreen := Upper( cScreen )
ENDIF
DO WHILE ( nAt := ATNUM( cSearch, cScreen, nCount ) ) != 0
IF ( nAt == 1 .OR. cForward == NIL .OR. ;
SUBSTR( cScreen, nAt, 1 ) $ cForward ) .AND. ;
( nAt == nLast .OR. cTrailing == NIL .OR. ;
SUBSTR( cScreen, nAt + nLen ) $ cTrailing )
SubStr( cScreen, nAt, 1 ) $ cForward ) .AND. ;
( nAt == nLast .OR. cTrailing == NIL .OR. ;
SubStr( cScreen, nAt + nLen ) $ cTrailing )
lFound := .T.
--nAt
nRow := INT( nAt / nCols )
nCol := INT( nAt % nCols )
nEnd := nCol + LEN( cSearch ) - 1
nRow := Int( nAt / nCols )
nCol := Int( nAt % nCols )
nEnd := nCol + Len( cSearch ) - 1
COLORWIN( nRow, nCol, nRow, nEnd, xAttr )
DO WHILE nEnd >= nCols
nEnd -= nCols

View File

@@ -52,16 +52,17 @@
*/
FUNCTION SHOWTIME( nRow, nCol, lNoSec, cColor, l12, lAmPm )
THREAD STATIC t_hTimer := NIL
IF HB_ISNUMERIC( nRow ) .AND. nRow >= 0 .AND. nRow <= MAXROW( .T. )
IF HB_ISNUMERIC( nRow ) .AND. nRow >= 0 .AND. nRow <= MaxRow( .T. )
IF t_hTimer != NIL
HB_IDLEDEL( t_hTimer )
hb_idleDel( t_hTimer )
ENDIF
t_hTimer := HB_IDLEADD( {|| __HBCT_DSPTIME( nRow, nCol, lNoSec, cColor, ;
l12, lAmPm ) } )
t_hTimer := hb_idleAdd( {|| __HBCT_DSPTIME( nRow, nCol, lNoSec, cColor, ;
l12, lAmPm ) } )
ELSEIF t_hTimer != NIL
HB_IDLEDEL( t_hTimer )
hb_idleDel( t_hTimer )
t_hTimer := NIL
ENDIF

View File

@@ -53,6 +53,7 @@
#include "fileio.ch"
FUNCTION TempFile( cDir, cExt, nAttr )
LOCAL cName
LOCAL fhnd