Antes de começar, é se preparar.
Multithread é igual ter vários EXEs, do mesmo jeito, variáveis, arquivos abertos, etc. não ficam visíveis.
Precisa confirmar se errorsys, gt, etc. vão estar disponíveis em todas as thread, geralmente não.
No caso de erros, pode acontecer de ter programa sem tela ou tela sem programa (outras LIBs)
O jeito que acostumei a usar é o seguinte: MAIN fantasma, programa principal fantasma, só pra aguardar o resto fechar.
E acostumei a usar GTWVG, cada um que teste com a LIB que usar, mas acho que em Windows só sobra a GTWVT.
Renomeie sua MAIN pra MAIN2, e cria uma nova.
Código: Selecionar todos
PROCEDURE Main
hb_ThreadStart( { || Main2() } )
hb_ThreadWaitForAll()
RETURN
PROCEDURE HB_GTSYS
REQUEST HB_GT_WVG_DEFAULT
RETURN
A próxima etapa é planejar sobre as "DIALOGs".
DIALOG é a janela criada para um processo.
Pode ter uma pra menu, uma pra login, uma pra cada módulo.
É obrigatório ter a MAIN, se fechar a main tudo se fecha.
Por isso uma Main oculta, assim o usuário não fecha.
Ela encerra quando mais nada estiver rodando (hb_ThreadWaitForAll())
