Pergunta

Antes de mais nada, como eu estou usando VB6, por favor, limitar as suas sugestões amáveis ??para técnicas aplicadas para VB6.

text alt

I tem um conjunto de comandos relacionados uns com os outros como a figura mostra acima. Ele inclui vários treeviews, uma barra dividida, numa lista, um subformulário (um usercontrol), e etc.

Quando clico ou alterar os nós de vista em árvore na esquerda, os controles certos vai mudar a sua exibição em conformidade, e vice-versa.

Os dados por trás da cena é mantido em um banco de dados Access.

Este conjunto de gerenciamento de dados e apresentação é utilizado em diversas aplicações diferentes. Então eu escrevi várias classes para implementar a lógica e incluem esses módulos classes de novo e de novo nas minhas aplicações.

Então, eu estou realmente REUSE minhas aulas em um modo de "copiar e colar". Ele funciona, mas ele tem problemas. Se eu fizer uma alteração em uma classe, eu tenho que mudá-lo em diversas aplicações.

Esses dias eu estou pensando em transformá-los nos chamados componentes ActiveX. Mas eu não tenho certeza que tipo de componentes ActiveX que deve desenvolver a reutilização de toda a arquitetura.

Em poucas palavras, eu quero saber como eu pode reutilizá-lo mais graciosamente que apenas "copiar e colar". Abaixo está algumas idéias ou expectativa do novo "REUSE graciosa", mas não confine a eles.

(1) Eu espero que ele se parece com um controle ActiveX que tem uma página de propriedades para que eu possa definir algumas propriedades dele durante o tempo de design.

(2) para diferentes aplicações, o subformulário na direita pode exibir informações diferentes e tem diferentes controles e pode precisar extra de codificação e design.

(3) Também I pode precisar de código de um novo comportamento para o treeview e listview para diferentes aplicações. Este requisito fazer um usercontrol inteiro para toda a forma não é adequado. porque MSDN disse: “As referências a controles ActiveX, nunca deve ser devolvido para os aplicativos cliente."

Foi útil?

Solução

  • Criar uma DLL ActiveX (não controle)
  • Definir uma interface para a forma em
    a DLL
  • Mover toda a sua lógica em mais um ou classe na DLL e ter as rotinas de interagir com a forma através da interface
  • implementar a interface na forma
  • Uma inicialização do aplicativo tem a forma se registrar com o ActiveX DLL

Isto irá efetivamente eliminar copiar e colar entre os diferentes aplicativos.

Por exemplo para a minha aplicação de corte de metal Eu tenho um formulário Forma, a classe Screen Forma, e um monte de aulas de forma. Dois dos métodos da classe forma são DrawScreen que tem um parâmetro de um tipo de ShapeScreen, e GetValues ??que também tem um parâmetro de tipo ShapeScreen.

DrawScreen usa o método de ShapeScreen para configurar a tela de entrada e tela Forma configuração do Formulário através da interface IShapeForm. Os métodos de Tela GetValues ??usos forma para obter os valores de forma introduzidos que por sua vez usa o IShapeForm para obter os valores do formulário.

Esta configuração provou ser útil quando tivemos que desenvolver diferentes formas de entrada de forma em resposta às solicitações dos clientes. A nova forma acabou de implementar a interface IShapeForm e o resto do software foi intocada.

Outras dicas

Talvez eu devesse encapsular cada um dos controles para um controle de usuário e, em seguida, fazer um controle ActiveX virtual (sem interface visual) para organizar estes controlos em uma coisa unida.

Parece que o que você tem é uma visão, a lógica do domínio e dados. Seu grande problema eu prevejo é o item dois, não é estática na aparência e na lógica de aplicativo para aplicativo. Talvez o que você precisa é de dois controles separados? painel esquerdo eo painel direito. O painel da direita, provavelmente, vai implementar algum tipo array de controles, uma vez que eles não vão ser estático.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top