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:

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:

mindmap TXBrowse Fontes de Dados DBF / CDX / NTX ADO RecordSets ODBC / SQL MariaDB RowSets PostgreSQL TArrayData arrays Hashes / Objects Trees Recursos Edição de célula inline Modo FastEdit Seleção estilo marquee SeekBar incremental Seleção múltipla de linhas Colunas congeladas Reordenar colunas por arrastar Auto-ordenação ao clicar no cabeçalho Cabeçalhos agrupados Totais de rodapé Filtros dinâmicos Formatação condicional Bitmaps por célula Barras de progresso em células Gráficos em células Exportação CSV / Excel / HTML Exportação PDF Impressão com pré-visualização Estilos Visuais Tema Windows Office 2007 / 2010 / 2013 / 2015 Modo escuro Estilo plano Linhas com gradiente Com / sem linhas de grade

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.

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 Acesso a Dados TDatabase TRecSet ADO TODBC MariaDB MySQL PostgreSQL ORM Classes TArrayData TDataRow Impressão TPrinter TReport PDF FWPdf Pré-visualização BarCode Internet e IA Socket Ftp Smtp Pop3 WebServer OpenAI LLMs OAuth2 Email WhatsApp Gráficos e GDI Pen Brush Font Image XImage Classes GDI+ Box DrawImage Utilitários File Ini Reg32 ClipBoard Integração Excel Localização IA e ML Cloud LLMs Transformer Net TEmbeddings Sistema de Build Compilers Instalação Samples Guide

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.

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() }

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

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 Acesso a Dados TDatabase TRecSet ADO TODBC MariaDB MySQL PostgreSQL ORM Classes TArrayData TDataRow Impressão TPrinter TReport PDF FWPdf Pré-visualização BarCode Internet e IA Socket Ftp Smtp Pop3 WebServer OpenAI LLMs OAuth2 Email WhatsApp Gráficos e GDI Pen Brush Font Image XImage Classes GDI+ Box DrawImage Utilitários File Ini Reg32 ClipBoard Integração Excel Localização IA e ML Cloud LLMs Transformer Net TEmbeddings Sistema de Build Compilers Instalação Samples Guide

Próximos Passos