Qual o erro nessa rotina?

Projeto HwGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

Vandi
Usuário Nível 2
Usuário Nível 2
Mensagens: 83
Registrado em: 16 Set 2011 23:26
Localização: Brasilia-DF

Qual o erro nessa rotina?

Mensagem por Vandi »

Boa tarde,

Na rotina teste.prg abaixo, onde está o erro ou o que está faltando na mesma, pois, quando clico no botão "inclusao" nada acontece.

Código: Selecionar todos

#include "windows.ch"
#include "guilib.ch"
 
*---------------------------------------------------------------------------------------
Function Main
*---------------------------------------------------------------------------------------
Local oFontBtn
Local oFont := Nil
Private Form_Main

REQUEST DBFCDX
RDDSETDEFAULT( "DBFCDX" )
DBSETDRIVER( "DBFCDX" )

SET DELETE ON
SET DATE BRIT
SET CENT ON


   INIT WINDOW Form_Main MAIN MDI TITLE "CADASTRO DE CLIENTES" ;
             SIZE GetDesktopWidth(), GetDesktopHeight() // FONT oFontBtn

   AbreArquivos()
	
   MENU OF Form_Main
      MENU TITLE "&Arquivos"
         MENUITEM "&Empresas" ID 301 ACTION Empr()
         SEPARATOR
         MENUITEM "S&air" ACTION {||dbCloseAll(), EndWindow()}
      ENDMENU                                                                                            

   ENDMENU

   ACTIVATE WINDOW Form_Main ON activate {|o| Form_Main:center()}

return nil



*---------------------------------------------------------------------------------------
Function Empr()
*---------------------------------------------------------------------------------------

   @ 000, 03 button '&Inclusao'  OF Form_Main  size 200,50 on click {|| incluiempr() }
   @ 200, 03 button '&Alteracao' OF Form_Main  size 200,50 on click {|| alteraempr() }
   @ 400, 03 button '&Exclusao'  OF Form_Main  size 200,50 on click {|| excluiempr() }
   @ 600, 03 button '&Consulta'  OF Form_Main  size 200,50 on click {|| consultaempr() }
// @ 03, 400 button '&Sair' size 100,25 on click {|| oDlg:close() }

return nil


*---------------------------------------------------------------------------------------
Function IncluiEmpr()
*---------------------------------------------------------------------------------------
*
Private vCodi, vEmpr, vEnde, vInscr
Public oDlg

       INIT WINDOW oDlg MDICHILD TITLE "Inclusao de Clientes"  STYLE ;
       WS_VISIBLE + WS_OVERLAPPEDWINDOW AT 0,0 SIZE 718,376 ;     // FONT oFont;
           ON SIZE {||MsgInfo("Opção não Disponivel")}

   PREPARE FONT oFontBtn NAME "Arial" WIDTH 0 HEIGHT -12

   INIT DIALOG IncEmpresa CLIPPER NOEXIT TITLE Titulo SIZE 630, 320 Font oFontBtn


       @  25, 90 SAY Lbl_codigo     CAPTION "Codigo        " SIZE 120, 18
       @  25,120 SAY Lbl_razsoc     CAPTION "Razão Social"   SIZE 120, 18
       @  25,150 SAY Lbl_Endereco   CAPTION "Endereco"  SIZE 120, 18

       ACTIVATE DIALOG IncEmpresa ON activate {|o| IncEmpresa:center()}

return nil


func alteraempr
alert('alteracao')
return
func excluiempr
alert('exclusao')
return
func consultaempr
alert('consulta')
return



*---------------------------------------------------------------------------------------
Function AbreArquivos()
*---------------------------------------------------------------------------------------

If ! File('EMPRESA.DBF')
    dbcreate( 'EMPRESA.DBF',{;
    { "Codigo", "C", 3, 0 }, ;
    { "RazaoSocia","C",60, 0 }, ;
    { "Endereco","C",60, 0 }, ;
    { "Inscr","C",18, 0 } } )
EndIf

IF!FILE("Empresa.cdx")
    Use Empresa
    INDEX ON Codigo     TAG  Codigo TO Empresa.CDX
    INDEX ON RazaoSocia TAG  Razao  TO Empresa.CDX
    USE
ENDIF

USE Empresa Alias Empr  SHARED NEW
SET ORDER TO TAG Codigo
GO TOP

Return Nil
Agradecimentos,

Gilvandi
Avatar do usuário
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

Qual o erro nessa rotina?

Mensagem por Toledo »

Gilvandi, você está misturando as coisas... na linha 60 você está iniciando uma WINDOW oDlg e na linha 66 iniciando um DIALOG IncEmpresa. Então você vai ter que decidir, é um ou outro!

Para fazer um teste, faça o seguinte:

1 - comente (coloque um asterisco no início da linha) as linhas 60,61 e 62.
2 - na linha 66 troque TITLE Titulo por TITLE "Inclusao de Clientes"

Depois compile novamente esta sua rotina e veja se deu certo.

Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Vandi
Usuário Nível 2
Usuário Nível 2
Mensagens: 83
Registrado em: 16 Set 2011 23:26
Localização: Brasilia-DF

Qual o erro nessa rotina?

Mensagem por Vandi »

Toledo,
Boa tarde...

Entendo o que vc disse, realmente estava uma salada. Porém, fiz as alterações que vc propôs e continua o mesmo problema: quando clico no botão "inclusão" nada acontece.
Será que falta algum comando na function Empr() para direcionar o programa para a rotina desejada: inclusao, alteracao, exclusao ou consulta?

Gilvandi
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Qual o erro nessa rotina?

Mensagem por sygecom »

Olá Vandi,
No meu ver falta uma DIALOG a ser criada quando clica no MENU, para não misturar com a tela principal.
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Responder