Ir para conteúdo
Fórum Script Brasil
  • 0

Vários formularios abertos


Lameira

Pergunta

Olá pessoal!!!

Gostaria de saber se em VB6 é possível abrir mais de um formulário ao mesmo tempo;

ex:

tenho um formulário de Cadastro de produtos e ele está quase todo preenchido e eu tenho que abrir um outro formulario, é possível manter os dois formlários abertos e preservar os dados do cadastro de produto que ainda não foram salvos???

vlw

Editado por Lameira
Link para o comentário
Compartilhar em outros sites

12 respostass a esta questão

Posts Recomendados

  • 0
sim ue, desde q não abra como modal (alias, como modal funciona, so q você so consegue acessar um de cada vez).

o q você ta tentando fazer q não ta funcionando??

eu sempre me confundo com essa questão de modal, eu abro os formulário com o form.show, será que é isso???

faço a chamada desta maneira só que quando eu abro um outro formulario e retorno ao formulário anterior ele já não está igual ou alguns dados se perderam...

continuo precisando de auxílio

grato

Editado por Lameira
Link para o comentário
Compartilhar em outros sites

  • 0

se você abre o form como modal, exemplo, assim:

Form1.Show vbModal

você não pode mexer em nenhum outro formulario ate q você feche esse.

entretanto, abrindo ou não como modal, os outros formularios vao ficar la aberto ate q você feche. e os dados deles não vao ser perdidos.

Link para o comentário
Compartilhar em outros sites

  • 0
se você abre o form como modal, exemplo, assim:

Form1.Show vbModal

você não pode mexer em nenhum outro formulario ate q você feche esse.

entretanto, abrindo ou não como modal, os outros formularios vao ficar la aberto ate q você feche. e os dados deles não vao ser perdidos.

vlw, brigaduuuu

Link para o comentário
Compartilhar em outros sites

  • 0
eu sempre me confundo com essa questão de modal, eu abro os formulário com o form.show, será que é isso???

faço a chamada desta maneira só que quando eu abro um outro formulario e retorno ao formulário anterior ele já não está igual ou alguns dados se perderam...

continuo precisando de auxílio

vi q você editou o post depois q eu postei...

não sei se você conseguiu resolver, mas... não tem porque o formulario anterior mudar os dados, a não ser q você esteja modificando os dados deles você mesmo a partir de outro form. você provavelmente pode estar fazendo isso "sem querer" se tiver usando variaveis globais. exemplo, se você usa o mesmo recordset pra buscar dados nos dois forms, é claro q se você usa-lo em um dos formularios, o valor sera alterado tb para o outro.

Link para o comentário
Compartilhar em outros sites

  • 0
eu sempre me confundo com essa questão de modal, eu abro os formulário com o form.show, será que é isso???

faço a chamada desta maneira só que quando eu abro um outro formulario e retorno ao formulário anterior ele já não está igual ou alguns dados se perderam...

continuo precisando de auxílio

vi q você editou o post depois q eu postei...

não sei se você conseguiu resolver, mas... não tem porque o formulario anterior mudar os dados, a não ser q você esteja modificando os dados deles você mesmo a partir de outro form. você provavelmente pode estar fazendo isso "sem querer" se tiver usando variaveis globais. exemplo, se você usa o mesmo recordset pra buscar dados nos dois forms, é claro q se você usa-lo em um dos formularios, o valor sera alterado tb para o outro.

Ok Kuroi, a minha dúvida é a seguinte, vamos supor que eu abra o form de O.S. e que neste form eu vou liberando os campos gradativamente, ou seja, depois que eu selecionei o Cliente eu habilito o campo de Produtos e etc, mas que por algum motivo, no meio desse processo eu tenho que abrir o form de Cadastros; o que está acontecendo é que quando eu volto para o form da O.S. o campo de Produtos foi desabilitado e eu tenho que reiniciar todo o processo de preenchimento da O.S., relembrando que eu estou chamando os meus forms como 'não modal':

cadastro.show

os.show

tens alguma sugestão??? Fico no aguardo. abçs

Editado por Lameira
Link para o comentário
Compartilhar em outros sites

  • 0

você tem algum codigo no evento Activate desse formulario??

se tiver, ele esta sendo chamado toda vez q você muda o foco do outro formulario pra esse.

