Componente TREE da MiniGui

Projeto MiniGui - Biblioteca visual para Harbour/xHarbour

Moderador: Moderadores

Avatar do usuário
JAIR RANGEL
Usuário Nível 3
Usuário Nível 3
Mensagens: 178
Registrado em: 19 Jul 2005 16:01
Localização: RIO DE JANEIRO
Contato:

Componente TREE da MiniGui

Mensagem por JAIR RANGEL »

Olá, Senhores !

Estou tentando utilizar o Componente TREE da MiniGui para receber configurações de Niveis de Acesso, no módulo Configurador do meu Sistema.
O Operador poderá clicar nas opções/ítens da árvore e então habilitar ou desabilitar um acesso a opção específica.

Porém, não consigo ativar o evento ON CHANGE ao clicar no ítem da árvore.

Se alguém ja usou este componente com sucesso, gostaria de obter informações para utiliza-lo.

Uma outra forma de realizar o que estou querendo, seria utilizar o componente CHECKBOX. Porém, como são muitas opções para habilitar/desabilitar, não creio que este componente irá criar o efeito de rolagem dentro de uma tela tal qual o LISTBOX ou TEXTBOX.

Jair Rangel
HARBOUR + MINIGUI 1.07
:D
MINIGUI + HARBOUR + BRMAKE + CDX
CLIPPER 5.2E + VISUALLIB 2 + BLINKER
Avatar do usuário
Antonio
Usuário Nível 3
Usuário Nível 3
Mensagens: 347
Registrado em: 14 Ago 2003 17:33
Localização: Sao Paulo - SP
Contato:

Re: Componente TREE da MiniGui

Mensagem por Antonio »

JAIR RANGEL escreveu:Olá, Senhores !

Estou tentando utilizar o Componente TREE da MiniGui para receber configurações de Niveis de Acesso, no módulo Configurador do meu Sistema.
O Operador poderá clicar nas opções/ítens da árvore e então habilitar ou desabilitar um acesso a opção específica.

Porém, não consigo ativar o evento ON CHANGE ao clicar no ítem da árvore.

Se alguém ja usou este componente com sucesso, gostaria de obter informações para utiliza-lo.

Uma outra forma de realizar o que estou querendo, seria utilizar o componente CHECKBOX. Porém, como são muitas opções para habilitar/desabilitar, não creio que este componente irá criar o efeito de rolagem dentro de uma tela tal qual o LISTBOX ou TEXTBOX.

Jair Rangel
HARBOUR + MINIGUI 1.07
:D

Tente o ON DOUBLECLICK

Código: Selecionar todos


/*
 *$Id
 *
 * Copyright 2005 Antonio Carlos da Silva <tonyenoe@terra.com.br>
 *
 * Exemplo do uso do objeto TREE
 * Data de inicio:  08/12/2005
 * Hora de inicio:  22:00:00
 * Hora de termino: 22:27:00
  *
 *$Id
 *
*/

#include "minigui.ch"

function main()

         local w := getdesktopwidth() , h := getdesktopheight() - 28

         request hb_lang_pt
         hb_langselect("PT")
	 request dbfcdx, dbffpt
	 rddsetdefault('dbfcdx')




	 set date french
	 set century on
	 set epoch to 1950
	 set browsesync on
	 set deleted on
	 set multiple off warning
	 set navigation extended
         set font to 'arial', -11
            
         define window frm_principal             ;
		at     0,0                       ;
		width  640                       ;
		height 480                       ;
		title "Controle de Clientes"     ;
		main                             ;
		icon nil                         ;
		on init {||InicializaAmbiente()} ;
                on release Sair()


//       MENU PRINCIPAL DO SISTEMA

	 define main menu


//              Menu Popup/Suspenso -> ARQUIVOS

                popup '&Arquivos'
                      item '&Ativar empresa    ' action NIL //{ ||ativaempresas()}

                      separator
                      item '&Clientes          ' action NIL //{ ||clientes()     }
		      item '&Serviços          ' action NIL //{ ||servicos()     }
                      item '&Protocolos        ' action NIL //{ ||protocolos()   }
                      item '&Orçamentos        ' action NIL //{ ||orcamentos()   }

		      separator
                      item '&1   ' action msginfo('Em Desenvolvimento')
		      item '&2   ' action msginfo('Em Desenvolvimento')
		      item '&3   ' action msginfo('Em Desenvolvimento')
		      item '&4   ' action msginfo('Em Desenvolvimento')

                      separator
		      item '&5   ' action msginfo('Em Desenvolvimento')

                      separator
                      item '&6   ' action msginfo('Em Desenvolvimento')
		      item '&7   ' action msginfo('Em Desenvolvimento')

                      separator
		      item '&Sair              ' action SairPrograma()

                end popup
//              Fim do menu de Arquivos

//              Menu Popup/Suspenso -> MOVIMENTOS

                popup '&Movimentos'
		      item '&Conta Corrente    ' action msginfo('Em Desenvolvimento')

                end popup
//              Fim do menu de Movimentos


//              Menu Popup/Suspenso -> RELATORIOS

                popup '&Relatórios'

                      item '&Clientes          ' action msginfo('Em Desenvolvimento')
		      item '&Serviços          ' action msginfo('Em Desenvolvimento')
                      item '&Protocolos        ' action msginfo('Em Desenvolvimento')
                end popup
//              Fim do menu de Relatorios


//              Menu Popup/Suspenso -> FERRAMENTAS

                popup '&Ferramentas'

                      item '&Backup            ' action msginfo('Em Desenvolvimento')
		      item '&Restore           ' action msginfo('Em Desenvolvimento')

                end popup
//              Fim do menu de Ferramentas



