Bonus630DevToolsBar - Run Command Docker
Rode comandos a partir de uma dll
Publicado: Modificado:
Muitas vezes eu vou ao Macro Manager Docker para criar macros C#, macros C# têm a vantagem sobre addons porque não requerem
fechar e reabrir o coreldraw todas as vezes que os códigos mudarem, é muito útil fazer testes, mas se você quebrar o código o coreldraw trava
e o visual studio vai fechar então é maior o risco de perder as últimas alterações no código. Outra desvantagem é exigir a
versão específica do visual studio.
Para contornar essa desvantagem e manter a vantagem de "edição de código quente", criei uma janela de encaixe de complemento cujo monitor uma pasta para exibir uma árvore que
contém dll,classe,método.
este docker permitirá edições em arquivos dll e não será necessário reabrir o coreldraw similarmente ao Macro Manager Docker, mas você não perderá o código se o coreldraw travar,
permite o uso de qualquer versão do visual studio ou qualquer outro editor de texto, e a possíbilidade de utilizar VisualBasic além do C#
Para tornar a capacidade de criação e utilização de comandos em C# e VB em qualquer editor, esta docker possui um template de DLL para C# e um para VB, além de compilar o código utilizando o MSbuild.
Usa o mesmo modelo oficial de macro, localizado na [pasta de instalação do corel]/Data/VGCoreApp.vstax, mas requer apenas atributos personalizados para funcionar bem,
você pode criar seu próprio modelo https://docs.microsoft.com/en-us/visu...
eu criei um template c#, este template copia a dll criada para "c:\cdrCommands", você pode editar este caminho editando o arquivo "ClassLibrary2.csproj", nas linhas 54 e 55,
A referência VGCore precisará de atualização para a versão de destino do coreldraw
para usar no visual studio, copie o zip para %USERPROFILE%\Documents\Visual Studio [versão]\Templates\ProjectTemplates
Na pasta monitorada pode colocar muitas dll.Para criar a dll use o Class Library Template .net framework (não o core, não o standart) no visual studio
Uma dll pode conter muitas classes.
Uma classe pode conter muitos métodos.
classe requer o atributo [CgsAddInModule] e [CgsAddInConstructor] no método construtor, passe o objeto do aplicativo coreldraw no construtor
métodos requerem o atributo [CgsAddInMacro]
isso funciona como macros VSTA no Macro Manager.
depois você pode reutilizar sua dll em outros projetos.
Eu uso muitas vezes as macros vsta para fazer testes, criei essa ferramenta para uso pessoal, mas talvez ajude você também
Agora temos um popup de inspetor de variáveis para valores retornados de nossos comandos
O comando não encadeado será executado em assíncrono em segundo plano
Uma nova zona de interface do usuário para exibir detalhes sobre o comando selecionado, o comando com parâmetros precisa ser executado por este campo.
Você pode passar tipos de valor ou outros valores retornados de outros comandos para params, mas tenha cuidado, eu implementei uma maneira fraca de detectar funções de recursividade ilimitada
Um gerenciador de intervalo de formas foi adicionado, intervalo de formas é no meu caso o parâmetro mais usado passado para meus métodos, esse gerenciador armazena o id de estática de formas em uma lista e recuperação por método, você pode adicionar remove ou clean e adicionar o shaperange get para outro comando com o parâmetro shaperange.
O pop-up do inspetor de retornos será aberto no evento mouse over no campo de valor de retorno e levará um pouco de tempo para ser exibido, e será fechado após 1 segundo após o mouse sair do pop-up.
Fixe os comandos mais usados para acesso rápido
Código fonte: https://github.com/bonus630/RunCommandDocker
Demonstração de testes 1: https://youtu.be/LT8luj9DFoA
Testes Demo 2: https://youtu.be/jotNg8oajJo