USAR FORM COMPARTILHADO ENTRE 2 PROJETOS
Possuo 2 projetos distintos... alguns formÂ's uso os mesmo nos 2 projetos... e alguns formÂ's são exclusivo aquele projeto especifico.
Possuo um form chamado Parcelas que é compartilhado em ambos os projetos
Possuo um form chamado PDV que é exclusivo do projeto PDV.vbp
exemplo:
1. Abro o projeto PDV.vbp que vai iniciar o form PDV automaticamente.
2. Cliente chega, precisa pagar uma parcela, chamo o form Parcelas (que eles esconde o form PDV) e abre o form Parcelas....
3. Faço a tarefa que preciso fazer, quando eu fechar o form Parcelas ele deve reabrir o for PDV (codigo abaixo)
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
If vChamouCaixa = "PDV" Then
Parcelas.Hide
PDV.Show 1
Else
Parcelas.Hide
End If
End Sub
Até aqui tudo ok
No outro projeto chamado Principal.vbp.... cliente chega e quer pagar uma parcela... abro normal, dou baixa na parcela do cliente, mais quando fecho a janela de parcelas dar erro: (marquei de vermelho o erro é o motivo)
Quando fechar vai chamar o seguinte contigo:
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
If vChamouCaixa = "PDV" Then
Parcelas.Hide
[txt-color=#e80000]PDV[/txt-color].Show 1 [txt-color=#e80000]"erro acontece aqui pq o PDV.frm não faz parte do projeto Principal.vbp... então não tem como citar ele aqui[/txt-color]
Else
Parcelas.Hide
End If
End Sub
Então alguma duvidas sugiram:
1. Como usar o mesmo form nos 2 projetos sem ter o form citado em um dos projetos.
2. Caso eu crie um variável e coloque num modulo separado de cada projeto citando o projeto que chamou aquele form parcelas... e caso os 2 projetos estejam aberto ao mesmo tempo.
Fiquei meio perdida como fazer isso no vb6
Citação::
Como se trata do VB6, eu duplicaria os forms e jogava um para cada projeto, fazendo as devidas mudanças. Assim fica cada coisa no seu devido lugar e não será necessário ter qualquer gambiarra.
Fica meio inviável...
Exemplo: Faço correções ou melhorias no form Parcelas de um projeto... ai vou ter q fazer no form Parcelas do outro projeto (ou ter q ficar copiando form entre pastas, correndo o risco de por descuido substituir o form errado)
Mas precisa ver se realmente compensa, porque as vezes o form, pode estar usando funções de módulos do projeto.
Voce também pode relacionar o mesmo arquivo Parcela.frm em dois projetos diferentes. Só é preciso ter cuidado pra que a mudança dentro de um projeto, não cause problema no outro.
Tópico do VBMania sobre component MDIExtend
A outra dica do SAMUKA também acho que funciona, de referenciar o mesmo Form em dois projetos diferentes, nunca testei assim mas teoricamente funcionaria.
If PDV Not Is Nothing Then
PDV.hide
end if
Citação::
Existe uma outra forma, que é colocar esse form que voce não quer duplicar dentro de um projeto ActiveX DLL, e depois relacionar essa DLL nos dois projetos.
Mas precisa ver se realmente compensa, porque as vezes o form, pode estar usando funções de módulos do projeto.
Voce também pode relacionar o mesmo arquivo Parcela.frm em dois projetos diferentes. Só é preciso ter cuidado pra que a mudança dentro de um projeto, não cause problema no outro.
O problema é que o projeto PDV possui outros forms e módulos somente dele... ficaria enviável jogar todos
Citação::
Voce pode simplesmente referenciar o form em dois(ou mais) projetos e verificar se o form que voce quer esconder está carregado. Algo tipo:
If PDV Not Is Nothing Then
PDV.hide
end if
o problema está na hora de criar o executável.... ele verificar que o form pdv nao encontra-se no projeto Principal
Citação:o problema está na hora de criar o executável.... ele verificar que o form pdv nao encontra-se no projeto Principal
Mas é preciso incluir o arquivo dentro do projeto, mesmo que ele não esteja na mesma pasta, voce pode incluir um mesmo arquivo dentro de dois projetos.
Citação::
o problema está na hora de criar o executável.... ele verificar que o form pdv nao encontra-se no projeto Principal
Mas é preciso incluir o arquivo dentro do projeto, mesmo que ele não esteja na mesma pasta, voce pode incluir um mesmo arquivo dentro de dois projetos.
Sim, eu sei e foi feito isso com form parcelas
Porem se eu add o form pdv no projeto principal vai apresentar outros erros por falta de forms que são exclusivo para o projeto pdv
O projeto PDV possui varios forms referenciados nele... entao cada um vai pedir quando for criar o exe
Mas se o executável já estiver rodando, creio que não é possÃÂvel enviar um comando para abrir um form diferente daquele que já está aberto no momento.
Essas funções que voce mencionou, HIDE e SHOW, só servem pra forms dentro do próprio projeto.