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.

TFolderPage y TForm +

Foro público de Xailer en español
Responder
zeasoftware
Mensajes: 1831
Registrado: Mar Oct 11, 2005 9:53 am

TFolderPage y TForm +

Mensaje por zeasoftware »

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
--
jrcpoli-quitar
Mensajes: 558
Registrado: Mar Feb 09, 2010 2:26 pm

TFolderPage y TForm +

Mensaje por jrcpoli-quitar »

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>
zeasoftware
Mensajes: 1831
Registrado: Mar Oct 11, 2005 9:53 am

TFolderPage y TForm +

Mensaje por zeasoftware »

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
Avatar de Usuario
jfgimenez
Site Admin
Mensajes: 5718
Registrado: Lun Abr 06, 2015 8:48 pm
Contactar:

TFolderPage y TForm +

Mensaje por jfgimenez »

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
José F. Giménez
[Equipo de Xailer / Xailer team]
http://www.xailer.com
http://www.xailer.info
aureliano.sanchezc
Mensajes: 24
Registrado: Jue Ene 21, 2010 2:45 pm

TFolderPage y TForm +

Mensaje por aureliano.sanchezc »

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
>
>
Responder