Visão Geral
FiveWin for Harbour (FWH) é um framework abrangente de desenvolvimento de aplicações Windows que traz o poder da API Win32 e Win64 para as linguagens de programação Harbour e xHarbour. Ele permite construir aplicações Windows nativas profissionais usando uma linguagem de alto nível, com sintaxe xBase, ao mesmo tempo em que acessa toda a API do Windows por baixo.
O que é o FiveWin?
O FiveWin fornece uma biblioteca de classes orientada a objetos completa, um rico conjunto de comandos xBase e integração perfeita com múltiplos compiladores C. Em vez de lutar com chamadas brutas da API Win32/Win64, você escreve código Harbour limpo com comandos FiveWin:
- Controles nativos Windows — botões, campos de edição, listboxes, treeviews, ribbon bars, abas de pastas, splitters, sliders, barras de progresso, medidores, cover-flow, players de vídeo, webcams, animações GIF, editores de código (Scintilla) e mais de 50 outras classes de controle
- Acesso a dados — DBF/CDX/NTX nativos via RDDs do Harbour, ADO RecordSets (SQL Server, Oracle, Access), ODBC, MariaDB/MySQL com ORM, PostgreSQL via libpq, SQLite e TArrayData em memória
- Impressão e relatórios — TPrinter com saída em PDF (FWPdf/HaruPDF/I2PDF), motor TReport, designer visual EasyReport, impressão de etiquetas (TLabel), geração de códigos de barras (39, 128, EAN, UPC, QR, DataMatrix, PDF417), pré-visualização de impressão com modo escuro
- 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 locais Ollama, xAI Grok, Kimi, embeddings, rede neural Transformer nativa
- UI multi-idioma — troca de idioma em tempo de execução via
FWString()(EN, ES, FR, PT, DE, IT integrados + personalizados), suporte a Unicode/UTF-8 (FW_SetUnicode), codepages asiáticas (Big5, GB2312, Shift-JIS, EUC-KR, Thai, Arabic, Hebrew, Cyrillic)
TXBrowse — A Joia da Coroa
TXBrowse é o controle de grid de dados mais poderoso e versátil do arsenal FWH. Com mais de 18.000 linhas de código-fonte, ele suporta praticamente toda fonte de dados e cenário de navegação:
Arquitetura
O FWH fica entre o código da sua aplicação Harbour e o sistema operacional Windows. O compilador
Harbour traduz o código-fonte .prg em C, que é então compilado pelo compilador C de sua escolha
e linkado com as bibliotecas FiveWin.
Compiladores Suportados
O FWH é distribuído com bibliotecas pré-compiladas para todos os principais compiladores C compatíveis com Harbour. Escolha o compilador que atende aos requisitos do seu projeto:
| Compilador | ID | Arquitetura | Arquivo de Biblioteca | Notas |
|---|---|---|---|---|
| Borland C++ 5.x | hb32 |
32-bit | FiveH32.lib |
BCC32 clássico, o mais utilizado |
| Microsoft Visual C++ | hm32 |
32-bit | FiveHM32.lib |
Builds MSVC 32-bit |
| Microsoft Visual C++ | hm64 |
64-bit | FiveH64.lib |
MSVC 64-bit, recomendado para novos projetos |
| MinGW GCC | hg32 |
32-bit | FiveHG32.lib |
GCC 32-bit via MinGW |
| MinGW GCC | hg64 |
64-bit | FiveHG64.lib |
GCC 64-bit via MinGW-w64 |
Hierarquia de Classes
Todos os objetos visuais do FiveWin herdam de TWindow. Os controles herdam através de
TControl, enquanto diálogos e frames MDI herdam diretamente de TWindow.
Início Rápido: Olá Mundo
A aplicação FiveWin mais simples cria uma janela e a exibe. Os comandos DEFINE WINDOW
e ACTIVATE WINDOW cuidam de todo o código repetitivo do Win32 para você:
#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
Salve isto como hello.prg, compile com qualquer compilador suportado (veja
Sistema de Build), e você terá uma aplicação Windows nativa.
Exemplo de Diálogo Simples
Os diálogos são a principal forma de coletar entrada do usuário. Os diálogos FiveWin suportam tanto sistemas de coordenadas baseados em texto quanto em pixels. Aqui está um diálogo típico de entrada de dados:
#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
Suporte Multi-Idioma
O FiveWin fornece internacionalização integrada através da função FWString(). Você define
tabelas de strings para cada idioma e alterna em tempo de execução sem recompilar:
#include "FiveWin.ch"
function Main()
local oDlg
// Carrega as strings de idioma de um recurso ou define inline
// O inglês é o padrão; alterne para o espanhol:
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
Os idiomas suportados incluem inglês, espanhol, francês, alemão, italiano, português, basco, catalão, holandês, russo e muitos outros. Você também pode adicionar tabelas de idiomas personalizadas em tempo de execução.
Resumo dos Principais Recursos
Próximos Passos
- Instalação — Configure o FiveWin na sua máquina
- Sistema de Build — Compile sua primeira aplicação
- TXBrowse — O controle de grid mais poderoso do FiveWin
- TDialog — Domine interfaces baseadas em diálogos
- Índice de Classes — Lista alfabética de 285 classes FWH
- Índice de Funções — Lista alfabética de funções FWH