CHAMANDO FUNCAO

IRENKO 08/08/2007 14:04:36
#230018
Em um módulo coloquei a sub abaixo: no Load do Form FrmItems faço a chamada:

TravaControles1 Me => aqui esta dando erro (O argumento não é opcional)


A variavel (TipoDoc) esta com (Normal) para identificar o Form FrmItems

Qual a maneira correta para testar essa Sub sendo que a mesma trata dois Forms?

Public Sub TravaControles1(Frm As FrmItems, FrmX As FrmEquipamentos)
If TipoDoc = "Normal" Then
Dim Ctrl As Control
For Each Ctrl In Frm.Controls
'trava TextBox do FrameCabecalho
If TypeName(Ctrl) = "TextBox" Then
If Ctrl.Tag = "TX" Then
Ctrl.Enabled = False
ElseIf Ctrl.Tag = "1X" Then
Ctrl.Enabled = False
ElseIf Ctrl.Tag = "2X" Then
Ctrl.Enabled = False

'trava TextBox do FrameItems
ElseIf Ctrl.Tag = "TY" Then
Ctrl.Enabled = False
ElseIf Ctrl.Tag = "3X" Then
Ctrl.Enabled = False
End If

'trava ComboBox do FrameCabecalho
ElseIf TypeOf Ctrl Is ComboBox Then
If Ctrl.Tag = "TX" Then
Ctrl.Enabled = False

'trava ComboBox do FrameItems
ElseIf Ctrl.Tag = "CY" Then
Ctrl.Enabled = False
End If
End If

If TypeName(Ctrl) = "Label" Then
If Ctrl.Tag = "X" Then
Ctrl.Enabled = False
End If
End If

If TypeName(Ctrl) = "CommandButton" Then
If Ctrl.Tag = "Cmd1" Then
Ctrl.Enabled = False

ElseIf Ctrl.Tag = "Cmd2" Then
Ctrl.Enabled = False

ElseIf Ctrl.Tag = "Cmd3" Then
Ctrl.Enabled = False
End If
End If
Next Ctrl

ElseIf TipoDoc = "Atuadores" Then

Dim Ctrl As Control
For Each Ctrl In FrmX.Controls
'trava TextBox do FrameCabecalho
If TypeName(Ctrl) = "TextBox" Then
If Ctrl.Tag = "TX" Then
Ctrl.Enabled = False
ElseIf Ctrl.Tag = "1X" Then
Ctrl.Enabled = False
ElseIf Ctrl.Tag = "2X" Then
Ctrl.Enabled = False

'trava TextBox do FrameItems
ElseIf Ctrl.Tag = "Z" Then
Ctrl.Enabled = False
End If

'trava ComboBox do FrameCabecalho
ElseIf TypeOf Ctrl Is ComboBox Then
If Ctrl.Tag = "TX" Then
Ctrl.Enabled = False

'trava ComboBox do FrameItems
ElseIf Ctrl.Tag = "S" Then
Ctrl.Enabled = False
End If
End If

If TypeName(Ctrl) = "Label" Then
If Ctrl.Tag = "LX" Then
Ctrl.Enabled = False
End If
End If

If TypeName(Ctrl) = "CommandButton" Then
If Ctrl.Tag = "Cmd1" Then
Ctrl.Enabled = False

ElseIf Ctrl.Tag = "Cmd2" Then
Ctrl.Enabled = False

ElseIf Ctrl.Tag = "Cmd3" Then
Ctrl.Enabled = False
End If
End If
Next Ctrl
End If
End Sub

VB6MASTER 08/08/2007 15:42:26
#230052
Citação:

TravaControles1 Me => aqui esta dando erro (O argumento não é opcional)


Considerando que a função está num módulo, no lugar de ME, coloque o nome do form. Além disso, vc precisa passar dois (2) parâmentros para a sua função -> Frm e FrmX:
Public Sub TravaControles1(Frm As FrmItems, FrmX As FrmEquipamentos)
TravaControles1 Me => aqui esta dando erro (O argumento não é opcional). Aqui vc está passando apenas um parâmetro.
RAFAEL.GRILLO 08/08/2007 15:45:10
#230054
O erro "O argumento não é opcional" está ocorrendo pq a sua sub espera 2 argumentos e vc ta passando só 1 que é o "Me".
Ou vc passa o segundo argumento que é o "FrmEquipamentos" ou coloca esse argumento como opcional na sua sub....
Public Sub TravaControles1(Frm As FrmItems, OPTIONAL FrmX As FrmEquipamentos)
USUARIO.EXCLUIDOS 09/08/2007 21:10:22
#230319
Resposta escolhida

Não seja tão especifico, quanto mais abstrato vc for mais aproveitamento do codigo vc terá:

Faça assim:
Public Sub TravaControles1(Frm As Form, OPTIONAL FrmX As Form)

Tópico encerrado , respostas não são mais permitidas