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.

Añadir métodos

Foro público de Xailer en español
Responder
Bingen Ugaldebere
Mensajes: 1310
Registrado: Mié Sep 26, 2007 7:12 pm

Añadir métodos

Mensaje por Bingen Ugaldebere »

He añadido con éxito métodos a clases de Xailer sin problemas, pero me
encuentro con que quisiera añadir una serie de métodos concretamente a
la clase Application lo cual también he probado y funciona pero como
esta clase la instancia automáticamente Xailer estos métodos no funcionan.
Son métodos para el control de copias, usuarios concurrentes en Red por
número de licencias, contraseñas de acceso, etc que creo que deben de ir
antes que el Form principal y por lo tanto estimo que habrí­a de
ponérselas a Application y no a tForm.
Es posible??
Gracias y salu2.
Avatar de Usuario
jfgimenez
Site Admin
Mensajes: 5718
Registrado: Lun Abr 06, 2015 8:48 pm
Contactar:

Añadir métodos

Mensaje por jfgimenez »

Bingen,
> He añadido con éxito métodos a clases de Xailer sin problemas, pero me
> encuentro con que quisiera añadir una serie de métodos concretamente a la
> clase Application lo cual también he probado y funciona pero como esta
> clase la instancia automáticamente Xailer estos métodos no funcionan.
>
> Son métodos para el control de copias, usuarios concurrentes en Red por
> número de licencias, contraseñas de acceso, etc que creo que deben de ir
> antes que el Form principal y por lo tanto estimo que habría de ponérselas
> a Application y no a tForm.
>
> Es posible??
Simplemente crea una clase TApplication que derive de XApplication, y
añadele todos los métodos que necesites. Cuando Xailer instancie
Application, ya incluirá lo que tú hayas añadido.
--
Un saludo,
José F. Giménez
http://www.xailer.com
José F. Giménez
[Equipo de Xailer / Xailer team]
http://www.xailer.com
http://www.xailer.info
Avatar de Usuario
jfgimenez
Site Admin
Mensajes: 5718
Registrado: Lun Abr 06, 2015 8:48 pm
Contactar:

Añadir métodos

Mensaje por jfgimenez »

Bingen,
> Simplemente crea una clase TApplication que derive de XApplication, y
> añadele todos los métodos que necesites. Cuando Xailer instancie
> Application, ya incluirá lo que tú hayas añadido.
Por cierto, se me ha pasado comentar que dentro de poco, la funcionalidad
del 'datamodule' consistirá precísamente en sobreescribir la clase
TApplication en el proyecto, por lo que lo tendrás que tener en cuenta para
evitarte problemas.
--
Un saludo,
José F. Giménez
http://www.xailer.com
José F. Giménez
[Equipo de Xailer / Xailer team]
http://www.xailer.com
http://www.xailer.info
Bingen Ugaldebere
Mensajes: 1310
Registrado: Mié Sep 26, 2007 7:12 pm

Añadir métodos

Mensaje por Bingen Ugaldebere »

Pues eso mismo he hecho y luego el form principal llama a una clase de
tApplication y me da error que la método no existe ??
Lo hice en casa el finde así­ que a ver si lo bajo y enví­o un minizip con
la prueba.
Gracias y Salu2.
Jose F. Gimenez escribió:
> Bingen,
>
>> He añadido con éxito métodos a clases de Xailer sin problemas, pero me
>> encuentro con que quisiera añadir una serie de métodos concretamente a la
>> clase Application lo cual también he probado y funciona pero como esta
>> clase la instancia automáticamente Xailer estos métodos no funcionan.
>>
>> Son métodos para el control de copias, usuarios concurrentes en Red por
>> número de licencias, contraseñas de acceso, etc que creo que deben de ir
>> antes que el Form principal y por lo tanto estimo que habrí­a de ponérselas
>> a Application y no a tForm.
>>
>> Es posible??
>
> Simplemente crea una clase TApplication que derive de XApplication, y
> añadele todos los métodos que necesites. Cuando Xailer instancie
> Application, ya incluirá lo que tú hayas añadido.
>
Bingen Ugaldebere
Mensajes: 1310
Registrado: Mié Sep 26, 2007 7:12 pm

Añadir métodos

Mensaje por Bingen Ugaldebere »

