Visión General
FiveWin for Harbour (FWH) es un completo framework de desarrollo de aplicaciones Windows que lleva la potencia de la API Win32 y Win64 a los lenguajes de programación Harbour y xHarbour. Permite crear aplicaciones Windows nativas profesionales utilizando un lenguaje de alto nivel con sintaxis xBase, accediendo al mismo tiempo a toda la API de Windows por debajo.
¿Qué es FiveWin?
FiveWin proporciona una completa librería de clases orientada a objetos, un rico conjunto de comandos xBase e integración transparente con múltiples compiladores C. En lugar de lidiar con llamadas directas a la API Win32, escribes código Harbour limpio con comandos FiveWin:
- Controles nativos Windows — botones, campos de edición, listboxes, treeviews, barras ribbon, pestañas de carpeta, splitters, sliders, barras de progreso, gauges, cover-flow, reproductores de vídeo, webcams, animaciones GIF, editores de código (Scintilla) y más de 50 clases de control adicionales
- Acceso a datos — DBF/CDX/NTX nativos mediante RDDs de Harbour, RecordSets ADO (SQL Server, Oracle, Access), ODBC, MariaDB/MySQL con ORM, PostgreSQL mediante libpq, SQLite y TArrayData en memoria
- Impresión e informes — TPrinter con salida PDF (FWPdf/HaruPDF/I2PDF), motor TReport, diseñador visual EasyReport, impresión de etiquetas (TLabel), generación de códigos de barras (39, 128, EAN, UPC, QR, DataMatrix, PDF417), vista previa de impresión con modo oscuro
- Internet e IA — WebView2 (navegador Chromium), cliente/servidor HTTP/WebSocket, SMTP/POP3/FTP, OAuth2 (Gmail, Outlook), WhatsApp Cloud API, OpenAI/ChatGPT, Google Gemini, DeepSeek, LLMs locales Ollama, xAI Grok, Kimi, embeddings, red neuronal Transformer nativa
- Interfaz multi-idioma — cambio de idioma en tiempo de ejecución mediante
FWString()(EN, ES, FR, PT, DE, IT integrados + personalizados), soporte Unicode/UTF-8 (FW_SetUnicode), codepages asiáticos (Big5, GB2312, Shift-JIS, EUC-KR, tailandés, árabe, hebreo, cirílico)
TXBrowse — La Joya de la Corona
TXBrowse es el control de grid de datos más potente y versátil del arsenal FWH. Con más de 18.000 líneas de código fuente, soporta prácticamente cualquier fuente de datos y escenario de navegación:
Arquitectura
FWH se sitúa entre el código de tu aplicación Harbour y el sistema operativo Windows. El compilador
Harbour traduce el fuente .prg a C, que luego es compilado por el compilador C que elijas
y enlazado contra las librerías FiveWin.
Compiladores Soportados
FWH incluye librerías precompiladas para todos los principales compiladores C compatibles con Harbour. Elige el compilador que se ajuste a los requisitos de tu proyecto:
| Compilador | ID | Arquitectura | Fichero de Librería | Notas |
|---|---|---|---|---|
| Borland C++ 5.x | hb32 |
32 bits | FiveH32.lib |
BCC32 clásico, el más utilizado |
| Microsoft Visual C++ | hm32 |
32 bits | FiveHM32.lib |
Compilaciones MSVC de 32 bits |
| Microsoft Visual C++ | hm64 |
64 bits | FiveH64.lib |
MSVC de 64 bits, recomendado para nuevos proyectos |
| MinGW GCC | hg32 |
32 bits | FiveHG32.lib |
GCC de 32 bits mediante MinGW |
| MinGW GCC | hg64 |
64 bits | FiveHG64.lib |
GCC de 64 bits mediante MinGW-w64 |
Jerarquía de Clases
Todos los objetos visuales de FiveWin heredan de TWindow. Los controles heredan a través de
TControl, mientras que los diálogos y los marcos MDI heredan directamente de TWindow.
Inicio Rápido: Hola Mundo
La aplicación FiveWin más sencilla crea una ventana y la muestra. Los comandos DEFINE WINDOW
y ACTIVATE WINDOW se encargan por ti de todo el código repetitivo de Win32:
#include "FiveWin.ch"
function Main()
local oWnd
DEFINE WINDOW oWnd TITLE "Hello World!" ;
SIZE 600, 400
ACTIVATE WINDOW oWnd CENTERED ;
ON INIT MsgInfo( "Welcome to FiveWin!" )
return nil
Guarda esto como hello.prg, compílalo con cualquier compilador soportado (consulta
Sistema de Construcción) y ya tienes una aplicación Windows nativa.
Ejemplo de Diálogo Simple
Los diálogos son la forma principal de recoger la entrada del usuario. Los diálogos de FiveWin admiten tanto sistemas de coordenadas basados en texto como en píxeles. A continuación se muestra un típico diálogo de entrada de datos:
#include "FiveWin.ch"
function CustomerDialog()
local oDlg, oGet1, oGet2, oBtnOk, oBtnCancel
local cName := Space( 40 )
local cCity := Space( 30 )
DEFINE DIALOG oDlg TITLE "Customer Entry" ;
SIZE 420, 220 PIXEL TRUEPIXEL
@ 20, 20 SAY "Name:" OF oDlg SIZE 60, 22 PIXEL
@ 20, 90 GET oGet1 VAR cName OF oDlg SIZE 300, 24 PIXEL
@ 55, 20 SAY "City:" OF oDlg SIZE 60, 22 PIXEL
@ 55, 90 GET oGet2 VAR cCity OF oDlg SIZE 300, 24 PIXEL
@ 100, 200 BUTTON oBtnOk PROMPT "&OK" OF oDlg ;
SIZE 80, 28 PIXEL ;
ACTION ( MsgInfo( "Name: " + AllTrim( cName ) ), oDlg:End() )
@ 100, 290 BUTTON oBtnCancel PROMPT "&Cancel" OF oDlg ;
SIZE 80, 28 PIXEL CANCEL ;
ACTION oDlg:End()
ACTIVATE DIALOG oDlg CENTERED
return nil
Soporte Multi-Idioma
FiveWin proporciona internacionalización integrada mediante la función FWString(). Defines
tablas de cadenas para cada idioma y cambias en tiempo de ejecución sin recompilar:
#include "FiveWin.ch"
function Main()
local oDlg
// Carga las cadenas de idioma desde un recurso o defínelas en línea
// El inglés es el predeterminado; cambia a español:
FW_SetLanguage( "ES" )
DEFINE DIALOG oDlg TITLE FWString( "Customer Entry" ) ;
SIZE 400, 200 PIXEL TRUEPIXEL
@ 20, 20 SAY FWString( "Name" ) + ":" OF oDlg SIZE 80, 22 PIXEL
@ 20, 100 GET oGet VAR cName OF oDlg SIZE 260, 24 PIXEL
@ 70, 150 BUTTON oBtnOk PROMPT FWString( "Accept" ) OF oDlg ;
SIZE 80, 28 PIXEL ACTION oDlg:End()
ACTIVATE DIALOG oDlg CENTERED
return nil
Los idiomas soportados incluyen inglés, español, francés, alemán, italiano, portugués, euskera, catalán, neerlandés, ruso y muchos más. También puedes añadir tablas de idioma personalizadas en tiempo de ejecución.
Resumen de Características Clave
Próximos Pasos
- Instalación — Configura FiveWin en tu máquina
- Sistema de Construcción — Compila tu primera aplicación
- TXBrowse — El control de grid más potente de FiveWin
- TDialog — Domina las interfaces basadas en diálogos
- Índice de Clases — Lista alfabética de 285 clases FWH
- Índice de Funciones — Lista alfabética de funciones FWH