2007-09-11 15:34 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)

* tests/rto_get.prg
   * source/rtl/tget.prg
     ! Fixed display issue when using display->varput->display 
       sequence. (Thanks Lorenzo)
     + Above case added to test suite.

   * source/rtl/tbrowse.prg
     + Some scattered logic moved inside :Configure()
     ! Some TOFIX-es added.
     ! ::ColorSpec() to call Configure().

   * source/debug/dbgtobj.prg
   * source/debug/dbgwa.prg
     + Formatting, var name cleanup.
This commit is contained in:
Viktor Szakats
2007-09-11 13:38:39 +00:00
parent 6ea3ebacfb
commit d4711a8f83
6 changed files with 167 additions and 131 deletions

View File

@@ -8,6 +8,22 @@
2002-12-01 13:30 UTC+0100 Foo Bar <foo.bar@foobar.org>
*/
2007-09-11 15:34 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* tests/rto_get.prg
* source/rtl/tget.prg
! Fixed display issue when using display->varput->display
sequence. (Thanks Lorenzo)
+ Above case added to test suite.
* source/rtl/tbrowse.prg
+ Some scattered logic moved inside :Configure()
! Some TOFIX-es added.
! ::ColorSpec() to call Configure().
* source/debug/dbgtobj.prg
* source/debug/dbgwa.prg
+ Formatting, var name cleanup.
2007-09-11 00:40 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* include/hbcompat.ch
* include/hbextern.ch

View File

@@ -68,25 +68,25 @@ CREATE CLASS HBDbObject
VAR AllNames INIT {}
VAR lEditable
METHOD New( aArray, cVarName, lEditable )
METHOD New( oObject, cVarName, lEditable )
METHOD addWindows( aArray, nRow )
METHOD doGet( oBrowse, pItem, nSet )
METHOD SetsKeyPressed( nKey, oBrwSets, oWnd, cName, aArray )
ENDCLASS
METHOD New( aArray, cVarName, lEditable ) CLASS HBDbObject
METHOD New( oObject, cVarName, lEditable ) CLASS HBDbObject
LOCAL aTemp
DEFAULT lEditable TO .T.
FOR EACH aTemp IN __objGetValueList( aArray )
FOR EACH aTemp IN __objGetValueList( oObject )
AAdd( ::pItems, { aTemp[ 1 ], aTemp[ 2 ] } )
AAdd( ::AllNames, aTemp[ 1 ] )
NEXT
FOR EACH aTemp IN __objGetMethodList( aArray )
FOR EACH aTemp IN __objGetMethodList( oObject )
IF !Empty( aTemp )
AAdd( ::pItems, { aTemp, "Method" } )
AAdd( ::AllNames, aTemp )
@@ -94,7 +94,7 @@ METHOD New( aArray, cVarName, lEditable ) CLASS HBDbObject
NEXT
::objname := cVarName
::TheObj := aArray
::TheObj := oObject
::lEditable := lEditable
::addWindows( ::pItems )
@@ -127,7 +127,7 @@ METHOD addWindows( aArray, nRow ) CLASS HBDbObject
nWidth := oWndSets:nRight - oWndSets:nLeft - 1
oBrwSets := TBrowseNew( oWndSets:nTop + 1, oWndSets:nLeft + 1, oWndSets:nBottom - 1, oWndSets:nRight - 1 )
::ArrayReference := aarray
::ArrayReference := aArray
oBrwSets:ColorSpec := __Dbg():ClrModal()
oBrwSets:GoTopBlock := { || ::Arrayindex := 1 }
@@ -145,12 +145,12 @@ METHOD addWindows( aArray, nRow ) CLASS HBDbObject
oBrwSets:AddColumn( oCol := TBColumnNew( "", { || iif( ISCHARACTER( ::ArrayReference[ ::ArrayIndex, 2 ] ) .AND. ::ArrayReference[ ::ArrayIndex, 2 ] == "Method",;
"Method",;
PadR( __dbgValToStr( __ObjSendMsg( ::TheObj, ::ArrayReference[ ::arrayindex, 1 ] ) ), nWidth - 12 ) ) } ) )
PadR( __dbgValToStr( __objSendMsg( ::TheObj, ::ArrayReference[ ::arrayindex, 1 ] ) ), nWidth - 12 ) ) } ) )
oBrwSets:Cargo := 1 // Actual highligthed row
oCol:ColorBlock := { || { iif( ::Arrayindex == oBrwSets:Cargo, 3, 1 ), 3 } }
oCol:width := MaxCol() - 14 - nMaxLen
oBrwSets:colpos := 2
oBrwSets:colPos := 2
::aWindows[ ::nCurWindow ]:bPainted := { || oBrwSets:ForceStable() }
::aWindows[ ::nCurWindow ]:bKeyPressed := { | nKey | ::SetsKeyPressed( nKey, oBrwSets, Len( aArray ),;
::aWindows[ ::nCurWindow ], ::objname, Len( ::Arrayreference ), ::pitems ) }
@@ -203,7 +203,7 @@ METHOD doGet( oBrowse, pItem, nSet ) CLASS HBDbObject
SetKey( K_INS, bInsSave )
IF LastKey() == K_ENTER
__ObjSendMsg( ::TheObj, "_" + pitem[ nSet, 1 ], &cValue )
__objSendMsg( ::TheObj, "_" + pitem[ nSet, 1 ], &cValue )
ENDIF
// check exit key from get

