Vídeo - Criando Ribbons - parte 3 ( 
			English Version
			
 )
			Nota importante: para ter acesso aos vídeos e arquivos exemplos deste site, adquira um dos planos apresentados abaixo. Você pode comprar em até 5x no Cartão de Crédito, através do Paypal.
Veja como comprar e saiba mais sobre o material oferecido, clicando aqui.

Chegamos na parte mais empolgante da programação de ribbons que é a de alteramos os controles de forma dinâmica. Podemos ocultar, desabilitar, inserir imagens, trocar nomes e muito mais. Isto é feito através dos atributos get's (obter).
Vejamos a lista abaixo dos atributos gets do controle button (botão):
getDescription
			getEnabled 
			getImage
			getKeytip 
			getLabel
			getScreentip
			getShowImage
			getShowLabel 
			getSize
			getSupertip 
			getVisible
Cenário 1 - Imagine que um aplicativo seja acessado por diversos usuários e que cada usuário tenha permissão distinta de acesso. O João não pode ter acesso ao formulário de clientes, já o Carlos tem permissão de acesso. Para esta situação podemos programar o botão da ribbon, que abre o formulário de clientes, de modo que se torne visível apenas para o Carlos. Configuramos este botão com o atributo getVisible, chamando uma determinada função. Esta função irá passar para o getVisible o valor true ou false, determinando o estado do botão (visível ou invisível) em função do usuário logado.
Escrita exemplo do botão que abre o formulário de clientes:
Faça o login aqui para ter acesso ao código.
Agora, veja um exemplo bem simples da função fncGetVisible:
Faça o login aqui para ter acesso ao código.
Observe que se o usuário logado for o João, o argumento visible assumirá o valor false e se forem outros usuários, o argumento assumirá o valor true.
Supondo então que o usuário logado seja o João, a função entregará ao atributo getVisible o valor false , tornando o botão invisível.
<button id = "btClientes" label = "Clientes" getVisible = "false" onAction = "fncOnAction" />
Cenário 2 - Suponha que um aplicativo esteja sendo projetado para os idiomas português e inglês, cujo os nomes dos botões da ribbon devam ser carregados em função do idioma selecionado. Neste cenário usaremos o getlabel.
Escrita exemplo do botão com o atributo getLabel:
Faça o login aqui para ter acesso ao código.
A função fncGetLabel :
Faça o login aqui para ter acesso ao código.
Se a língua selecionada for a inglesa, a função passará para o getlabel, o valor "Customers".
<button id = "btClientes" getVisible = "fncGetVisible"
getLabel = "Customers" onAction = "fncOnAction" />
Cenário 3 - É muito comum também carregarmos os botões com nosso próprio banco de imagens. Esta questão será abordada na quarta aula, onde vou ensinar mais de uma forma de carregamento, inclusive a de como carregar imagens PNG.
Quando a ribbon é carregada pela primeira vez é avaliado cada um dos gets empregados e os seus valores são carregados, conforme as funções de cada um dos atributos.
Como se faz para os get's serem revalidados depois da ribbon carregada ?
A ribbon tem dois métodos chamados de Invalidate e InvalidateControl. O Invalidate revalida todos os controles de uma ribbon, enquanto que o método InvalidateControl revalida o controle que você especificar.
Agora, faça de conta que você queira, num determinado evento, revalidar o estado de dois botões (clientes e fornecedores) de uma ribbon carregada. Basta informar o atributo id do controle a ser revalidado.
objRibbon.invalidateControl ("btClientes")
objRibbon.invalidateControl ("btFornecedores")
Para se ter acesso aos métodos Invalidate e InvalidateControl é necessário efetuarmos algumas configurações. A primeira delas é a de referenciarmos a classe "Microsoft Office 12.0 Object Library" que eu demonstro na parte dois, da vídeo-aula.
A segunda configuração é passarmos a ribbon para o cache através de uma variável. Veja o código abaixo que deve ser criado num módulo global:
Faça o login aqui para ter acesso ao código.
Para completar é preciso passar a ribbon para a variável objRibbon , chamando pela função fncRibbon. Isto é feito pela atributo onLoad da tag customUI. Veja o trecho da xml:
Faça o login aqui para ter acesso ao código.
Observe os métodos disponíveis pela variável objRibbon:

