DLL
Boa tarde, gostaria de saber como poderia criar uma dll com esse código.
Valeu
Public Sub verifica_branco(janela As Form)
Dim campo As Control
For Each campo In janela.Controls
If TypeOf campo Is TextBox Or TypeOf campo Is ComboBox Then
If campo.BackColor = &HF5EFCD And campo.Text = "" Then
MsgBox "Existem campos obrigatórios que necessitam de preenchimento!!", vbInformation, "AVISO"
branco = True
Exit Sub
End If
End If
Next campo
branco = False
End Sub
Valeu
vc tem que colocar o código em uma classe e compila-la como dll.
não é nada complicado.
tenta ai, se vc nao conseguir da um toque que monto um exemplo pra vc!
flws!
não é nada complicado.
tenta ai, se vc nao conseguir da um toque que monto um exemplo pra vc!
flws!
Marcelo, eu coloco o código e ele nao aceita o (janela as form)
pq
valeu
pq
valeu
testei aqui e realmente ocorre um erro.
Pelo que entendi da mensagem, ele informa que "Objetos privados não podem fazer parte de modulos publicos"... e por ai vai e talz..
Na verdade ele só explica que não é possÃvel passar um formulário (objeto privado) para uma rotina publica em uma classe.
Essa me pegou, não sei se teria como colocar essa sub em uma dll não viu...
a não ser que algm ai do forum tenha alguma outra informação que eu desconheça
Pelo que entendi da mensagem, ele informa que "Objetos privados não podem fazer parte de modulos publicos"... e por ai vai e talz..
Na verdade ele só explica que não é possÃvel passar um formulário (objeto privado) para uma rotina publica em uma classe.
Essa me pegou, não sei se teria como colocar essa sub em uma dll não viu...
a não ser que algm ai do forum tenha alguma outra informação que eu desconheça
1. Crie um novo projeto
2. Escolha ActiveX DLL
3. Renomeia a Classe Class1 e escolha o nome da sua classe.
4. Adicione o seu código na classe
5. Compile a sua DLL
No seu projeto, Adiciona uma referência à  sua DLL, e declare uma variável para receber sua classe e depois é só utilizar seus procedimentos.
Importante... O Ideal é que você mude a sua Sub para uma Function com retorno Boolean... olha só:
1. Código na Classe da DLL
2. Código em qualquer form de um Projeto que utiliza a DLL
Você pode notar que fiz algumas correções no seu código :
- Mudei a declaração de sua rotina de Sub para Function, com retorno Booleano
- Mudei a declaração do parà ¢metro da rotina para janela As Object ao invés de janela As Form. Em um projeto de DLL ActiveX, você não pode passar um form como parà ¢metro para uma Classe.
- Mudei a variável branco = True e branco = false para verifica_branco = True e verifica_branco = false para ajustar qual o retorno da função.
Você pode criar um projeto DLL e depois adicionar um projeto normal para fazer testes, sem precisar compilar a DLL, basta que no seu projeto de teste vc adicione uma referência ao projeto da DLL e clique com o botão direito nele e selecione Set as Startup
2. Escolha ActiveX DLL
3. Renomeia a Classe Class1 e escolha o nome da sua classe.
4. Adicione o seu código na classe
5. Compile a sua DLL
No seu projeto, Adiciona uma referência à  sua DLL, e declare uma variável para receber sua classe e depois é só utilizar seus procedimentos.
Importante... O Ideal é que você mude a sua Sub para uma Function com retorno Boolean... olha só:
1. Código na Classe da DLL
Public Function verifica_branco(janela As Object) As Boolean
Dim campo As Control
For Each campo In janela.Controls
If TypeOf campo Is TextBox Or TypeOf campo Is ComboBox Then
If campo.BackColor = &HF5EFCD And campo.Text = "" Then
MsgBox "Existem campos obrigatórios que necessitam de preenchimento!!", vbInformation, "AVISO"
verifica_branco = True
Exit Function
End If
End If
Next campo
verifica_branco = False
End Function
2. Código em qualquer form de um Projeto que utiliza a DLL
Dim varClasse as New Class1 'Ou o nome que você definir
If varClasse.verifica_branco(Me) Then
MsgBox "Verificação ok, prosseguir"
Else
MsgBox "Corrigir erros e repetir"
End If
Você pode notar que fiz algumas correções no seu código :
- Mudei a declaração de sua rotina de Sub para Function, com retorno Booleano
- Mudei a declaração do parà ¢metro da rotina para janela As Object ao invés de janela As Form. Em um projeto de DLL ActiveX, você não pode passar um form como parà ¢metro para uma Classe.
- Mudei a variável branco = True e branco = false para verifica_branco = True e verifica_branco = false para ajustar qual o retorno da função.
Você pode criar um projeto DLL e depois adicionar um projeto normal para fazer testes, sem precisar compilar a DLL, basta que no seu projeto de teste vc adicione uma referência ao projeto da DLL e clique com o botão direito nele e selecione Set as Startup
Esta ai o exemplo, utilizando o seu codigo
Citação:quando eu chamasse de um formulario essa dll, eu teria que passar o parametro da variavel janela
que seria um form.
valeu
Tranquilo... é só mudando para as Object, vai funfar blz...
Tópico encerrado , respostas não são mais permitidas