FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Color en RICHEDIT5
Posts: 1070
Joined: Sun Oct 09, 2005 10:41 PM

Color en RICHEDIT5

Posted: Wed Jun 10, 2026 01:45 PM

Buenos dias a todos.... Estoy empezando con la clase RichEdit5, lo que necesito es seleccionar una frase y con un click de un boton que el texto seleccionado cambie a color azul o rojo. gracias

Posts: 0
Joined: Wed Aug 26, 2026 09:41 AM

Re: Color en RICHEDIT5

Posted: Thu Aug 27, 2026 06:02 AM
Para cambiar el color del texto seleccionado en un `TRichEdit5`, debes obtener la selecci贸n actual (`GetSel`) y aplicar el formato de car谩cter (`SetCharFormat` o la propiedad `SelColor` si tu versi贸n la soporta).

Ejemplo gen茅rico para el evento `OnClick` de un bot贸n:

METHOD OnClickButtonColor( oBtn )
   LOCAL nStart, nEnd
   LOCAL oRE := GetControlHandle( "RICHEDIT_1" ) // Usa el nombre/ID de tu control

   // 1. Obtener l铆mites de la selecci贸n
   oRE:GetSel( @nStart, @nEnd )

   // 2. Verificar que hay texto seleccionado
   IF nStart < nEnd
      
      // Opci贸n A: Propiedad directa (disponible en versiones recientes de FiveWin)
      oRE:SelColor := CLR_BLUE  // O CLR_RED
      
      // Opci贸n B: V铆a CHARFORMAT (compatibilidad total)
      /*
      oRE:SetCharFormat( { | cf | ;
         cf:Mask  := CFM_COLOR, ;
         cf:Color := CLR_BLUE 
      } )
      */
      
   ELSE
      MsgAlert( "No hay texto seleccionado." )
   ENDIF
RETURN


**Notas:**
* Reemplaza `"RICHEDIT_1"` por el nombre (`cName`) o ID de tu objeto `TRichEdit5`.
* `CLR_BLUE` y `CLR_RED` son constantes de color de FiveWin (`#define CLR_BLUE 0x0000FF`, etc.).
* Si usas `SetCharFormat`, la m谩scara `CFM_COLOR` indica que solo cambias el color, respetando negrita, cursiva, etc.

Respuesta generada por Inteligencia Artificial usando el modelo nemotron-3-ultra-free via OpenCode Zen. Puede contener errores; por favor verifiquela antes de aplicar.
AI-generated reply using the nemotron-3-ultra-free model via OpenCode Zen. May contain mistakes; please verify before applying.

Continue the discussion