Página 1 de 1
Significado del uso de los 2 puntos.
Publicado: Sab Oct 10, 2015 10:25 am
por jvtecheto
El uso de los :: , supongo que estará documentado.... pero lo que yo entiendo es que al usar por ejemplo en un evento
::Close() // Nos estamos refiriendo al formulario y no a otro control
y cuando usamos ::oButton1:cText, sino lo hiciéramos asi seria precio hacer TForm1:oButton1:cText
¿Es correcto ?, por favor explíquenme un poco el uso de los 2 puntos. (::)
Saludos.
Re: Significado del uso de los 2 puntos.
Publicado: Sab Oct 10, 2015 2:55 pm
por ddupre
Colega,
Hasta donde yo se, (que no es mucho), tu explicación es correcta.
Capaz que hay algún otro uso que desconozco.
Un saludo
Daniel
Re: Significado del uso de los 2 puntos.
Publicado: Sab Oct 10, 2015 8:46 pm
por jfgimenez
Los dos puntos (:) son el operador de envio en POO de xBase. Es decir, el operador con el que se accede a cualquier miembro de un objetos (propiedades, métodos, eventos,...).
Por otro lado tenemos la palabra reservada <Self>, que identifica al objeto actual. Por supuesto, Self sólo se puede usar desde algún método de la clase correspondiente a este objeto. Como en los formularios normales de Xailer los métodos son miembros de la clase formulario actual (TForm*), entonces Self hace referencia a la instancia actual de este mismo formulario. Es decir, Self:cText sería el texto del formulario, Self:oButton1 sería el componente oButton1 del formulario, etc.
Y por último, los dos puntos dobles (::) son un sinónimo de Self:, o lo que es lo mismo, se utilizan para referenciar a cualquier miembro del formulario. Los ejemplos anteriores serían ::cText y ::oButton1
Para aquellos que no estén muy puestos en POO, debo aclarar que no se debe confundir una clase con un objeto. En los formularios normales, TForm* sería la clase, que se define entre los comandos CLASS y ENDCLASS, y se compone de componentes, métodos, propiedades, eventos, etc.. Pero una clase es solamente eso, una clase.
Para usar una clase hay que "instanciar" un objeto. Instanciar un objeto es una operación que consiste en crear un elemento (objeto) de un tipo determinado (la clase). Pero puede haber muchas instancias (objetos) de una misma clase en un momento determinado. La forma habitual de crear una instancia de una clase (el objeto) es llamando a su "función de clase", que no es mas que el nombre de la clase con sus paréntesis finales. En muchos casos, también es necesario llamar a un "constructor" de esa clase, p.ej. New(). Así, crear una instancia de un formulario sería algo así como TForm1():New() y esto nos devolvería el objeto correspondiente.