Estou procurando transformar todo o meu sistema para usar TABs (ou TabStrip).
Para as telas individuais já resolvi criando uma classe.
Tipo, no cadastro de clientes, o usuário pode clicar nas abas de dados básicos, faturamento, entrega, ocorrências, etc.
Agora resta transformar os módulos para TABs.
Li no fórum do Harbour algo sobre threads poderem atualizar porções de tela, isto poderia ajudar.
O que eu quero fazer:
- a linha 0 será o título
- a linha 1 terá o seletor de threads
- e da linha 2 pra baixo, será a tela de cada módulo
É algo parecido com os editores de texto, explorer, etc., onde tem o "seletor de abas".
Acho que em modo gráfico poderia ser algo parecido com formulários MDI, ou com o uso de SetParent.
Estou usando WVT/Console.
Não pretendo usar ambiente gráfico ainda, mas se tiver um jeito prático, numa lib gráfica "que funcione"...
Alguma idéia de que recursos do Harbour poderiam ser usados pra isso?
Obs.
Vai acabar ficando estilo Windows8, mesmo em tela console.
E acho que vai ficar mais elegante do que encher de janelinhas.
Por enquanto criei uma classe genérica, e estou alterando cada módulo: cadastros, pedidos, estoque, notas fiscais, financeiro, etc.
A classe permite várias abas, várias opções de menu, navegação entre registros, seleção de abas por mouse, etc, etc.
Pra um cadastro padrão, só preciso modificar dois métodos:
Código: Selecionar todos
PROCEDURE PCAD0100
LOCAL oFrm
oFrm := PCad0100Class()
oFrm:acArquivos := { "jpcadas", "jptabel", "jpconfi", "jpcidad" }
oFrm:Execute()
RETURN
CREATE CLASS PCAD0100Class INHERIT FormCadastroClass
METHOD Especifico(lExiste)
METHOD TelaDados(lDigita)
END CLASS
Isso vai facilitar depois pra mudar pra modo gráfico, ou pra alterar todo o padrão de telas de uma vez, modificando apenas a classe central.

)
Se alguém tiver dicas pra parte de abas pra selecionar módulos....