Page 1 of 1
campo richedit paso a paso "for dumb" por favor
Posted: Wed Sep 10, 2025 12:05 pm
by JoseAlvarez
Hola a Todos, estimados amigos del foro.
Pensando en entrar en la onda de la IA, intenté dar un primer paso a modo de prueba.
Interactuando con la IA
deepseek por ser la única que no esta bloqueada en mi país, logré conectar vía API, con funciones que ella misma me creó y entregó (mi versión FW es vieja y no posee las clases de IA) Todo Bien Hasta aquí. Pero para los campos de pregunta/respuesta estoy usando un simple get, memo y multiline, al estilo antiguo.
He logrado la interacción desde mi aplicación y funciona bien a excepción de algo: La IA cuando responde, incluye en su respuesta iconos y emojis, y allí se presenta el problema. se muestran caracteres extraños en lugar de los emojis e iconos.
También se presentan problemas con los ENTER y saltos de líneas en algunos casos, en fin, llegué a la conclusión de que el get memo no me sirve para ello. Como no tengo conocimiento en el uso de campos RICHEDIT le pedí a la IA que obviara los acentos, los iconos, los caracteres extraños, y lo he logrado en gran parte, pero he tenido que implementar demasiadas funciones creadas por la misma IA para ir solventando.
Esa idea no me gusta. Es demasiado código para hacer, lo que estoy seguro que se resuelve con un simple campo richedit que pueda reconocer la respuesta de la IA tal como llega (creo que es así, y espero que sea así)
mi consulta: alguien puede guiarme paso a paso como crear y usar un campo RICHEDIT?
Disculpen el texto tan largo, pero quise ubicarlos bien en el contexto que estoy trabajando.
Gracias por la ayuda que puedan prestarme.

Re: campo richedit paso a paso "for dumb" por favor
Posted: Wed Sep 10, 2025 12:36 pm
by karinha
Re: campo richedit paso a paso "for dumb" por favor
Posted: Wed Sep 10, 2025 12:41 pm
by JoseAlvarez
Estimado master joao, gracias por tu buena disposicion siempre para audarnos. Pero con mucha pena te digo, no entendi nada en ese post

