ASIGNACIÓN DE OBJETOS (OBJETO DENTRO DE OBJETO)
Publicado por Javier (3 intervenciones) el 08/09/2018 01:48:06
Saludos:
Esta es una consulta, que solo explicándola previamente me dejare entender:
Tengo un proyecto con tres formularios:
El formulario PRINCIPAL.frm, tiene dos Command Buttom:
Command1 y Command2
Al presionar (cualquiera) llama a un procedimiento llamado pgCambiaLabel () alojado en modulo1.bas, al cual se envían dos parámetros:
pgCambiaLabel(FORMULARIO1,1) si se pulsa el botón uno y
pgCambiaLabel(FORMULARIO2,2) si se pulsa el botón dos
Y luego muestra el formulario correspondiente con el label.caption y color asignado en el procedimiento.
El resultado es correcto y es el esperado.
La consulta es:
Como puedo utilizar clases y/u objetos para optimizar esto?
Porque no se puede ver el control label en el procedimiento (poniendo una interrupción al programa y al presionar punto después del nombre del objeto formulario enviado)
Como puede ser que, si no lo reconoce, cambie efectivamente el valor del label.caption en ambos formularios y los muestre?
Si me pueden ayudar a resolver esto, les quedare muy agradecido.
Código en PRINCIPAL.frm
Codigo en module1.bas
Esta es una consulta, que solo explicándola previamente me dejare entender:
Tengo un proyecto con tres formularios:
• FORMULARIO1.frm
• FORMULARIO2.frm
• PRINCIPAL.frm
Y un módulo:• Modulo1.bas
Los formularios FORMULARIO1 y FORMULARIO2, tienen cada uno un label llamado LblTitulo (en ambos con el mismo nombre) El formulario PRINCIPAL.frm, tiene dos Command Buttom:
Command1 y Command2
Al presionar (cualquiera) llama a un procedimiento llamado pgCambiaLabel () alojado en modulo1.bas, al cual se envían dos parámetros:
pgCambiaLabel(FORMULARIO1,1) si se pulsa el botón uno y
pgCambiaLabel(FORMULARIO2,2) si se pulsa el botón dos
Y luego muestra el formulario correspondiente con el label.caption y color asignado en el procedimiento.
El resultado es correcto y es el esperado.
La consulta es:
Como puedo utilizar clases y/u objetos para optimizar esto?
Porque no se puede ver el control label en el procedimiento (poniendo una interrupción al programa y al presionar punto después del nombre del objeto formulario enviado)
Como puede ser que, si no lo reconoce, cambie efectivamente el valor del label.caption en ambos formularios y los muestre?
Si me pueden ayudar a resolver esto, les quedare muy agradecido.
Código en PRINCIPAL.frm
1
2
3
4
5
6
7
8
9
10
11
Option Explicit
Private Sub Command1_Click()
Call pgCambiaLabel(FORMULARIO1, 1)
FORMULARIO1.Show
End Sub
Private Sub Command2_Click()
Call pgCambiaLabel(FORMULARIO2, 2)
FORMULARIO2.Show
End Sub
Codigo en module1.bas
1
2
3
4
5
6
7
8
9
10
11
Option Explicit
Public Sub pgCambiaLabel(vFormu As VB.Form, ByVal icolor As Integer)
If icolor = 1 Then '' poner punto de interrupcion y verificar con intellisense "vFormu."
vFormu.LblTitulo.ForeColor = vbRed
vFormu.LblTitulo.Caption = "EL COLOR 1: ROJO"
Else
vFormu.LblTitulo.ForeColor = vbGreen
vFormu.LblTitulo.Caption = "OTRO COLOR: VERDE"
End If
End Sub
- APREN.rar(2,4 KB)
Valora esta pregunta
0