se no Activate você ta desabilitando o campo de produtos, ele vai desabilitar sempre q você voltar pra esse form.

se for esse o caso, você tem duas opcoes:

1 - mudar o codigo q ta no Form_Activate para o Form_Load (o q pode não ser viavel em alguns casos).

2 - se a opcao de cima não for viavel, você cria uma variavel boolean pra testar se o activate já foi chamado alguma vez. quando for chamado a primera vez você passa true nela. se for chamado de novo e ela já estiver true, você não executa o codigo.

se não for esse o seu caso, faca o seguinte então. procure no seu codigo do programa intero, todas as passagens onde você manda desabilitar o campo de produtos. aperte F9 na linha (ela deve ficar vermelha) pra por um breakpoint. e execute o programa com F5 e faca o teste dos formularios. no momento em q ele for desabilitar, o seu programa deve parar apontando a linha do breakpoint. então você vai saber o q você faz q desabilita o campo.

Link para o comentário
Compartilhar em outros sites

  • 0
você tem algum codigo no evento Activate desse formulario??

se tiver, ele esta sendo chamado toda vez q você muda o foco do outro formulario pra esse.

se no Activate você ta desabilitando o campo de produtos, ele vai desabilitar sempre q você voltar pra esse form.

se for esse o caso, você tem duas opcoes:

1 - mudar o codigo q ta no Form_Activate para o Form_Load (o q pode não ser viavel em alguns casos).

2 - se a opcao de cima não for viavel, você cria uma variavel boolean pra testar se o activate já foi chamado alguma vez. quando for chamado a primera vez você passa true nela. se for chamado de novo e ela já estiver true, você não executa o codigo.

se não for esse o seu caso, faca o seguinte então. procure no seu codigo do programa intero, todas as passagens onde você manda desabilitar o campo de produtos. aperte F9 na linha (ela deve ficar vermelha) pra por um breakpoint. e execute o programa com F5 e faca o teste dos formularios. no momento em q ele for desabilitar, o seu programa deve parar apontando a linha do breakpoint. então você vai saber o q você faz q desabilita o campo.

Beleza Kuroi, realmente no Activate existem códigos que alteram o form e ai todos os campos são desabilitados e ficam do jeito de quando o form é chamado pela primeira vez, ou seja todos os campos são desabilitados forçando o reinício de todo processo.

Uma dúvida: Se eu estou com um form aberto, ex: O.S., porque quando eu chamo outro form, ex: Cadastro, o form de O.S. é apagado da tela sendo que não existe nenhum comando para isso???, minha intenção é que os dois fiquem abertos e não haja necessidade de chamar novamente o form O.S., tem jeito para isso???

Agradeço a paciencia e fico no aguardo.

Editado por Lameira
Link para o comentário
Compartilhar em outros sites

  • 0

estranho, como assim o form é apagado?? simplesmente some??

por acaso você ta chamando o Unload dele em alguma parte ou pondo Visible = False em alguma hora??

sera q não é porque ta ficando um na frente do outro e parece q o otro some??

o form some da barra de tarefas tb?? tenta setar a propriedade ShowInTaskBar dos forms para True.

Link para o comentário
Compartilhar em outros sites

  • 0
estranho, como assim o form é apagado?? simplesmente some??

por acaso você ta chamando o Unload dele em alguma parte ou pondo Visible = False em alguma hora??

sera q não é porque ta ficando um na frente do outro e parece q o otro some??

o form some da barra de tarefas tb?? tenta setar a propriedade ShowInTaskBar dos forms para True.

Kuroi, abaixo está a forma como estou chamando os forms através do Form Principal, isso é feito através de um ToolBar

Private Sub Tbprinc_ButtonClick(ByVal Button As MSComctlLib.Button)
   Select Case Button.Index
      Case 1
         agenda.Show
      Case 2
         cadastro.Show
      Case 3
         os.Show
      Case 4
         relatorios.Show
      Case 5
 'fecha os Recordset
            cli.Close
            os.Close
            forn.Close
            fun.Close
'fecha o BD
            basetelpri.Close
'descarrega os Recordset da memória
            Set cli= Nothing
            Set os= Nothing
            Set forn= Nothing
            Set fun= Nothing
'descarrega o BD da memória
            Set base = Nothing
'encerra o programa
            End
   End Select