Perdón pero esto si que no lo entiendo, es como el ADDDATA del AppData
pero con métodos o algo así­??
Jose F. Gimenez escribió:
> Bingen,
>
>> Simplemente crea una clase TApplication que derive de XApplication, y
>> añadele todos los métodos que necesites. Cuando Xailer instancie
>> Application, ya incluirá lo que tú hayas añadido.
>
> Por cierto, se me ha pasado comentar que dentro de poco, la funcionalidad
> del 'datamodule' consistirá precí­samente en sobreescribir la clase
> TApplication en el proyecto, por lo que lo tendrás que tener en cuenta para
> evitarte problemas.
>
>
Avatar de Usuario
jfgimenez
Site Admin
Mensajes: 5718
Registrado: Lun Abr 06, 2015 8:48 pm
Contactar:

Añadir métodos

Mensaje por jfgimenez »

Bingen,
> Pues eso mismo he hecho y luego el form principal llama a una clase de
> tApplication y me da error que la método no existe ??
>
> Lo hice en casa el finde así que a ver si lo bajo y envío un minizip con
> la prueba.
Tiene que funcionar. Seguramente el error que te da es de alguna otra cosa.
--
Un saludo,
José F. Giménez
http://www.xailer.com
José F. Giménez
[Equipo de Xailer / Xailer team]
http://www.xailer.com
http://www.xailer.info
Avatar de Usuario
jfgimenez
Site Admin
Mensajes: 5718
Registrado: Lun Abr 06, 2015 8:48 pm
Contactar:

Añadir métodos

Mensaje por jfgimenez »

Bingen,
> Perdón pero esto si que no lo entiendo, es como el ADDDATA del AppData
> pero con métodos o algo así??
No. La idea consiste en hacer precísamente lo que estás tratando de hacer:
sobreescribir TApplication. P.ej.:
CLASS TApplication FROM XApplication
COMPONENT oDataSource1
COMPONENT oDataSource2
...
ENDCLASS
Y después, en cualquier punto del programa se podría hacer:
::oDataSet1:oDataSource := Application:oDataSource1
La razón de usar TApplication para esto es porque así, el IDE sólo tiene que
buscar en un único punto los componentes comunes de la aplicacion. De esa
forma, en tiempo de diseño, se pueden seleccionar.
--
Un saludo,
José F. Giménez
http://www.xailer.com
José F. Giménez
[Equipo de Xailer / Xailer team]
http://www.xailer.com
http://www.xailer.info
jose.luis
Mensajes: 1633
Registrado: Vie Oct 14, 2005 10:56 pm

Añadir métodos

Mensaje por jose.luis »

José,
¿El hecho de que la variable pública o global sea Application es por algún
motivo concreto?
¿Podré usar mis propias variables globales? (Yo no utilizo para nada
Application).
Saludos,
José Luis Capel
>
> No. La idea consiste en hacer precísamente lo que estás tratando de hacer:
> sobreescribir TApplication. P.ej.:
>
> CLASS TApplication FROM XApplication
>
> COMPONENT oDataSource1
> COMPONENT oDataSource2
> ...
>
> ENDCLASS
>
> Y después, en cualquier punto del programa se podría hacer:
>
> ::oDataSet1:oDataSource := Application:oDataSource1
>
Avatar de Usuario
jfgimenez
Site Admin
Mensajes: 5718
Registrado: Lun Abr 06, 2015 8:48 pm
Contactar:

Añadir métodos

Mensaje por jfgimenez »

José Luis,
> ¿El hecho de que la variable pública o global sea Application es por algún
> motivo concreto?
Porque ya existe y no hay que cambiar nada más. Y además, nos parece de lo
más apropiado.
> ¿Podré usar mis propias variables globales? (Yo no utilizo para nada
> Application).
Puede que no la estés usando explícitamente, pero el mismo Xailer la está
usando; y por lo tanto, la estás usando de forma implícita.
Por otro lado, siempre puedes usar las variables globales que quieras (yo
suelo usar unas cuantas en mis programas), pero el IDE no las tendrá en
cuenta en modo diseño.
--
Un saludo,
José F. Giménez
http://www.xailer.com
José F. Giménez
[Equipo de Xailer / Xailer team]
http://www.xailer.com
http://www.xailer.info
zeasoftware
Mensajes: 1831
Registrado: Mar Oct 11, 2005 9:53 am

Añadir métodos

Mensaje por zeasoftware »

A mi me esta funcionando bien (por ahora solo he hecho el control de
licencia), haciendo una clase TForm principal, la cual sera asignada al
oMainForm.
Saludos.
--
Ramón Zea
ramonzea@yahoo.com
http://www.paginasprodigy.com/zeasoft/
Rolando
Mensajes: 191
Registrado: Lun May 08, 2006 2:10 pm

Añadir métodos

Mensaje por Rolando »

