Shell   10-04-2025, 11:03
#1
Buenas!

En el lenguaje Gambas tenemos propiedades que son alias o sinónimos de otras.
Por ejemplo: H, sinónima de Height

Pero, ¿ existe una forma de saber si algo concreto es un alias de otro ?.
En mi caso que me gusta la clase Paint con sus ventajas y desventajas.

Existen tres formas, de dibujar un círculo, con los métodos estáticos.

Paint.Arc
Paint.Ellipse

Y la actual.

Paint.Circle Desde la Gambas 3.20 existe este método. Si, así de sencillo es su nombre. Smile
Lógicamente cada uno se usa mejor para una cosa que para otra.

Aunque Paint.Arc puede dibujar un circulo completo y era lo que usaba para esto, por su nombre 
deducimos que puede estar más destinada a dibuja arcos. En el caso de este método, las opciones por defecto
son x, y, y su radio, luego sus parámetros opcionales. Como son el angulo del círculo, su longitud y si
es una porción.

Paint.Ellipse aunque puede dibujar círculos es más destinado a formas ovaladas.

Y luego Paint.Circle que hace lo que dice.

Pero mi pregunta es esa:
Imaginar por un momento que Paint.Circle es un método alias de Paint.Arc.

¿ Existe una forma de saber si es un método alias ?.

Recordemos que una función, tiene sus parámetros posicionales y los opcionales.
Entonces los posicionales de Paint.Circle serán los mismos de Paint.Arc.

¿ Cómo podemos saber que un método  llama al otro ?.


Mediante la clase Class puedo saber si algo es un método, una propiedad, pero
no puedo saber algo como lo de arriba ó no no sé como hacerlo.

Saludos

"El conocimiento es la mejor inversión que se puede hacer" - Abraham Lincoln
Shordi   10-04-2025, 12:23
#2
La gracia de los objetos es el concepto de caja negra. O sea que no se sabe. Si tienes el fuente, es otra cosa, claro.

No podemos regresar
Shell   10-04-2025, 15:55
#3
(10-04-2025, 12:23)Shordi escribió: La gracia de los objetos es el concepto de caja negra. O sea que no se sabe. Si tienes el fuente, es otra cosa, claro.

No veo otra forma.
Es como las propiedades sinónimas.

Declaración de la clase cosa.

Código:
Property edad, age As Integer
Private hedad As Integer

Private Function edad_Read() As Integer

  Return hedad

End

Private Sub edad_Write(Value As Integer)

  hedad = Value

End
Formulario o Main

Código:
Public Sub Form_Open()

  Dim cosa As New Cosa

  cosa.age = 12

  Print cosa.edad

End

Salida: 12

Declarando propiedades sinónimas parece que no se puede usar la forma abreviada de propiedades con USE.

Lo más lioso es que cuando vas a asignar un valor  a esas propiedades de un objeto de ese tipo de clase, ves las dos propiedades 
y si hay una buena cantidad debe ser un lio padre. En esto se basará la propiedad H y Height y similares.

Métodos va ser que no.

Saludos

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