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.
lMsgAuto
lMsgAuto
José,
Tengo un formulario redefinido como un tPage. Algo así como:
CLASS tFrmClientes FROM TPage // antes era FROM tForm
y desde que añadí una barra de estado no se por que me está cambiando la
propiedad lMsgAuto a .T. él solo...
¿Como puedo evitarlo?
Saludos y gracias por vuestro tiempo.
José Luis Capel
Tengo un formulario redefinido como un tPage. Algo así como:
CLASS tFrmClientes FROM TPage // antes era FROM tForm
y desde que añadí una barra de estado no se por que me está cambiando la
propiedad lMsgAuto a .T. él solo...
¿Como puedo evitarlo?
Saludos y gracias por vuestro tiempo.
José Luis Capel
lMsgAuto
José Luis,
> Tengo un formulario redefinido como un tPage. Algo así como:
>
> CLASS tFrmClientes FROM TPage // antes era FROM tForm
>
> y desde que añadí una barra de estado no se por que me está cambiando la
> propiedad lMsgAuto a .T. él solo...
>
> ¿Como puedo evitarlo?
Acabo de comprobar que lMsgAuto se pone a .T. automáticamente cada vez que
se añade un control al formulario que tiene algo en la propiedad cMessage.
El hecho de que se ponga a .T. automáticamente es algo que viene de hace
muchísimo tiempo, y si te parece que no debería ser así lo podemos discutir
el "Xailer team" para cambiarlo.
--
Un saludo,
José F. Giménez
> Tengo un formulario redefinido como un tPage. Algo así como:
>
> CLASS tFrmClientes FROM TPage // antes era FROM tForm
>
> y desde que añadí una barra de estado no se por que me está cambiando la
> propiedad lMsgAuto a .T. él solo...
>
> ¿Como puedo evitarlo?
Acabo de comprobar que lMsgAuto se pone a .T. automáticamente cada vez que
se añade un control al formulario que tiene algo en la propiedad cMessage.
El hecho de que se ponga a .T. automáticamente es algo que viene de hace
muchísimo tiempo, y si te parece que no debería ser así lo podemos discutir
el "Xailer team" para cambiarlo.
--
Un saludo,
José F. Giménez
lMsgAuto
José,
>
> Acabo de comprobar que lMsgAuto se pone a .T. automáticamente cada vez que
> se añade un control al formulario que tiene algo en la propiedad cMessage.
> El hecho de que se ponga a .T. automáticamente es algo que viene de hace
> muchísimo tiempo, y si te parece que no debería ser así lo podemos discutir
> el "Xailer team" para cambiarlo.
>
Sabiendo que es así, no me molesta. Solo me es molesto por que como
hago el tema de un formulario convertirlo a un page (recuerdas?) pues
entonces esa propieda no la tiene el tPage y me da error. Entonces tengo
que recordar en cambiar esa propiedad a .F.
Saludos y gracias!
José Luis Capel
PD: ahora que lo pienso... en realidad si que lo voy a necesitar... pero
al crear un formulario FROM tPage no existe... vaya... ¿como me lo apaño
ahora?
>
> Acabo de comprobar que lMsgAuto se pone a .T. automáticamente cada vez que
> se añade un control al formulario que tiene algo en la propiedad cMessage.
> El hecho de que se ponga a .T. automáticamente es algo que viene de hace
> muchísimo tiempo, y si te parece que no debería ser así lo podemos discutir
> el "Xailer team" para cambiarlo.
>
Sabiendo que es así, no me molesta. Solo me es molesto por que como
hago el tema de un formulario convertirlo a un page (recuerdas?) pues
entonces esa propieda no la tiene el tPage y me da error. Entonces tengo
que recordar en cambiar esa propiedad a .F.
Saludos y gracias!
José Luis Capel
PD: ahora que lo pienso... en realidad si que lo voy a necesitar... pero
al crear un formulario FROM tPage no existe... vaya... ¿como me lo apaño
ahora?

lMsgAuto
José Luis,
> PD: ahora que lo pienso... en realidad si que lo voy a necesitar... pero
> al crear un formulario FROM tPage no existe... vaya... ¿como me lo apaño
> ahora?
Tan sencillo como:
CLASS TPage FROM XPage
DATA lMsgAuto INIT .F.
ENDCLASS
--
Un saludo,
José F. Giménez
> PD: ahora que lo pienso... en realidad si que lo voy a necesitar... pero
> al crear un formulario FROM tPage no existe... vaya... ¿como me lo apaño
> ahora?