Re: campo richedit paso a paso "for dumb" por favor
Posted: Wed Sep 10, 2025 1:10 pm
by Antonio Linares
Estimado José,
Puedes compartir el código y el recurso (en caso de que lo uses) para adaptarlo a RichEdit ?
gracias
Re: campo richedit paso a paso "for dumb" por favor
Posted: Wed Sep 10, 2025 6:10 pm
by karinha
JoseAlvarez wrote: Wed Sep 10, 2025 12:41 pm
Estimado master joao, gracias por tu buena disposicion siempre para audarnos. Pero con mucha pena te digo, no entendi nada en ese post
Lo siento, amigo, creo que me equivoqué en mi respuesta. Creía que la última versión de FWH ya preveía lo que quieres hacer. Aunque sería mucho más seguro que actualizaras tu versión de FWH, ¿no crees?
Haz lo que pide el Maestro Liñares y publica el código para analizarlo, ¿sí?
Gracias, tks.
Regards, saludos.
Re: campo richedit paso a paso "for dumb" por favor
Posted: Thu Sep 11, 2025 3:44 pm
by JoseAlvarez
muchas gracias master antonio y master joao. Aca les dejo el link de descarga para el .PRG
https://goo.su/EzTS9
recurso:
Code: Select all | Expand
ODLG_ASISTENTEIA DIALOG DISCARDABLE 11, 15, 517, 213
STYLE WS_POPUP|DS_MODALFRAME|WS_CAPTION|WS_VISIBLE
FONT 10, "Courier New"
{
CONTROL "", 4001, "Edit", ES_MULTILINE|WS_VSCROLL|WS_TABSTOP, 8, 28, 208, 172, WS_EX_STATICEDGE
CONTROL "", 4002, "TBtnBmp", WS_TABSTOP, 224, 116, 28, 25
CONTROL "", 270, "TBtnBmp", WS_TABSTOP, 224, 176, 25, 25
CONTROL "", 4003, "TBtnBmp", WS_TABSTOP, 224, 72, 25, 25
CONTROL "", 4011, "Static", WS_GROUP, 12, 4, 220, 10
CONTROL "Tu Pregunta", 4005, "Static", WS_GROUP, 8, 20, 64, 8
CONTROL "Respuesta", 4006, "Static", WS_GROUP, 260, 20, 64, 8
CONTROL "", 4007, "TBtnBmp", WS_TABSTOP, 224, 28, 25, 25
CONTROL "", 4004, "Edit", ES_MULTILINE|WS_VSCROLL|WS_TABSTOP, 260, 28, 248, 172, WS_EX_STATICEDGE
}
En la siguiente imagen muestro la interfaz. a través del control 4003 (botón con signo "?" ) hago la interacción con la IA donde puedo consultar sobre cualquier tema. Con el control 4002, donde se ve la imagen de un operador de callcenter, estoy implementado el manual de usuario del sistema. No uso la IA en esa parte.
Aunque el problema de los emojis y símbolos extraños lo solucioné con solo hacer una concatenación al final de la pregunta: " contesta sin colocar letras en negrilla ni iconos ni emojis. solo texto plano." seria interesante hacer el richedit para en primer lugar, reducir código y en segundo lugar mostrar una respuesta mas elegante.
Agradecido por la ayuda que puedan prestar.
Re: campo richedit paso a paso "for dumb" por favor
Posted: Thu Sep 11, 2025 5:02 pm
by karinha
Estimado, falta:
Regards, saludos.
Re: campo richedit paso a paso "for dumb" por favor
Posted: Fri Sep 12, 2025 12:05 am
by carlos vargas
A ver si nos animamos a hacer esto con twebview2 y summentnote, nos quedaria un excelente editor.
http://carlosvargas.duckdns.org/ownclou ... 29EIo92MIO
Code: Select all | Expand
#include "FiveWin.ch"
STATIC cEditor := ""
PROCEDURE Main()
LOCAL oWnd
LOCAL oWebView2
SetDPIAware(2)
DEFINE WINDOW oWnd TITLE "Integración de Summernote con TWebView2" SIZE 800, 600
oWebView2 := TWebView2():New( oWnd )
//oWebView2:SetTitle( "Microsoft Edge WebView working from FWH" )
oWebView2:Navigate( GetFilePath( "recursos/editor.html" ) )
oWebView2:SetUserAgent( "Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.5060.53 Mobile Safari/537.36" )
ACTIVATE WINDOW oWnd CENTER ;
ON RESIZE oWebView2:SetSize( nWidth, nHeight )
oWebView2:End()
RETURN
STATIC FUNCTION GetFilePath( cFile )
RETURN CurDrive() + ":\" + CurDir() + "\" + cFile
#pragma BEGINDUMP
#include <windows.h>
#include <shellscalingapi.h>
#include <hbapi.h>
HB_FUNC( SETDPIAWARE )
{
hb_retnl( (long) SetProcessDpiAwareness( (PROCESS_DPI_AWARENESS) hb_parni(1) ) );
}
#pragma ENDDUMP

Re: campo richedit paso a paso "for dumb" por favor
Posted: Fri Sep 12, 2025 2:44 pm
by carito
Hola Carlos, buen dia.
Super bueno tu ejemplo, se ve super moderno, ejecute tu el demo, pero puedes decirme como se graba e imprime.
Como lo haces para que para guardar con texto con imagenes, que forma recomiendas.
Gracias, saludos
Carito
Re: campo richedit paso a paso "for dumb" por favor
Posted: Fri Sep 12, 2025 7:34 pm
by JoseAlvarez
karinha wrote: Thu Sep 11, 2025 5:02 pm
Estimado, falta:
Regards, saludos.
Joao: este es el .ch
Code: Select all | Expand
#include "common.ch"
#include "directry.ch"
#include "dbstruct.ch"
#include "dbinfo.ch"
#include "fileio.ch"
#include "ord.ch"
#include "struct.ch"
#include "fivewin.ch"
#include "dtpicker.ch"
#include "gif.ch"
#include "trsay.ch"
#include "image.ch"
#include "mail.ch"
#include "print.ch"
#include "report.ch"
#include "splitter.ch"
#include "colors.ch"
#include "tdolphin.ch"
#include "tsbutton.ch"
#include "urllink.ch"
#include "values.ch"
#include "wcolors.ch"
#include "xbrowse.ch"
#include "hbcompat.ch"
#include 'hbcurl.ch'
#include 'richedit.h
Re: campo richedit paso a paso "for dumb" por favor
Posted: Sat Sep 13, 2025 6:40 pm
by carlos vargas
la verdad es una prueba, para ver si entre todo lo podemos implementar.
Re: campo richedit paso a paso "for dumb" por favor
Posted: Wed Sep 17, 2025 2:53 pm
by leandro
Hola buenos días, interesante tema, seria bueno también incluir, que al tener una plantilla de un texto largo podamos reemplazar algunas variables, y generar ese reporte por impresora, asumo que todo mediante html, de paso lo haríamos compatible con otro tipo de aplicaciones.