View File

@@ -148,7 +148,7 @@ function __dbgShowWorkAreas()
n3 := iif( nSkip > 0, Min( Len( aStruc ), n3 + nSkip ),;
Max( 1, n3 + nSkip ) ), n3 - nPos }
aBrw[ 3 ]:AddColumn( TBColumnNew( "", { || PadR( aStruc[ n3, 1 ], 11) + ;
aBrw[ 3 ]:AddColumn( TBColumnNew( "", { || PadR( aStruc[ n3, 1 ], 11 ) + ;
aStruc[ n3, 2 ] + ;
Str( aStruc[ n3, 3 ], 4 ) + ;
Str( aStruc[ n3, 4 ], 3 ) } ) )
@@ -165,9 +165,9 @@ static function DlgWorkAreaPaint( oDlg, aBrw )
/* Display captions */
DispOutAt( oDlg:nTop, oDlg:nLeft + 5 , " Area ", oDlg:cColor )
DispOutAt( oDlg:nTop, oDlg:nLeft + 28 , " Status ", oDlg:cColor )
DispOutAt( oDlg:nTop, oDlg:nLeft + 56 , " Structure ", oDlg:cColor )
DispOutAt( oDlg:nTop, oDlg:nLeft + 5, " Area ", oDlg:cColor )
DispOutAt( oDlg:nTop, oDlg:nLeft + 28, " Status ", oDlg:cColor )
DispOutAt( oDlg:nTop, oDlg:nLeft + 56, " Structure ", oDlg:cColor )
/* Display separator lines */
@@ -220,7 +220,7 @@ static function DlgWorkAreaKey( nKey, oDlg, aBrw, aAlias, aStruc, aInfo )
if nKey == K_TAB .or. nKey == K_SH_TAB
aBrw[ s_nFocus ]:Dehilite()
s_nFocus := s_nFocus + iif( nKey == K_TAB, 1, -1)
s_nFocus := s_nFocus + iif( nKey == K_TAB, 1, -1 )
if s_nFocus < 1
s_nFocus := 3
endif
@@ -328,7 +328,7 @@ static function DbfInfo( aInfo )
AAdd( aInfo, Space( 8 ) + "Index order: " + LTrim( Str( IndexOrd() ) ) )
AAdd( aInfo, Space( 4 ) + "Current Record" )
for nFor := 1 to Fcount()
for nFor := 1 to FCount()
xValue := FieldGet( nFor )
xType := ValType( xValue )
@@ -365,10 +365,10 @@ static function UpdateInfo( oDlg, cAlias )
PadR( LTrim( Str( RecNo() ) ) + "/" + LTrim( Str( LastRec() ) ), 9 ),;
oDlg:cColor )
DispOutAt( oDlg:nTop + 2, oDlg:nLeft + 21, iif( Bof(),"Yes" , "No "), oDlg:cColor )
DispOutAt( oDlg:nTop + 2, oDlg:nLeft + 38, iif( Deleted(),"Yes" , "No "), oDlg:cColor )
DispOutAt( oDlg:nTop + 3, oDlg:nLeft + 21, iif( Eof(),"Yes" , "No "), oDlg:cColor )
DispOutAt( oDlg:nTop + 3, oDlg:nLeft + 38, iif( Found(),"Yes" , "No "), oDlg:cColor )
DispOutAt( oDlg:nTop + 2, oDlg:nLeft + 21, iif( Bof(), "Yes", "No " ), oDlg:cColor )
DispOutAt( oDlg:nTop + 2, oDlg:nLeft + 38, iif( Deleted(), "Yes", "No " ), oDlg:cColor )
DispOutAt( oDlg:nTop + 3, oDlg:nLeft + 21, iif( Eof(), "Yes", "No " ), oDlg:cColor )
DispOutAt( oDlg:nTop + 3, oDlg:nLeft + 38, iif( Found(), "Yes", "No " ), oDlg:cColor )
DispOutAt( oDlg:nTop + 4, oDlg:nLeft + 21, PadR( dbFilter(), 29 ), oDlg:cColor )
DispOutAt( oDlg:nTop + 5, oDlg:nLeft + 21, PadR( ordKey(), 29 ), oDlg:cColor )

View File

@@ -308,6 +308,13 @@ METHOD configure( nMode ) CLASS TBrowse
::lFooters := .F.
::lRedrawFrame := .T.
if nMode == 2 .AND. ::nColumns == 1
::leftVisible := 1
endif
if ::nColumns < ::nFrozenCols
::nFrozenCols := 0
endif
// Are there column headers to paint ?
for n := 1 to ::nColumns
if ! Empty( ::aColumns[ n ]:Heading )
@@ -375,6 +382,10 @@ METHOD configure( nMode ) CLASS TBrowse
::freeze := ::nFrozenCols
endif
if nMode == 2
::HowManyCol()
endif
#ifdef HB_COMPAT_C53
nLeft := ::n_Left
@@ -391,7 +402,7 @@ METHOD configure( nMode ) CLASS TBrowse
// Adds a TBColumn object to the TBrowse object
METHOD addColumn( oCol ) CLASS TBrowse
::Moved()
::Moved() /* TOFIX: This logic should go inside ::configure() */
::nColumns++
@@ -400,12 +411,7 @@ METHOD addColumn( oCol ) CLASS TBrowse
AAdd( ::aColsPos, 0 )
AAdd( ::aColsInfo, ::InitColumn( oCol, .T. ) )
if ::nColumns == 1
::leftVisible := 1
endif
::Configure( 2 )
::HowManyCol()
return Self
@@ -414,10 +420,12 @@ METHOD insColumn( nPos, oCol ) CLASS TBrowse
if nPos >= 1
::Moved()
::Moved() /* TOFIX: This logic should go inside ::configure() */
if nPos > ::nColumns
/* NOTE: CA-Cl*pper doesn't do this, but crashes instead. */
::nColumns++
AAdd( ::aColumns, oCol )
@@ -445,7 +453,6 @@ METHOD insColumn( nPos, oCol ) CLASS TBrowse
endif
::Configure( 2 )
::HowManyCol()
endif
@@ -454,9 +461,11 @@ METHOD insColumn( nPos, oCol ) CLASS TBrowse
// Replaces one TBColumn object with another
METHOD setColumn( nPos, oCol ) CLASS TBrowse
/* NOTE: CA-Cl*pper doesn't check this, but crashes instead. */
if nPos >= 1 .and. nPos <= ::nColumns
::Moved()
::Moved() /* TOFIX: This logic should go inside ::configure() */
::aColumns[ nPos ] := oCol
::aColsWidth[ nPos ] := ::SetColumnWidth( oCol )
@@ -464,7 +473,6 @@ METHOD setColumn( nPos, oCol ) CLASS TBrowse
::aColsInfo[ nPos ] := ::InitColumn( oCol, .F. )
::Configure( 2 )
::HowManyCol()
endif
@@ -474,10 +482,12 @@ METHOD delColumn( nPos ) CLASS TBrowse
local oCol := ::aColumns[ nPos ] /* NOTE: To keep CA-Cl*pper compatible runtime error generation. [vszakats] */
::Moved()
::Moved() /* TOFIX: This logic should go inside ::configure() */
/* Need to adjust variables in case last column is deleted. */
/* TOFIX: This logic should go inside ::configure() */
if nPos == ::nColPos .or. ;
nPos == ::nColumns .or.;
::nColPos == ::nColumns .or. ;
@@ -506,12 +516,7 @@ METHOD delColumn( nPos ) CLASS TBrowse
ADel( ::aColsInfo, nPos )
ASize( ::aColsInfo, ::nColumns )
if ::nColumns < ::nFrozenCols
::nFrozenCols := 0
endif
::Configure( 2 )
::HowManyCol()
return oCol
@@ -1771,6 +1776,7 @@ METHOD colorSpec( cColorSpec ) CLASS TBrowse
if cColorSpec != NIL
::cColorSpec := _eInstVar( Self, "COLORSPEC", cColorSpec, "C", 1001 )
::Configure( 1 )
endif
return ::cColorSpec

View File

@@ -213,7 +213,7 @@ ENDCLASS
METHOD assign() CLASS Get
if ::HasFocus
if ::hasFocus
::VarPut( ::UnTransform(), .F. )
endif
@@ -221,7 +221,7 @@ METHOD assign() CLASS Get
METHOD updateBuffer() CLASS Get
if ::HasFocus
if ::hasFocus
::cBuffer := ::PutMask( ::VarGet() )
::Display()
else
@@ -243,7 +243,7 @@ METHOD display( lForced ) CLASS Get
::picture := ::cPicture
endif
if ::HasFocus
if ::hasFocus
cBuffer := ::cBuffer
else
cBuffer := ::PutMask( ::VarGet() )
@@ -256,13 +256,13 @@ METHOD display( lForced ) CLASS Get
::nDispLen := ::nMaxLen
endif
if ::cType == "N" .and. ::HasFocus .and. ! ::lMinusPrinted .and. ;
::DecPos != 0 .and. ::lMinus2 .and. ;
::nPos > ::DecPos .and. Val( Left( cBuffer, ::DecPos - 1 ) ) == 0
if ::cType == "N" .and. ::hasFocus .and. ! ::lMinusPrinted .and. ;
::decPos != 0 .and. ::lMinus2 .and. ;
::nPos > ::decPos .and. Val( Left( cBuffer, ::decPos - 1 ) ) == 0
// display "-." only in case when value on the left side of
// the decimal point is equal 0
cBuffer := SubStr( cBuffer, 1, ::DecPos - 2 ) + "-." + SubStr( cBuffer, ::DecPos + 1 )
cBuffer := SubStr( cBuffer, 1, ::decPos - 2 ) + "-." + SubStr( cBuffer, ::decPos + 1 )
endif
if ::nDispLen != ::nMaxLen .and. ::nPos != 0 // ; has scroll?
@@ -275,13 +275,13 @@ METHOD display( lForced ) CLASS Get
nDispPos := 1
endif
if cBuffer != NIL .and. ( lForced .or. ( nDispPos != ::nOldPos ) )
if cBuffer != NIL .and. ( lForced .or. nDispPos != ::nOldPos )
DispOutAt( ::nRow, ::nCol + iif( ::cDelimit == NIL, 0, 1 ),;
SubStr( cBuffer, nDispPos, ::nDispLen ),;
hb_ColorIndex( ::cColorSpec, iif( ::HasFocus, GET_CLR_ENHANCED, GET_CLR_UNSELECTED ) ) )
hb_ColorIndex( ::cColorSpec, iif( ::hasFocus, GET_CLR_ENHANCED, GET_CLR_UNSELECTED ) ) )
if ::cDelimit != NIL
DispOutAt( ::nRow, ::nCol, Left( ::cDelimit, 1 ), hb_ColorIndex( ::cColorSpec, iif( ::HasFocus, GET_CLR_ENHANCED, GET_CLR_UNSELECTED ) ) )
DispOutAt( ::nRow, ::nCol + ::nDispLen + 1, SubStr( ::cDelimit, 2, 1 ), hb_ColorIndex( ::cColorSpec, iif( ::HasFocus, GET_CLR_ENHANCED, GET_CLR_UNSELECTED ) ) )
DispOutAt( ::nRow, ::nCol, Left( ::cDelimit, 1 ), hb_ColorIndex( ::cColorSpec, iif( ::hasFocus, GET_CLR_ENHANCED, GET_CLR_UNSELECTED ) ) )
DispOutAt( ::nRow, ::nCol + ::nDispLen + 1, SubStr( ::cDelimit, 2, 1 ), hb_ColorIndex( ::cColorSpec, iif( ::hasFocus, GET_CLR_ENHANCED, GET_CLR_UNSELECTED ) ) )
endif
endif
@@ -310,7 +310,7 @@ METHOD end() CLASS Get
local nPos
local nFor
if ::HasFocus
if ::hasFocus
nLastCharPos := Min( Len( RTrim( ::cBuffer ) ) + 1, ::nMaxEdit )
if ::nPos != nLastCharPos
nPos := nLastCharPos
@@ -324,7 +324,7 @@ METHOD end() CLASS Get
endif
next
::lClear := .F.
::TypeOut := ( ::nPos == 0 )
::typeOut := ( ::nPos == 0 )
::Display( .F. )
endif
@@ -332,10 +332,10 @@ METHOD end() CLASS Get
METHOD home() CLASS Get
if ::HasFocus
if ::hasFocus
::Pos := ::FirstEditable()
::lClear := .F.
::TypeOut := ( ::nPos == 0 )
::typeOut := ( ::nPos == 0 )
::Display( .F. )
endif
@@ -343,14 +343,14 @@ METHOD home() CLASS Get
METHOD reset() CLASS Get
if ::HasFocus
if ::hasFocus
::cBuffer := ::PutMask( ::VarGet(), .F. )
::Pos := ::FirstEditable() /* ; Simple 0 in CA-Cl*pper [vszakats] */
::lClear := ( "K" $ ::cPicFunc .or. ::cType == "N" )
::lEdit := .F.
::lMinus := .F.
::Rejected := .F.
::TypeOut := !( ::Type $ "CNDL" ) .or. ( ::nPos == 0 ) /* ; Simple .F. in CA-Cl*pper [vszakats] */
::rejected := .F.
::typeOut := !( ::Type $ "CNDL" ) .or. ( ::nPos == 0 ) /* ; Simple .F. in CA-Cl*pper [vszakats] */
::Display()
endif
@@ -358,8 +358,8 @@ METHOD reset() CLASS Get
METHOD undo() CLASS Get
if ::HasFocus
::VarPut( ::Original )
if ::hasFocus
::VarPut( ::original )
::Reset()
::lChanged := .F.
endif
@@ -370,16 +370,16 @@ METHOD setFocus() CLASS Get
local xVarGet
if ::HasFocus
if ::hasFocus
return Self
endif
xVarGet := ::VarGet()
::HasFocus := .T.
::Rejected := .F.
::hasFocus := .T.
::rejected := .F.
::Original := xVarGet
::original := xVarGet
::cType := ValType( xVarGet )
::Picture := ::cPicture
::cBuffer := ::PutMask( xVarGet, .F. )
@@ -404,22 +404,22 @@ METHOD killFocus() CLASS Get
::Assign()
endif
lHadFocus := ::HasFocus
lHadFocus := ::hasFocus
::HasFocus := .F.
::hasFocus := .F.
::nPos := 0
::lClear := .F.
::lMinus := .F.
::lChanged := .F.
::DecPos := 0 /* ; CA-Cl*pper NG says that it contains NIL, but in fact it contains zero. [vszakats] */
::TypeOut := .F.
::decPos := 0 /* ; CA-Cl*pper NG says that it contains NIL, but in fact it contains zero. [vszakats] */
::typeOut := .F.
if lHadFocus
::Display()
endif
::xVarGet := NIL
::Original := NIL
::original := NIL
::cBuffer := NIL
return Self
@@ -432,7 +432,7 @@ METHOD varPut( xValue, lReFormat ) CLASS Get
local i
if ISBLOCK( ::bBlock )
aSubs := ::SubScript
aSubs := ::subScript
if ISARRAY( aSubs ) .and. ! Empty( aSubs )
nLen := Len( aSubs )
aValue := Eval( ::bBlock )
@@ -453,10 +453,11 @@ METHOD varPut( xValue, lReFormat ) CLASS Get
DEFAULT lReFormat TO .T.
if lReFormat
::cType := ValType( xValue )
::xVarGet := xValue
::lEdit := .F.
::Picture := ::cPicture
::cType := ValType( xValue )
::xVarGet := xValue
::lEdit := .F.
::Picture := ::cPicture
::nDispLen := NIL
endif
else
xValue := NIL
@@ -472,7 +473,7 @@ METHOD varGet() CLASS Get
local xValue
if ISBLOCK( ::bBlock )
aSubs := ::SubScript
aSubs := ::subScript
if ISARRAY( aSubs ) .and. ! Empty( aSubs )
nLen := Len( aSubs )
xValue := Eval( ::bBlock )
@@ -501,7 +502,7 @@ METHOD unTransform() CLASS Get
local nFor
local lMinus
if ! ::HasFocus
if ! ::hasFocus
return NIL
endif
@@ -509,9 +510,9 @@ METHOD unTransform() CLASS Get
if ! ISCHARACTER( cBuffer )
::lClear := .F.
::DecPos := 0
::decPos := 0
::nPos := 0
::TypeOut := .F.
::typeOut := .F.
return NIL
endif
@@ -524,7 +525,7 @@ METHOD unTransform() CLASS Get
cBuffer := SubStr( cBuffer, 1, nFor - 1 ) + Chr( 1 ) + SubStr( cBuffer, nFor + 1 )
endif
next
xValue := PadR( StrTran( cBuffer, Chr( 1 ), "" ), Len( ::Original ) )
xValue := PadR( StrTran( cBuffer, Chr( 1 ), "" ), Len( ::original ) )
else
xValue := cBuffer
endif
@@ -618,7 +619,7 @@ METHOD unTransform() CLASS Get
METHOD overStrike( cChar ) CLASS Get
if ! ::HasFocus
if ! ::hasFocus
return Self
endif
@@ -627,17 +628,17 @@ METHOD overStrike( cChar ) CLASS Get
endif
if ::Pos > ::nMaxEdit
::Rejected := .T.
::rejected := .T.
return Self
endif
cChar := ::Input( cChar )
if cChar == ""
::Rejected := .T.
::rejected := .T.
return Self
else
::Rejected := .F.
::rejected := .F.
endif
if ::lClear .and. ::nPos == ::FirstEditable()
@@ -673,7 +674,7 @@ METHOD insert( cChar ) CLASS Get
local n
local nMaxEdit
if ! ::HasFocus
if ! ::hasFocus
return Self
endif
@@ -684,17 +685,17 @@ METHOD insert( cChar ) CLASS Get
endif
if ::nPos > ::nMaxEdit
::Rejected := .T.
::rejected := .T.
return Self
endif
cChar := ::Input( cChar )
if cChar == ""
::Rejected := .T.
::rejected := .T.
return Self
else
::Rejected := .F.
::rejected := .F.
endif
if ::lClear .and. ::nPos == ::FirstEditable()
@@ -743,17 +744,17 @@ METHOD right( lDisplay ) CLASS Get
local nPos
if ! ::HasFocus
if ! ::hasFocus
return Self
endif
DEFAULT lDisplay TO .T.
::TypeOut := .F.
::typeOut := .F.
::lClear := .F.
if ::nPos == ::nMaxEdit
::TypeOut := .T.
::typeOut := .T.
return Self
endif
@@ -766,7 +767,7 @@ METHOD right( lDisplay ) CLASS Get
if nPos <= ::nMaxEdit
::Pos := nPos
else
::TypeOut := .T.
::typeOut := .T.
endif
if lDisplay
@@ -779,17 +780,17 @@ METHOD left( lDisplay ) CLASS Get
local nPos
if ! ::HasFocus
if ! ::hasFocus
return Self
endif
DEFAULT lDisplay TO .T.
::TypeOut := .F.
::typeOut := .F.
::lClear := .F.
if ::nPos == ::FirstEditable()
::TypeOut := .T.
::typeOut := .T.
return Self
endif
@@ -802,7 +803,7 @@ METHOD left( lDisplay ) CLASS Get
if nPos > 0
::Pos := nPos
else
::TypeOut := .T.
::typeOut := .T.
endif
if lDisplay
@@ -815,15 +816,15 @@ METHOD wordLeft() CLASS Get
local nPos
if ! ::HasFocus
if ! ::hasFocus
return Self
endif
::TypeOut := .F.
::typeOut := .F.
::lClear := .F.
if ::nPos == ::FirstEditable()
::TypeOut := .T.
::typeOut := .T.
return Self
endif
@@ -861,15 +862,15 @@ METHOD wordRight() CLASS Get
local nPos
if ! ::HasFocus
if ! ::hasFocus
return Self
endif
::TypeOut := .F.
::typeOut := .F.
::lClear := .F.
if ::nPos == ::nMaxEdit
::TypeOut := .T.
::typeOut := .T.
return Self
endif
@@ -899,14 +900,14 @@ METHOD wordRight() CLASS Get
METHOD toDecPos() CLASS Get
if ::HasFocus
if ::hasFocus
if ::lClear
::DelEnd()
endif
::cBuffer := ::PutMask( ::UnTransform(), .F. )
::Pos := ::DecPos
::Pos := ::decPos
::lChanged := .T.
if ::UnTransform() == 0 .and. ::lMinus
@@ -925,7 +926,7 @@ METHOD backSpace( lDisplay ) CLASS Get
local nPos
local nMinus
if ! ::HasFocus
if ! ::hasFocus
return Self
endif
@@ -971,7 +972,7 @@ METHOD delete( lDisplay ) CLASS Get
local nMaxLen
local n
if ! ::HasFocus
if ! ::hasFocus
return Self
endif
@@ -1012,7 +1013,7 @@ METHOD delEnd() CLASS Get
local nPos
if ! ::HasFocus
if ! ::hasFocus
return Self
endif
@@ -1049,7 +1050,7 @@ METHOD delRight() CLASS Get
METHOD delWordLeft() CLASS Get
if ! ::HasFocus
if ! ::hasFocus
return Self
endif
@@ -1076,15 +1077,15 @@ METHOD delWordLeft() CLASS Get
METHOD delWordRight() CLASS Get
if ! ::HasFocus
if ! ::hasFocus
return Self
endif
::TypeOut := .F.
::typeOut := .F.
::lClear := .F.
if ::nPos == ::nMaxEdit
::TypeOut := .T.
::typeOut := .T.
return Self
endif
@@ -1142,7 +1143,7 @@ METHOD pos( nPos ) CLASS Get
if ISNUMBER( nPos )
if ::HasFocus
if ::hasFocus
do case
case nPos > ::nMaxLen
@@ -1152,7 +1153,7 @@ METHOD pos( nPos ) CLASS Get
else
::nPos := ::nMaxLen
endif
::TypeOut := .T.
::typeOut := .T.
case nPos > 0
@@ -1173,7 +1174,7 @@ METHOD pos( nPos ) CLASS Get
next
::nPos := ::nMaxLen + 1
::TypeOut := .T.
::typeOut := .T.
endcase
@@ -1271,8 +1272,8 @@ METHOD picture( cPicture ) CLASS Get
endif
// if ::cType == NIL
// ::Original := ::xVarGet
// ::cType := ValType( ::Original )
// ::original := ::xVarGet
// ::cType := ValType( ::original )
// endif
if ::cType == "D"
@@ -1336,7 +1337,7 @@ METHOD picture( cPicture ) CLASS Get
METHOD type() CLASS Get
return ::cType := ValType( iif( ::HasFocus, ::xVarGet, ::VarGet() ) )
return ::cType := ValType( iif( ::hasFocus, ::xVarGet, ::VarGet() ) )
/* The METHOD Block and VAR bBlock allow to replace the
* property Block for a function to control the content and
@@ -1354,7 +1355,7 @@ METHOD block( bBlock ) CLASS Get
endif
::bBlock := bBlock
::xVarGet := ::Original
::xVarGet := ::original
::cType := ValType( ::xVarGet )
return bBlock
@@ -1398,19 +1399,19 @@ METHOD lastEditable() CLASS Get
METHOD resetPar() CLASS Get
::nMaxLen := Len( ::cBuffer )
if ::nDispLen == NIL
::nDispLen := ::nMaxLen
endif
if ::cType == "N"
::DecPos := At( iif( ::lDecRev .or. "E" $ ::cPicFunc, ",", "." ), ::cBuffer )
if ::DecPos == 0
::DecPos := Len( ::cBuffer ) + 1
::decPos := At( iif( ::lDecRev .or. "E" $ ::cPicFunc, ",", "." ), ::cBuffer )
if ::decPos == 0
::decPos := Len( ::cBuffer ) + 1
endif
::lMinus2 := ( ::xVarGet < 0 )
else
::DecPos := 0 /* ; CA-Cl*pper NG says that it contains NIL, but in fact it contains zero. [vszakats] */
endif
if ::nDispLen == NIL
::nDispLen := ::nMaxLen
::decPos := 0 /* ; CA-Cl*pper NG says that it contains NIL, but in fact it contains zero. [vszakats] */
endif
return Self
@@ -1419,7 +1420,7 @@ METHOD badDate() CLASS Get
local xValue
return ::HasFocus .and. ;
return ::hasFocus .and. ;
::Type == "D" .and. ;
( xValue := ::UnTransform() ) == hb_SToD( "" ) .and. ;
!( ::cBuffer == Transform( xValue, ::cPicture ) )
@@ -1428,7 +1429,7 @@ METHOD badDate() CLASS Get
METHOD reform() CLASS Get
if ::HasFocus
if ::hasFocus
::cBuffer := ::PutMask( ::UnTransform(), .F. )
endif
@@ -1475,7 +1476,7 @@ METHOD DeleteAll() CLASS Get
local xValue
if ! ::HasFocus
if ! ::hasFocus
return Self
endif
@@ -1632,13 +1633,13 @@ METHOD PutMask( xValue, lEdit ) CLASS Get
local nNoEditable := 0
DEFAULT xValue TO ::VarGet()
DEFAULT lEdit TO ::HasFocus
DEFAULT lEdit TO ::hasFocus
if !( ValType( xValue ) $ "CNDL" )
xValue := ""
endif
if ::HasFocus
if ::hasFocus
cPicFunc := StrTran( cPicfunc, "B", "" )
if cPicFunc == "@"
cPicFunc := ""
@@ -1652,8 +1653,8 @@ METHOD PutMask( xValue, lEdit ) CLASS Get
cBuffer := Transform( xValue, ;
iif( Empty( cPicFunc ), ;
iif( ::lCleanZero .and. !::HasFocus, "@Z ", "" ), ;
cPicFunc + iif( ::lCleanZero .and. !::HasFocus, "Z", "" ) + " " ) ;
iif( ::lCleanZero .and. !::hasFocus, "@Z ", "" ), ;
cPicFunc + iif( ::lCleanZero .and. !::hasFocus, "Z", "" ) + " " ) ;
+ cPicMask )
if ::cType == "N"
@@ -1726,7 +1727,7 @@ METHOD buffer( cBuffer ) CLASS Get
return ::cBuffer
endif
return iif( ::HasFocus, ::cBuffer := cBuffer, cBuffer )
return iif( ::hasFocus, ::cBuffer := cBuffer, cBuffer )
/* NOTE: In contrary to CA-Cl*pper docs, this var is assignable. [vszakats] */
@@ -1737,7 +1738,7 @@ METHOD changed( lChanged ) CLASS Get
endif
if ISLOGICAL( lChanged )
return iif( ::HasFocus, ::lChanged := lChanged, lChanged )
return iif( ::hasFocus, ::lChanged := lChanged, lChanged )
endif
return .F.
@@ -1749,7 +1750,7 @@ METHOD clear( lClear ) CLASS Get
endif
if ISLOGICAL( lClear )
return iif( ::HasFocus, ::lClear := lClear, lClear )
return iif( ::hasFocus, ::lClear := lClear, lClear )
endif
return .F.
@@ -1761,7 +1762,7 @@ METHOD minus( lMinus ) CLASS Get
endif
if ISLOGICAL( lMinus )
return iif( ::HasFocus, ::lMinus := lMinus, lMinus )
return iif( ::hasFocus, ::lMinus := lMinus, lMinus )
endif
return .F.

View File

@@ -70,6 +70,7 @@ STATIC s_lRTEDetails
STATIC s_lC5xDump
FUNCTION Main( cArg01, cArg02, cArg03, cArg04 )
LOCAL uNIL := NIL
LOCAL nInt01 := 98
LOCAL cStr01 := "AbC DF 974"
LOCAL cStr02E := ""
@@ -109,6 +110,18 @@ FUNCTION Main( cArg01, cArg02, cArg03, cArg04 )
FWrite( s_fhnd, Set( _SET_DATEFORMAT ) + hb_OSNewLine() )
// ; colorDisp / VarPut / display (::nDispLen recalc)
SetPos( 14, 14 ) ; o := _GET_( uNIL, "uNIL" )
TEST_LINE( o:colorDisp( "GR/N" ) )
TEST_LINE( o:VarPut( "<hello>" ) )
TEST_LINE( o:display() )
SetPos( 14, 14 ) ; o := _GET_( uNIL, "uNIL" )
TEST_LINE( o:colorSpec := "GR/N" )
TEST_LINE( o:VarPut( "<hello>" ) )
TEST_LINE( o:display() )
// ; Minus
SetPos( 14, 14 ) ; o := _GET_( nInt01, "nInt01", "9999.99",, )