Visual Basic - Crear rutina

Life is soft - evento anual de software empresarial
 
Vista:
Imágen de perfil de Cris
Val: 405
Bronce
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Crear rutina

Publicado por Cris (27 intervenciones) el 11/07/2019 22:23:41
Buenas noches,

Tengo un proyecto de muchos formularios y en todos se repiten una serie de coordenadas.

He intentado crear un módulo tanto bas como cls para crear una rutina, pero no hay forma de que funcione.
Si es posible hacer lo que busco, os agradecería me indicaseis como hacerlo.

Gracias y un saludo.

Las coordenadas que repito en todos los Form son de este estilo:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Bien.Left=333
Bien.Top=3333
Mal.Top=4444
Mal.Left=4444
Bien.Visible=True
Mal.Visible=True
-------------------
Dim i as Integer
'Controles de una tacada
For i = 0 To Me.Controls.Count - 1
If TypeOf Me.Controls(i) Is Image Then
Me.Controls(i).Visible = True
End If
Next i
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 109
Ha aumentado 1 puesto en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Crear rutina

Publicado por Yamil (226 intervenciones) el 11/07/2019 22:32:43
Herencia. Crea el formulario base con las coordenadas y el codigo que necesitas y luego derivas los otros formularios de ese base.
Normalmente tienes

Public Class Form2: Inherits System.Windows.Forms.Form

Lo cambias a

Public Class Form2: Inherits TuAplicacion.Form1
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Cris
Val: 405
Bronce
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Crear rutina

Publicado por Cris (27 intervenciones) el 11/07/2019 22:42:13
Hola,
Antes de nada, gracias.

Lo que me indicas, es NET?
El proyecto que estoy haciendo, es Visual Basic 6.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Andres Leonardo
Val: 3.117
Oro
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Crear rutina

Publicado por Andres Leonardo (1798 intervenciones) el 12/07/2019 01:35:40
Pero que quieres que haga la rutina?? que ponga una imagen en todos los formularios??

nos dices que queires algo pero que es ??? modificar un propuedad cambiar una etiqueta mostrar un grafico _??

Saludos
Andres
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Cris
Val: 405
Bronce
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Crear rutina

Publicado por Cris (27 intervenciones) el 12/07/2019 04:11:30
Hola,

Según el ejemplo que puse, busco que todas las Label llamadas Bien y Mal tengo un Top y un Left concreto y sean visibles, en todos los formularios y que todos los controles Image, sean visibles también en todos los formularios. Todo esto, al llamar a un módulo o función o lo que sea como se haga, que no sé hacerlo.

En todos los formularios existen los mismos controles.

Gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Cris
Val: 405
Bronce
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Crear rutina

Publicado por Cris (27 intervenciones) el 12/07/2019 15:35:49
Hice un módulo que parece funcionar aunque supongo que es mejorable.
Subo el ejemplo por si le sirve a alguien.

Gracias y un saludo.

Módulo.bas

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
Public Sub SetVariasCoordenadas(pForm As Form, pVarios As Long)
Dim Ctl As Control
 
    For Each Ctl In pForm.Controls
        If TypeOf Ctl Is Label Then
            Ctl.BackColor = &HC0FFFF
            Ctl.Left = 0
        End If
 
 
 
        If TypeOf Ctl Is Label Then
        If Ctl.Name = "Label1" Then
            Ctl.Top = 0
        End If
        End If
 
 
 
        If TypeOf Ctl Is Label Then
        If Ctl.Name = "Label2" Then
            Ctl.Top = 1000
        End If
        End If
 
 
        If TypeOf Ctl Is Image Then
           Ctl.Visible = True
        End If
 
 
    Next
End Sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Andres Leonardo
Val: 3.117
Oro
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Crear rutina

Publicado por Andres Leonardo (1798 intervenciones) el 12/07/2019 16:49:20
Creo que estas haciendo 1 Cosa mal ....

deberias utilizar lo llamado "Jerarquia "


Aplicacion - FORMS -- Controles del FORM

APP - Form 1 - LabelBIEN
APP - Form 1 - Labelmal
APP - Form 1 - Control1
APP - Form 1 - Control2
APP - Form 2 - LabelBIEN
APP - Form 2 - Labelmal
APP - Form 2 - Control1
APP - Form 2 - Control2


Tendiendo esto claro entonces haces un for que recorra los controles (algo que hiciste PERFECTO)

pero solo llamas los que son form

y luego ordenas los que son del form 1 por 1 y sigues

Algo asi ...

si no solo los invocas

depende como queires que la aplicacion se comporte, por que puedes hacer que cada vez que el form se cargue se forme etc etc etc... te paso un ejemplo





Captura
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Andres Leonardo
Val: 3.117
Oro
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Crear rutina

Publicado por Andres Leonardo (1798 intervenciones) el 12/07/2019 17:09:10
Me olvide decir que el for recorre los formularios abiertos cuando recien inicias el bucle no te valdria... si no estan en memoria tocara llamar al procedimiento implicitamente

Espero te ayude

Saludos
Andres
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Cris
Val: 405
Bronce
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Crear rutina

Publicado por Cris (27 intervenciones) el 12/07/2019 18:59:34
Muchas gracias por la ayuda. Me imaginaba que el código era mejorable porque mi nivel en Visual es bajo, lo justo para salir del paso.

He visto tu ejemplo y ya lo he aplicado al trabajo real que estoy haciendo, y va perfecto.

Gracias de nuevo y un saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Andres Leonardo
Val: 3.117
Oro
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Crear rutina

Publicado por Andres Leonardo (1798 intervenciones) el 12/07/2019 19:12:48
Considero que siempre es mejor ponerlo en una rutina al incicio del form asi siempre que lo cargues te funciona
Me alegra que te haya servido
Saludos desde la mitad del mundo

Andres
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar