![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|
|
#1
|
|||
|
|||
|
¿Para qué lo quiero hacer?: para hacer una ¿"chapuza"?.
Pretendo poder llamar a los métodos de clase desde diveros puntos de la apliación sin necesidad de instanciar la clase, pero resulta que en la propia clase es necesario el método que se define como método de clase. Lo adecuado, creo, sería llevar la función que defino como método de clase a otra unit, para poder compartila. Pero quería probar este enfoque. Saludos. Juan P.
__________________
Sonríe. Mañana puede ser peor. |
|
#2
|
||||
|
||||
|
Crea un método A (de clase) y otro B; El método de clase A lo único que debe tener dentro es la llamada a B; Para llamarlo desde Dentro puedes utilizar B, para llamarlo desde fuera puedes utilizar A; De todas maneras no acabo de verlo claro... tal vez estoy "espesito" hoy
.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi ![]() P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
|
#3
|
||||
|
||||
|
Cita:
![]() Cita:
Cita:
Cita:
Saludos.
__________________
Guía de Estilo |
|
#4
|
|||
|
|||
|
Cita:
Cita:
Cita:
Así es que si no me funciona lo dejo como está y andando. Saludos.
__________________
Sonríe. Mañana puede ser peor. |
|
#5
|
||||
|
||||
|
No acabo de entender qué significa ésta frase:
"...Lo prohibitivo es llamar a métodos no de clase desde un método de clase" Se puede llamar desde un método definido como class (método de clase) a otros metodos de la misma clase (public o published -incluso privates y protected, aunque no sea recoimendable-) que no estén definidos como métodos de clase (con class); Eso no tiene ningun problema; Revisa el siguiente código: NOTA: Corresponde a un formulario que utiliza un método de clase para crear e inicializarse.
Para llamarlo utilizarías:
...tal vez no he entendido bien la cuestión, si es así pido discupas; P.D: A ésto me refería con crear un método de clase que llama a otros métodos no de clase, de forma que desde fuera se puede llamar a Crear, y desde dentro se puede llamar a Inicializar y LeerDisco.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi ![]() P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
|
#6
|
|||
|
|||
|
Cita:
El ámbito (private, protected, public ... etc), tal como dices, no importa en este asunto, es algo colateral. A todo esto, los constructores son por naturaleza métodos de clase, la misma forma en que creamos objetos así lo indica: MiObjeto := TMiObjeto.Create; // se comporta como un método de clase por lo que dentro de un método de clase se puede llamar perfectamente a Create o a cualquier otro constructor. Lo que sería ilegal es incluir dentro de ese método de clase una llamada directa a un método no de clase, siguiendo tu ejemplo:
La inclusión de una llamada directa a un método no de clase aquí genera el siguiente error en Delphi: "This form of method call only allowed for class methods". Espero haberme explicado ahora mejor, Saludos
__________________
Guía de Estilo |
|
#7
|
|||
|
|||
|
Parte de mi pregunta era si dentro de la propia clase se puede llamar a un método de clase de ella.
Y luego desde otro punto de la apliación (otra unit):
__________________
Sonríe. Mañana puede ser peor. |
|
#8
|
||||
|
||||
|
Cita:
Métodos regulares pueden llamar directamente a métodos de clase. Métodos de clase pueden llamar directamente a métodos de clase. Métodos de clase no pueden llamar directamente a métodos regulares. Lo que haces en Form2.Crear es correcto ya que estás llamando desde un método de clase, métodos regulares de una instancia de la clase. Lo incorrecto sería que Form2.Crear llamara directamente a TForm2.Inicializar sin crear una instancia de por medio. // Saludos |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
|