O arquivo exemplo desta vídeo-aula está disponível para quem adquirir o
MontaRibbons
Vídeo-aula
Nesta vídeo-aula você terá uma breve apresentação dos atributos get's. Irá acompanhar, em detalhes, como configurar as ribbons para a troca dinâmica de idiomas. Aprenderá também como ocultar/desabilitar os controles da ribbon, em função do usuário logado.
Faça o login aqui para ter acesso ao vídeo.
|  
			Introdução: As presentes Vídeos-aulas apresentam uma visão estrutural básica sobre ribbons e pretendem abrir a sua mente para o entendimento do que é possível ser feito com esta fácil programação.  | 
			
			 Links  | 
			
			 Temas abordados  | 
			
|---|---|
| Todas as informações necessárias para você adquirir esta incrível ferramenta. | |
| 
			 Breve apresentação do MontaRibbons Noção estrutural da xml empregada Como desabilitar toda a faixa superior do Acess Usando imagens da galeria do Office Usando controles internos do Office Personalizando a barra de ferramentas de acesso rápido 
				Personalizando o Botão Office 
			
				Como criar uma ribbon personalizada 
			 | 
			|
| 
			 Como montar o controle splitButton 
				Como montar o controle menu 
			
				Diferenças entre os controles splitButton e menu 
			
				Exportando as ribbons para os seus aplicativos 
			
				Como dar funcionalidade aos botões da ribbon 
			 | 
			|
| Uso de imagens externas (GIF, JPEG, PNG e ICO) | |
| Uso de imagens externas (GIF, JPEG, PNG e ICO) armazenadas em tabela local | |
| 
			8 comentários Avelino Sampaio   15/07/2022 05:41:46 Ruggeri, basta manter pressionado a tecla SHIFT na inicialização do seu aplicativo, para que vc tenha acesso as ribbons do Access. Sucesso! Ruggeri   14/07/2022 23:07:47 Oi Avelino, já possuo o monta ribbons, já exportei o esquema xml pro meu projeto, como ainda existem algumas pequenas alterações que ainda to fazendo, gostaria de saber qual a função que você usa pra recarregar a ribbon. ruggeri.nascimento@hotmail.com.br Sales   05/03/2022 13:15:01 Prezado Avelino, Montei o programa baseado no maestro, tudo certinho. To precisando apenas de uma modificação: no lugar de comandos gets atuar de acordo com o usuário, gostaria de usar o get visible para mostrar uma ribbon ou outra, quando fizer o login, de acordo com o setor que o "colaborador" trabalhar. Agradeço. Sandro Seibt   25/01/2021 19:59:28 Mestre Avelino, Tenho um programa utilizando os recursos do Maestro onde as Ribbon não estão atualizando integralmente e verifiquei que a referência é a Microsoft Officce 16.0 Object Library (a 12.0 não aparece entre as possibilidades). Esta referência (12.0) resolveria o meu problema? Grato.  Guilherme   18/01/2021 01:33:52 Avelino, quando eu uso, aparece esse erro: "tipo definido pelo usuário não definido" na linha: 'Public objRibbon as IRibbonUI' Antonio    26/06/2020 13:42:59 Boa tarde !!! Como faço para adquiri o Monta Ribbons No aguardo Marcio Melo - RJ   26/05/2020 15:52:23 Adorei essa vídeo aula, já consegui utilizar quase todos os Gets, faltando bem pouquinhos para serem exprementados, os principais já fizeram a grande diferença. Depois que passamos a dominar a ferramenta em conjunto com o nosso projeto passamos horas se divertindo com as possibilidades, tenho feito vários testes e obtendo novos horizontes. Fiz até um site tipo um help para o meu projeto que já dei como acabado, link http://www.sic.iniciantejoomla.com/ em breve vou adicionar os links das vídeo aulas que coloquei no youtube. Luís Augusto   05/02/2020 07:39:38 Bom dia Avelino, me sinto na obrigação de relatar a minha satisfação em ter adquirido o Monta Ribbons, o controle das Ribbons agregou grande valor ao meu pequeno projeto, dando a ele aparência profissional e confiabilidade pois consigo alterar com facilidade a caracteristica da ribbon, agradeço também ao suporte recebido.  | 

