Tengo una clase que la estoy usando tanto proveniente de TForm como de TFolderPage (del ejemplo TDataSet6), en ambas hago lo mismo, pero una la encajo en un aTFolde ry l aOtra en un TForm.
Mi duda es:
Como puedo derivar la misma clase, viniendo de dos tipos de clases distintas, que hacen los mismo y que vienen de distintos padres?
A ver si me explico mejor:
TFORM TFolderPage
| |
| |
zQuery1 zQuery2
Como puedo hacerle para no escribir o modificar ambas clases zQueryX, y hacer una clase zQuery, que pueda usar en ambas ventanas (Folder y Form)?
Saludos.
--
Ramón Zea
01.993.231-62-29
http://www.paginasprodigy.com/zeasoftware/
zeasoftware@prodigy.net.mx
zeasoftware@hotmail.com
ramonzea@yahoo.com
zeasoft.movil@hotmail.com
dirza_com@hotmail.com
--
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.
TFolderPage y TForm +
-
- Mensajes: 1831
- Registrado: Mar Oct 11, 2005 9:53 am
TFolderPage y TForm +
Ramón Zea
Móvil: 01-993-231-62-29
ramonzea@yahoo.com
zeasoftware@hotmail.com
zeasoft.movil@hotmail.com
http://www.paginasprodigy.com/zeasoftware/
Móvil: 01-993-231-62-29
ramonzea@yahoo.com
zeasoftware@hotmail.com
zeasoft.movil@hotmail.com
http://www.paginasprodigy.com/zeasoftware/
-
- Mensajes: 558
- Registrado: Mar Feb 09, 2010 2:26 pm
TFolderPage y TForm +
Saludos:
No se si te entendido bien ya que no presentas código de la clase y sus
derivaciones para ver si zQuery1 y zQuery2 hace lo mismo, me voy a
arriesgar a ponerte un ejemplo de una clase que yo uso en múltiples
formularios.
Esta es la clase que utilizo en múltiples formularios.
CLASS TBenzing FROM TComponent
PUBLISHED:
PROPERTY nCommPort INIT 0
PUBLIC:
CONSTRUCTOR Create()
METHOD Destroy()
METHOD CheckComPort()
METHOD ReadTranspCan( nStartData, cBuffer, nBuffer, nData, nError )
METHOD GetSVNRType( nStartData, cBuffer, nBuffer, nData, nError )
METHOD GetErrorDescription( nError )
METHOD GetSystemData( nStartData, nData, nError )
METHOD GetSystemData2( nStartData, nData, nError )
METHOD GetSystemData3( nStartData, nData, nError )
//METHOD GetActiveFancier( nFancier, nData, nError )
//METHOD SetActiveFancier( nFancier, nError )
//METHOD ClearAll( nError )
//METHOD SetSystemData( cData, nError )
//METHOD ClearRaceData( nError )
RESERVED:
METHOD Initialize()
METHOD Uninitialize()
METHOD GetSystemDataC()
METHOD GetSystemData2C()
METHOD GetSystemData3C()
PRIVATE:
DATA hLib INIT 0
ENDCLASS
Luego en cada formulario que quiero utilizar hago esto:
CLASS TFormRelojAtisCCDuo FROM TForm
COMPONENT // Los que sean
// Creo una data
DATA ::oBenzing
METHOD // Los que sean
ENDCLASS
METHOD FormInitialize( oSender ) CLASS TFormRelojAtisCCDuo
** Usar la clase oBenzig
::oBenzing := TBenzing():Create()
RETURN NIL
// LLamada a los métodos definidos en TBenzing
::oBenzing:Metododefinidoenlaclase()
También te aconsejo si no lo has hecho ya que mires este articulo
http://www.chochurro.com/wordpress/?p=227
José Ramón Castro.
Ramón Zea escribió:
> Tengo una clase que la estoy usando tanto proveniente de TForm como de
> TFolderPage (del ejemplo TDataSet6), en ambas hago lo mismo, pero una la
> encajo en un aTFolde ry l aOtra en un TForm.
> Mi duda es:
> Como puedo derivar la misma clase, viniendo de dos tipos de clases
> distintas, que hacen los mismo y que vienen de distintos padres?
>
> A ver si me explico mejor:
>
> TFORM TFolderPage
> | |
> | |
> zQuery1 zQuery2
>
>
> Como puedo hacerle para no escribir o modificar ambas clases zQueryX, y
> hacer una clase zQuery, que pueda usar en ambas ventanas (Folder y Form)?
>
> Saludos.
> --
> Ramón Zea
> 01.993.231-62-29
> http://www.paginasprodigy.com/zeasoftware/
> zeasoftware@prodigy.net.mx <mailto:zeasoftware@prodigy.net.mx>
> zeasoftware@hotmail.com <mailto:zeasoftware@hotmail.com>
> ramonzea@yahoo.com <mailto:ramonzea@yahoo.com>
> zeasoft.movil@hotmail.com <mailto:zeasoft.movil@hotmail.com>
> dirza_com@hotmail.com <mailto:dirza_com@hotmail.com>
No se si te entendido bien ya que no presentas código de la clase y sus
derivaciones para ver si zQuery1 y zQuery2 hace lo mismo, me voy a
arriesgar a ponerte un ejemplo de una clase que yo uso en múltiples
formularios.
Esta es la clase que utilizo en múltiples formularios.
CLASS TBenzing FROM TComponent
PUBLISHED:
PROPERTY nCommPort INIT 0
PUBLIC:
CONSTRUCTOR Create()
METHOD Destroy()
METHOD CheckComPort()
METHOD ReadTranspCan( nStartData, cBuffer, nBuffer, nData, nError )
METHOD GetSVNRType( nStartData, cBuffer, nBuffer, nData, nError )
METHOD GetErrorDescription( nError )
METHOD GetSystemData( nStartData, nData, nError )
METHOD GetSystemData2( nStartData, nData, nError )
METHOD GetSystemData3( nStartData, nData, nError )
//METHOD GetActiveFancier( nFancier, nData, nError )
//METHOD SetActiveFancier( nFancier, nError )
//METHOD ClearAll( nError )
//METHOD SetSystemData( cData, nError )
//METHOD ClearRaceData( nError )
RESERVED:
METHOD Initialize()
METHOD Uninitialize()
METHOD GetSystemDataC()
METHOD GetSystemData2C()
METHOD GetSystemData3C()
PRIVATE:
DATA hLib INIT 0
ENDCLASS
Luego en cada formulario que quiero utilizar hago esto:
CLASS TFormRelojAtisCCDuo FROM TForm
COMPONENT // Los que sean
// Creo una data
DATA ::oBenzing
METHOD // Los que sean
ENDCLASS
METHOD FormInitialize( oSender ) CLASS TFormRelojAtisCCDuo
** Usar la clase oBenzig
::oBenzing := TBenzing():Create()
RETURN NIL
// LLamada a los métodos definidos en TBenzing
::oBenzing:Metododefinidoenlaclase()
También te aconsejo si no lo has hecho ya que mires este articulo
http://www.chochurro.com/wordpress/?p=227
José Ramón Castro.
Ramón Zea escribió:
> Tengo una clase que la estoy usando tanto proveniente de TForm como de
> TFolderPage (del ejemplo TDataSet6), en ambas hago lo mismo, pero una la
> encajo en un aTFolde ry l aOtra en un TForm.
> Mi duda es:
> Como puedo derivar la misma clase, viniendo de dos tipos de clases
> distintas, que hacen los mismo y que vienen de distintos padres?
>
> A ver si me explico mejor:
>
> TFORM TFolderPage
> | |
> | |
> zQuery1 zQuery2
>
>
> Como puedo hacerle para no escribir o modificar ambas clases zQueryX, y
> hacer una clase zQuery, que pueda usar en ambas ventanas (Folder y Form)?
>
> Saludos.
> --
> Ramón Zea
> 01.993.231-62-29
> http://www.paginasprodigy.com/zeasoftware/
> zeasoftware@prodigy.net.mx <mailto:zeasoftware@prodigy.net.mx>
> zeasoftware@hotmail.com <mailto:zeasoftware@hotmail.com>
> ramonzea@yahoo.com <mailto:ramonzea@yahoo.com>
> zeasoft.movil@hotmail.com <mailto:zeasoft.movil@hotmail.com>
> dirza_com@hotmail.com <mailto:dirza_com@hotmail.com>
-
- Mensajes: 1831
- Registrado: Mar Oct 11, 2005 9:53 am
TFolderPage y TForm +
Gracias, me explico un poco mas.
TFORM TFolderPage
| |
| |
zFrmQuery zFldQuery
zFrmQuery y zFldQuery hacen exactamente lo mismo, con la diferencia que
los incrusto en dstintos controles, como puedes notar, una la incrusto en un
TFolder y la otra en un TForm.
Ambas zQuery hacen llamados a funciones de TForm y TFolderPage, y como son
comunes, ya que este ultimo lo derivo como viene en el ejemplo oDATASET6,
mas algunas funciones adicionales que he requerido.
El codigo es indiferente, ya que lo que quiero es que ese mismo codigo solo
una vez.
Una solucion que opte fue, hacer el codigo de query en un archivo.X el cual
cargo con un #include y definiendo la clase,
Intente esto:
Class zFrmQuery From zQuery, TForm
EndClass
Class zFldQuery From zQuery, TFolderPage
EndClass
Por ahora lo tengo asi:
Class zFrmQuery From TForm
====
===
EndClass
Class zFldQuery From TFolderPage
====
===
EndClass
Pero, ambos archivos con exactamente igual, con la unica diferencia de la
clase Padre.
Gracias de nuevo, espero haberme explicado mejor, acepto sugerencias.
Saludos.
--
Ramón Zea
01.993.231-62-29
http://www.paginasprodigy.com/zeasoftware/
zeasoftware@prodigy.net.mx
zeasoftware@hotmail.com
ramonzea@yahoo.com
zeasoft.movil@hotmail.com
dirza_com@hotmail.com
TFORM TFolderPage
| |
| |
zFrmQuery zFldQuery
zFrmQuery y zFldQuery hacen exactamente lo mismo, con la diferencia que
los incrusto en dstintos controles, como puedes notar, una la incrusto en un
TFolder y la otra en un TForm.
Ambas zQuery hacen llamados a funciones de TForm y TFolderPage, y como son
comunes, ya que este ultimo lo derivo como viene en el ejemplo oDATASET6,
mas algunas funciones adicionales que he requerido.
El codigo es indiferente, ya que lo que quiero es que ese mismo codigo solo
una vez.
Una solucion que opte fue, hacer el codigo de query en un archivo.X el cual
cargo con un #include y definiendo la clase,
Intente esto:
Class zFrmQuery From zQuery, TForm
EndClass
Class zFldQuery From zQuery, TFolderPage
EndClass
Por ahora lo tengo asi:
Class zFrmQuery From TForm
====
===
EndClass
Class zFldQuery From TFolderPage
====
===
EndClass
Pero, ambos archivos con exactamente igual, con la unica diferencia de la
clase Padre.
Gracias de nuevo, espero haberme explicado mejor, acepto sugerencias.
Saludos.
--
Ramón Zea
01.993.231-62-29
http://www.paginasprodigy.com/zeasoftware/
zeasoftware@prodigy.net.mx
zeasoftware@hotmail.com
ramonzea@yahoo.com
zeasoft.movil@hotmail.com
dirza_com@hotmail.com
Ramón Zea
Móvil: 01-993-231-62-29
ramonzea@yahoo.com
zeasoftware@hotmail.com
zeasoft.movil@hotmail.com
http://www.paginasprodigy.com/zeasoftware/
Móvil: 01-993-231-62-29
ramonzea@yahoo.com
zeasoftware@hotmail.com
zeasoft.movil@hotmail.com
http://www.paginasprodigy.com/zeasoftware/
TFolderPage y TForm +
Ramón,
podrías crear una clase parecida a TFormFolder del ejemplo DBFData6, pero
derivándola de TWincontrol o TScrollingWinControl, en vez de TFolderPage.
Después, tu clase zQuery la haces derivar de esa clase intermedia, y sólo
tienes que colocarla sobre el folderpage o sobre el formulario que quieras
alineándola a alCLIENT, como si de cualquier otro control se tratara. De
esta forma, puedes diseñarla con el IDE como si fuera un formulario y
utilizarla donde quieras como si fuera un control.
--
Un saludo,
José F. Giménez
http://www.xailer.com
http://www.xailer.info
podrías crear una clase parecida a TFormFolder del ejemplo DBFData6, pero
derivándola de TWincontrol o TScrollingWinControl, en vez de TFolderPage.
Después, tu clase zQuery la haces derivar de esa clase intermedia, y sólo
tienes que colocarla sobre el folderpage o sobre el formulario que quieras
alineándola a alCLIENT, como si de cualquier otro control se tratara. De
esta forma, puedes diseñarla con el IDE como si fuera un formulario y
utilizarla donde quieras como si fuera un control.
--
Un saludo,
José F. Giménez
http://www.xailer.com
http://www.xailer.info
-
- Mensajes: 24
- Registrado: Jue Ene 21, 2010 2:45 pm
TFolderPage y TForm +
Podrias poner un ejemplo con codigo (a ser posible) con la forma de poder
solucionar esta situación
Gracias de antemano
Un saludo
Aureliano
"Jose F. Gimenez" <jfgimenez@wanadoo.es> wrote:
>Ramón,
>
>podrías crear una clase parecida a TFormFolder del ejemplo DBFData6, pero
>derivándola de TWincontrol o TScrollingWinControl, en vez de TFolderPage.
>Después, tu clase zQuery la haces derivar de esa clase intermedia, y sólo
>tienes que colocarla sobre el folderpage o sobre el formulario que quieras
>alineándola a alCLIENT, como si de cualquier otro control se tratara. De
>esta forma, puedes diseñarla con el IDE como si fuera un formulario y
>utilizarla donde quieras como si fuera un control.
>
>--
>Un saludo,
>
>José F. Giménez
>http://www.xailer.com
>http://www.xailer.info
>
>
solucionar esta situación
Gracias de antemano
Un saludo
Aureliano
"Jose F. Gimenez" <jfgimenez@wanadoo.es> wrote:
>Ramón,
>
>podrías crear una clase parecida a TFormFolder del ejemplo DBFData6, pero
>derivándola de TWincontrol o TScrollingWinControl, en vez de TFolderPage.
>Después, tu clase zQuery la haces derivar de esa clase intermedia, y sólo
>tienes que colocarla sobre el folderpage o sobre el formulario que quieras
>alineándola a alCLIENT, como si de cualquier otro control se tratara. De
>esta forma, puedes diseñarla con el IDE como si fuera un formulario y
>utilizarla donde quieras como si fuera un control.
>
>--
>Un saludo,
>
>José F. Giménez
>http://www.xailer.com
>http://www.xailer.info
>
>