Uso la clase tsbrowse 7.1 y creo que todos conocemos sus problemas de refresco.
Yo en concreto tenía problemas al pintar una única fila y no tener el foco sobre browse, Pintaba la fila vacia.
He realizado cambios en el método lostfocus de la clases tsbrowse para corregir ese problema y ya me funciona perfectamente.
- Code: Select all Expand view RUN
METHOD LostFocus( hCtlFocus ) CLASS TSBrowse
Local nRecNo, uTag
Default ::aControls := {}
If ::lEditing .and. Len( ::aControls ) > 0 .and. ;
hCtlFocus == ::aControls[ 1 ]:hWnd
Return 0
EndIf
If ::lEditing
If ::aColumns[ ::nCell ]:oEdit != Nil
::aColumns[ ::nCell ]:oEdit:End()
EndIf
::lEditing := ::lPostEdit := .F.
EndIf
::lNoPaint := .F.
If ::lDrag
Return Super:LostFocus( hCtlFocus )
EndIf
::lFocused = .F.
If ! Empty( ::bLostFocus )
Eval( ::bLostFocus, hCtlFocus )
EndIf
If ::nLen > 0 .and. ! EmptyAlias( ::cAlias ) .and. ! ::lIconView
::DrawSelect()
If ::lIsDbf .and. ( ::cAlias )->( RecNo() ) != ::nLastPos
::nLastPos := ( ::cAlias )->( RecNo() )
::nLastnAt := ::nAt
If ::bTagOrder != Nil .and. ! ::lNoResetPos .and. ::bLastTag != Nil
::uLastTag := Eval( ::bLastTag )
EndIf
EndIf
EndIf
If ::oCtx != Nil
::oCtx:Save()
EndIf
::lHasFocus := .F.
Return 0