Página 1 de 1

Error Object/8 No Object Msg: UNDEFINED:NWIDTH

Enviado: 30 Nov 2005 13:10
por Paulao
Boa tarde pessoal, sou iniciante em fivewin e estou tendo problemas com a linha abaixo, penso que falta definir algo, mas o que?

@ 2,0 listbox oBrw FIELDS OF oWnd1 SIZE oWnd:nWidth()-5, oWnd:nHeight()-125

Uso a versao fw192ev do fivewin

Grande abraço

Enviado: 30 Nov 2005 13:55
por Ale SB
Boa Tarde Amigo, tente o seguinte:

@2,0 LISTBOX oLbx FIELDS "cod", "Histo", "Valo ;
HEADER "Codigo","Historico", "Valor", ;
OF oDlg SIZE 207,100 PIXEL ;
SIZES 25, 50, 130

Vc criou uma Dialog ?
O q vc quer fazer ?

Enviado: 30 Nov 2005 14:20
por Paulao
parece que o 5win não esta reconhecendo as funções nWidth(), nHeight(), e End() tb, penso que é algum problema de configuração do fivewin, em qual lib ficam estas e outras funcoes do fivewin?.
Vejam se faltaalgo no autoexec.bat:

SET windir=C:\WINDOWS
SET winbootdir=C:\WINDOWS
SET COMSPEC=C:\WINDOWS\COMMAND.COM
SET PROMPT=$p$g
SET TEMP=C:\WINDOWS\TEMP
SET TMP=C:\WINDOWS\TEMP
SET INCLUDE=C:\CLIPPER5\INCLUDE;C:\FWEVAL\INCLUDE
SET PLL=C:\CLIPPER5\PLL
SET CLIPPER=F120
SET LIB=c:\BLINKER\LIB;C:\CLIPPER5\LIB;C:\FWEVAL\LIB
SET OBJ=C:\BLINKER\OBJ;C:\CLIPPER5\OBJ;C:\FWEVAL\IDE\OBJ
SET MAQ=MAQ01
SET PATH=C:\CLIPPER5\BIN;C:\NG;C:\BLINKER\BIN;C:\CLIPPER5\BIN;C:\NG;C:\WINDOWS;C:\WINDOWS\COMMAND;d:\siscom

Enviado: 30 Nov 2005 17:13
por Ale SB
Paulao, aparetemente seu Autexec ta certo, acho q o problema eh outro, para poder te ajudar melhor, poste seu PRG, pra ver como vc esta fazendo.

Vc esta usando qual versao do Blinker ,Clipper e do Windows ?

@braços Ale

Enviado: 30 Nov 2005 19:35
por Paulao
Obrigado Ale pela Força.

Uso Clipper 5.2 e Blinker 7 Windows ME
/////////////////////////////////////////////////////////////////////////////
/// Programa : SISCOM.PRG ///
/// Função : PRG Principal do Sistema ///
/// Iniciado em : 07/10/2005 15:32 PM ///
/// Programador : Paulo Silva ///
/// Versão : 1.00.0000 ///
/// Histórico : Primeiro Sistema feito para plataforma Windows ///
/////////////////////////////////////////////////////////////////////////////
#include "fivewin.ch"
#include "report.ch"
#include "aulas.ch"
FUNC MAIN
local oWnd

public setmaq
setmaq=getenv("maq")
define window oWnd Title".:: NÔMADE SISTEMAS ::." from 5,5 to 24,64;
menu menu() MDI
use siscover new alias ver
dbgobottom()
////// Barra de botões ////
define buttonbar oBar of oWnd size 50,50
define button of oBar File "calc.bmp";
action
message "Ativa a calculadora do Windows";
tooltip "Calculadora"
//////
SET MESSAGE OF oWnd TO "¦ SISCOM ¦ Versão :"+VER->VER_VERS+" ¦ "+setmaq+" ¦" KEYBOARD DATE CLOCK
activate window oWnd Maximized
return nil
/////////////////////////////////////////////////////////////////////////////
func menu(oWnd)
local oMenu
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 oMenu6 prompt "Sair" action oWnd:End()
endmenu
retu oMenu
///////////////////////////////////////////////////////////////////////////////
func acao()
msgstop("Breve...")
retu .t.
///////////////////////////////////////////////////////////////////////////////
function MDIChild()
local oWnd1, oBrw
USE AULA07 NEW SHARED
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,400 PIXEL ;
SIZES 350, 200, 50
//OF oWnd1 SIZE 955,1000;
//oWnd:nWidth()-5, oWnd:nHeight()-125

oBrw:nLineHeight*= 1
oBrw:nHeaderHeight*= 1.5
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
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.
///////////////////////////////////////////////////////////////////////////////
static function PopupReg( nRow, nCol, oLbx, oWnd )
local oPopup
MENU oPopup POPUP
MENUITEM "&Inserir registro " ACTION MsgStop( "Abrir um Dialog, efetuar uma operacao ou rotina" )
MENUITEM "E&xcluir registro " ACTION MsgStop( "Abrir um Dialog, efetuar uma operacao ou rotina" )
MENUITEM "&Alterar registro " ACTION MsgStop( "Abrir um Dialog, efetuar uma operacao ou rotina" )
SEPARATOR
MENUITEM "&Desbloquear registro" ACTION MsgStop( "Abrir um Dialog, efetuar uma operacao ou rotina" )
SEPARATOR
MENUITEM "&Sair" ACTION oLbx:oManuCli:End()
ENDMENU
ACTIVATE POPUP oPopup AT nRow, nCol OF oLbx
return nil

Enviado: 02 Dez 2005 00:08
por Ale SB
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

Enviado: 15 Dez 2005 00:49
por rochinha
Amiguinho

Outra coisa:

Pelo visto voce precisa abrir o listbox de forma que ele ocupe o tamanho total da window mesmo redimensionada.

Neste caso voce tera de avisar a window para fixar o controle principal:

Antes do comando activate window coloque:

oWnd:SetControl(oBrw)

Desta forma o redimensionamento da window levara consigo a listabox.

@braços :?)

Enviado: 15 Dez 2005 00:50
por rochinha
Amiguinho

Outra coisa:

Pelo visto voce precisa abrir o listbox de forma que ele ocupe o tamanho total da window mesmo redimensionada.

Neste caso voce tera de avisar a window para fixar o controle principal:

Antes do comando activate window coloque:

oWnd:SetControl(oBrw)

Desta forma o redimensionamento da window levara consigo a listabox.

@braços :?)