End Sub

Chequei todos os forms e, em todos a propriedade 'ShowInTaskBar ' bem como a 'Visible' já estavam setadas em 'True'; em cada form eu uso somente no botão 'Sair' o Unload Me e mesmo assim o que acontece é que quando eu chamo um formulário o outro some da tela, é bom ressaltar que o form Principal permanece na tela e depois que fiz as alterações que você sugeriu no Activate de cada form, o conteúdo, apesar dos forms sumirem da tela, se mantêm (VALEU!!!). O dilema permanece em compreender o por quê o formulário some quando chama o outro pelo form Principal(!?!?!?).

Tentei dar um jeito, criando um ToolBar em cada form, assim eu faço a chamada dos outros forms de dentro do form e não somente pelo form Principal (ex: pelo form O.S. eu posso chamar o de Cadastros), desse jeito o form não some da tela e é criado um botão na Barra de Status do Windows; eu consigo selecionar e trabalhar em todos os forms clicando em cada um deles ou através da Barra de Status. Funcionou, é verdade, mantenho todos os forms na tela, mas confesso que ficou esquisito ter dois ToolBar em cada form...

Uma dúvida: Se eu tenho um form aberto (ex: Principal) e eu chamo outro form (ex: O.S.) e por motivo tal eu tenho que chamar outro form pelo Principal (ex: Cadastros), o que o sistema entende??? Eu notei que basta clicar sobre o botão do ToolBar no form Principal que o do O.S. some da tela para depois abrir o form Cadastro (!?!?!?).

Outra dúvida: o unLoad Me, quando chamado de dentro de um form ele tambem interfere em outros forms???

Por favor dê uma checada nesta rotina e vê se existe mais algum erro, fico no aguardo.

Editado por Lameira
Adicionar tag CODE
Link para o comentário
Compartilhar em outros sites

  • 0
O dilema permanece em compreender o por quê o formulário some quando chama o outro pelo form Principal(!?!?!?).

por acaso o seu form principal ocupa a tela toda?? tenho a impressao q o outro form some, porque você pondo foco no principal, o principal entra na frente do primero. assim parece q ele some, mas ele so esta atras do principal.

se você apertar Alt + TAB, não consegue localizar o form q sumiu??

Uma dúvida: Se eu tenho um form aberto (ex: Principal) e eu chamo outro form (ex: O.S.) e por motivo tal eu tenho que chamar outro form pelo Principal (ex: Cadastros), o que o sistema entende??? Eu notei que basta clicar sobre o botão do ToolBar no form Principal que o do O.S. some da tela para depois abrir o form Cadastro (!?!?!?).

imagino q o motivo seja o q eu falei acima.

pra resolver isso tenta por, na hora de chamar o form, tipo assim:

agenda.Show , Me

Outra dúvida: o unLoad Me, quando chamado de dentro de um form ele tambem interfere em outros forms???

não costuma interferir não.

Link para o comentário
Compartilhar em outros sites

  • 0
O dilema permanece em compreender o por quê o formulário some quando chama o outro pelo form Principal(!?!?!?).

por acaso o seu form principal ocupa a tela toda?? tenho a impressao q o outro form some, porque você pondo foco no principal, o principal entra na frente do primero. assim parece q ele some, mas ele so esta atras do principal.

se você apertar Alt + TAB, não consegue localizar o form q sumiu??

Uma dúvida: Se eu tenho um form aberto (ex: Principal) e eu chamo outro form (ex: O.S.) e por motivo tal eu tenho que chamar outro form pelo Principal (ex: Cadastros), o que o sistema entende??? Eu notei que basta clicar sobre o botão do ToolBar no form Principal que o do O.S. some da tela para depois abrir o form Cadastro (!?!?!?).

imagino q o motivo seja o q eu falei acima.

pra resolver isso tenta por, na hora de chamar o form, tipo assim:

agenda.Show , Me

Outra dúvida: o unLoad Me, quando chamado de dentro de um form ele tambem interfere em outros forms???

não costuma interferir não.

Olá Kuroi, realmente o Principal está com tela cheia e os forms não somem, ficam escondidos mesmo; acrescentei o ', me' e resolveu o problema, você matou a charada. VALEU!!! Brigaduuu!!! Agora creio que cheguei ao final desse projeto.

Editado por Lameira
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...