Moises, thanks, you are right
Please modify METHOD Redefine in TRichEdit CLASS
//----------------------------------------------------------------------------//
METHOD ReDefine( nId, bSetGet, oWnd, nHelpId, oFont, cMsg, lReadOnly, ;
lHighlight, cFileName, nRTFSize, lNoURL, bWhen, bValid, ;
bChanged ) CLASS TRichEdit
DEFAULT lReadOnly := .f., ;
lHighlight := .f., ;
cFileName := "" , ;
nRTFSize := 1024 * 1024, ;
lNoURL := .f., ;
oWnd := GetWndDefault()
::nId = nId
::bSetGet = bSetGet
::uOriginalValue = Eval( ::bSetGet )
::oWnd = oWnd
::nHelpId = nHelpId
::cMsg = cMsg
::bWhen = bWhen
::bValid = bValid
::lReadOnly = lReadOnly
::bChange = bChanged
::cFileName = cFileName
::nRTFSize = Max( nRTFSize, 32 * 1024 )
::lURL = !lNoURL
::lHighlight = lHighlight
::aKeywords1 = { "CLASS", "FROM", "ENDCLASS", "DATA", "AS", "METHOD",;
"CONSTRUCTOR", "function", "return", "OBJECT", "ENDOBJECT" }
::aKeywords2 = { "#include", "Self", "nil", "public", "local", "Super" }
::cSeparators = " +-()[]:*/{},="
::nClrNumber = CLR_HMAGENTA
::nClrString = CLR_YELLOW
::nClrComment = CLR_HBLUE
::nClrSeparator = CLR_WHITE
::nClrText = CLR_BLACK
::nClrKey1 = CLR_HGREEN
::nClrKey2 = CLR_HCYAN
if oFont == nil
DEFINE FONT ::oFont NAME "ARIAL" SIZE 0,If( LargeFonts(), -11, -13 )
else
::SetFont( oFont )
endif
::SetOleInit()
//::Register( nOr( CS_VREDRAW, CS_HREDRAW, CS_DBLCLKS ) )
oWnd:DefControl( Self )
return Self
//----------------------------------------------------------------------------//
and in CLASS TRICHEDIT5 ( fwh\source\classes\triched5.prg )
METHOD ReDefine( nId, bSetGet, oWnd, nHelpId, oFont, cMsg, lReadOnly, ;
lHighlight, cFileName, nRTFSize, lNoURL, bWhen, bValid, ;
bChanged, nLeftMargin, lNew ) CLASS TRichEdit5
local cDll
DEFAULT lReadOnly := .f., ;
lHighlight := .f., ;
cFileName := "" , ;
nRTFSize := 1024 * 1024, ;
lNoURL := .f., ;
oWnd := GetWndDefault(), ;
nLeftMargin := 0//, ;
lNew := .T.
::lUnicode := FW_SetUnicode()
::nId := nId
::bSetGet := bSetGet
::uOriginalValue = Eval( ::bSetGet )
::oWnd := oWnd
::nHelpId := nHelpId
::cMsg := cMsg
::bWhen := bWhen
::bValid := bValid
::lReadOnly := lReadOnly
::bChange := bChanged
::cFileName := cFileName
::nRTFSize := Max( nRTFSize, 32 * 1024 )
::lURL := !lNoURL
::lCaptured := .f.
if lNew
::cCtrl_Class := "RichEdit50W"
cDll := "Msftedit.dll"
else
::cCtrl_Class := "RichEdit20A"
cDll := "RichEd20.dll"
endif
if ::nInst == 0
::hLib := LoadLibrary( cDll )
endif
::nInst ++
if bSetGet != nil
::cCaption := cValToChar( Eval( bSetGet ) )
else
::cCaption := ""
endif
::lHighlight := lHighlight
::aKeyWords1 := {}
::aKeyWords1 := {}
::cSeparators := ""
::aCharFormat := {} // Array( 14 )
::nClrNumber := CLR_HMAGENTA
::nClrString := CLR_YELLOW
::nClrComment := CLR_HBLUE
::nClrSeparator := CLR_WHITE
::nClrText := CLR_BLACK
::nClrKey1 := CLR_HGREEN
::nClrKey2 := CLR_HCYAN
::nClrProtect := CLR_HRED
::nMarginLeft := nLeftMargin
if oFont == nil
DEFINE FONT ::oFont NAME "ARIAL" SIZE 0,If( LargeFonts(), -11, -13 )
else
::SetFont( oFont )
endif
::aTableFormat := Array( 7 )
::aPos := { 0, 0 }
::aOldPos := { 0, 0 }
::SetOleInit()
::Default()
::SendMsg( WM_SETFONT, ::oFont:hFont, 0 )
oWnd:DefControl( Self )
::SetFont2RTF( ::oFont:nHeight ) // to adjust point size
if ::lHighlight
::HighLightAllText() // PostMessage( ::hWnd, FM_HIGHLIGHTALL )
endif
if !Empty( ::nMarginLeft )
::SetMargin()
endif
return Self
//----------------------------------------------------------------------------//
I recommend that you use the new TRICHEDIT5 class