campo richedit paso a paso "for dumb" por favor

Post Reply
User avatar
JoseAlvarez
Posts: 851
Joined: Sun Nov 09, 2014 5:01 pm

campo richedit paso a paso "for dumb" por favor

Post 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.

Image
"Los errores en programación, siempre están entre la silla y el teclado..."

Fwh 19.06 32 bits + Harbour 3.2 + Borland 7.4 + MariaDB + TDolphin

Carora, Estado Lara, Venezuela.
User avatar
karinha
Posts: 8720
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil
Contact:

Re: campo richedit paso a paso "for dumb" por favor

Post by karinha »

João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
JoseAlvarez
Posts: 851
Joined: Sun Nov 09, 2014 5:01 pm

Re: campo richedit paso a paso "for dumb" por favor

Post by JoseAlvarez »

karinha wrote: Wed Sep 10, 2025 12:36 pm Simples,

https://forums.fivetechsupport.com/view ... hp?t=45684

Regards, saludos.
Estimado master joao, gracias por tu buena disposicion siempre para audarnos. Pero con mucha pena te digo, no entendi nada en ese post :(
"Los errores en programación, siempre están entre la silla y el teclado..."

Fwh 19.06 32 bits + Harbour 3.2 + Borland 7.4 + MariaDB + TDolphin

Carora, Estado Lara, Venezuela.
User avatar
Antonio Linares
Site Admin
Posts: 44515
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain
Contact:

Re: campo richedit paso a paso "for dumb" por favor

Post by Antonio Linares »

Estimado José,

Puedes compartir el código y el recurso (en caso de que lo uses) para adaptarlo a RichEdit ?

gracias
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
karinha
Posts: 8720
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil
Contact:

Re: campo richedit paso a paso "for dumb" por favor

Post by karinha »

JoseAlvarez wrote: Wed Sep 10, 2025 12:41 pm
karinha wrote: Wed Sep 10, 2025 12:36 pm Simples,

https://forums.fivetechsupport.com/view ... hp?t=45684

Regards, saludos.
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.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
JoseAlvarez
Posts: 851
Joined: Sun Nov 09, 2014 5:01 pm

Re: campo richedit paso a paso "for dumb" por favor

Post 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.

Image

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.
"Los errores en programación, siempre están entre la silla y el teclado..."

Fwh 19.06 32 bits + Harbour 3.2 + Borland 7.4 + MariaDB + TDolphin

Carora, Estado Lara, Venezuela.
User avatar
karinha
Posts: 8720
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil
Contact:

Re: campo richedit paso a paso "for dumb" por favor

Post by karinha »

Estimado, falta:

Code: Select all | Expand

#include "Cuentas32.ch"
Regards, saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
carlos vargas
Posts: 1815
Joined: Tue Oct 11, 2005 5:01 pm
Location: Nicaragua

Re: campo richedit paso a paso "for dumb" por favor

Post 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
Image
Salu2
Carlos Vargas
Desde Managua, Nicaragua (CA)
carito
Posts: 98
Joined: Sat Dec 03, 2016 2:49 pm

Re: campo richedit paso a paso "for dumb" por favor

Post 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
User avatar
JoseAlvarez
Posts: 851
Joined: Sun Nov 09, 2014 5:01 pm

Re: campo richedit paso a paso "for dumb" por favor

Post by JoseAlvarez »

karinha wrote: Thu Sep 11, 2025 5:02 pm Estimado, falta:

Code: Select all | Expand

#include "Cuentas32.ch"
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
"Los errores en programación, siempre están entre la silla y el teclado..."

Fwh 19.06 32 bits + Harbour 3.2 + Borland 7.4 + MariaDB + TDolphin

Carora, Estado Lara, Venezuela.
User avatar
carlos vargas
Posts: 1815
Joined: Tue Oct 11, 2005 5:01 pm
Location: Nicaragua

Re: campo richedit paso a paso "for dumb" por favor

Post by carlos vargas »

la verdad es una prueba, para ver si entre todo lo podemos implementar.
Salu2
Carlos Vargas
Desde Managua, Nicaragua (CA)
User avatar
leandro
Posts: 1828
Joined: Wed Oct 26, 2005 2:49 pm
Location: Colombia
Contact:

Re: campo richedit paso a paso "for dumb" por favor

Post 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.
Saludos
LEANDRO AREVALO
Bogotá (Colombia)
https://hymlyma.com
https://hymplus.com/
[email protected]
[email protected]

[ Turbo Incremental Link64 6.98 Embarcadero 7.70 ] [ FiveWin 25.01 ] [ xHarbour 64 bits) ]
Post Reply