none
Como colocar dois Forms á serem carregados não sendo MIDI Forms em VB RRS feed

  • Pergunta

  • Olá pessoal do MSDN as minhas duvidas seriam as seguintes pois dependo dela para dar andamento a uma aplicação em windows aplication feitas em .vb

     

    A)Onde seria o antigo Main do module.bas do vb6 ou só codigo, no atual VS2005 Pro Edition para que lá eu carrega-se dois forms um atrás do outro?

     

    tipo em vb - dentro do Main (não mdi mas sim um form normal) que eu carrega-se

     

    Form1.show ou Load Form1

    e

    dps

    Form2.show ou Load Form2

     

    Descarregando-se o form1 perante uma rotina de decisão tipo se aplicativo registrado então não carregue mais form1 só carregue form2 em diante

     

    fico no aguardo de uma solução pois queria ter uma alternativa para o artigo escrito neste link para vb6 em VS2005 Pro

     

    o link do artigo

    http://www.macoratti.net/locking.htm

     

     

    terça-feira, 10 de abril de 2007 02:52

Todas as Respostas

  • Continua existindo, mas não é o default. Para fazer isso, vá nas propriedades do projeto e desmarque a opção: Enable Application Framework. Em Startup object, escolha a opção: Sub Main. Agora é só adicionar um modulo e criar esse método.

     

    Public Sub Main

        Dim f as new Form1

        Application.Run(f)

    End Sub

     

    Ou

     

    Public Sub Main

        Dim f as new Form1

        Dim f2 as new Form2

     

        f.Show()

        f2.Show()

     

        Application.Run()

    End Sub

    terça-feira, 10 de abril de 2007 03:22
  • Me desculpe de eu sêr tanto leigo mas até essa parte "Continua existindo, mas não é o default. Para fazer isso, vá nas propriedades do projeto e desmarque a opção: Enable Application Framework. Em Startup object, escolha a opção: Sub Main", eu consegui

     

    Mas agora como eu adiciono no VS2005 Pro Edition, o modulo que nome dou a ele ou o nome dele tem que sêr sub main mesmo e em que local desse modulo ao adicioná-lo ao projeto eu crio o método ácima 

     

    Fico no aguardo

    terça-feira, 10 de abril de 2007 04:34
  • Adicione um novo item (botão direito no projeto -> Add New Item -> Module). O nome dele é indiferente, o que importa é ter um método publico chamado Sub Main().

    terça-feira, 10 de abril de 2007 12:18
  • Olá Leonardo muito obrigado , consegui resolver os problemas dos forms e criar o module1.vb com o método publico Sub Main() para a minha aplicação mas aí surgiu uma última duvida já que tive que desmarcar a cx de seleção

     

    Enable Application Framework para obter o Metodo Sub Main() em minha aplicação Windows Application e agora a duvida se refere a distribuição da minha aplicação, ou seja

     

    Com  a cx de seleção Enable Application Framework  desmarcada o que perco na hora de distribuir a minha aplicação para instalação via SETUP em relação as plataformas e ambientes operacionais Windows Vista, XP, 2000, 2003, ME e 98 ou será distribuída normalmente?

     

    Fico no aguardo

     

    At. Luiz

     

    quarta-feira, 11 de abril de 2007 03:00
  • Não muda nada em relação a distribuíção.
    quarta-feira, 11 de abril de 2007 03:12
  • Olá Leonardo ok mas antes de dizer um obrigadaço pq td que já foi respondido deu certo falta a questão principal por isso que criei esse topico já que tem relação ao artigo do link de como Criar uma Versão TrialWare ou Demo ácima do macoratti e o .ocx ActiveLock 1.8.4, explico

     

    é pq tive que criar esse sub main pq é ai que vai o codigo pra vc fz de sua app windows uma aplicação trial mas esse código está em VB6 e não em VS2005 Pro como mostra o artigo dos links que repetirei abaixo

     

    Então a pergunta espero que seja a final seria a seguinta como seria esse codigo no modulo do metodo sub main que eu criei no VS2005 em .Vb já que eu testei e nesse código para VS2005 apresenta bugs o que falta eu colocar aí se for o controle do ActiveLock1.8.4 ou .ocx ou .dll como eu chamo ele nesse modulo

     

    Module Module1

    Public Sub Main()

     

    Load(FormRegistro)

    Load(FormApp)

    With FormRegistro.ActiveLock1

    ' Se o usuário é registrado exibe o formulário principal

    If .RegisteredUser Then

    FormApp.Show()

    Else

    ' Se o usuário não esta registrado, verifica

    ' se ele alterou a data do sistema

    If .LastRunDate > Now Then

    MsgBox("ActiveLock detectou que você alterou a data do sistema !...")

    End

    End If

    ' Verifica o período de avaliação

    If .UsedDays < 30 Then

    FormRegistro.Show(1)

    FormApp.Show()

    Else

    'Se período expirou avisa o usuário e sai

    MsgBox("Seu periodo de avaliação terminou , Registre-se...!")

    Unload(FormRegistro)

    Unload(FormApp)

    End If

    End If

    End With

    End Sub

     

     

    End Module

     

    Este são os  LINKs DO ARTIGO

     

    http://www.macoratti.net/locking.htm

     

    e

     

    http://www.macoratti.net/vb_prot1.htm 

    E

     

    Este é o Link do ActiveLock - vêr 1.8.4 (Acredito que é a última versão disponível se tiver uma mais atual ou outro dll ou meio que crie uma vêr de minha aplicação para trialware, shareware e/ou demo, agradeço a quem me passar o  link)

     

    http://superdownloads.uol.com.br/download/119/activelock/

     

     

    quarta-feira, 11 de abril de 2007 03:32
  • Bem, após você adicionar a referência o componente ou adiciona-lo no toolbox (não sei como usar ele), você vai arrastar para algum formulário (no caso de você ter colocado ele no toolbox) ou instancia-lo direto no module. Quanto aos erros, tem haver com a conversão, por exemplo: No VB.NET a gente não carregar um form usando o método Load e sim instanciando, então você teria que mudar essa parte. E para fechar basta chamar o método Close do objeto Form.
    quarta-feira, 11 de abril de 2007 03:53
  • Bem a situação é esta

     

    Coloquei o Contrôle no ToolBox e o coloquei no Formulário de Registro ou FormRegistro

     

    No caso da Referência não me lembro de tela adicionada (alem do controle, precisa tb adicioná-la se sim como seria feito no VS2005?) , se vc bx o ActiveLock pelo link que ti passei  e descompactá-la vc vai ver que existem arquivos .ocx e .dll do controle ActiveLock

     

    No caso de instanciá-la direto no module como eu teria que fz isso ?

     

    e no caso de instanciar os forms pra serem carregados como o metodo Load do VB6 como o faria no Vs2005 teria como se for possivel me enviar mais um ex. disso?

     

    Se precisar do meu app de teste trial pra vc ver como esta a estrutura me passe o seu e-mail ou me add no msnmessenger  o meu msn é divulguesites@hotmail.com ok  ai eu envio a app zipada pra vc

    quarta-feira, 11 de abril de 2007 04:11
  • Eu não tenho como fazer um teste agora. Para referenciar no modulo, é como qualquer outro objeto:

     

    Dim obj as new ActiveLock

     

    Para carregar os forms, é a mesma coisa, um form é um objeto, logo:

     

    Dim f as new FormRegistro

    f.Show()

     

    quarta-feira, 11 de abril de 2007 15:37
  • E como eu chamo esse objeto ou adicionaria essa referencia relativo ao activelock.ocx que está no choosetoolboxitens  como mostrado no link abaixo

     

    http://www.webprodutos.com/erros/choosetoolboxitens.jpg

     

    Eu coloquei o controle no form FormRegistro

     

    mas para ele sêr chamado no metodo sub_main do modulo como vc colocou acima o que eu teria que fz no projeto como eu adicionaria essa referencia no projeto ?

     

    Dim obj as new ActiveLock  (o que eu teria que colocar apos essa linha)

     

    e eu teria que add algo mais no projeto alem do que fiz na tela choosetoolboxitens.jpg para ser chamada tb essa referência

    quarta-feira, 11 de abril de 2007 22:58
  • Se você colocou ele no  form, então instancie o form e chame.

     

    Dim f as new FormRegistro

    f.ActiveLock....

    quinta-feira, 12 de abril de 2007 03:29