Yo tengo declarada una variable publica y cuando la utilizo produce un
warning el compilador.
Un saludo,
"Jose F. Gimenez" <jfgimenez@wanadoo.es> escribió en el mensaje
news:44c7a5e9$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
> José Luis,
>
>> ¿El hecho de que la variable pública o global sea Application es por
>> algún motivo concreto?
>
> Porque ya existe y no hay que cambiar nada más. Y además, nos parece de lo
> más apropiado.
>
>
>> ¿Podré usar mis propias variables globales? (Yo no utilizo para nada
>> Application).
>
> Puede que no la estés usando explícitamente, pero el mismo Xailer la está
> usando; y por lo tanto, la estás usando de forma implícita.
>
> Por otro lado, siempre puedes usar las variables globales que quieras (yo
> suelo usar unas cuantas en mis programas), pero el IDE no las tendrá en
> cuenta en modo diseño.
>
> --
> Un saludo,
>
> José F. Giménez
> http://www.xailer.com
>
Avatar de Usuario
jfgimenez
Site Admin
Mensajes: 5718
Registrado: Lun Abr 06, 2015 8:48 pm
Contactar:

Añadir métodos

Mensaje por jfgimenez »

Rolando,
> Yo tengo declarada una variable publica y cuando la utilizo produce un
> warning el compilador.
Si la has creado con el comando PUBLIC, entonces deberás añadir una
declaración MEMVAR en cada módulo donde vayas a usarla.
--
Un saludo,
José F. Giménez
http://www.xailer.com
José F. Giménez
[Equipo de Xailer / Xailer team]
http://www.xailer.com
http://www.xailer.info
Bingen Ugaldebere
Mensajes: 1310
Registrado: Mié Sep 26, 2007 7:12 pm

Añadir métodos

Mensaje por Bingen Ugaldebere »

Q razón que tienes si que funciona pero esta creando Application (sin la
t) derivando de xApplication.
Que bruto.
Muchas gracias.
Jose F. Gimenez escribió:
> Bingen,
>
>> He añadido con éxito métodos a clases de Xailer sin problemas, pero me
>> encuentro con que quisiera añadir una serie de métodos concretamente a la
>> clase Application lo cual también he probado y funciona pero como esta
>> clase la instancia automáticamente Xailer estos métodos no funcionan.
>>
>> Son métodos para el control de copias, usuarios concurrentes en Red por
>> número de licencias, contraseñas de acceso, etc que creo que deben de ir
>> antes que el Form principal y por lo tanto estimo que habrí­a de ponérselas
>> a Application y no a tForm.
>>
>> Es posible??
>
> Simplemente crea una clase TApplication que derive de XApplication, y
> añadele todos los métodos que necesites. Cuando Xailer instancie
> Application, ya incluirá lo que tú hayas añadido.
>
Avatar de Usuario
jfgimenez
Site Admin
Mensajes: 5718
Registrado: Lun Abr 06, 2015 8:48 pm
Contactar:

Añadir métodos

Mensaje por jfgimenez »

Bingen,
>Q razón que tienes si que funciona pero esta creando Application (sin la t)
>derivando de xApplication.
No entiendo lo que quieres decir. Lo que hace Xailer es más o menos así:
Por un lado tiene:
CLASS TApplication FROM XApplication
ENDCLASS
Por otro lado:
CLASS XApplication FROM TComponent
...
ENDCLASS
Y en la inicialización:
Application := TApplication():New()
Con lo cual, la clase TApplication está completamente vacía, y se puede
sobreescribir sin ningún problema. Eso sí, la instancia que hay presente
siempre durante toda la ejecución del programa es Application (sin la T).
Pero es una instancia de TApplication, no de XApplication.
--
Un saludo,
José F. Giménez
http://www.xailer.com
José F. Giménez
[Equipo de Xailer / Xailer team]
http://www.xailer.com
http://www.xailer.info
Rolando
Mensajes: 191
Registrado: Lun May 08, 2006 2:10 pm

Añadir métodos

Mensaje por Rolando »

Hay alguna otra forma de declararla?
Un saludo.
"Jose F. Gimenez" <jfgimenez@wanadoo.es> escribió en el mensaje
news:44c7c275$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
> Rolando,
>
>> Yo tengo declarada una variable publica y cuando la utilizo produce un
>> warning el compilador.
>
> Si la has creado con el comando PUBLIC, entonces deberás añadir una
> declaración MEMVAR en cada módulo donde vayas a usarla.
>
> --
> Un saludo,
>
> José F. Giménez
> http://www.xailer.com
>
Avatar de Usuario
jfgimenez
Site Admin
Mensajes: 5718
Registrado: Lun Abr 06, 2015 8:48 pm
Contactar:

Añadir métodos

