FORMULARIOS

USUARIO.EXCLUIDOS 04/01/2005 10:43:08
#58443
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+
CAJU 04/01/2005 10:49:58
#58448
para listar os não carregados não sei (posso procurar, acho que não dá...)

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
CAJU 04/01/2005 11:04:25
#58454
FAB_UCH,

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
USUARIO.EXCLUIDOS 04/01/2005 12:37:13
#58486
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
CAJU 04/01/2005 14:32:06
#58523
a solução então seria:


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?
CLAUDIOLUCROCHA 04/01/2005 15:29:24
#58541
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 ??
USUARIO.EXCLUIDOS 05/01/2005 09:49:08
#58705
Valeu pelas dicas, tive uma outra idéia q atendeu minhas necessidades.

T+
Fábio
Tópico encerrado , respostas não são mais permitidas