![]() |
¿Cómo esconder o eliminar el vertical ScrollBar de un DBGrid?
Hola Compañeros del foro, pues eso como reza el titulo, ¿alguien sabe cómo hacerlo?, Agradecido de antemano.
Saludos. PD. Utilizo Delphi 7. |
Permíteme, compañero, que te remita aqui al respecto ;)
|
probando la solucion me parece que en el evento afterscroll del dataset cumple la funcion, se ve un ligero parpadeo del repintado pero es mejor que estar dibujando Paneles, a mi manera de ver las cosas.
pero sigo sin enteder que mal puede hacer el pobre scroll alli :D edito: Para el que no sepa de lo que se habla, me refiero a la instruccion Cita:
|
Cita:
|
Cita:
|
Cita:
En unos momentos pondré el componente aquí. Saludos. |
1 Archivos Adjunto(s)
Pues he aquí el componente, una Grilla sin el Vertical ScrollBar, Gracias al código de Neftalí via Link por GluGlu, voy a seguir jugando con el componente haciendole varias modificaciones.
Archivo Adjunto 1231 Saludos. |
Partiendo del código de Neftalí podríamos intentar detectar cuando son necesarias las barras:
// Saludos |
Gracias Román, debo decirte que el código que propones me dio problemas, en tiempo de diseño no muestra los borde ni los scroll, pero me tira este error:
Cita:
Saludos. EDITO: No me di cuenta que el código indica que los ScrollBars aparecerán cuando sean necesarias. Perdón Román. |
Cita:
// Saludos |
Cita:
Saludos. |
1 Archivos Adjunto(s)
Cita:
Porque originalmente lo había olvidado. La prueba la había hecho "en vivo" de manera que no tenía una componente como tal. Ahora ya lo he hecho y no me ha causado problema. Si de algo sirve adjunto aquí la componente. // Saludos |
Excelente Amigo Román, ahora sí funciona. Agradecido enormemente!!.
Saludos. |
Bueno, dejo este componente que he hecho basado en los códigos de Román y Neftalí, se trata de un DBGrid con las siguientes propiedades:
- AutomaticScroll : Al ponerlo en True los scroll se activan cuando sean necesarios. - VerticalScroll : Activa y desactiva el Vertical ScrollBar. - HorizontalScroll : Activa y desactiva el Horizontal ScrollBar. Aquí el link disponible en el FTP del Club. Espero comentarios y criticas y que lo disfruten. Gracias Román, Neftalí, GluGlu y Eduarcol. Saludos. |
Sí, yo tengo algunos comentarios.
El primero es para pedirte que no escribas cosas como
ya que es redundante; basta poner
Es como decir "orillate a la orilla", "sube arriba", "sal afuera"; se entiende pero suena feo. Otra cosa es que no entiendo el propósito de las propiedades VerticalScrollBar y HorizontalScrollBar. Si las pones en false pero AutomaticScroll está en true, de todas maneras aparecen si hay muchos registros. Finalmente, que estas propiedades deben tener un "setter"
en el que obligues al control a reajustarse para reflejar el cambio. // Saludos |
¿y ahora cómo queda amigo Román siguiendo tus consejos?:
Saludos. |
He intentado crear este componente en BDS 2006 VCL.Net y al ejecutar inherited me da error. Al igual que en su momento lo intenté con el código de Neftalí.
En cualquier caso, me gustaría retomar el hilo para preguntar si verdaderamente va a funcionar con TQuery's o TDataSet's ya que nos estamos basando en una propiedad del DataSet que es RecordCount para saber si debemos o no pintar la ScrollBar vertical. Pero a mi entender la propiedad RecordCount de un TDataSet siempre devuelve -1, no es verdad ? :confused: A no ser que previamente hayamos leido 'todos' los registros que incorpore el DataSet, por ejemplo con un 'Last'. Pero eso vuelve a contradecir un poco la filosofía de los TQuery's y el tráfico generado por traer todos los registros de un Select. A lo mejor estoy equivocado y por eso pregunto. Saludos de nuevo a todos y gracias por vuestros comentarios :) |
Cita:
|
Estimado Eduardo,
Desde mi punto de vista ese no es el enfoque que al menos yo le estoy dando al problema. A lo mejor yo también me equivoco. Yo lo que trato es de obtener un DBGrid que cuando el número de Registros que me devuelve un 'Select' supere el número de registros visibles en el DBGrid, entonces me muestre la barra de Scroll vertical. Si el número de registros devuelto por el Select es menor que el número de líneas que en pantalla tiene el grid, entonces me oculte la barra vertical. Si por ejemplo, tengo un Grid con 5 líneas visibles en pantalla, si un Select me devuelve 3 registros, entonces no me muestr la barra vertical, ya que no hay ningún scroll que hacer al tener ya mostrados todos los registros en pantalla. Si en cambio obtengo 7 registros de mi consulta, entonces si que necesito el ScrollBar vertical, porque para ver todos los registros de mi select necesitaré hacer un 'Scroll'. Pero es ahí donde retomo el asunto del RecordCount. Si mi Select me devuelve 1 millón de registros, el RecorCount me devuelve en principio -1 y a mi entender, el componente expuesto no funcionaría correctamente. :o |
bueno con los zeos no he tenido ese problema, debe ser que no traigo tantos registros al cliente, pero el recordcount cuando esta conectado al grid generalmente si funciona bien
|
La franja horaria es GMT +2. Ahora son las 21:00:48. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi