
Algumas das formas pré-instaladas que acompanham o Visio 2007 possuem opções. Por exemplo, se eu inserir um SPDT da página Engenharia Elétrica › Chaves e Relés em meu desenho, posso clicar com o botão direito nele e selecionar “Definir posição da chave”.
Como posso adicionar essa funcionalidade às minhas próprias formas?
Responder1
Não tenho certeza se você está familiarizado com o Visio, mas em qualquer formato existe algo chamado shapesheet. A planilha de formas é basicamente uma planilha onde cada célula direciona o Visio na renderização de sua forma (ou na retenção de dados).
Para chegar lá, acredito que você tenha que habilitar o modo de desenvolvedor no Visio, então você pode clicar com o botão direito em uma forma e selecionar a janela da planilha de formas. Acho que também está no menu suspenso/faixa da janela.
De qualquer forma, depois de entrar na planilha, você poderá ver itens como largura, altura da forma, etc. E se você selecionar uma célula com, digamos, a largura, provavelmente verá apenas valores, mas com um sinal = na frente disso. Então, em vez de um valor direto para largura, na verdade é uma fórmula. Altere a fórmula da Altura para =Largura/2 e você verá que conforme ajusta a largura, a altura continua sendo metade da largura.
Então, agora, para chegar mais perto de responder à sua pergunta, meu palpite é que a forma à qual você está se referindo usa truques de shapesheet para fazer o que faz. Existem muitos tipos diferentes de dados na planilha de formas e geralmente são divididos em seções. A seção que define o menu do botão direito para uma forma é chamada de seção Ações do usuário. Se você visualizar a planilha para a forma do switch, provavelmente encontrará uma célula de ação que possui uma fórmula que altera o valor de alguma outra célula usando SetF ou algo semelhante. Portanto, a forma provavelmente está configurada de forma que, ao alternar o valor de uma única célula, sua aparência muda.
Então, para definir sua própria forma dessa forma, você precisa fazer algo semelhante, basicamente criando uma célula de usuário que contenha a opção selecionada. Em seguida, configure todas as outras fórmulas para ler aquela célula. Em seguida, sua célula de ação define a opção quando clicada.
Outra coisa que você pode fazer é usar o VBA no Visio para responder a cliques de ação (usando uma fórmula diferente - callthis), mas nesse caso seu VBA modificará os valores e as fórmulas do shapesheet, apenas usando uma linguagem diferente, essencialmente.
Há muitas informações online sobre como fazer tudo isso, mas a única palavra que você precisa saber para sua pesquisa é: ShapeSheet.