![]() |
¿Pero que significa este error?
Hola a Todos!!!
He hecho un procedimiento que realiza la copia de una base de datos a un archivo .txt la cabecera es la siguiente: procedure TFmGanancia.GuardarDatos(Path: String; fexa: String); siendo el Path la ruta del directorio donde quiero guardar el archivo .txt, y fexa, la fecha del sistema. El caso es que cuando llamo al procedimiento: TFmGanancia.GuardarDatos(Ruta, fexa); Meda este erro: [Error] Formulario.pas(312): This form of method call only allowed for class methods Podriais ayudarme!!!!:( Gracias! |
Hola.
Estás utilizando un método, directamente a partir de la clase (TFmGanancia) y no de una instancia de la clase. Es decir, si tienes un formulario FmGanancia1 de la clase TFmGanancia, podrás ejecutar ese método sin problemas sobre la instancia : FmGanancia1.GuardarDatos(Path: String; fexa: String); Pero no : TFmGanancia.GuardarDatos(Path: String; fexa: String); Utilizar un método directamente a partir de la clase, solo lo puedes hacer con los constructores (para crear una nueva instancia de la clase, normalmente el Create), o con métodos de clase. Que se han definido como : class procedure TFmGanancia.GuardarDatos(Path: String; fexa: String); Estos métodos de clase se pueden usar directamente a partir de la clase, sin necesidad de ejecutarse sobre una instancia de la misma. NOTA : Al no ejecutarse sobre ninguna instancia de la clase no podrás utilizar la pseudo-variable Self. Ha quedado un poco liado, pero espero que se pueda entender. Saludos. |
Hola
Me parece ver que tu error está en la llamada de la función. Cambia : TFmGanancia.GuardarDatos(Ruta, fexa); por FmGanancia.GuardarDatos(Ruta, fexa); sin la T del principio que hace referencia a la clase. Saludos! |
Estas queriendo llamar a un método directamente desde la clase, y eso está solo permitido para los métodos de clase.
Si estas ejecutándolo dentro de un método de este TFmGanancia, solo lo tenés que llamar así: Código:
GuardarDatos(Ruta, fexa); Código:
FmGanancia.GuardarDatos(Ruta, fexa); |
Me Gusta más tu Respuesta guillotmarc :p
saludos!!!! |
Gracias a todos!!
La verdad es que estoy comenzando a programar en Delphi y para nada controlo las Clases ... y demás! :( Gracias otra vez!! |
La franja horaria es GMT +2. Ahora son las 10:26:17. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi