FORMULARIOS
Ola VbmanÃacos
Alguem conhece alguma forma de ler todos os formulários existente no projeto?
obs: não são apenas os formulários carregados, são todos do projeto
T+
Alguem conhece alguma forma de ler todos os formulários existente no projeto?
obs: não são apenas os formulários carregados, são todos do projeto
T+
para listar os não carregados não sei (posso procurar, acho que não dá...)
para os carregados
para os carregados
Private Sub Command1_Click()
On Error GoTo ErroForm
Dim v As Integer, nome As String
For v = 0 To Forms.Count - 1
nome = nome & Forms(v).Name
Next
MsgBox nome
Exit Sub
ErroForm:
MsgBox Err.Number
End Sub
FAB_UCH,
encontrei na net, sendo que não consegui resultado aqui:
ele conta o número de forms em um EXE:
encontrei na net, sendo que não consegui resultado aqui:
ele conta o número de forms em um EXE:
Sub FormFinder(FileName As String, Lst As ListBox)
Dim FreeF As Variant
Dim BByte As Variant
Dim FChr As String
Dim CountDown As Variant
Dim SpaceByte As String
Dim CountDownAgain As Variant
Dim SecondCount As String
Dim LastCount As Variant
FreeF = FreeFile
Open FileName$ For Binary Access Read As #FreeF
BByte = 32000
FChr$ = Chr(0) + Chr(255) + Chr(1)
For CountDown = 1 To LOF(FreeF) Step BByte
SpaceByte$ = Space(BByte)
Get #FreeF, CountDown, SpaceByte$
TAgain:
If InStr(1, SpaceByte$, FChr$, 1) Then
CountDownAgain = InStr(1, SpaceByte$, FChr$, 1)
SecondCount$ = Mid(SpaceByte$, CountDownAgain + 6, 22)
If InStr(1, SecondCount$, Chr(46) + Chr(102) + Chr(114) + Chr(109), 1) Then
LastCount = InStr(SecondCount$, Chr(0))
SecondCount$ = Mid(SecondCount$, 1, LastCount - 1)
Lst.AddItem SecondCount$
End If
SpaceByte$ = Mid(SpaceByte$, CountDownAgain + 4)
GoTo TAgain
End If
Next CountDown
Close #FreeF
End Sub
Private Sub Command1_Click()
FormFinder App.Path & "\project1.exe", List1
End Sub
Valeu Caju, mas esses códigos não em atende, preciso desenvolver um modulo de segurança, onde cada usuario terá permissão a determinadas telas, então iria implementar isso, a cada login eu iria habilitar ou nao o formulário
T+
Abraços
Fábio
T+
Abraços
Fábio
a solução então seria:
deu pra entender?
era isso mesmo?
User1:
Form1
Form2
Form3
User2:
Form2
então vc fazer o login do usuário:
User2 então vc no formulário central(MDI), por exemplo onde vai ter os botoes, menus ae vc coloca:
if login = user2 then
mnCadastro.enabled = false ' o que seria o FORM1
mnFornecedores.enabled = false ' o que seria o FORM3
mnRelatorios.enabled = true ' o que seria o FORM2
endif
if login = user1 then
mnCadastro.enabled = true ' o que seria o FORM1
mnFornecedores.enabled = true ' o que seria o FORM3
mnRelatorios.enabled = true ' o que seria o FORM2
endif
deu pra entender?
era isso mesmo?
Tenho algo parecido
Essa rotina verifica se o usuario pode usar um modulo ou nao
Function ACESSO_PROGRAMA(programa as string, usuario As String, senha as string) As Integer
Dim ob_acesso As New Obj_acesso_programa
ob_acesso.ABRE
ACESSO_PROGRAMA = 1
ob_acesso.usuario = usuario
ob_acesso.senha = senha
ob_acesso.programa = programa
ob_acesso.LE "*"
If ob_acesso.eof Then
resposta = MsgBox(usuario & ", voce esta sem acesso para este modulo.", 48, "Sistema de Segurança")
ACESSO_PROGRAMA = 0
End If
ob_acesso.FECHA
End Function
Esta rotina é so para ter uma ideia, pois usa rotinas de leitura que nao estao ai. Primeiro monta a chave do arquivo que informa se o usuario tem acesso ou nao. O arquivo é composto de nome_usuario, senha e nome do form ou programa. Se ele não estiver cadastrado ele não pode usar o modulo. Assim voce so precisa cadastrar o que ele vai usar.
Depois basta ler o arquivo e verificar se o registro existe. No menu principal voce faz a chamada da rotina passando o nome do programa que sera executado.
Assim
If ACESSO_PROGRAMA ("CAD_BAIRRO","nome_usuario", "senha") <> 0 Then
cd_bairro.Show
End If
Na propria rotina ele da a mensagem dizendo que não é permitido o acesso.
Ajuda ??
Essa rotina verifica se o usuario pode usar um modulo ou nao
Function ACESSO_PROGRAMA(programa as string, usuario As String, senha as string) As Integer
Dim ob_acesso As New Obj_acesso_programa
ob_acesso.ABRE
ACESSO_PROGRAMA = 1
ob_acesso.usuario = usuario
ob_acesso.senha = senha
ob_acesso.programa = programa
ob_acesso.LE "*"
If ob_acesso.eof Then
resposta = MsgBox(usuario & ", voce esta sem acesso para este modulo.", 48, "Sistema de Segurança")
ACESSO_PROGRAMA = 0
End If
ob_acesso.FECHA
End Function
Esta rotina é so para ter uma ideia, pois usa rotinas de leitura que nao estao ai. Primeiro monta a chave do arquivo que informa se o usuario tem acesso ou nao. O arquivo é composto de nome_usuario, senha e nome do form ou programa. Se ele não estiver cadastrado ele não pode usar o modulo. Assim voce so precisa cadastrar o que ele vai usar.
Depois basta ler o arquivo e verificar se o registro existe. No menu principal voce faz a chamada da rotina passando o nome do programa que sera executado.
Assim
If ACESSO_PROGRAMA ("CAD_BAIRRO","nome_usuario", "senha") <> 0 Then
cd_bairro.Show
End If
Na propria rotina ele da a mensagem dizendo que não é permitido o acesso.
Ajuda ??
Valeu pelas dicas, tive uma outra idéia q atendeu minhas necessidades.
T+
Fábio
T+
Fábio
Tópico encerrado , respostas não são mais permitidas