//              Menu Popup/Suspenso -> AJUDA

                popup '&Ajuda'

		      item '&Sobre...             ' action msginfo('Em Desenvolvimento')
		      separator
                      item 'Versão da &Minigui    ' action msginfo(miniguiversion())
		      item '&Versão do Compilador ' action msginfo(version())
		      item 'Ve&rsão do Windows    ' action mysys()
		      item 'Informações do Shell  ' action shel()

                end popup
//              Fim do menu de Ajuda


	 end menu
//       fim do menu principal



         define tree treeserv;
             at        62,8;
             width   w -700;
             height  h -135;
             nodeimages nil itemimages nil norootbutton itemids;
             on dblclick {||func()}

             node 'Dados Cadastrais'

                  treeitem '   Ficha 1 - Indentificação         ' id 1
	          treeitem '   Ficha 2 - Dados gerais           ' id 2
	          treeitem '   Ficha 3 - Dados fiscais          ' id 3
	          treeitem '   Ficha 4 - Responsavel            ' id 4

             end node

             node 'Fichas de Movimento'

                  treeitem '  Ficha 5 - Protocolos              ' id 5
	          treeitem '  Ficha 6 - Conta Corrente          ' id 6
	          treeitem '  Ficha 7 - Solicitação de Serviços ' id 7

             end node

         end tree

         @ 040 ,   2 frame frame1 of frm_principal width w -687 height h -105 caption "Fichas do cliente"
         @ 075 , 115 frame frame2 of frm_principal width w -120 height h -140

         ** ficha dados gerais
         ** ficha dados fiscais
         ** ficha responsavel
         ** ficha protocolos
         ** ficha conta corrente
         ** ficha solicitação de serviços

         define toolbar tbr_principal flat buttonsize 25,25 righttext border

                button btn_novo                         ;
                       caption 'Novo Cliente'           ;
                       picture Nil                      ;
                       action msginfo(version())
                button btn_cadastro                     ;
                       caption 'Automóveis'             ;
                       picture  Nil                     ;
                       action msginfo(version())
                button btn_tabela                       ;
                       caption 'Clientes'               ;
                       picture  Nil                     ;
                       action msginfo(miniguiversion()) ;
                       separator
                button btn_sair                         ;
                       caption 'Sair do programa'       ;
                       picture  Nil                     ;
                       action frm_principal.release
         end toolbar

	 define statusbar
		statusitem 'Empresa ativa  '            action msginfo('click! 1')
		statusitem 'Usuario'          width 100 action msginfo('click! 2')
		statusitem 'Empresa usuaria'  width 130 icon Nil
		clock
		date
	 end statusbar

	 end window
         frm_principal.maximize()
	 frm_principal.activate()

return( nil )
*--------------------------------------------------------------------------------
function InicializaAmbiente()



         return( nil )
*--------------------------------------------------------------------------------

function SairPrograma()
         local i := MsgOkCancel ("Deseja realmente encerrar o Aplicativo ?" , "Encerramento do Programa" ,.f. )

         if i
            close all
            frm_principal.release()
         endif

         return( nil )
*--------------------------------------------------------------------------------
function  Sair()
          close all
return nil
*--------------------------------------------------------------------------------
function mysys()
         
         local i :=  windowsversion()

         msginfo(       "Sistema:    "  +  i[1]  +  hb_osnewline();
                   +    "Versão :    "  +  i[2]  +  hb_osnewline();
                   +    "Compilação: "  +  i[3]                     )


         return( nil )
*--------------------------------------------------------------------------------
function shel()
         ShellAbout ( '  Sistema de Teste do Objeto TREE', '  Objeto TREE' )
         return( nil )

*--------------------------------------------------------------------------------
function func()


        private nPos := Str ( frm_principal.treeserv.Value )

        if        val(nPos) = 1
                  func1()
        elseif    val(nPos) = 2
                  func2()
        elseif    val(nPos) = 3
                  func3()
        elseif    val(nPos) = 4
                  func4()
        elseif    val(nPos) = 5
                  func5()
        elseif    val(nPos) = 6
                  func6()
        elseif    val(nPos) = 7
                  func7()
        elseif    val(nPos) = 8
                  func8()
        endif

return nil
*--------------------------------------------------------------------------------
function func1()
         msgbox('função 1')
return nil
*--------------------------------------------------------------------------------
function func2()
         msgbox('função 2')
return nil
*--------------------------------------------------------------------------------
function func3()
         msgbox('função 3')
return nil
*--------------------------------------------------------------------------------
function func4()
         msgbox('função 4')
return nil
*--------------------------------------------------------------------------------
function func5()
         msgbox('função 5')
return nil
*--------------------------------------------------------------------------------
function func6()
         msgbox('função 6')
return nil
*--------------------------------------------------------------------------------
function func7()
         msgbox('função 7')
return nil
*--------------------------------------------------------------------------------
function func8()
         msgbox('função 8')
return nil
*--------------------------------------------------------------------------------
** End Of File


Antonio Carlos
Harbour 3.2 (20180213)
Hwgui 2.20 3b | PostGresql 9.5 | ADO/ODBC
Avatar do usuário
JAIR RANGEL
Usuário Nível 3
Usuário Nível 3
Mensagens: 178
Registrado em: 19 Jul 2005 16:01
Localização: RIO DE JANEIRO
Contato:

Mensagem por JAIR RANGEL »

Prezado Antonio !

Obrigado por responder.

Resolvi o problema com o CHECKBOX.
Aprendi como gerar o efeito de tela deslizante. Com isto, exibi todas as
opções.

Obrigado e bom fim de semana !

Migrando para HARBOUR + MINIGUI 108 + BRMAKE :xau
MINIGUI + HARBOUR + BRMAKE + CDX
CLIPPER 5.2E + VISUALLIB 2 + BLINKER
Responder