Mensaje por jfgimenez »

Rolando,
> Hay alguna otra forma de declararla?
No, salvo que bajes el nivel de avisos del compilador (en el apartado
[x]Harbour de las propiedades del proyecto), pero no te lo aconsejo. Es
simplemente más sencillo declarar las variables como memvar al inicio de
cada módulo que lo necesites. O incluso puedes meter esas declaraciones en
un fichero de cabecera .ch e "incluirlo" en cada módulo.
--
Un saludo,
José F. Giménez
http://www.xailer.com
José F. Giménez
[Equipo de Xailer / Xailer team]
http://www.xailer.com
http://www.xailer.info
Avatar de Usuario
jfgimenez
Site Admin
Mensajes: 5718
Registrado: Lun Abr 06, 2015 8:48 pm
Contactar:

Añadir métodos

Mensaje por jfgimenez »

Rolando,
> O incluso puedes meter esas declaraciones en un fichero de cabecera .ch e
> "incluirlo" en cada módulo.
Así es como están declaradas las variables públicas de Xailer Application,
Screen, Printer y AppData. Fíjate en xailerincludexailer.ch, que casi al
principio pone:
MEMVAR Application, Screen, Printer, AppData
De esta forma, puedes usar esas variables en cualquier sitio y no te da
ningún mensaje de advertencia.
--
Un saludo,
José F. Giménez
http://www.xailer.com
José F. Giménez
[Equipo de Xailer / Xailer team]
http://www.xailer.com
http://www.xailer.info
Rolando
Mensajes: 191
Registrado: Lun May 08, 2006 2:10 pm

Añadir métodos

Mensaje por Rolando »

Muy claro, como siempre, muchas gracias José.
Un saludo,
"Jose F. Gimenez" <jfgimenez@wanadoo.es> escribió en el mensaje
news:44c8b46d$[email=1@news.xailer.com...]1@news.xailer.com...[/email]
> Rolando,
>
>> O incluso puedes meter esas declaraciones en un fichero de cabecera .ch e
>> "incluirlo" en cada módulo.
>
> Así es como están declaradas las variables públicas de Xailer Application,
> Screen, Printer y AppData. Fíjate en xailerincludexailer.ch, que casi
> al principio pone:
>
> MEMVAR Application, Screen, Printer, AppData
>
> De esta forma, puedes usar esas variables en cualquier sitio y no te da
> ningún mensaje de advertencia.
>
> --
> Un saludo,
>
> José F. Giménez
> http://www.xailer.com
>
Bingen Ugaldebere
Mensajes: 1310
Registrado: Mié Sep 26, 2007 7:12 pm

Añadir métodos

Mensaje por Bingen Ugaldebere »

Pues si, que era fallo mio, me hacia un lio poniendo Application con la
T o sin la T donde no debia.
Gracias.
miguel
Mensajes: 364
Registrado: Jue Jul 02, 2009 1:09 pm

Añadir métodos

Mensaje por miguel »

Saludos.
Miguel A. Torrellas
Telf.: 976642728
Movil: 610316131
Jose F. Gimenez escribió:
> Rolando,
>
>> O incluso puedes meter esas declaraciones en un fichero de cabecera .ch e
>> "incluirlo" en cada módulo.
>
> Así­ es como están declaradas las variables públicas de Xailer Application,
> Screen, Printer y AppData. Fí­jate en xailerincludexailer.ch, que casi al
> principio pone:
>
> MEMVAR Application, Screen, Printer, AppData
No deberí­a ser suficiente marcando la casilla Declaración automatica de
variables en las propiedades del proyecto en su apartado (x)Harbour
O este checkBox se refiere a otra cosa.
>
> De esta forma, puedes usar esas variables en cualquier sitio y no te da
> ningún mensaje de advertencia.
>
Avatar de Usuario
jfgimenez
Site Admin
Mensajes: 5718
Registrado: Lun Abr 06, 2015 8:48 pm
Contactar:

Añadir métodos

Mensaje por jfgimenez »

Miguel,
> No debería ser suficiente marcando la casilla Declaración automatica de
> variables en las propiedades del proyecto en su apartado (x)Harbour
>
> O este checkBox se refiere a otra cosa.
Tienes razón, esa casilla corresponde al flag /a del compilador. Pero hacer
eso tiene el peligro de que enmascara posibles errores de mecanografiado
(typos), por eso aconsejo no usarlo y declarar las variables correctamente.
--
Un saludo,
José F. Giménez
http://www.xailer.com
José F. Giménez
[Equipo de Xailer / Xailer team]
http://www.xailer.com
http://www.xailer.info
Responder