Prezados Senhores,
Tenho uma Classe TECF que gostaria de ser a classe "Mestre" de um grupo
de Classes Filhas ECF_xxxx (ECF_MP20FI2, ECF_MP2100TH, etc) já
personalizadas da Classe PAI ECF_PADRAO.
Estou tentando utilizar a Classe TECF para instanciar as Classes ECF_xxxx.
Porem da erro na execução dizendo "Invalid self" na linha do "Return
oObjeto" do Method new() da Classe TECF.
O que estou fazendo de errado ???
Obrigado,
Atenciosamente,
Marcelo Coelho Silva
Brasil.
PS: ABAIXO SEGUE AS ROTINAS (PRG) UTILIZADAS.
ROTINA DE CHAMADA:
/*
* Projeto: MH_ECF
* Arquivo: Teste_ecf.prg
* Descrição:
* Autor:
* Data: 10-29-2011
*/
#include "Xailer.ch"
CLASS TForm1 FROM TForm
COMPONENT oLabel1
COMPONENT oButton1
METHOD CreateForm()
METHOD FormInitialize( oSender )
ENDCLASS
#include "Teste_ecf.xfm"
METHOD FormInitialize( oSender ) CLASS TForm1
Local oECF
oECF := TECF():New("MP20FI2")
::oLabel1:cText := oECF:Coo
RETURN Nil
//---------------------------------------------------------- --------------------
CLASSE TECF :
/*
* Projeto: MH_ECF
* Arquivo: TECF.prg
* Descrição: Classe Principal do Projeto MH_ECF
* Autor: Marcelo Coelho Silva
* Data: 11-03-2011
*/
#include "Xailer.ch"
CLASS TECF
Method new(cModelo,cCOM,nVelocidade) CONSTRUCTOR
ENDCLASS
Method new( cModelo, cCom, nVelocidade ) Class TECF
Local cComPort
Static oObjeto
If cCom # Nil
cComPort := ".COM"+cCom
else
cComPort := ".COM1"
EndIf
Do Case
Case cModelo = "MP20FI2"
oObjeto := ECF_MP20FI2():new(cComPort,nVelocidade)
Case cModelo = "MP2100TH"
oObjeto := ECF_MP2100TH():new(cComPort,nVelocidade)
OtherWise
oObjeto := Nil
EndCase
Return oObjeto
//---------------------------------------------------------- --------------------------------------
In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.
Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.
Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.
Objeto instanciando Objeto
- Marcelo Coelho Silva
- Mensajes: 269
- Registrado: Sab May 31, 2008 4:49 pm
- Ubicación: Brasil
- Contactar:
Objeto instanciando Objeto
Att.
Marcelo Coelho Silva
Brasil.
Marcelo Coelho Silva
Brasil.
Objeto instanciando Objeto
Marcelo,
si declaras New() o Create() como contructores debes devolver Self (que es
el objeto en sí mismo). Quita la cláusula CONSTRUCTOR de New() o utiliza un
metodo con otro nombre para devolver oObjeto.
Saludos,
José Lalín
si declaras New() o Create() como contructores debes devolver Self (que es
el objeto en sí mismo). Quita la cláusula CONSTRUCTOR de New() o utiliza un
metodo con otro nombre para devolver oObjeto.
Saludos,
José Lalín
- Marcelo Coelho Silva
- Mensajes: 269
- Registrado: Sab May 31, 2008 4:49 pm
- Ubicación: Brasil
- Contactar:
Objeto instanciando Objeto
Obrigado.
Em 03/11/2011 16:28, José Lalín escreveu:
> Marcelo,
>
> si declaras New() o Create() como contructores debes devolver Self (que
> es el objeto en sí mismo). Quita la cláusula CONSTRUCTOR de New() o
> utiliza un metodo con otro nombre para devolver oObjeto.
>
> Saludos,
> José Lalín
>
Em 03/11/2011 16:28, José Lalín escreveu:
> Marcelo,
>
> si declaras New() o Create() como contructores debes devolver Self (que
> es el objeto en sí mismo). Quita la cláusula CONSTRUCTOR de New() o
> utiliza un metodo con otro nombre para devolver oObjeto.
>
> Saludos,
> José Lalín
>
Att.
Marcelo Coelho Silva
Brasil.
Marcelo Coelho Silva
Brasil.