Tan sencillo como:
CLASS TPage FROM XPage
DATA lMsgAuto INIT .F.
ENDCLASS
--
Un saludo,
José F. Giménez
lMsgAuto
José Luis,
> CLASS TPage FROM XPage
> DATA lMsgAuto INIT .F.
> ENDCLASS
perdón... en vez de DATA usa PROPERTY, si no te dará problemas.
--
Un saludo,
José F. Giménez
> CLASS TPage FROM XPage
> DATA lMsgAuto INIT .F.
> ENDCLASS
perdón... en vez de DATA usa PROPERTY, si no te dará problemas.
--
Un saludo,
José F. Giménez
lMsgAuto
José,
>
>>CLASS TPage FROM XPage
>> DATA lMsgAuto INIT .F.
>>ENDCLASS
>
>
> perdón... en vez de DATA usa PROPERTY, si no te dará problemas.
>
chasgracias!!!
Saludos,
José Luis Capel
>
>>CLASS TPage FROM XPage
>> DATA lMsgAuto INIT .F.
>>ENDCLASS
>
>
> perdón... en vez de DATA usa PROPERTY, si no te dará problemas.
>
chasgracias!!!
Saludos,
José Luis Capel
lMsgAuto
José,
>
>>CLASS TPage FROM XPage
>> DATA lMsgAuto INIT .F.
>>ENDCLASS
>
CLASS TPage FROM XPage
DATA lMsgAuto INIT .F.
METHOD OnInitialize( oSender )
ENDCLASS
¿Se puede?
Es decir, tPage no tiene algunos de los eventos del tForm, entre ellos
el OnInitialize....
Lo he probado y me da un error en tiempo de enlazado:
Error: Unresolved external '_HB_FUN_TPAGE_ONINITIALIZE' referenced from ....
¿Alguna pista?
Saludos y gracias!
José Luis Capel
>
>>CLASS TPage FROM XPage
>> DATA lMsgAuto INIT .F.
>>ENDCLASS
>
CLASS TPage FROM XPage
DATA lMsgAuto INIT .F.
METHOD OnInitialize( oSender )
ENDCLASS
¿Se puede?
Es decir, tPage no tiene algunos de los eventos del tForm, entre ellos
el OnInitialize....
Lo he probado y me da un error en tiempo de enlazado:
Error: Unresolved external '_HB_FUN_TPAGE_ONINITIALIZE' referenced from ....
¿Alguna pista?
Saludos y gracias!
José Luis Capel
lMsgAuto
José Luis,
> METHOD OnInitialize( oSender )
En vez de esto, pon:
EVENT OnInitialize( oSender )
--
Un saludo,
José F. Giménez
> METHOD OnInitialize( oSender )
En vez de esto, pon:
EVENT OnInitialize( oSender )
--
Un saludo,
José F. Giménez
lMsgAuto
José,
>
> En vez de esto, pon:
>
> EVENT OnInitialize( oSender )
>
Lo he probado. El problema, creo, es que como en un formulario cambio
el FORM tForm por un FORM tPage (a pelo) entonces, si desde el IDE
genero el evento OnInitialize, el nombre que le da es diferente al
esperado por el tPage. No se cual nombre espera el tPage pero desde el
IDE se crea como:
METHOD FormInitialize( oSender ) CLASS tFrmClientes
y supongo que lo correcto sería...
METHOD PageInitialize( oSender ) CLASS tFrmClientes
no?
Entonces... como puedo hacer (sin tocar el IDE) estas operaciones ??
Saludos y gracias,
José Luis Capel
>
> En vez de esto, pon:
>
> EVENT OnInitialize( oSender )
>
Lo he probado. El problema, creo, es que como en un formulario cambio
el FORM tForm por un FORM tPage (a pelo) entonces, si desde el IDE
genero el evento OnInitialize, el nombre que le da es diferente al
esperado por el tPage. No se cual nombre espera el tPage pero desde el
IDE se crea como:
METHOD FormInitialize( oSender ) CLASS tFrmClientes
y supongo que lo correcto sería...
METHOD PageInitialize( oSender ) CLASS tFrmClientes
no?
Entonces... como puedo hacer (sin tocar el IDE) estas operaciones ??
Saludos y gracias,
José Luis Capel
lMsgAuto
José Luis,
OnInitialize es un evento propio de TForm, pero no lo tienen los demás
controles, por lo que no te serviría.
Ya sabes que yo también estoy implementando un interface parecido, sólo que
con un TFolder en vez de un TPages, y lo mejor es que te crees una clase
intermedia con la funcionalidad básica y común, incluido un método de
inicialización que puedes sobreescribir en las clases hijas. Yo tengo esta
clase (le he quitado algunas cosas propias mias):
//---------------------------------------------------------- --------------------
CLASS TFormFolder FROM XFolderPage
DATA nFormType
METHOD New( oParent )
METHOD CreateForm() VIRTUAL
METHOD Initialize() VIRTUAL
METHOD UpdateTasks() VIRTUAL
METHOD Close() INLINE ::Delete()
METHOD WMKeyDown()
ENDCLASS
//---------------------------------------------------------- --------------------
METHOD New( oParent ) CLASS TFormFolder
Super:New( oPrincipal:oPages )
::UpdateTasks()
::CreateForm()
::Initialize()
RETURN Self
//---------------------------------------------------------- --------------------
METHOD WMKeyDown( nKey, nFlags ) CLASS TFormFolder
IF nKey == VK_F4 .AND. lAnd( GetKeyState( VK_CONTROL ), 0x80 )
::Close()
RETURN 0
ENDIF
RETURN Super:WMKeyDown( nKey, nFlags )
//---------------------------------------------------------- --------------------
Después, sólo tienes que derivar tus "formularios" de esta clase en vez de
derivarlos de TPage, y sobreescribir los métodos que necesites: Initialize()
como sustituto de OnInitialize y UpdateTasks() yo lo estoy usando para
actualizar la explorerbar y optionlist que tengo a la izquierda. El método
CreateForm() ya te lo crea automáticamente el IDE dentro del .xfm
Además, según lo vayas necesitando puedes seguir añadiendo toda la
funcionalidad que quieras en esta clase, y las clases hijas la heredarán.
--
Un saludo,
José F. Giménez
OnInitialize es un evento propio de TForm, pero no lo tienen los demás
controles, por lo que no te serviría.
Ya sabes que yo también estoy implementando un interface parecido, sólo que
con un TFolder en vez de un TPages, y lo mejor es que te crees una clase
intermedia con la funcionalidad básica y común, incluido un método de
inicialización que puedes sobreescribir en las clases hijas. Yo tengo esta
clase (le he quitado algunas cosas propias mias):
//---------------------------------------------------------- --------------------
CLASS TFormFolder FROM XFolderPage
DATA nFormType
METHOD New( oParent )
METHOD CreateForm() VIRTUAL
METHOD Initialize() VIRTUAL
METHOD UpdateTasks() VIRTUAL
METHOD Close() INLINE ::Delete()
METHOD WMKeyDown()
ENDCLASS
//---------------------------------------------------------- --------------------
METHOD New( oParent ) CLASS TFormFolder
Super:New( oPrincipal:oPages )
::UpdateTasks()
::CreateForm()
::Initialize()
RETURN Self
//---------------------------------------------------------- --------------------
METHOD WMKeyDown( nKey, nFlags ) CLASS TFormFolder
IF nKey == VK_F4 .AND. lAnd( GetKeyState( VK_CONTROL ), 0x80 )
::Close()
RETURN 0
ENDIF
RETURN Super:WMKeyDown( nKey, nFlags )
//---------------------------------------------------------- --------------------
Después, sólo tienes que derivar tus "formularios" de esta clase en vez de
derivarlos de TPage, y sobreescribir los métodos que necesites: Initialize()
como sustituto de OnInitialize y UpdateTasks() yo lo estoy usando para
actualizar la explorerbar y optionlist que tengo a la izquierda. El método
CreateForm() ya te lo crea automáticamente el IDE dentro del .xfm
Además, según lo vayas necesitando puedes seguir añadiendo toda la
funcionalidad que quieras en esta clase, y las clases hijas la heredarán.
--
Un saludo,
José F. Giménez
lMsgAuto
José Luis,
por cierto, olvidaba decirte que con esta clase, en vez de llamar a New(),
CreateForm() y Show(), sólo tienes que llamar a New() para crear y mostrar
el "formulario".
--
Un saludo,
José F. Giménez
por cierto, olvidaba decirte que con esta clase, en vez de llamar a New(),
CreateForm() y Show(), sólo tienes que llamar a New() para crear y mostrar
el "formulario".
--
Un saludo,
José F. Giménez
lMsgAuto
José,
> por cierto, olvidaba decirte que con esta clase, en vez de llamar a New(),
> CreateForm() y Show(), sólo tienes que llamar a New() para crear y mostrar
> el "formulario".
Muuuchas gracias. Mañana lo pruebo... que esta tarde voy a estar fuera
de la oficina.
Gracias por todo, como siempre...
Saludos,
José Luis Capel
> por cierto, olvidaba decirte que con esta clase, en vez de llamar a New(),
> CreateForm() y Show(), sólo tienes que llamar a New() para crear y mostrar
> el "formulario".
Muuuchas gracias. Mañana lo pruebo... que esta tarde voy a estar fuera
de la oficina.
Gracias por todo, como siempre...
Saludos,
José Luis Capel