Amigo Cristóbal,
Por favor, ¿puedes compartir el .exe para poder probarlo?
Muy agradecida!
Elvira,
Ningún problema en que pruebes el EXE, pero lo que estamos desarrollando va mucho más allá, tecnicamente hablando, de lo que se ve en el video.
No se si conoces el concepto de "Broadway" de GTK. Podemos decir que queremos que FWH tenga el potencial de "Broadway" pero con la capacidad de atender a múltiples clientes. Para esto hay dos conceptos claves:
FWH tienes que ser capaz de generar HTML automaticamente para cualquier interfaz de usuario. Se está implementando un método Html() control por control.
Gracias a la nueva clase TWebSocketServer, la ejecución modal se mantiene y se usa la web (gracias al HTML generado en el punto 1) como interface de usuario, pero la ejecución de la web app en realidad se ejecuta en la app desktop, usando el "stack" de una "función", gracias a la ejecución multihilo.
Este concepto ya queda demostrado en el nuevo ejemplo samples\websock.prg (ojo, hay que construirlo usando el nuevo buildhmt.bat) en el que el "stack" (la pila de ejecución) de la función se mantiene y es por esto que pasamos de registro a registro (de una DBF, puede ser MySQL, etc) manteniendo la conexión "viva" gracias a los web sockets (es la técnica que usa Broadway).
Esto es revolucionario y logicamente no se va a implementar de un dia para otro. Las piezas estan funcionando y se estan "encajando" para llegar a nuestro objetivo. Si lo conseguimos, y todo apunta a que si, esto permitiria que cualquier aplicación desktop de FWH se pudiese usar via web sin tener que cambiar nada. Quien más se ha acercado a esto es "broadway" y nosotros pretendemos ir más allá ![]()
Muy agradecida Antonio, sí, Cristóbal ha apuntado estos objetivos.
Además de portar los diálogos, ¿cuándo se podrá ejecutar las acciones de los controles, es decir, el código interno?
Elvira,
Tecnicamente se puede hacer ya, pero lo que queremos es que esté disponible de forma "automática" y que no tengais que programarlo ![]()
Seria estupendo que esté listo para este año 2022...
¡Excelentes noticias!
Por favor, ¿dónde puedo descargar el .exe de fivedbu?
Application
===========
Path and name: C:\fwh21\samples\webapp.exe (32 bits)
Size: 4,839,424 bytes
Compiler version: Harbour 3.2.0dev (r2008190002)
FiveWin version: FWH 22.03
C compiler version: Borland/Embarcadero C++ 7.0 (32-bit)
Windows version: 6.2, Build 9200
Time from start: 0 hours 0 mins 4 secs
Error occurred at: 06/22/22, 09:20:02
Error description: Error BASE/3012 Argument error: NUMTOHEX
Args:
[ 1] = U
[ 2] = N 6
Stack Calls
===========
Called from: => NUMTOHEX( 0 )
Called from: .\source\function\VALBLANK.PRG => FW_CLRTOHTML( 318 )
Called from: .\source\function\WEBAPP.PRG => CHECKBOXHTML( 389 )
Called from: .\source\function\WEBAPP.PRG => CTRLSHTML( 410 )
Called from: .\source\classes\DIALOG.PRG => TDIALOG:HTML( 426 )
Called from: webapp.prg => (b)MAIN( 24 )
Called from: .\source\classes\WINDOW.PRG => TDIALOG:RBUTTONDOWN( 2175 )
Called from: => TWINDOW:HANDLEEVENT( 0 )
Called from: .\source\classes\DIALOG.PRG => TDIALOG:HANDLEEVENT( 1219 )
Called from: => DIALOGBOXINDIRECT( 0 )
Called from: .\source\classes\DIALOG.PRG => TDIALOG:ACTIVATE( 306 )
Called from: webapp.prg => MAIN( 24 )
System
======
CPU type: Intel(R) Core(TM) i7-6500U CPU @ 2.50GHz 2592 Mhz
Hardware memory: 7759 megs
Free System resources: 90 %
GDI resources: 90 %
User resources: 90 %
Windows total applications running: 3
1 ,
2 , C:\fwh21\samples\webapp.exe
3 GDI+ Window (webapp.exe), C:\WINDOWS\WinSxS\x86_microsoft.windows.gdiplus_6595b64144ccf1df_1.1.19041.1706_none_d94bc52be10975
Variables in use
================
Procedure Type Value
==========================
NUMTOHEX
Param 1: O Class: ERROR
FW_CLRTOHTML
Param 1: U
Param 2: N 6
Local 1: U
Local 2: U
CHECKBOXHTML
Param 1: U
Local 1: U
Local 2: S
Local 3: U
CTRLSHTML
Param 1: N 854592
Param 2: O Class: TDIALOG
Local 1: C "<div style="position:absolute;top:144px;left:96px;width:63px;height:29px;"><input type="checkbox"><label style="color:{{color}};height:29px;font-family:{{fontFaceName}};font-size:{{fontSize}}px">Ok</label></div>"
Local 2: A Len: 4
Local 3: A Len: 2
Local 4: N 3
Local 5: U
Local 6: N 63
Local 7: N 29
Local 8: S
Local 9: U
Local 10: C "<div style="position:absolute;top:144px;left:96px;width:63px;height:29px;"><input type="checkbox"><label style="color:{{color}};height:29px;font-family:{{fontFaceName}};font-size:{{fontSize}}px">Ok</label></div>"
Local 11: C "{{color}}"
TDIALOG:HTML
Param 1: O Class: TDIALOG
Local 1: N 854592
Local 2: C "Button"
Local 3: C "<div style="position:absolute;top:54px;left:72px;color:#00ff00;font-family:Segoe UI;font-size:12px">Your name:</div>
<style>
.TGet {
border-top: 2px inset gray;
border-left: 2px inset gray;
border-right: 2px inset white;
border-bottom: 2px inset white;
}
.TGet:focus-visible {
border: 2px solid transparent;
}
</style>
<input class="TGet" type="text" style="position:absolute;top:52px;left:160px;width:153px;height:23px;font-family:Segoe UI;font-size:12px;color:#ff0000;background-color:#c0c0c0"> >
"
Local 4: U
Local 5: C "<div style="position:absolute;top:54px;left:72px;color:#00ff00;font-family:Segoe UI;font-size:12px">Your name:</div>
<style>
.TGet {
border-top: 2px inset gray;
border-left: 2px inset gray;
border-right: 2px inset white;
border-bottom: 2px inset white;
}
.TGet:focus-visible {
border: 2px solid transparent;
}
</style>
<input class="TGet" type="text" style="position:absolute;top:52px;left:160px;width:153px;height:23px;font-family:Segoe UI;font-size:12px;color:#ff0000;background-color:#c0c0c0"> >
"
(b)MAIN
Local 1: C "thisisadialog"
Local 2: C " <style>
.TDialog {
box-shadow: rgb(0 0 0 / 78%) 1px 13px 20px 0px;
}
.ui-dialog .ui-dialog-content {
background-color:#000080;
}
.ui-dialog .ui-dialog-titlebar {
height: 13px;
font-size: 12px;
border-radius: 7px 7px 0 0;
}
.ui-widget-content {
border: none !important;
}
.ui-dialog-titlebar-close {
width: 50px !important;
height: 25px !important;
top: 40% !important;
}
.ui-dialog-titlebar-close:hover {
background-color: #C42B1C;
color: white;
}
.ui-dialog .ui-dialog-content {
border-radius: 0 0 7px 7px;
}
</style>
"
Local 3: U
Local 4: C " <!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>jQuery UI Dialog - Default functionality</title>
<link rel="stylesheet" href="https://code.jquery.com/ui/1.13.1/themes/base/jquery-ui.css">
<link rel="stylesheet" href="https://jqueryui.com/resources/demos/style.css">
<script src="https://code.jquery.com/jquery-3.6.0.js"></script>
<script src="https://code.jquery.com/ui/1.13.1/jquery-ui.js"></script>
</head>
<body>
"
Local 5: C "<div class="TDialog" id="thisisadialog" title="This is a dialog";>"
Local 6: C "</body></html>"
Local 7: C "<div class="TDialog" id="thisisadialog" title="This is a dialog";>"
TDIALOG:RBUTTONDOWN
Param 1: N 103
Param 2: N 58
Param 3: N 2
Param 4: O Class: TDIALOG
Local 1: S
Local 2: U
TWINDOW:HANDLEEVENT
Param 1: N 103
Param 2: N 58
Param 3: N 2
TDIALOG:HANDLEEVENT
Param 1: N 516
Param 2: N 2
Param 3: N 6750266
DIALOGBOXINDIRECT
Param 1: N 516
Param 2: N 2
Param 3: N 6750266
TDIALOG:ACTIVATE
Param 1: N 4194304
Param 2: C "€ È€ É e T h i s i s a d i a l o g P $ K e S T A T I C Y o u r n a m e : € P P L f E D I T P 0 H g B U T T O N O k P l H % h B U T T O N C a n c e l "
Param 3: N 0
Param 4: O Class: TDIALOG
MAIN
Param 1: U
Param 2: U
Param 3: U
Param 4: L .T.
Param 5: U
Param 6: L .T.
Param 7: U
Param 8: B {|| ... }
Param 9: U
Param 10: U
Param 11: U
Param 12: L .F.
Param 13: O Class: TDIALOG
Param 14: U
Local 1: N 0
Local 2: S
Local 3: O Class: TDIALOG
Linked RDDs
===========
DBF
DBFFPT
DBFBLOB
DBFCDX
DBFNTX
DataBases in use
================
Classes in use:
===============
1 ERROR
2 HBCLASS
3 HBOBJECT
4 TWINDOW
5 TDIALOG
6 TBRUSH
7 TCONTROL
8 TSAY
9 TGET
10 GET
11 TCLIPGET
12 TBUTTON
13 TFONT
14 TREG32
15 TRECT
16 TSTRUCT
Memory Analysis
===============
699 Static variables
Dynamic memory consume:
Actual Value: 983040 bytes
Highest Value: 983040 byteselvira wrote:¡Excelentes noticias!
Por favor, ¿dónde puedo descargar el .exe de fivedbu?
César,
Muchas gracias por el feedback ![]()
Hola,
Para vuestro feedback, los bmps de la ribbon en el navegador no se ven.
Como tampoco los diálogos del tipo cGetfile()
Muy buena dirección, y muy agradecida
Amigos, ¿habéis avanzado en este tema?
Muy agradecida