Shell   25-06-2023, 10:26
#1
Buenas!.

Pregunta:

Si tenemos a Panel que imita al resto de sus hermanos, ¿ para qué necesitamos a los otros ?.
Estaba probando HPanel y luego es que Panel con su propiedad Arrangement (disposición) a filas, queda exactamente igual.
Y así, uno por uno.

Más que seleccionar uno concreto, es saber usar Panel e imitar correctamente el resto de sus hermanos.
Yyyy...es que no siempre todos tienen las mismas propiedades.

Por ejemplo. No todos tienen bordes.

Los bordes nos puede valer para ver como queda este control dentro de otros.
Una de las técnicas que pareces que se usa en el editor es. Usar primero un panel y luego cambiarlo a otro tipo de organizador

No es raro de ver en las propiedades de los diseños del editor, que siendo un tipo de organizador ( por el nombre que tenía ),
se ha cambiado luego a otro tipo. Siendo un HPanel luego se ha cambiado a un HBox.

[Imagen: P7HSWUH.png]

Saludos
Última modificación: 25-06-2023, 11:27 por Shell.

"El conocimiento es la mejor inversión que se puede hacer" - Abraham Lincoln
Shordi   25-06-2023, 17:50
#2
Panel es el padre de todos... y tiene el riesgo de convertirse en Saturno cuando empiezas a probar cosas. Sus hijos, desde el hBox al spring, son creados sólo para ahorrar código en situaciones comunes o para aclarar código con la notación húngara. Si ves que hbox1.propiedad ya no tienes que preguntar por el arrangement del mismo.... supongo.

Saludos

No podemos regresar
Shell   26-06-2023, 18:56
#3
(25-06-2023, 17:50)Shordi escribió: Sus hijos, desde el hBox al spring, son creados sólo para ahorrar código en situaciones comunes o para aclarar código con la notación húngara.

Claro, Panel debe contener mucho más código que sus hijos y engordaría más la aplicación.

Saludos

"El conocimiento es la mejor inversión que se puede hacer" - Abraham Lincoln
Shell   26-06-2023, 22:11
#4
Por cierto lo que tienen en común es que todos heredan de la clase Container  y este a su vez de la clase Control.
Tanto Panel como HPanel, VBox, etc, etc.

No dice que heredan de Panel, si de Container. En cambio Container no tiene propiedad Arrangement pero si evento.

Código:
Public Sub Form_Open()

  Dim hPanel1 As New HPanel(Me)

  Print Object.Is(hPanel1, "Panel")
  Print Object.Is(hPanel1, "Container")

End

Salida
Cita: 
False
True

Object.Is Returns if the specified object is an instance of the specified class, or an inherited one.

Saludos

"El conocimiento es la mejor inversión que se puede hacer" - Abraham Lincoln
  
Usuarios navegando en este tema: 2 invitado(s)
Powered By MyBB, © 2002-2024 MyBB Group.
Made with by Curves UI.