Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Delphi para la web (https://www.clubdelphi.com/foros/forumdisplay.php?f=51)
-   -   Unigui - Componente RichEdit (https://www.clubdelphi.com/foros/showthread.php?t=96448)

darkamerico 19-10-2023 18:27:34

Unigui - Componente RichEdit
 
Saludos estimados amigos,
Estoy buscando un componente que me permita trabajar con campos de texto enriquecido (RTF) para Unigui, existe alguno?

Atte,
Americo Torres

jhonny 27-10-2025 20:36:18

Hola Americo,

Excelente pregunta sobre componentes RichEdit para Unigui. Te comento las opciones disponibles:

Situación Actual:
Unigui no incluye un componente RichEdit nativo en su distribución estándar, ya que se basa en ExtJS para el frontend y la arquitectura web presenta desafíos diferentes al desarrollo VCL tradicional.

Alternativas y Soluciones:

1. TinyMCE (Recomendado - Open Source)
- Editor WYSIWYG basado en HTML5
- Licencia: LGPL 2.1 (gratuito para uso comercial)
- Integración mediante TUniHTMLFrame o TUniURLFrame
- Soporta formato RTF mediante conversión HTML↔RTF
- URL: https://www.tiny.cloud/

2. CKEditor (Open Source)
- Muy popular y robusto
- Licencia: GPL/LGPL/MPL
- Excelente para aplicaciones empresariales
- Integración similar a TinyMCE
- URL: https://ckeditor.com/

3. Quill Editor (Open Source)
- Moderno y ligero
- Licencia: BSD
- API simple y extensible
- URL: https://quilljs.com/

4. Froala Editor (Comercial)
- Licencia comercial (~$349 USD)
- Interfaz muy pulida
- Soporte técnico incluido
- URL: https://froala.com/

Cómo Integrarlos en Unigui:

Código:

// Método 1: Usando TUniHTMLFrame
procedure TMainForm.UniFormCreate(Sender: TObject);
begin
  UniHTMLFrame1.HTML :=
    '<script src="https://cdn.tiny.cloud/1/YOUR_API_KEY/tinymce/6/tinymce.min.js"></script>' +
    '<textarea id="editor"></textarea>' +
    '<script>' +
    '  tinymce.init({' +
    '    selector: "#editor",' +
    '    plugins: "lists link image",' +
    '    toolbar: "undo redo | bold italic | alignleft aligncenter alignright"' +
    '  });' +
    '</script>';
end;

// Método 2: Archivo HTML externo
// Crea un archivo HTML con el editor y cárgalo con TUniURLFrame
UniURLFrame1.URL := 'files/richeditor.html';

// Para obtener/establecer contenido:
procedure TMainForm.GetEditorContent;
var
  Content: string;
begin
  UniSession.AddJS(
    'tinymce.get("editor").getContent({format: "text"});'
  );
end;

procedure TMainForm.SetEditorContent(AContent: string);
begin
  UniSession.AddJS(
    'tinymce.get("editor").setContent("' + AContent + '");'
  );
end;

Manejo de RTF:
Si necesitas trabajar específicamente con formato RTF (no HTML):

1. En servidor: Usa componentes Delphi como TRichEdit (VCL) o librerías de conversión RTF↔HTML
2. Convierte RTF a HTML antes de enviarlo al navegador
3. Al guardar, convierte HTML a RTF en el servidor

Bibliotecas útiles para conversión:
- HTMLTidy
- MarkdownDeep
- Converter libraries específicas RTF↔HTML

Componentes Comerciales para Unigui:

Aunque no hay componentes específicos "RichEdit para Unigui", algunos vendors ofrecen:

1. TMS Web Core RichEdit (puede adaptarse)
2. Componentes personalizados de terceros en el foro de Unigui
3. Desarrollos a medida integrando editores JavaScript

Recomendación Final:

Para la mayoría de casos, te sugiero:
- TinyMCE si necesitas solución gratuita y robusta
- Froala si tienes presupuesto y quieres soporte premium
- Implementar conversión RTF↔HTML en servidor si trabajas con archivos RTF legacy

Ejemplo completo:
Puedes encontrar ejemplos de integración en:
- Foro oficial Unigui: https://forums.unigui.com/
- Repositorio GitHub con demos de TinyMCE + Unigui

Si necesitas ayuda específica con la implementación, no dudes en preguntar.

Saludos,
Jhonny


La franja horaria es GMT +2. Ahora son las 06:38:54.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi