Blz Paulao, eu nao uso o MDI, prefiro fazer as Telas no WS ,mas ,testei seu PRG
e fiz algumas alteraçoes, eu testei e deu certo, só nao usei os arquivos
,falando nisso vc nao usa indice ?
Vou postar o q mudei:
FUNC
MAIN()
PRIVATE oWnd //Como vc esta usando o Objeto oWnd em suas funcoes o ideal eh declarar como Private
public setmaq
setmaq=getenv("maq")
define window oWnd Title".:: NÔMADE SISTEMAS ::." from 5,5 to 24,64 ;
menu
MeuMenu() MDI // Vc nao pode usar o mesmo nome de um comando com o de uma funcao
//use siscover new alias ver // trabalhe com indices
//dbgobottom()
////// Barra de botões ////
define buttonbar oBar of oWnd size 50,50
define button of oBar File "calc.bmp" ;
action WinExec("Calc") ; // chama a calculadora
message "Ativa a calculadora do Windows";
tooltip "Calculadora"
//////
SET MESSAGE OF oWnd TO "¦ SISCOM ¦ Versão :" + " ¦ "+setmaq+" ¦" KEYBOARD DATE CLOCK
activate window oWnd Maximized
return nil
/////////////////////////////////////////////////////////////////////////////
Func
MeuMenu() // nao precisa colocar o oWnd como parametro, dá erro no End()
local oMenu, oMenu4
menu oMenu
menuitem oMenu1 prompt "Cadastros" message "Acessa os cadastros do Sistema"
menu
menuitem "Clientes" action siscocli() message "Manutenção no arquivo de clientes"
menuitem "Orçamentos/Pedidos" action acao() message "Manutenção no arquivo de Orçamento/Pedidos"
menuitem "Produtos" action acao() message "Manutenção no arquivo de Produtos"
menuitem "Fornecedores" action acao() message "Manutenção no arquivo de Forncedores"
menuitem "Contas a Pagar" action acao() message "Manutenção no arquivo de Contas a Pagar"
menuitem "Contas a Receber" action acao() message "Manutenção no arquivo de Contas a receber"
menuitem "Vendedores" action acao() message "Manutenção no arquivo de Vendedores"
menuitem "Condições de Pagamento" action acao() message "Manutenção no arquivo de COndições de Pagamento"
endmenu
menuitem oMenu2 prompt "Imprimir" message "Acessa os relatorios do Sistema"
menuitem oMenu3 prompt "Operações" message " Acessa os mecanismos de processamento do Sistema"
menuitem oMenu4 prompt "Utilitários" message " Acessa os utilitários do Sistema"
menuitem oMenu5 prompt "Sobre" message " Informações do Sistema "
menuitem oMenu4 prompt "Sair" action
oWnd:End() // nao ha nada de errado, o problema era o nome da funcao
endmenu //ou ACTION iif( MsgYesNo( "Sair do sistema ?","Confirma"),oWnd:End(),) ;
return oMenu
///////////////////////////////////////////////////////////////////////////////
func acao()
msgstop("Breve...")
retu .t.
///////////////////////////////////////////////////////////////////////////////
function MDIChild()
local oWnd1, oBrw
USE AULA07 NEW SHARED //
Vc esta usando em rede ?
DEFINE WINDOW oWnd1 TITLE "Janela Normal" MDICHILD ;
FROM 1, 1 TO 10, 30
@ 0,0 LISTBOX oBrw FIELDS OF oWnd1 SIZE 225,115
ACTIVATE WINDOW oWnd1
return nil
///////////////////////////////////////////////////////////////////////////////
func siscocli(oWnd)
local oWnd1,oBrw
//use nomadcli new shared alias cli
define window oWnd1 Title"Clientes" MDIChild ;
from 1,1 to 28,77
@ 2,0 listbox oBrw FIELDS "" ; //cli->cli_nome,cli->cli_cida,cli->cli_esta;
HEADER "Razão Social","Municício", "UF";
OF oWnd1 SIZE 600,800 PIXEL ;
SIZES 350, 200, 50
//
oWnd1:nWidth:=955 // lembre vc esta na janela oWnd1 nao oWnd
//
oWnd1:nHeight:=1000
oBrw:nLineHeight=
14 // Vc definiu muito baixa a altura das linhas
oBrw:nHeaderHeight=
15 //Vc definiu muito baixa a altura do cabeçalho
oBrw:bRClicked := { | nRow, nCol | PopupReg( nRow, nCol, oBrw, oWnd1 ) }
oBrw:bLdblClicked := {|| oBrw:disable(), MsgStop("Duplo Clique - Abrir um Dialog ou executar uma rotina"), oBrw:enable() }
oBrw:bBKColor := { |nRow,nCol,nStyle| if( nStyle==0 .and. nCol==5, nRGB(255,255,255), ) }
oBrw:nFreeze := 2 //
este metodo só tem na classe WBrowse 1.5 e 1.7
oBrw:nClrPane := { || IIF( ( oBrw:cAlias)->(Recno()) %2 == 1, nRGB(187,254,138),nRGB(226,255,196))}
oBrw:lAdjLastCol := .F.
oBrw:nLineStyle := 2
activate window oWnd1
retu .t.
Nao esquessa, vc tem q compilar a Classe Wbrowse junto com seu sistema, eu prefiro usar a versao 1.5, vc pode achar ela aqui:
http://www.fivewin.info/html/downloads. ... ons&id=260
, ela tem uma Lib (TWBRW16.lib), que deve ser colocada no seu LNK, antes de todas as outras Libs.
Espero ter ajudado Amigo; eu tb sou iniciante, e tenho algumas apostilas
em Port. outras em espanhol, mas, tem me ajudado muito se vc quiser posso lhe envia-las.
No Samples do FW, tem bastantes exemplos de janelas MDI, dê uma olhada nos Prg TestMdi1,TestMdi2,etc...
Qualquer duvida eh só chamar!!! -:]
@braços Ale