Hola
Con la versión Beta 8 para pintar las lineas de un dbBrowse de dos colores alternos hacia esto:
:OnDrawRow := { | oBrw, nRowPos | oBrw:nClrStdPane := If((oDbf:KeyNo()%2)=0,clAquamarine ,clBisque ) }
pero con la version Beta 9 me manda error en le nClrStdPane.
Cual es la forma correcta ahora?
--
Saludos
Raúl Eduardo Cárdenas S.
Law & Accounting System's, Inc.
Gerente General
Celular: (507) 672-8838
Email: rcardenas@fgs2002.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.
Problema al pintar un Browse
- ignacio
- Site Admin
- Mensajes: 9246
- Registrado: Lun Abr 06, 2015 8:00 pm
- Ubicación: Madrid, Spain
- Contactar:
Problema al pintar un Browse
Raúl,
Por consistencia con el resto de las clases las propiedades de color son identicas a los demas controles:
nClrPane y nClrText
Y la forma más elegante de hacer lo que quieres es:
:OnDrawRow := { | oBrw, nRowPos | oBrw:nClrPane := If((nRowPos%2)=0,clAquamarine ,clBisque ) }
(Espero no haber cometido ningún error en el código, no lo he probado)
Fijate que utiliza nRowPos para calcular el color y no Keyno(). nRowPos te da la fila relativa del browse que se está pintando.
Un saludo
--
Ignacio Ortiz
www.xailer.com
"Raúl Eduardo Cárdenas" <rcardenas@fgs2002.com> escribió en el mensaje news:[email=42066ba8@ozsrv2.ozlan.local...]42066ba8@ozsrv2.ozlan.local...[/email]
Hola
Con la versión Beta 8 para pintar las lineas de un dbBrowse de dos colores alternos hacia esto:
:OnDrawRow := { | oBrw, nRowPos | oBrw:nClrStdPane := If((oDbf:KeyNo()%2)=0,clAquamarine ,clBisque ) }
pero con la version Beta 9 me manda error en le nClrStdPane.
Cual es la forma correcta ahora?
--
Saludos
Raúl Eduardo Cárdenas S.
Law & Accounting System's, Inc.
Gerente General
Celular: (507) 672-8838
Email: rcardenas@fgs2002.com
--
Por consistencia con el resto de las clases las propiedades de color son identicas a los demas controles:
nClrPane y nClrText
Y la forma más elegante de hacer lo que quieres es:
:OnDrawRow := { | oBrw, nRowPos | oBrw:nClrPane := If((nRowPos%2)=0,clAquamarine ,clBisque ) }
(Espero no haber cometido ningún error en el código, no lo he probado)
Fijate que utiliza nRowPos para calcular el color y no Keyno(). nRowPos te da la fila relativa del browse que se está pintando.
Un saludo
--
Ignacio Ortiz
www.xailer.com
"Raúl Eduardo Cárdenas" <rcardenas@fgs2002.com> escribió en el mensaje news:[email=42066ba8@ozsrv2.ozlan.local...]42066ba8@ozsrv2.ozlan.local...[/email]
Hola
Con la versión Beta 8 para pintar las lineas de un dbBrowse de dos colores alternos hacia esto:
:OnDrawRow := { | oBrw, nRowPos | oBrw:nClrStdPane := If((oDbf:KeyNo()%2)=0,clAquamarine ,clBisque ) }
pero con la version Beta 9 me manda error en le nClrStdPane.
Cual es la forma correcta ahora?
--
Saludos
Raúl Eduardo Cárdenas S.
Law & Accounting System's, Inc.
Gerente General
Celular: (507) 672-8838
Email: rcardenas@fgs2002.com
--
Problema al pintar un Browse
Ignacio
He cambiado la linea como me indicas y no manda error pero ni pinta las líneas y ademas no para de mover el cursor, alguna idea
--
Saludos
Raúl Eduardo Cárdenas S.
Law & Accounting System's, Inc.
Gerente General
Celular: (507) 672-8838
Email: rcardenas@fgs2002.com
"Ignacio Ortiz" <NoNameToAvoidSpam@ozs.com> escribió en el mensaje news:420672ff$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
Raúl,
Por consistencia con el resto de las clases las propiedades de color son identicas a los demas controles:
nClrPane y nClrText
Y la forma más elegante de hacer lo que quieres es:
:OnDrawRow := { | oBrw, nRowPos | oBrw:nClrPane := If((nRowPos%2)=0,clAquamarine ,clBisque ) }
(Espero no haber cometido ningún error en el código, no lo he probado)
Fijate que utiliza nRowPos para calcular el color y no Keyno(). nRowPos te da la fila relativa del browse que se está pintando.
Un saludo
--
Ignacio Ortiz
www.xailer.com
"Raúl Eduardo Cárdenas" <rcardenas@fgs2002.com> escribió en el mensaje news:[email=42066ba8@ozsrv2.ozlan.local...]42066ba8@ozsrv2.ozlan.local...[/email]
Hola
Con la versión Beta 8 para pintar las lineas de un dbBrowse de dos colores alternos hacia esto:
:OnDrawRow := { | oBrw, nRowPos | oBrw:nClrStdPane := If((oDbf:KeyNo()%2)=0,clAquamarine ,clBisque ) }
pero con la version Beta 9 me manda error en le nClrStdPane.
Cual es la forma correcta ahora?
--
Saludos
Raúl Eduardo Cárdenas S.
Law & Accounting System's, Inc.
Gerente General
Celular: (507) 672-8838
Email: rcardenas@fgs2002.com
--
He cambiado la linea como me indicas y no manda error pero ni pinta las líneas y ademas no para de mover el cursor, alguna idea
--
Saludos
Raúl Eduardo Cárdenas S.
Law & Accounting System's, Inc.
Gerente General
Celular: (507) 672-8838
Email: rcardenas@fgs2002.com
"Ignacio Ortiz" <NoNameToAvoidSpam@ozs.com> escribió en el mensaje news:420672ff$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
Raúl,
Por consistencia con el resto de las clases las propiedades de color son identicas a los demas controles:
nClrPane y nClrText
Y la forma más elegante de hacer lo que quieres es:
:OnDrawRow := { | oBrw, nRowPos | oBrw:nClrPane := If((nRowPos%2)=0,clAquamarine ,clBisque ) }
(Espero no haber cometido ningún error en el código, no lo he probado)
Fijate que utiliza nRowPos para calcular el color y no Keyno(). nRowPos te da la fila relativa del browse que se está pintando.
Un saludo
--
Ignacio Ortiz
www.xailer.com
"Raúl Eduardo Cárdenas" <rcardenas@fgs2002.com> escribió en el mensaje news:[email=42066ba8@ozsrv2.ozlan.local...]42066ba8@ozsrv2.ozlan.local...[/email]
Hola
Con la versión Beta 8 para pintar las lineas de un dbBrowse de dos colores alternos hacia esto:
:OnDrawRow := { | oBrw, nRowPos | oBrw:nClrStdPane := If((oDbf:KeyNo()%2)=0,clAquamarine ,clBisque ) }
pero con la version Beta 9 me manda error en le nClrStdPane.
Cual es la forma correcta ahora?
--
Saludos
Raúl Eduardo Cárdenas S.
Law & Accounting System's, Inc.
Gerente General
Celular: (507) 672-8838
Email: rcardenas@fgs2002.com
--
- ignacio
- Site Admin
- Mensajes: 9246
- Registrado: Lun Abr 06, 2015 8:00 pm
- Ubicación: Madrid, Spain
- Contactar:
Problema al pintar un Browse
Raúl,
El código es correcto, pero no te funciona porque el cambio de color de fondo esta provocando un repintado completo del Browse.
Ya está solucionado pero hay demasiados módulos involucrados. Espero que podamos subir una versión corregida lo antes posible.
Gracias por tu colaboración.
Un saludo,
--
Ignacio Ortiz
www.xailer.com
"Raúl Eduardo Cárdenas" <rcardenas@fgs2002.com> escribió en el mensaje news:[email=42067dcb@ozsrv2.ozlan.local...]42067dcb@ozsrv2.ozlan.local...[/email]
Ignacio
He cambiado la linea como me indicas y no manda error pero ni pinta las líneas y ademas no para de mover el cursor, alguna idea
--
Saludos
Raúl Eduardo Cárdenas S.
Law & Accounting System's, Inc.
Gerente General
Celular: (507) 672-8838
Email: rcardenas@fgs2002.com
"Ignacio Ortiz" <NoNameToAvoidSpam@ozs.com> escribió en el mensaje news:420672ff$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
Raúl,
Por consistencia con el resto de las clases las propiedades de color son identicas a los demas controles:
nClrPane y nClrText
Y la forma más elegante de hacer lo que quieres es:
:OnDrawRow := { | oBrw, nRowPos | oBrw:nClrPane := If((nRowPos%2)=0,clAquamarine ,clBisque ) }
(Espero no haber cometido ningún error en el código, no lo he probado)
Fijate que utiliza nRowPos para calcular el color y no Keyno(). nRowPos te da la fila relativa del browse que se está pintando.
Un saludo
--
Ignacio Ortiz
www.xailer.com
"Raúl Eduardo Cárdenas" <rcardenas@fgs2002.com> escribió en el mensaje news:[email=42066ba8@ozsrv2.ozlan.local...]42066ba8@ozsrv2.ozlan.local...[/email]
Hola
Con la versión Beta 8 para pintar las lineas de un dbBrowse de dos colores alternos hacia esto:
:OnDrawRow := { | oBrw, nRowPos | oBrw:nClrStdPane := If((oDbf:KeyNo()%2)=0,clAquamarine ,clBisque ) }
pero con la version Beta 9 me manda error en le nClrStdPane.
Cual es la forma correcta ahora?
--
Saludos
Raúl Eduardo Cárdenas S.
Law & Accounting System's, Inc.
Gerente General
Celular: (507) 672-8838
Email: rcardenas@fgs2002.com
--
El código es correcto, pero no te funciona porque el cambio de color de fondo esta provocando un repintado completo del Browse.
Ya está solucionado pero hay demasiados módulos involucrados. Espero que podamos subir una versión corregida lo antes posible.
Gracias por tu colaboración.
Un saludo,
--
Ignacio Ortiz
www.xailer.com
"Raúl Eduardo Cárdenas" <rcardenas@fgs2002.com> escribió en el mensaje news:[email=42067dcb@ozsrv2.ozlan.local...]42067dcb@ozsrv2.ozlan.local...[/email]
Ignacio
He cambiado la linea como me indicas y no manda error pero ni pinta las líneas y ademas no para de mover el cursor, alguna idea
--
Saludos
Raúl Eduardo Cárdenas S.
Law & Accounting System's, Inc.
Gerente General
Celular: (507) 672-8838
Email: rcardenas@fgs2002.com
"Ignacio Ortiz" <NoNameToAvoidSpam@ozs.com> escribió en el mensaje news:420672ff$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
Raúl,
Por consistencia con el resto de las clases las propiedades de color son identicas a los demas controles:
nClrPane y nClrText
Y la forma más elegante de hacer lo que quieres es:
:OnDrawRow := { | oBrw, nRowPos | oBrw:nClrPane := If((nRowPos%2)=0,clAquamarine ,clBisque ) }
(Espero no haber cometido ningún error en el código, no lo he probado)
Fijate que utiliza nRowPos para calcular el color y no Keyno(). nRowPos te da la fila relativa del browse que se está pintando.
Un saludo
--
Ignacio Ortiz
www.xailer.com
"Raúl Eduardo Cárdenas" <rcardenas@fgs2002.com> escribió en el mensaje news:[email=42066ba8@ozsrv2.ozlan.local...]42066ba8@ozsrv2.ozlan.local...[/email]
Hola
Con la versión Beta 8 para pintar las lineas de un dbBrowse de dos colores alternos hacia esto:
:OnDrawRow := { | oBrw, nRowPos | oBrw:nClrStdPane := If((oDbf:KeyNo()%2)=0,clAquamarine ,clBisque ) }
pero con la version Beta 9 me manda error en le nClrStdPane.
Cual es la forma correcta ahora?
--
Saludos
Raúl Eduardo Cárdenas S.
Law & Accounting System's, Inc.
Gerente General
Celular: (507) 672-8838
Email: rcardenas@fgs2002.com
--
- ignacio
- Site Admin
- Mensajes: 9246
- Registrado: Lun Abr 06, 2015 8:00 pm
- Ubicación: Madrid, Spain
- Contactar:
Problema al pintar un Browse
Raúl,
Me corrigo a mismo. El código no es correcto pues falla cuando se hace GoUp() o GoDown() porque en dicho caso se hace un scroll de físico de la ventana y lo que era fila par se convierte en impar y viceversa, por lo tanto la utilización nRowPos para decidir el color a usar no es válido.
El problema es que llamar a OnKeyNo() puede llegar a ser lentísimo con tablas grandes y en particular con algunos RDD como ADS, por ello acabamos de implementar una data en la clase de nombre nKeyNo que guarda la posición equivalente a OnKeyNo() de forma automática reduciendo el número de llamadas a OnKeyNo() al mínimo. Por lo tanto a partir de la próxima beta podrá hacer algo así:
:OnDrawRow := { | oBrw, nRowPos | oBrw:nClrPane := If((oBrw:nKeyNo%2)=0,clAquamarine ,clBisque ) }
Sin perder practicamente velocidad alguna.
Actualmente existe un dato 'nLen' que se utiliza igualmente para reducir al máximo las llamadas a OnKeyCount()
Un saludo,
--
Ignacio Ortiz
www.xailer.com
"Ignacio Ortiz" <NoNameToAvoidSpam@ozs.com> escribió en el mensaje news:42073f50$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
Raúl,
El código es correcto, pero no te funciona porque el cambio de color de fondo esta provocando un repintado completo del Browse.
Ya está solucionado pero hay demasiados módulos involucrados. Espero que podamos subir una versión corregida lo antes posible.
Gracias por tu colaboración.
Un saludo,
--
Ignacio Ortiz
www.xailer.com
"Raúl Eduardo Cárdenas" <rcardenas@fgs2002.com> escribió en el mensaje news:[email=42067dcb@ozsrv2.ozlan.local...]42067dcb@ozsrv2.ozlan.local...[/email]
Ignacio
He cambiado la linea como me indicas y no manda error pero ni pinta las líneas y ademas no para de mover el cursor, alguna idea
--
Saludos
Raúl Eduardo Cárdenas S.
Law & Accounting System's, Inc.
Gerente General
Celular: (507) 672-8838
Email: rcardenas@fgs2002.com
"Ignacio Ortiz" <NoNameToAvoidSpam@ozs.com> escribió en el mensaje news:420672ff$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
Raúl,
Por consistencia con el resto de las clases las propiedades de color son identicas a los demas controles:
nClrPane y nClrText
Y la forma más elegante de hacer lo que quieres es:
:OnDrawRow := { | oBrw, nRowPos | oBrw:nClrPane := If((nRowPos%2)=0,clAquamarine ,clBisque ) }
(Espero no haber cometido ningún error en el código, no lo he probado)
Fijate que utiliza nRowPos para calcular el color y no Keyno(). nRowPos te da la fila relativa del browse que se está pintando.
Un saludo
--
Ignacio Ortiz
www.xailer.com
"Raúl Eduardo Cárdenas" <rcardenas@fgs2002.com> escribió en el mensaje news:[email=42066ba8@ozsrv2.ozlan.local...]42066ba8@ozsrv2.ozlan.local...[/email]
Hola
Con la versión Beta 8 para pintar las lineas de un dbBrowse de dos colores alternos hacia esto:
:OnDrawRow := { | oBrw, nRowPos | oBrw:nClrStdPane := If((oDbf:KeyNo()%2)=0,clAquamarine ,clBisque ) }
pero con la version Beta 9 me manda error en le nClrStdPane.
Cual es la forma correcta ahora?
--
Saludos
Raúl Eduardo Cárdenas S.
Law & Accounting System's, Inc.
Gerente General
Celular: (507) 672-8838
Email: rcardenas@fgs2002.com
--
Me corrigo a mismo. El código no es correcto pues falla cuando se hace GoUp() o GoDown() porque en dicho caso se hace un scroll de físico de la ventana y lo que era fila par se convierte en impar y viceversa, por lo tanto la utilización nRowPos para decidir el color a usar no es válido.
El problema es que llamar a OnKeyNo() puede llegar a ser lentísimo con tablas grandes y en particular con algunos RDD como ADS, por ello acabamos de implementar una data en la clase de nombre nKeyNo que guarda la posición equivalente a OnKeyNo() de forma automática reduciendo el número de llamadas a OnKeyNo() al mínimo. Por lo tanto a partir de la próxima beta podrá hacer algo así:
:OnDrawRow := { | oBrw, nRowPos | oBrw:nClrPane := If((oBrw:nKeyNo%2)=0,clAquamarine ,clBisque ) }
Sin perder practicamente velocidad alguna.
Actualmente existe un dato 'nLen' que se utiliza igualmente para reducir al máximo las llamadas a OnKeyCount()
Un saludo,
--
Ignacio Ortiz
www.xailer.com
"Ignacio Ortiz" <NoNameToAvoidSpam@ozs.com> escribió en el mensaje news:42073f50$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
Raúl,
El código es correcto, pero no te funciona porque el cambio de color de fondo esta provocando un repintado completo del Browse.
Ya está solucionado pero hay demasiados módulos involucrados. Espero que podamos subir una versión corregida lo antes posible.
Gracias por tu colaboración.
Un saludo,
--
Ignacio Ortiz
www.xailer.com
"Raúl Eduardo Cárdenas" <rcardenas@fgs2002.com> escribió en el mensaje news:[email=42067dcb@ozsrv2.ozlan.local...]42067dcb@ozsrv2.ozlan.local...[/email]
Ignacio
He cambiado la linea como me indicas y no manda error pero ni pinta las líneas y ademas no para de mover el cursor, alguna idea
--
Saludos
Raúl Eduardo Cárdenas S.
Law & Accounting System's, Inc.
Gerente General
Celular: (507) 672-8838
Email: rcardenas@fgs2002.com
"Ignacio Ortiz" <NoNameToAvoidSpam@ozs.com> escribió en el mensaje news:420672ff$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
Raúl,
Por consistencia con el resto de las clases las propiedades de color son identicas a los demas controles:
nClrPane y nClrText
Y la forma más elegante de hacer lo que quieres es:
:OnDrawRow := { | oBrw, nRowPos | oBrw:nClrPane := If((nRowPos%2)=0,clAquamarine ,clBisque ) }
(Espero no haber cometido ningún error en el código, no lo he probado)
Fijate que utiliza nRowPos para calcular el color y no Keyno(). nRowPos te da la fila relativa del browse que se está pintando.
Un saludo
--
Ignacio Ortiz
www.xailer.com
"Raúl Eduardo Cárdenas" <rcardenas@fgs2002.com> escribió en el mensaje news:[email=42066ba8@ozsrv2.ozlan.local...]42066ba8@ozsrv2.ozlan.local...[/email]
Hola
Con la versión Beta 8 para pintar las lineas de un dbBrowse de dos colores alternos hacia esto:
:OnDrawRow := { | oBrw, nRowPos | oBrw:nClrStdPane := If((oDbf:KeyNo()%2)=0,clAquamarine ,clBisque ) }
pero con la version Beta 9 me manda error en le nClrStdPane.
Cual es la forma correcta ahora?
--
Saludos
Raúl Eduardo Cárdenas S.
Law & Accounting System's, Inc.
Gerente General
Celular: (507) 672-8838
Email: rcardenas@fgs2002.com
--