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.
Derivar de una Clase... TBrowse.
Derivar de una Clase... TBrowse.
Hola,
No se que estoy haciendo mal, pero no me sale el derivar un método de la clase TBrowse
Esta es la clase que derivo, y si bien me funcionan las propiedades, al querer tener un mismo método en la clase, eso no me funciona bien...
Pretendo que cuando se pulse el botón derecho, se cambie de registro el Browse...
CLASS TBrowse FROM xBrowse
PUBLISHED:
PROPERTY lAllowColSizing INIT .F. //NO Canvi de Tamany Columnes
PROPERTY lRecordSelector INIT .F. //Sel.lecció de tota la línia
PROPERTY nColDividerStyle INIT blLIGHTGRAY
PROPERTY nRowDividerStyle INIT blLIGHTGRAY
PUBLIC:
METHOD OnRClick( oSender, nFlags, nRow, nCol )
END CLASS
//---------------------------------------------------------- --------------
METHOD OnRClick( oSender, nFlags, nRow, nCol ) CLASS TBrowse
LOCAL nPos
IF ( nPos := ::MouseRowPos( nRow ) ) != ::nRowSel
::nKeyNo += ::OnSkip( nPos - ::nRowSel )
::nRowSel := nPos
::Refresh()
::OnChange()
ENDIF
RETURN Nil
Creo que no entiendo bien el tema de méthodos de una Clase derivada...
En cambio... cuando lo que hago es según lo que me apuntaste en otro post, desde un Form...
//---------------------------------------------------------- --------------------
METHOD FormShow( oSender ) CLASS TForm1
::oArrayBrowse1:OnRClick := "xDBBrowse1RClick"
RETURN Nil
//---------------------------------------------------------- --------------------
METHOD xDBBrowse1RClick( oSender, nFlags, nRow, nCol ) CLASS TForm1
LOCAL nPos
WITH OBJECT ::oArrayBrowse1
IF ( nPos := :MouseRowPos( nRow ) ) != :nRowSel
:nKeyNo += :OnSkip( nPos - :nRowSel )
:nRowSel := nPos
:Refresh()
:OnChange()
ENDIF
END
RETURN Nil
Esto si funciona correctamente !!!
Gracias.
Un Saludo,
Xevi.
--
No se que estoy haciendo mal, pero no me sale el derivar un método de la clase TBrowse
Esta es la clase que derivo, y si bien me funcionan las propiedades, al querer tener un mismo método en la clase, eso no me funciona bien...
Pretendo que cuando se pulse el botón derecho, se cambie de registro el Browse...
CLASS TBrowse FROM xBrowse
PUBLISHED:
PROPERTY lAllowColSizing INIT .F. //NO Canvi de Tamany Columnes
PROPERTY lRecordSelector INIT .F. //Sel.lecció de tota la línia
PROPERTY nColDividerStyle INIT blLIGHTGRAY
PROPERTY nRowDividerStyle INIT blLIGHTGRAY
PUBLIC:
METHOD OnRClick( oSender, nFlags, nRow, nCol )
END CLASS
//---------------------------------------------------------- --------------
METHOD OnRClick( oSender, nFlags, nRow, nCol ) CLASS TBrowse
LOCAL nPos
IF ( nPos := ::MouseRowPos( nRow ) ) != ::nRowSel
::nKeyNo += ::OnSkip( nPos - ::nRowSel )
::nRowSel := nPos
::Refresh()
::OnChange()
ENDIF
RETURN Nil
Creo que no entiendo bien el tema de méthodos de una Clase derivada...
En cambio... cuando lo que hago es según lo que me apuntaste en otro post, desde un Form...
//---------------------------------------------------------- --------------------
METHOD FormShow( oSender ) CLASS TForm1
::oArrayBrowse1:OnRClick := "xDBBrowse1RClick"
RETURN Nil
//---------------------------------------------------------- --------------------
METHOD xDBBrowse1RClick( oSender, nFlags, nRow, nCol ) CLASS TForm1
LOCAL nPos
WITH OBJECT ::oArrayBrowse1
IF ( nPos := :MouseRowPos( nRow ) ) != :nRowSel
:nKeyNo += :OnSkip( nPos - :nRowSel )
:nRowSel := nPos
:Refresh()
:OnChange()
ENDIF
END
RETURN Nil
Esto si funciona correctamente !!!
Gracias.
Un Saludo,
Xevi.
--
Derivar de una Clase... TBrowse.
Xevi,
el problema viene de que OnRClick no es un método, sino un evento.
Originalmente, el motor de objetos soporta miembros de tipo DATA, CLASSDATA
y METHOD, pero Xailer lo amplía con dos tipos más: PROPERTY y EVENT. Y no se
pueden mezclar. Lo que quiero decir es que si una clase tiene un miembro
concreto de un tipo, en una clase derivada tiene que seguir siendo de ese
tipo y no otro.
En el caso que planteas, la solución es sobreescribir el método
WMRButtonDown:
METHOD WMRButtonDown( nWParam, nLParam ) CLASS TBrowse
// Nota: a raiz de un mensaje anterior tuyo ya añadimos este metodo
::SelectCellFromPoint( LoWord( nLParam ), HiWord( nLParam ) )
RETURN Super:WMRButtonDown( nWParam, nLParam )
--
Un saludo,
José F. Giménez
el problema viene de que OnRClick no es un método, sino un evento.
Originalmente, el motor de objetos soporta miembros de tipo DATA, CLASSDATA
y METHOD, pero Xailer lo amplía con dos tipos más: PROPERTY y EVENT. Y no se
pueden mezclar. Lo que quiero decir es que si una clase tiene un miembro
concreto de un tipo, en una clase derivada tiene que seguir siendo de ese
tipo y no otro.
En el caso que planteas, la solución es sobreescribir el método
WMRButtonDown:
METHOD WMRButtonDown( nWParam, nLParam ) CLASS TBrowse
// Nota: a raiz de un mensaje anterior tuyo ya añadimos este metodo
::SelectCellFromPoint( LoWord( nLParam ), HiWord( nLParam ) )
RETURN Super:WMRButtonDown( nWParam, nLParam )
--
Un saludo,
José F. Giménez
- ignacio
- Site Admin
- Mensajes: 9469
- Registrado: Lun Abr 06, 2015 8:00 pm
- Ubicación: Madrid, Spain
- Contactar:
Derivar de una Clase... TBrowse.
Xevi,
En la próxima versión estará operativo con un nuevo metodo SelectCellFromPoint().
No obstante lo estas haciendo mal. Lo que se sobre carga no es el evento, ya que este simplemente se dispara, pero no tiene ningún código asociado a él. Lo que hay que sobrecargar es el método original del API, en tu caso:
METHOD WMRButtonDown( nWParam, nLParam )
Y sería algo así:
METHOD WMRButtonDown( nWParam, nLParam ) CLASS XBrowse
local nFlags, nX, nY, xRet
nFlags := nWParam
nX := LoWord( nLParam )
nY := HiWord( nLParam )
xRet := Super:WMRButtonDown( nWParam, nLParam )
// Y aquí va tu codigo
RETURN xRet
"Xevi" <xevicomas@terra.es> escribió en el mensaje news:[email=42c568d0@ozsrvnegro.ozlan.local...]42c568d0@ozsrvnegro.ozlan.local...[/email]
Hola,
No se que estoy haciendo mal, pero no me sale el derivar un método de la clase TBrowse
Esta es la clase que derivo, y si bien me funcionan las propiedades, al querer tener un mismo método en la clase, eso no me funciona bien...
Pretendo que cuando se pulse el botón derecho, se cambie de registro el Browse...
CLASS TBrowse FROM xBrowse
PUBLISHED:
PROPERTY lAllowColSizing INIT .F. //NO Canvi de Tamany Columnes
PROPERTY lRecordSelector INIT .F. //Sel.lecció de tota la línia
PROPERTY nColDividerStyle INIT blLIGHTGRAY
PROPERTY nRowDividerStyle INIT blLIGHTGRAY
PUBLIC:
METHOD OnRClick( oSender, nFlags, nRow, nCol )
END CLASS
//---------------------------------------------------------- --------------
METHOD OnRClick( oSender, nFlags, nRow, nCol ) CLASS TBrowse
LOCAL nPos
IF ( nPos := ::MouseRowPos( nRow ) ) != ::nRowSel
::nKeyNo += ::OnSkip( nPos - ::nRowSel )
::nRowSel := nPos
::Refresh()
::OnChange()
ENDIF
RETURN Nil
Creo que no entiendo bien el tema de méthodos de una Clase derivada...
En cambio... cuando lo que hago es según lo que me apuntaste en otro post, desde un Form...
//---------------------------------------------------------- --------------------
METHOD FormShow( oSender ) CLASS TForm1
::oArrayBrowse1:OnRClick := "xDBBrowse1RClick"
RETURN Nil
//---------------------------------------------------------- --------------------
METHOD xDBBrowse1RClick( oSender, nFlags, nRow, nCol ) CLASS TForm1
LOCAL nPos
WITH OBJECT ::oArrayBrowse1
IF ( nPos := :MouseRowPos( nRow ) ) != :nRowSel
:nKeyNo += :OnSkip( nPos - :nRowSel )
:nRowSel := nPos
:Refresh()
:OnChange()
ENDIF
END
RETURN Nil
Esto si funciona correctamente !!!
Gracias.
Un Saludo,
Xevi.
--
En la próxima versión estará operativo con un nuevo metodo SelectCellFromPoint().
No obstante lo estas haciendo mal. Lo que se sobre carga no es el evento, ya que este simplemente se dispara, pero no tiene ningún código asociado a él. Lo que hay que sobrecargar es el método original del API, en tu caso:
METHOD WMRButtonDown( nWParam, nLParam )
Y sería algo así:
METHOD WMRButtonDown( nWParam, nLParam ) CLASS XBrowse
local nFlags, nX, nY, xRet
nFlags := nWParam
nX := LoWord( nLParam )
nY := HiWord( nLParam )
xRet := Super:WMRButtonDown( nWParam, nLParam )
// Y aquí va tu codigo
RETURN xRet
"Xevi" <xevicomas@terra.es> escribió en el mensaje news:[email=42c568d0@ozsrvnegro.ozlan.local...]42c568d0@ozsrvnegro.ozlan.local...[/email]
Hola,
No se que estoy haciendo mal, pero no me sale el derivar un método de la clase TBrowse
Esta es la clase que derivo, y si bien me funcionan las propiedades, al querer tener un mismo método en la clase, eso no me funciona bien...
Pretendo que cuando se pulse el botón derecho, se cambie de registro el Browse...
CLASS TBrowse FROM xBrowse
PUBLISHED:
PROPERTY lAllowColSizing INIT .F. //NO Canvi de Tamany Columnes
PROPERTY lRecordSelector INIT .F. //Sel.lecció de tota la línia
PROPERTY nColDividerStyle INIT blLIGHTGRAY
PROPERTY nRowDividerStyle INIT blLIGHTGRAY
PUBLIC:
METHOD OnRClick( oSender, nFlags, nRow, nCol )
END CLASS
//---------------------------------------------------------- --------------
METHOD OnRClick( oSender, nFlags, nRow, nCol ) CLASS TBrowse
LOCAL nPos
IF ( nPos := ::MouseRowPos( nRow ) ) != ::nRowSel
::nKeyNo += ::OnSkip( nPos - ::nRowSel )
::nRowSel := nPos
::Refresh()
::OnChange()
ENDIF
RETURN Nil
Creo que no entiendo bien el tema de méthodos de una Clase derivada...
En cambio... cuando lo que hago es según lo que me apuntaste en otro post, desde un Form...
//---------------------------------------------------------- --------------------
METHOD FormShow( oSender ) CLASS TForm1
::oArrayBrowse1:OnRClick := "xDBBrowse1RClick"
RETURN Nil
//---------------------------------------------------------- --------------------
METHOD xDBBrowse1RClick( oSender, nFlags, nRow, nCol ) CLASS TForm1
LOCAL nPos
WITH OBJECT ::oArrayBrowse1
IF ( nPos := :MouseRowPos( nRow ) ) != :nRowSel
:nKeyNo += :OnSkip( nPos - :nRowSel )
:nRowSel := nPos
:Refresh()
:OnChange()
ENDIF
END
RETURN Nil
Esto si funciona correctamente !!!
Gracias.
Un Saludo,
Xevi.
--
Ignacio Ortiz de Zúñiga
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
Derivar de una Clase... TBrowse.
Gracias, José e Ignacio...
"Ignacio Ortiz de Zúñiga" <InvalidAccount@ozs.com> escribió en el mensaje news:42c57176$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
Xevi,
En la próxima versión estará operativo con un nuevo metodo SelectCellFromPoint().
No obstante lo estas haciendo mal. Lo que se sobre carga no es el evento, ya que este simplemente se dispara, pero no tiene ningún código asociado a él. Lo que hay que sobrecargar es el método original del API, en tu caso:
METHOD WMRButtonDown( nWParam, nLParam )
Y sería algo así:
METHOD WMRButtonDown( nWParam, nLParam ) CLASS XBrowse
local nFlags, nX, nY, xRet
nFlags := nWParam
nX := LoWord( nLParam )
nY := HiWord( nLParam )
xRet := Super:WMRButtonDown( nWParam, nLParam )
// Y aquí va tu codigo
RETURN xRet
"Xevi" <xevicomas@terra.es> escribió en el mensaje news:[email=42c568d0@ozsrvnegro.ozlan.local...]42c568d0@ozsrvnegro.ozlan.local...[/email]
Hola,
No se que estoy haciendo mal, pero no me sale el derivar un método de la clase TBrowse
Esta es la clase que derivo, y si bien me funcionan las propiedades, al querer tener un mismo método en la clase, eso no me funciona bien...
Pretendo que cuando se pulse el botón derecho, se cambie de registro el Browse...
CLASS TBrowse FROM xBrowse
PUBLISHED:
PROPERTY lAllowColSizing INIT .F. //NO Canvi de Tamany Columnes
PROPERTY lRecordSelector INIT .F. //Sel.lecció de tota la línia
PROPERTY nColDividerStyle INIT blLIGHTGRAY
PROPERTY nRowDividerStyle INIT blLIGHTGRAY
PUBLIC:
METHOD OnRClick( oSender, nFlags, nRow, nCol )
END CLASS
//---------------------------------------------------------- --------------
METHOD OnRClick( oSender, nFlags, nRow, nCol ) CLASS TBrowse
LOCAL nPos
IF ( nPos := ::MouseRowPos( nRow ) ) != ::nRowSel
::nKeyNo += ::OnSkip( nPos - ::nRowSel )
::nRowSel := nPos
::Refresh()
::OnChange()
ENDIF
RETURN Nil
Creo que no entiendo bien el tema de méthodos de una Clase derivada...
En cambio... cuando lo que hago es según lo que me apuntaste en otro post, desde un Form...
//---------------------------------------------------------- --------------------
METHOD FormShow( oSender ) CLASS TForm1
::oArrayBrowse1:OnRClick := "xDBBrowse1RClick"
RETURN Nil
//---------------------------------------------------------- --------------------
METHOD xDBBrowse1RClick( oSender, nFlags, nRow, nCol ) CLASS TForm1
LOCAL nPos
WITH OBJECT ::oArrayBrowse1
IF ( nPos := :MouseRowPos( nRow ) ) != :nRowSel
:nKeyNo += :OnSkip( nPos - :nRowSel )
:nRowSel := nPos
:Refresh()
:OnChange()
ENDIF
END
RETURN Nil
Esto si funciona correctamente !!!
Gracias.
Un Saludo,
Xevi.
--
"Ignacio Ortiz de Zúñiga" <InvalidAccount@ozs.com> escribió en el mensaje news:42c57176$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
Xevi,
En la próxima versión estará operativo con un nuevo metodo SelectCellFromPoint().
No obstante lo estas haciendo mal. Lo que se sobre carga no es el evento, ya que este simplemente se dispara, pero no tiene ningún código asociado a él. Lo que hay que sobrecargar es el método original del API, en tu caso:
METHOD WMRButtonDown( nWParam, nLParam )
Y sería algo así:
METHOD WMRButtonDown( nWParam, nLParam ) CLASS XBrowse
local nFlags, nX, nY, xRet
nFlags := nWParam
nX := LoWord( nLParam )
nY := HiWord( nLParam )
xRet := Super:WMRButtonDown( nWParam, nLParam )
// Y aquí va tu codigo
RETURN xRet
"Xevi" <xevicomas@terra.es> escribió en el mensaje news:[email=42c568d0@ozsrvnegro.ozlan.local...]42c568d0@ozsrvnegro.ozlan.local...[/email]
Hola,
No se que estoy haciendo mal, pero no me sale el derivar un método de la clase TBrowse
Esta es la clase que derivo, y si bien me funcionan las propiedades, al querer tener un mismo método en la clase, eso no me funciona bien...
Pretendo que cuando se pulse el botón derecho, se cambie de registro el Browse...
CLASS TBrowse FROM xBrowse
PUBLISHED:
PROPERTY lAllowColSizing INIT .F. //NO Canvi de Tamany Columnes
PROPERTY lRecordSelector INIT .F. //Sel.lecció de tota la línia
PROPERTY nColDividerStyle INIT blLIGHTGRAY
PROPERTY nRowDividerStyle INIT blLIGHTGRAY
PUBLIC:
METHOD OnRClick( oSender, nFlags, nRow, nCol )
END CLASS
//---------------------------------------------------------- --------------
METHOD OnRClick( oSender, nFlags, nRow, nCol ) CLASS TBrowse
LOCAL nPos
IF ( nPos := ::MouseRowPos( nRow ) ) != ::nRowSel
::nKeyNo += ::OnSkip( nPos - ::nRowSel )
::nRowSel := nPos
::Refresh()
::OnChange()
ENDIF
RETURN Nil
Creo que no entiendo bien el tema de méthodos de una Clase derivada...
En cambio... cuando lo que hago es según lo que me apuntaste en otro post, desde un Form...
//---------------------------------------------------------- --------------------
METHOD FormShow( oSender ) CLASS TForm1
::oArrayBrowse1:OnRClick := "xDBBrowse1RClick"
RETURN Nil
//---------------------------------------------------------- --------------------
METHOD xDBBrowse1RClick( oSender, nFlags, nRow, nCol ) CLASS TForm1
LOCAL nPos
WITH OBJECT ::oArrayBrowse1
IF ( nPos := :MouseRowPos( nRow ) ) != :nRowSel
:nKeyNo += :OnSkip( nPos - :nRowSel )
:nRowSel := nPos
:Refresh()
:OnChange()
ENDIF
END
RETURN Nil
Esto si funciona correctamente !!!
Gracias.
Un Saludo,
Xevi.
--
- ignacio
- Site Admin
- Mensajes: 9469
- Registrado: Lun Abr 06, 2015 8:00 pm
- Ubicación: Madrid, Spain
- Contactar:
Derivar de una Clase... TBrowse.
Xevi,
Por cierto, he pensado en ampliar los valores posible de oColumn:nAlignment, a uno mas. Actualmente son:
VALUES taLEFT, taRIGHT, taCENTER
y añadiría uno nuevo para datos a la derecha header centrado: taRIGHTHEADERCENTER
Me gusta más esta forma que tener otra propiedad más en la columna.
¿Crees que haría falta algún valor más posible?
Gracias
"Xevi" <xevicomas@terra.es> escribió en el mensaje news:[email=42c5731e@ozsrvnegro.ozlan.local...]42c5731e@ozsrvnegro.ozlan.local...[/email]
Gracias, José e Ignacio...
"Ignacio Ortiz de Zúñiga" <InvalidAccount@ozs.com> escribió en el mensaje news:42c57176$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
Xevi,
En la próxima versión estará operativo con un nuevo metodo SelectCellFromPoint().
No obstante lo estas haciendo mal. Lo que se sobre carga no es el evento, ya que este simplemente se dispara, pero no tiene ningún código asociado a él. Lo que hay que sobrecargar es el método original del API, en tu caso:
METHOD WMRButtonDown( nWParam, nLParam )
Y sería algo así:
METHOD WMRButtonDown( nWParam, nLParam ) CLASS XBrowse
local nFlags, nX, nY, xRet
nFlags := nWParam
nX := LoWord( nLParam )
nY := HiWord( nLParam )
xRet := Super:WMRButtonDown( nWParam, nLParam )
// Y aquí va tu codigo
RETURN xRet
"Xevi" <xevicomas@terra.es> escribió en el mensaje news:[email=42c568d0@ozsrvnegro.ozlan.local...]42c568d0@ozsrvnegro.ozlan.local...[/email]
Hola,
No se que estoy haciendo mal, pero no me sale el derivar un método de la clase TBrowse
Esta es la clase que derivo, y si bien me funcionan las propiedades, al querer tener un mismo método en la clase, eso no me funciona bien...
Pretendo que cuando se pulse el botón derecho, se cambie de registro el Browse...
CLASS TBrowse FROM xBrowse
PUBLISHED:
PROPERTY lAllowColSizing INIT .F. //NO Canvi de Tamany Columnes
PROPERTY lRecordSelector INIT .F. //Sel.lecció de tota la línia
PROPERTY nColDividerStyle INIT blLIGHTGRAY
PROPERTY nRowDividerStyle INIT blLIGHTGRAY
PUBLIC:
METHOD OnRClick( oSender, nFlags, nRow, nCol )
END CLASS
//---------------------------------------------------------- --------------
METHOD OnRClick( oSender, nFlags, nRow, nCol ) CLASS TBrowse
LOCAL nPos
IF ( nPos := ::MouseRowPos( nRow ) ) != ::nRowSel
::nKeyNo += ::OnSkip( nPos - ::nRowSel )
::nRowSel := nPos
::Refresh()
::OnChange()
ENDIF
RETURN Nil
Creo que no entiendo bien el tema de méthodos de una Clase derivada...
En cambio... cuando lo que hago es según lo que me apuntaste en otro post, desde un Form...
//---------------------------------------------------------- --------------------
METHOD FormShow( oSender ) CLASS TForm1
::oArrayBrowse1:OnRClick := "xDBBrowse1RClick"
RETURN Nil
//---------------------------------------------------------- --------------------
METHOD xDBBrowse1RClick( oSender, nFlags, nRow, nCol ) CLASS TForm1
LOCAL nPos
WITH OBJECT ::oArrayBrowse1
IF ( nPos := :MouseRowPos( nRow ) ) != :nRowSel
:nKeyNo += :OnSkip( nPos - :nRowSel )
:nRowSel := nPos
:Refresh()
:OnChange()
ENDIF
END
RETURN Nil
Esto si funciona correctamente !!!
Gracias.
Un Saludo,
Xevi.
--
Por cierto, he pensado en ampliar los valores posible de oColumn:nAlignment, a uno mas. Actualmente son:
VALUES taLEFT, taRIGHT, taCENTER
y añadiría uno nuevo para datos a la derecha header centrado: taRIGHTHEADERCENTER
Me gusta más esta forma que tener otra propiedad más en la columna.
¿Crees que haría falta algún valor más posible?
Gracias
"Xevi" <xevicomas@terra.es> escribió en el mensaje news:[email=42c5731e@ozsrvnegro.ozlan.local...]42c5731e@ozsrvnegro.ozlan.local...[/email]
Gracias, José e Ignacio...
"Ignacio Ortiz de Zúñiga" <InvalidAccount@ozs.com> escribió en el mensaje news:42c57176$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
Xevi,
En la próxima versión estará operativo con un nuevo metodo SelectCellFromPoint().
No obstante lo estas haciendo mal. Lo que se sobre carga no es el evento, ya que este simplemente se dispara, pero no tiene ningún código asociado a él. Lo que hay que sobrecargar es el método original del API, en tu caso:
METHOD WMRButtonDown( nWParam, nLParam )
Y sería algo así:
METHOD WMRButtonDown( nWParam, nLParam ) CLASS XBrowse
local nFlags, nX, nY, xRet
nFlags := nWParam
nX := LoWord( nLParam )
nY := HiWord( nLParam )
xRet := Super:WMRButtonDown( nWParam, nLParam )
// Y aquí va tu codigo
RETURN xRet
"Xevi" <xevicomas@terra.es> escribió en el mensaje news:[email=42c568d0@ozsrvnegro.ozlan.local...]42c568d0@ozsrvnegro.ozlan.local...[/email]
Hola,
No se que estoy haciendo mal, pero no me sale el derivar un método de la clase TBrowse
Esta es la clase que derivo, y si bien me funcionan las propiedades, al querer tener un mismo método en la clase, eso no me funciona bien...
Pretendo que cuando se pulse el botón derecho, se cambie de registro el Browse...
CLASS TBrowse FROM xBrowse
PUBLISHED:
PROPERTY lAllowColSizing INIT .F. //NO Canvi de Tamany Columnes
PROPERTY lRecordSelector INIT .F. //Sel.lecció de tota la línia
PROPERTY nColDividerStyle INIT blLIGHTGRAY
PROPERTY nRowDividerStyle INIT blLIGHTGRAY
PUBLIC:
METHOD OnRClick( oSender, nFlags, nRow, nCol )
END CLASS
//---------------------------------------------------------- --------------
METHOD OnRClick( oSender, nFlags, nRow, nCol ) CLASS TBrowse
LOCAL nPos
IF ( nPos := ::MouseRowPos( nRow ) ) != ::nRowSel
::nKeyNo += ::OnSkip( nPos - ::nRowSel )
::nRowSel := nPos
::Refresh()
::OnChange()
ENDIF
RETURN Nil
Creo que no entiendo bien el tema de méthodos de una Clase derivada...
En cambio... cuando lo que hago es según lo que me apuntaste en otro post, desde un Form...
//---------------------------------------------------------- --------------------
METHOD FormShow( oSender ) CLASS TForm1
::oArrayBrowse1:OnRClick := "xDBBrowse1RClick"
RETURN Nil
//---------------------------------------------------------- --------------------
METHOD xDBBrowse1RClick( oSender, nFlags, nRow, nCol ) CLASS TForm1
LOCAL nPos
WITH OBJECT ::oArrayBrowse1
IF ( nPos := :MouseRowPos( nRow ) ) != :nRowSel
:nKeyNo += :OnSkip( nPos - :nRowSel )
:nRowSel := nPos
:Refresh()
:OnChange()
ENDIF
END
RETURN Nil
Esto si funciona correctamente !!!
Gracias.
Un Saludo,
Xevi.
--
Ignacio Ortiz de Zúñiga
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
Derivar de una Clase... TBrowse.
Ignacio,
Creo que si puedes incorporar estas "Values" para oColumn:nAlignment, sería perfecto !!!
taLEFT //Columna y Header Left
taLEFTHEADERCENTER //Columna Left Header Center
taLEFTHEADERRIGHT //Columna Left Header Right
taRIGHT //Columna y Header Right
taRIGHTHEADERCENTER //Columna Right Header Center
taRIGHTHEADERLEFT //Columna Right Header Left
taCENTER //Columna y Header Center
taCENTERHEADERRIGHT //Columna Center Header Right
taCENTERHEADERLEFT //Columna Center Header Left
Un Saludo,
Xevi.
"Ignacio Ortiz de Zúñiga" <InvalidAccount@ozs.com> escribió en el mensaje
news:42c57e0b$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
Xevi,
Por cierto, he pensado en ampliar los valores posible de oColumn:nAlignment, a uno mas. Actualmente son:
VALUES taLEFT, taRIGHT, taCENTER
y añadiría uno nuevo para datos a la derecha header centrado: taRIGHTHEADERCENTER
Me gusta más esta forma que tener otra propiedad más en la columna.
¿Crees que haría falta algún valor más posible?
Gracias
"Xevi" <xevicomas@terra.es> escribió en el mensaje news:[email=42c5731e@ozsrvnegro.ozlan.local...]42c5731e@ozsrvnegro.ozlan.local...[/email]
Gracias, José e Ignacio...
"Ignacio Ortiz de Zúñiga" <InvalidAccount@ozs.com> escribió en el mensaje news:42c57176$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
Xevi,
En la próxima versión estará operativo con un nuevo metodo SelectCellFromPoint().
No obstante lo estas haciendo mal. Lo que se sobre carga no es el evento, ya que este simplemente se dispara, pero no tiene ningún código asociado a él. Lo que hay que sobrecargar es el método original del API, en tu caso:
METHOD WMRButtonDown( nWParam, nLParam )
Y sería algo así:
METHOD WMRButtonDown( nWParam, nLParam ) CLASS XBrowse
local nFlags, nX, nY, xRet
nFlags := nWParam
nX := LoWord( nLParam )
nY := HiWord( nLParam )
xRet := Super:WMRButtonDown( nWParam, nLParam )
// Y aquí va tu codigo
RETURN xRet
"Xevi" <xevicomas@terra.es> escribió en el mensaje news:[email=42c568d0@ozsrvnegro.ozlan.local...]42c568d0@ozsrvnegro.ozlan.local...[/email]
Hola,
No se que estoy haciendo mal, pero no me sale el derivar un método de la clase TBrowse
Esta es la clase que derivo, y si bien me funcionan las propiedades, al querer tener un mismo método en la clase, eso no me funciona bien...
Pretendo que cuando se pulse el botón derecho, se cambie de registro el Browse...
CLASS TBrowse FROM xBrowse
PUBLISHED:
PROPERTY lAllowColSizing INIT .F. //NO Canvi de Tamany Columnes
PROPERTY lRecordSelector INIT .F. //Sel.lecció de tota la línia
PROPERTY nColDividerStyle INIT blLIGHTGRAY
PROPERTY nRowDividerStyle INIT blLIGHTGRAY
PUBLIC:
METHOD OnRClick( oSender, nFlags, nRow, nCol )
END CLASS
//---------------------------------------------------------- --------------
METHOD OnRClick( oSender, nFlags, nRow, nCol ) CLASS TBrowse
LOCAL nPos
IF ( nPos := ::MouseRowPos( nRow ) ) != ::nRowSel
::nKeyNo += ::OnSkip( nPos - ::nRowSel )
::nRowSel := nPos
::Refresh()
::OnChange()
ENDIF
RETURN Nil
Creo que no entiendo bien el tema de méthodos de una Clase derivada...
En cambio... cuando lo que hago es según lo que me apuntaste en otro post, desde un Form...
//---------------------------------------------------------- --------------------
METHOD FormShow( oSender ) CLASS TForm1
::oArrayBrowse1:OnRClick := "xDBBrowse1RClick"
RETURN Nil
//---------------------------------------------------------- --------------------
METHOD xDBBrowse1RClick( oSender, nFlags, nRow, nCol ) CLASS TForm1
LOCAL nPos
WITH OBJECT ::oArrayBrowse1
IF ( nPos := :MouseRowPos( nRow ) ) != :nRowSel
:nKeyNo += :OnSkip( nPos - :nRowSel )
:nRowSel := nPos
:Refresh()
:OnChange()
ENDIF
END
RETURN Nil
Esto si funciona correctamente !!!
Gracias.
Un Saludo,
Xevi.
--
Creo que si puedes incorporar estas "Values" para oColumn:nAlignment, sería perfecto !!!
taLEFT //Columna y Header Left
taLEFTHEADERCENTER //Columna Left Header Center
taLEFTHEADERRIGHT //Columna Left Header Right
taRIGHT //Columna y Header Right
taRIGHTHEADERCENTER //Columna Right Header Center
taRIGHTHEADERLEFT //Columna Right Header Left
taCENTER //Columna y Header Center
taCENTERHEADERRIGHT //Columna Center Header Right
taCENTERHEADERLEFT //Columna Center Header Left
Un Saludo,
Xevi.
"Ignacio Ortiz de Zúñiga" <InvalidAccount@ozs.com> escribió en el mensaje
news:42c57e0b$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
Xevi,
Por cierto, he pensado en ampliar los valores posible de oColumn:nAlignment, a uno mas. Actualmente son:
VALUES taLEFT, taRIGHT, taCENTER
y añadiría uno nuevo para datos a la derecha header centrado: taRIGHTHEADERCENTER
Me gusta más esta forma que tener otra propiedad más en la columna.
¿Crees que haría falta algún valor más posible?
Gracias
"Xevi" <xevicomas@terra.es> escribió en el mensaje news:[email=42c5731e@ozsrvnegro.ozlan.local...]42c5731e@ozsrvnegro.ozlan.local...[/email]
Gracias, José e Ignacio...
"Ignacio Ortiz de Zúñiga" <InvalidAccount@ozs.com> escribió en el mensaje news:42c57176$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
Xevi,
En la próxima versión estará operativo con un nuevo metodo SelectCellFromPoint().
No obstante lo estas haciendo mal. Lo que se sobre carga no es el evento, ya que este simplemente se dispara, pero no tiene ningún código asociado a él. Lo que hay que sobrecargar es el método original del API, en tu caso:
METHOD WMRButtonDown( nWParam, nLParam )
Y sería algo así:
METHOD WMRButtonDown( nWParam, nLParam ) CLASS XBrowse
local nFlags, nX, nY, xRet
nFlags := nWParam
nX := LoWord( nLParam )
nY := HiWord( nLParam )
xRet := Super:WMRButtonDown( nWParam, nLParam )
// Y aquí va tu codigo
RETURN xRet
"Xevi" <xevicomas@terra.es> escribió en el mensaje news:[email=42c568d0@ozsrvnegro.ozlan.local...]42c568d0@ozsrvnegro.ozlan.local...[/email]
Hola,
No se que estoy haciendo mal, pero no me sale el derivar un método de la clase TBrowse
Esta es la clase que derivo, y si bien me funcionan las propiedades, al querer tener un mismo método en la clase, eso no me funciona bien...
Pretendo que cuando se pulse el botón derecho, se cambie de registro el Browse...
CLASS TBrowse FROM xBrowse
PUBLISHED:
PROPERTY lAllowColSizing INIT .F. //NO Canvi de Tamany Columnes
PROPERTY lRecordSelector INIT .F. //Sel.lecció de tota la línia
PROPERTY nColDividerStyle INIT blLIGHTGRAY
PROPERTY nRowDividerStyle INIT blLIGHTGRAY
PUBLIC:
METHOD OnRClick( oSender, nFlags, nRow, nCol )
END CLASS
//---------------------------------------------------------- --------------
METHOD OnRClick( oSender, nFlags, nRow, nCol ) CLASS TBrowse
LOCAL nPos
IF ( nPos := ::MouseRowPos( nRow ) ) != ::nRowSel
::nKeyNo += ::OnSkip( nPos - ::nRowSel )
::nRowSel := nPos
::Refresh()
::OnChange()
ENDIF
RETURN Nil
Creo que no entiendo bien el tema de méthodos de una Clase derivada...
En cambio... cuando lo que hago es según lo que me apuntaste en otro post, desde un Form...
//---------------------------------------------------------- --------------------
METHOD FormShow( oSender ) CLASS TForm1
::oArrayBrowse1:OnRClick := "xDBBrowse1RClick"
RETURN Nil
//---------------------------------------------------------- --------------------
METHOD xDBBrowse1RClick( oSender, nFlags, nRow, nCol ) CLASS TForm1
LOCAL nPos
WITH OBJECT ::oArrayBrowse1
IF ( nPos := :MouseRowPos( nRow ) ) != :nRowSel
:nKeyNo += :OnSkip( nPos - :nRowSel )
:nRowSel := nPos
:Refresh()
:OnChange()
ENDIF
END
RETURN Nil
Esto si funciona correctamente !!!
Gracias.
Un Saludo,
Xevi.
--
Derivar de una Clase... TBrowse.
Sigo derivando del TBrowse
Ahora pretendo que por defecto el Browse me muestre la barra Vertical SIEMPRE, pero que no me muestre la horizontal
CLASS TBrowse FROM xBrowse
PUBLISHED:
PROPERTY lAutoHScroll INIT .F.
PROPERTY lAutoVScroll INIT .F.
PROPERTY lVScroll INIT .T.
PROPERTY lHScroll INIT .F.
ENDCLASS
Bien, pues eso no funciona... no muestra la Scroll Vertical.
CLASS TBrowse FROM xBrowse
PUBLISHED:
PROPERTY lAutoHScroll INIT .F.
PROPERTY lAutoVScroll INIT .F.
PROPERTY lVScroll INIT .T.
PROPERTY lHScroll INIT .F.
ENDCLASS
Por probar con la horizontal... el mismo problema...
Esto tampoco funciona, no muestra la Scroll Horizontal.
Desde programa, en OnCreate del Browse, si se ponen estas propiedades, si funciona correctamente.
El problema está cuando pretendo derivar de la clase TBrowse.
Un Saludo,
Xevi.
"Xevi" <xevicomas@terra.es> escribió en el mensaje news:[email=42c568d0@ozsrvnegro.ozlan.local...]42c568d0@ozsrvnegro.ozlan.local...[/email]
Hola,
No se que estoy haciendo mal, pero no me sale el derivar un método de la clase TBrowse
Esta es la clase que derivo, y si bien me funcionan las propiedades, al querer tener un mismo método en la clase, eso no me funciona bien...
Pretendo que cuando se pulse el botón derecho, se cambie de registro el Browse...
CLASS TBrowse FROM xBrowse
PUBLISHED:
PROPERTY lAllowColSizing INIT .F. //NO Canvi de Tamany Columnes
PROPERTY lRecordSelector INIT .F. //Sel.lecció de tota la línia
PROPERTY nColDividerStyle INIT blLIGHTGRAY
PROPERTY nRowDividerStyle INIT blLIGHTGRAY
PUBLIC:
METHOD OnRClick( oSender, nFlags, nRow, nCol )
END CLASS
//---------------------------------------------------------- --------------
METHOD OnRClick( oSender, nFlags, nRow, nCol ) CLASS TBrowse
LOCAL nPos
IF ( nPos := ::MouseRowPos( nRow ) ) != ::nRowSel
::nKeyNo += ::OnSkip( nPos - ::nRowSel )
::nRowSel := nPos
::Refresh()
::OnChange()
ENDIF
RETURN Nil
Creo que no entiendo bien el tema de méthodos de una Clase derivada...
En cambio... cuando lo que hago es según lo que me apuntaste en otro post, desde un Form...
//---------------------------------------------------------- --------------------
METHOD FormShow( oSender ) CLASS TForm1
::oArrayBrowse1:OnRClick := "xDBBrowse1RClick"
RETURN Nil
//---------------------------------------------------------- --------------------
METHOD xDBBrowse1RClick( oSender, nFlags, nRow, nCol ) CLASS TForm1
LOCAL nPos
WITH OBJECT ::oArrayBrowse1
IF ( nPos := :MouseRowPos( nRow ) ) != :nRowSel
:nKeyNo += :OnSkip( nPos - :nRowSel )
:nRowSel := nPos
:Refresh()
:OnChange()
ENDIF
END
RETURN Nil
Esto si funciona correctamente !!!
Gracias.
Un Saludo,
Xevi.
--
Ahora pretendo que por defecto el Browse me muestre la barra Vertical SIEMPRE, pero que no me muestre la horizontal
CLASS TBrowse FROM xBrowse
PUBLISHED:
PROPERTY lAutoHScroll INIT .F.
PROPERTY lAutoVScroll INIT .F.
PROPERTY lVScroll INIT .T.
PROPERTY lHScroll INIT .F.
ENDCLASS
Bien, pues eso no funciona... no muestra la Scroll Vertical.
CLASS TBrowse FROM xBrowse
PUBLISHED:
PROPERTY lAutoHScroll INIT .F.
PROPERTY lAutoVScroll INIT .F.
PROPERTY lVScroll INIT .T.
PROPERTY lHScroll INIT .F.
ENDCLASS
Por probar con la horizontal... el mismo problema...
Esto tampoco funciona, no muestra la Scroll Horizontal.
Desde programa, en OnCreate del Browse, si se ponen estas propiedades, si funciona correctamente.
El problema está cuando pretendo derivar de la clase TBrowse.
Un Saludo,
Xevi.
"Xevi" <xevicomas@terra.es> escribió en el mensaje news:[email=42c568d0@ozsrvnegro.ozlan.local...]42c568d0@ozsrvnegro.ozlan.local...[/email]
Hola,
No se que estoy haciendo mal, pero no me sale el derivar un método de la clase TBrowse
Esta es la clase que derivo, y si bien me funcionan las propiedades, al querer tener un mismo método en la clase, eso no me funciona bien...
Pretendo que cuando se pulse el botón derecho, se cambie de registro el Browse...
CLASS TBrowse FROM xBrowse
PUBLISHED:
PROPERTY lAllowColSizing INIT .F. //NO Canvi de Tamany Columnes
PROPERTY lRecordSelector INIT .F. //Sel.lecció de tota la línia
PROPERTY nColDividerStyle INIT blLIGHTGRAY
PROPERTY nRowDividerStyle INIT blLIGHTGRAY
PUBLIC:
METHOD OnRClick( oSender, nFlags, nRow, nCol )
END CLASS
//---------------------------------------------------------- --------------
METHOD OnRClick( oSender, nFlags, nRow, nCol ) CLASS TBrowse
LOCAL nPos
IF ( nPos := ::MouseRowPos( nRow ) ) != ::nRowSel
::nKeyNo += ::OnSkip( nPos - ::nRowSel )
::nRowSel := nPos
::Refresh()
::OnChange()
ENDIF
RETURN Nil
Creo que no entiendo bien el tema de méthodos de una Clase derivada...
En cambio... cuando lo que hago es según lo que me apuntaste en otro post, desde un Form...
//---------------------------------------------------------- --------------------
METHOD FormShow( oSender ) CLASS TForm1
::oArrayBrowse1:OnRClick := "xDBBrowse1RClick"
RETURN Nil
//---------------------------------------------------------- --------------------
METHOD xDBBrowse1RClick( oSender, nFlags, nRow, nCol ) CLASS TForm1
LOCAL nPos
WITH OBJECT ::oArrayBrowse1
IF ( nPos := :MouseRowPos( nRow ) ) != :nRowSel
:nKeyNo += :OnSkip( nPos - :nRowSel )
:nRowSel := nPos
:Refresh()
:OnChange()
ENDIF
END
RETURN Nil
Esto si funciona correctamente !!!
Gracias.
Un Saludo,
Xevi.
--
Derivar de una Clase... TBrowse.
Persiste error al derivar...
CLASS TBrowse FROM xBrowse
PUBLISHED:
PROPERTY lAutoHScroll INIT .F.
PROPERTY lAutoVScroll INIT .F.
PROPERTY lVScroll INIT .T.
PROPERTY lHScroll INIT .F.
ENDCLASS
La barra Vertical no se visualiza aunque fuerce lVScroll a .T.
Para que se fuerce la barra Vertical, tengo que poner oSender:lVScroll := .T., en el método OnCreate del Browse.
La barra Horizontal si que funciona y coje el valor de lHScroll al derivar de xBrowse.
Un Saludo,
Xevi.
"Xevi" <xevicomas@terra.es> escribió en el mensaje news:[email=431f2f2e@ozsrvnegro.ozlan.local...]431f2f2e@ozsrvnegro.ozlan.local...[/email]
Sigo derivando del TBrowse
Ahora pretendo que por defecto el Browse me muestre la barra Vertical SIEMPRE, pero que no me muestre la horizontal
CLASS TBrowse FROM xBrowse
PUBLISHED:
PROPERTY lAutoHScroll INIT .F.
PROPERTY lAutoVScroll INIT .F.
PROPERTY lVScroll INIT .T.
PROPERTY lHScroll INIT .F.
ENDCLASS
Bien, pues eso no funciona... no muestra la Scroll Vertical.
CLASS TBrowse FROM xBrowse
PUBLISHED:
PROPERTY lAutoHScroll INIT .F.
PROPERTY lAutoVScroll INIT .F.
PROPERTY lVScroll INIT .T.
PROPERTY lHScroll INIT .F.
ENDCLASS
Por probar con la horizontal... el mismo problema...
Esto tampoco funciona, no muestra la Scroll Horizontal.
Desde programa, en OnCreate del Browse, si se ponen estas propiedades, si funciona correctamente.
El problema está cuando pretendo derivar de la clase TBrowse.
Un Saludo,
Xevi.
"Xevi" <xevicomas@terra.es> escribió en el mensaje news:[email=42c568d0@ozsrvnegro.ozlan.local...]42c568d0@ozsrvnegro.ozlan.local...[/email]
Hola,
No se que estoy haciendo mal, pero no me sale el derivar un método de la clase TBrowse
Esta es la clase que derivo, y si bien me funcionan las propiedades, al querer tener un mismo método en la clase, eso no me funciona bien...
Pretendo que cuando se pulse el botón derecho, se cambie de registro el Browse...
CLASS TBrowse FROM xBrowse
PUBLISHED:
PROPERTY lAllowColSizing INIT .F. //NO Canvi de Tamany Columnes
PROPERTY lRecordSelector INIT .F. //Sel.lecció de tota la línia
PROPERTY nColDividerStyle INIT blLIGHTGRAY
PROPERTY nRowDividerStyle INIT blLIGHTGRAY
PUBLIC:
METHOD OnRClick( oSender, nFlags, nRow, nCol )
END CLASS
//---------------------------------------------------------- --------------
METHOD OnRClick( oSender, nFlags, nRow, nCol ) CLASS TBrowse
LOCAL nPos
IF ( nPos := ::MouseRowPos( nRow ) ) != ::nRowSel
::nKeyNo += ::OnSkip( nPos - ::nRowSel )
::nRowSel := nPos
::Refresh()
::OnChange()
ENDIF
RETURN Nil
Creo que no entiendo bien el tema de méthodos de una Clase derivada...
En cambio... cuando lo que hago es según lo que me apuntaste en otro post, desde un Form...
//---------------------------------------------------------- --------------------
METHOD FormShow( oSender ) CLASS TForm1
::oArrayBrowse1:OnRClick := "xDBBrowse1RClick"
RETURN Nil
//---------------------------------------------------------- --------------------
METHOD xDBBrowse1RClick( oSender, nFlags, nRow, nCol ) CLASS TForm1
LOCAL nPos
WITH OBJECT ::oArrayBrowse1
IF ( nPos := :MouseRowPos( nRow ) ) != :nRowSel
:nKeyNo += :OnSkip( nPos - :nRowSel )
:nRowSel := nPos
:Refresh()
:OnChange()
ENDIF
END
RETURN Nil
Esto si funciona correctamente !!!
Gracias.
Un Saludo,
Xevi.
--
CLASS TBrowse FROM xBrowse
PUBLISHED:
PROPERTY lAutoHScroll INIT .F.
PROPERTY lAutoVScroll INIT .F.
PROPERTY lVScroll INIT .T.
PROPERTY lHScroll INIT .F.
ENDCLASS
La barra Vertical no se visualiza aunque fuerce lVScroll a .T.
Para que se fuerce la barra Vertical, tengo que poner oSender:lVScroll := .T., en el método OnCreate del Browse.
La barra Horizontal si que funciona y coje el valor de lHScroll al derivar de xBrowse.
Un Saludo,
Xevi.
"Xevi" <xevicomas@terra.es> escribió en el mensaje news:[email=431f2f2e@ozsrvnegro.ozlan.local...]431f2f2e@ozsrvnegro.ozlan.local...[/email]
Sigo derivando del TBrowse
Ahora pretendo que por defecto el Browse me muestre la barra Vertical SIEMPRE, pero que no me muestre la horizontal
CLASS TBrowse FROM xBrowse
PUBLISHED:
PROPERTY lAutoHScroll INIT .F.
PROPERTY lAutoVScroll INIT .F.
PROPERTY lVScroll INIT .T.
PROPERTY lHScroll INIT .F.
ENDCLASS
Bien, pues eso no funciona... no muestra la Scroll Vertical.
CLASS TBrowse FROM xBrowse
PUBLISHED:
PROPERTY lAutoHScroll INIT .F.
PROPERTY lAutoVScroll INIT .F.
PROPERTY lVScroll INIT .T.
PROPERTY lHScroll INIT .F.
ENDCLASS
Por probar con la horizontal... el mismo problema...
Esto tampoco funciona, no muestra la Scroll Horizontal.
Desde programa, en OnCreate del Browse, si se ponen estas propiedades, si funciona correctamente.
El problema está cuando pretendo derivar de la clase TBrowse.
Un Saludo,
Xevi.
"Xevi" <xevicomas@terra.es> escribió en el mensaje news:[email=42c568d0@ozsrvnegro.ozlan.local...]42c568d0@ozsrvnegro.ozlan.local...[/email]
Hola,
No se que estoy haciendo mal, pero no me sale el derivar un método de la clase TBrowse
Esta es la clase que derivo, y si bien me funcionan las propiedades, al querer tener un mismo método en la clase, eso no me funciona bien...
Pretendo que cuando se pulse el botón derecho, se cambie de registro el Browse...
CLASS TBrowse FROM xBrowse
PUBLISHED:
PROPERTY lAllowColSizing INIT .F. //NO Canvi de Tamany Columnes
PROPERTY lRecordSelector INIT .F. //Sel.lecció de tota la línia
PROPERTY nColDividerStyle INIT blLIGHTGRAY
PROPERTY nRowDividerStyle INIT blLIGHTGRAY
PUBLIC:
METHOD OnRClick( oSender, nFlags, nRow, nCol )
END CLASS
//---------------------------------------------------------- --------------
METHOD OnRClick( oSender, nFlags, nRow, nCol ) CLASS TBrowse
LOCAL nPos
IF ( nPos := ::MouseRowPos( nRow ) ) != ::nRowSel
::nKeyNo += ::OnSkip( nPos - ::nRowSel )
::nRowSel := nPos
::Refresh()
::OnChange()
ENDIF
RETURN Nil
Creo que no entiendo bien el tema de méthodos de una Clase derivada...
En cambio... cuando lo que hago es según lo que me apuntaste en otro post, desde un Form...
//---------------------------------------------------------- --------------------
METHOD FormShow( oSender ) CLASS TForm1
::oArrayBrowse1:OnRClick := "xDBBrowse1RClick"
RETURN Nil
//---------------------------------------------------------- --------------------
METHOD xDBBrowse1RClick( oSender, nFlags, nRow, nCol ) CLASS TForm1
LOCAL nPos
WITH OBJECT ::oArrayBrowse1
IF ( nPos := :MouseRowPos( nRow ) ) != :nRowSel
:nKeyNo += :OnSkip( nPos - :nRowSel )
:nRowSel := nPos
:Refresh()
:OnChange()
ENDIF
END
RETURN Nil
Esto si funciona correctamente !!!
Gracias.
Un Saludo,
Xevi.
--
Derivar de una Clase... TBrowse.
Xevi,
Persiste error al derivar...
CLASS TBrowse FROM xBrowse
PUBLISHED:
PROPERTY lAutoHScroll INIT .F.
PROPERTY lAutoVScroll INIT .F.
PROPERTY lVScroll INIT .T.
PROPERTY lHScroll INIT .F.
ENDCLASS
La barra Vertical no se visualiza aunque fuerce lVScroll a .T.
Para que se fuerce la barra Vertical, tengo que poner oSender:lVScroll := .T., en el método OnCreate del Browse.
La barra Horizontal si que funciona y coje el valor de lHScroll al derivar de xBrowse.
Estas propiedades se han cambiado. lAutoHScroll y lAutoVScroll se han eliminado, y las otras dos pueden tener ahora los valores: bsAUTO, bsYES o bsNO
--
Un saludo,
José F. Giménez
--
Persiste error al derivar...
CLASS TBrowse FROM xBrowse
PUBLISHED:
PROPERTY lAutoHScroll INIT .F.
PROPERTY lAutoVScroll INIT .F.
PROPERTY lVScroll INIT .T.
PROPERTY lHScroll INIT .F.
ENDCLASS
La barra Vertical no se visualiza aunque fuerce lVScroll a .T.
Para que se fuerce la barra Vertical, tengo que poner oSender:lVScroll := .T., en el método OnCreate del Browse.
La barra Horizontal si que funciona y coje el valor de lHScroll al derivar de xBrowse.
Estas propiedades se han cambiado. lAutoHScroll y lAutoVScroll se han eliminado, y las otras dos pueden tener ahora los valores: bsAUTO, bsYES o bsNO
--
Un saludo,
José F. Giménez
--
Derivar de una Clase... TBrowse.
Jose,
Bien, pero lVScroll sigue sin funcionar al derivar directamente!!!
CLASS TBrowse FROM xBrowse
PUBLISHED:
PROPERTY lVScroll INIT .bsYES
PROPERTY lHScroll INIT bsNO
ENDCLASS
lHScroll SI funciona, con los tres valores.
Un Saludo,
Xevi.
"Jose F. Gimenez" <jfgimenez@wanadoo.es> escribió en el mensaje news:43568f9b$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
Xevi,
Persiste error al derivar...
CLASS TBrowse FROM xBrowse
PUBLISHED:
PROPERTY lAutoHScroll INIT .F.
PROPERTY lAutoVScroll INIT .F.
PROPERTY lVScroll INIT .T.
PROPERTY lHScroll INIT .F.
ENDCLASS
La barra Vertical no se visualiza aunque fuerce lVScroll a .T.
Para que se fuerce la barra Vertical, tengo que poner oSender:lVScroll := .T., en el método OnCreate del Browse.
La barra Horizontal si que funciona y coje el valor de lHScroll al derivar de xBrowse.
Estas propiedades se han cambiado. lAutoHScroll y lAutoVScroll se han eliminado, y las otras dos pueden tener ahora los valores: bsAUTO, bsYES o bsNO
--
Un saludo,
José F. Giménez
--
Bien, pero lVScroll sigue sin funcionar al derivar directamente!!!
CLASS TBrowse FROM xBrowse
PUBLISHED:
PROPERTY lVScroll INIT .bsYES
PROPERTY lHScroll INIT bsNO
ENDCLASS
lHScroll SI funciona, con los tres valores.
Un Saludo,
Xevi.
"Jose F. Gimenez" <jfgimenez@wanadoo.es> escribió en el mensaje news:43568f9b$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
Xevi,
Persiste error al derivar...
CLASS TBrowse FROM xBrowse
PUBLISHED:
PROPERTY lAutoHScroll INIT .F.
PROPERTY lAutoVScroll INIT .F.
PROPERTY lVScroll INIT .T.
PROPERTY lHScroll INIT .F.
ENDCLASS
La barra Vertical no se visualiza aunque fuerce lVScroll a .T.
Para que se fuerce la barra Vertical, tengo que poner oSender:lVScroll := .T., en el método OnCreate del Browse.
La barra Horizontal si que funciona y coje el valor de lHScroll al derivar de xBrowse.
Estas propiedades se han cambiado. lAutoHScroll y lAutoVScroll se han eliminado, y las otras dos pueden tener ahora los valores: bsAUTO, bsYES o bsNO
--
Un saludo,
José F. Giménez
--
Derivar de una Clase... TBrowse.
Xevi,
Bien, pero lVScroll sigue sin funcionar al derivar directamente!!!
CLASS TBrowse FROM xBrowse
PUBLISHED:
PROPERTY lVScroll INIT .bsYES
PROPERTY lHScroll INIT bsNO
ENDCLASS
lHScroll SI funciona, con los tres valores.
Ok, gracias. Vamos a revisarlo lo antes posible.
--
Un saludo,
José F. Giménez
--
Bien, pero lVScroll sigue sin funcionar al derivar directamente!!!
CLASS TBrowse FROM xBrowse
PUBLISHED:
PROPERTY lVScroll INIT .bsYES
PROPERTY lHScroll INIT bsNO
ENDCLASS
lHScroll SI funciona, con los tres valores.
Ok, gracias. Vamos a revisarlo lo antes posible.
--
Un saludo,
José F. Giménez
--
- ignacio
- Site Admin
- Mensajes: 9469
- Registrado: Lun Abr 06, 2015 8:00 pm
- Ubicación: Madrid, Spain
- Contactar:
Derivar de una Clase... TBrowse.
Xevi,
Arreglado. Muchas gracias.
Un saludo,
"Xevi" <xevicomas@terra.es> escribió en el mensaje news:[email=435693da@ozsrvnegro.ozlan.local...]435693da@ozsrvnegro.ozlan.local...[/email]
Jose,
Bien, pero lVScroll sigue sin funcionar al derivar directamente!!!
CLASS TBrowse FROM xBrowse
PUBLISHED:
PROPERTY lVScroll INIT .bsYES
PROPERTY lHScroll INIT bsNO
ENDCLASS
lHScroll SI funciona, con los tres valores.
Un Saludo,
Xevi.
"Jose F. Gimenez" <jfgimenez@wanadoo.es> escribió en el mensaje news:43568f9b$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
Xevi,
Persiste error al derivar...
CLASS TBrowse FROM xBrowse
PUBLISHED:
PROPERTY lAutoHScroll INIT .F.
PROPERTY lAutoVScroll INIT .F.
PROPERTY lVScroll INIT .T.
PROPERTY lHScroll INIT .F.
ENDCLASS
La barra Vertical no se visualiza aunque fuerce lVScroll a .T.
Para que se fuerce la barra Vertical, tengo que poner oSender:lVScroll := .T., en el método OnCreate del Browse.
La barra Horizontal si que funciona y coje el valor de lHScroll al derivar de xBrowse.
Estas propiedades se han cambiado. lAutoHScroll y lAutoVScroll se han eliminado, y las otras dos pueden tener ahora los valores: bsAUTO, bsYES o bsNO
--
Un saludo,
José F. Giménez
--
Arreglado. Muchas gracias.
Un saludo,
"Xevi" <xevicomas@terra.es> escribió en el mensaje news:[email=435693da@ozsrvnegro.ozlan.local...]435693da@ozsrvnegro.ozlan.local...[/email]
Jose,
Bien, pero lVScroll sigue sin funcionar al derivar directamente!!!
CLASS TBrowse FROM xBrowse
PUBLISHED:
PROPERTY lVScroll INIT .bsYES
PROPERTY lHScroll INIT bsNO
ENDCLASS
lHScroll SI funciona, con los tres valores.
Un Saludo,
Xevi.
"Jose F. Gimenez" <jfgimenez@wanadoo.es> escribió en el mensaje news:43568f9b$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
Xevi,
Persiste error al derivar...
CLASS TBrowse FROM xBrowse
PUBLISHED:
PROPERTY lAutoHScroll INIT .F.
PROPERTY lAutoVScroll INIT .F.
PROPERTY lVScroll INIT .T.
PROPERTY lHScroll INIT .F.
ENDCLASS
La barra Vertical no se visualiza aunque fuerce lVScroll a .T.
Para que se fuerce la barra Vertical, tengo que poner oSender:lVScroll := .T., en el método OnCreate del Browse.
La barra Horizontal si que funciona y coje el valor de lHScroll al derivar de xBrowse.
Estas propiedades se han cambiado. lAutoHScroll y lAutoVScroll se han eliminado, y las otras dos pueden tener ahora los valores: bsAUTO, bsYES o bsNO
--
Un saludo,
José F. Giménez
--
Ignacio Ortiz de Zúñiga
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com