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:

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:

mindmap TXBrowse Fuentes de Datos DBF / CDX / NTX ADO RecordSets ODBC / SQL MariaDB RowSets PostgreSQL TArrayData arrays Hashes / Objects Trees Características Edicion de celda en linea Modo FastEdit Seleccion estilo marquesina SeekBar incremental Seleccion multiple de filas Columnas congeladas Reordenar columnas arrastrando Ordenacion automatica al pulsar cabecera Cabeceras agrupadas Totales en pie Filtros dinamicos Formato condicional Bitmaps por celda Barras de progreso en celdas Graficos en celdas Exportar CSV / Excel / HTML Exportar PDF Imprimir con vista previa Estilos Visuales Tema Windows Office 2007 / 2010 / 2013 / 2015 Modo oscuro Estilo plano Filas con degradado Lineas de cuadricula / sin lineas

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.

mindmap root((FiveWin 26.05)) Controles UI TXBrowse Window Dialog Button BtnBmp Get MultiGet ComboBox ListBox Menu MenuItem Folder FolderEx Tabs Pages Panel TreeView ListView RichEdit5 Scintilla WebView2 Acceso a Datos TDatabase TRecSet ADO TODBC MariaDB MySQL PostgreSQL ORM Classes TArrayData TDataRow Impresion TPrinter TReport PDF FWPdf Vista Previa BarCode Internet e IA Socket Ftp Smtp Pop3 WebServer OpenAI LLMs OAuth2 Email WhatsApp Graficos y GDI Pen Brush Font Image XImage Clases GDI+ Box DrawImage Utilidades File Ini Reg32 ClipBoard Integracion Excel Localizacion IA y ML Cloud LLMs Transformer Net TEmbeddings Sistema de Construccion Compiladores Instalacion Guia de Samples

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.

classDiagram TWindow <|-- TControl TWindow <|-- TDialog TWindow <|-- TMDIFrame TWindow <|-- TMDIChild TControl <|-- TButton TControl <|-- TGet TControl <|-- TSay TControl <|-- TXBrowse TControl <|-- TComboBox TControl <|-- TCheckBox TControl <|-- TRadio TControl <|-- TFolder TControl <|-- TTreeView TControl <|-- TRichEdit TControl <|-- TScrollBar class TWindow { +hWnd +oWnd +cTitle +nTop, nLeft, nWidth, nHeight +Activate() +Center() +End() } class TControl { +oWnd +bSetGet +bWhen +bValid +Refresh() } class TDialog { +lModal +Activate() } class TXBrowse { +oDbf / oRs +aCols +SetArray() +SetRDD() }

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

mindmap root((FiveWin 26.05)) Controles UI TXBrowse Window Dialog Button BtnBmp Get MultiGet ComboBox ListBox Menu MenuItem Folder FolderEx Tabs Pages Panel TreeView ListView RichEdit5 Scintilla WebView2 Acceso a Datos TDatabase TRecSet ADO TODBC MariaDB MySQL PostgreSQL ORM Classes TArrayData TDataRow Impresion TPrinter TReport PDF FWPdf Vista Previa BarCode Internet e IA Socket Ftp Smtp Pop3 WebServer OpenAI LLMs OAuth2 Email WhatsApp Graficos y GDI Pen Brush Font Image XImage Clases GDI+ Box DrawImage Utilidades File Ini Reg32 ClipBoard Integracion Excel Localizacion IA y ML Cloud LLMs Transformer Net TEmbeddings Sistema de Construccion Compiladores Instalacion Guia de Samples

Próximos Pasos