USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  Erro de Tipo
Luciane
RIO DE JANEIRO
RJ - BRASIL
Postada em 11/10/2006 15:15 hs            
Colocar esse código no botão de Limpar é mole, funciona numa boa.
Dim i as integer
If mensagem.limparTela = "Sim" Then 'Mensagem é uma outra classe que criei e que funciona rss
  For i = 1 To NomeForm.Controls.Count - 1
    If TypeOf NomeForm.Controls(i) Is TextBox Then
      NomeForm.Controls(i).Text = ""
    End If
  Next i
 
O problema é que tenho uns 300 botões de limpar, então eu queria fazer um class module, olhem o que fiz:
 
Limpeza.cls
Public Sub limparText(NomeForm As Form)
dim i as integer
  For i = 1 To NomeForm.Controls.Count - 1
    If TypeOf NomeForm.Controls(i) Is TextBox Then
      NomeForm.Controls(i).Text = ""
    End If
  Next i
 
Lá no botão LIMPAR, digito:
Limpeza.limparTela(nomeForm) 'Onde nomeForm é o nome do formulário a ter seus textbox limpados.
 
Mas sem dá erro de Type Mismatch nessa linha.
 
Se alguém puder me ajudar, mesmo que moralmente, eu agradeço.

"A formiga só trabalha porque não sabe cantar".
     
Sidnei X-Crow
Pontos: 2843
VITÓRIA
ES - BRASIL
Postada em 11/10/2006 21:26 hs         
Hummm... eu acredito que seja um problema de Casting de tipos. Vou explicar o VB não é orientado a objeto não ao ponto de você fazer isso:

Public Sub limparText(NomeForm As Form)

tenta mudar para:

Public Sub limparText(NomeForm As Object)

exlicando o porque dos porquês:
Acredito que ele não consiga converter um objeto form 'puro' para um form 'exertado' de controles.

Espero ter ajudado .
Abraços, Sidnei
     
ghost_jlp
Pontos: 2843 Pontos: 2843 Pontos: 2843 Pontos: 2843
SÃO PAULO
SP - BRASIL
Postada em 13/10/2006 13:57 hs            
é só tirar os parênteses q funciona...
ou se quiser com parênteses use call:
 
Call Limpeza.limparText(Me)
 
at+
 
 
     
Luciane
RIO DE JANEIRO
RJ - BRASIL
Postada em 13/10/2006 19:28 hs            
Eu só vou poder testar na segunda-feira, o projeto tá no pc do estágio. Posto aqui os resultados. Desde já, muitíssimo obrigada :)

"A formiga só trabalha porque não sabe cantar".
     
Korn
Pontos: 2843
SAO PAULO
SP - BRASIL
Postada em 14/10/2006 16:39 hs            
coloque limpa me, ou limpa formseleiconado, achei na net ve se serve
 
Sub Limpa(fFormulario As Form)
    'funcao para limpar o for
    Dim lControles As Long
    With fFormulario
    For lControles = 0 To .Controls.Count - 1
        If TypeOf .Controls(lControles) Is TextBox Then 'se for txtbox, limpa
            .Controls(lControles).Text = ""
        ElseIf TypeOf .Controls(lControles) Is ComboBox Then 'sefor combobox, verifica se ele acita limpar
            If .Controls(lControles).Style = 2 Then 'se naum aceita limpar, vai para o primeiro da lista
                .Controls(lControles).AddItem ""
                .Controls(lControles).ListIndex = 0
                .Controls(lControles).RemoveItem 0
            Else 'se aceita, limpa
                .Controls(lControles).Text = ""
            End If
        ElseIf TypeOf .Controls(lControles) Is MaskEdBox Then 'se for mask, limpa
            .Controls(lControles).Text = ""
        ElseIf TypeOf .Controls(lControles) Is CheckBox Then 'se for check, deixa desmarcado
            .Controls(lControles).Value = vbUnchecked
        End If
    Next lControles
    End With
End Sub

Jesus Cristo é O Senhor!!!
     
Luciane
RIO DE JANEIRO
RJ - BRASIL
Postada em 16/10/2006 10:41 hs            
A linha: call limpeza.limparText(me) funcionou!
Acrescentei esses outros códigos pra aprimorar a classe.
 
Obrigada, meninos :)

"A formiga só trabalha porque não sabe cantar".
     
Página(s): 1/1    


Seu Nome:

Seu eMail:

ALTERAR PARA MODO HTML
Mensagem:

[:)] = 
[:P] = 
[:(] = 
[;)] = 

HTML DESLIGADO

     
 VOLTAR

  



CyberWEB Network Ltda.    © Copyright 2000-2024   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página