Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Quitar foco de StringGrid de celda (https://www.clubdelphi.com/foros/showthread.php?t=1514)

mosorio 17-06-2003 23:38:33

Quitar foco de StringGrid de celda
 
Buenas Noches,
Tengo un StringGrid en un formulario y siempre se queda el foco en la primera celda, es decir la primera celda de la columna editable que no es la de títulos se dibuja el seleccionado de esta, y cuando limpio este me queda el valor que se haya asignado a esa celda, como hago para que me limpie completamente el stringgrid y como quito este seleccionado de la celda, la tengo de solo lectura asi que no es necesario que se dibuje.

Gracias de antemano,

Marco

jachguate 18-06-2003 12:59:14

Te valdria agregar goRowSelect a la propiedad Options.

;)

mosorio 18-06-2003 20:58:10

Hola,
Creo que he encontrado el fallo y creo que debe ser un bug del componente TStringGrid:
Cuando procedia a blanquear el componente, lo hacia de esta forma:
Cita:

for Col := 0 to sgVentas.RowCount do
for Fil := 1 to sgVentas.ColCount do
sgVentas.Cells[Col, Fil] := '';
Y lo que obtenía era limpiar desde la primera columna, siendo que en las propiedades se muestra los siguiente:

Cita:

property Cells[ACol, ARow: Integer]: string read GetCells write SetCells;

Donde ACol es la columna y ARow es la fila

Y esta es la forma como funciona sin necesidad de activar la opción que mencionaban antes. Hago la aclaración que con este método no elimina los nombres o textos de los títulos.

Cita:

for Fil := 0 to sgVentas.RowCount do
for Col := 1 to sgVentas.ColCount do
sgVentas.Cells[Col, Fil] := '';

No creo que este haciendo un simple ciclo de recorrido de matriz mal.

Gracias.

jachguate 19-06-2003 01:50:28

Si creo que estás haciendo mal el recorrido, pues al tener un arreglo basado en cero, deberias hacer:

Código:

  for Fil := 0 to sgVentas.RowCount - 1 do
    for Col := 1 to sgVentas.ColCount - 1 do
      sgVentas.Cells[Col, Fil] := '';

no?

Hasta luego.

;)

mosorio 19-06-2003 09:28:15

hola jachguate,
Disculpa, creo que me había comido algo al pegar el código en la lista, pero igualmente el resultado es el mismo, con respecto a las filas y columnas, en un principio tenía el -1 en ambos for, pero pense que no lo estaba haciendo correctamente y elimine el -1 para ver si hacia la limpieza bien, pero solo funciono con cambiar de posición las variables Fil y Col.

Saludos

andre 25-06-2003 16:42:57

Hola Amigos,

Tengo casi el mismo problema, solo necesito quitar la seleccion de la primera celda, mi grilla tambien es de solo lectura. Mire la opcion goRowSelect y por defecto esta a false asi que la cambie a true pero nada paso.

Alguien sabe como resolver este problema?

Muchas gracias.

andre 24-02-2004 21:44:33

La solución que encontré a este problema fue la siguiente:

1) Declarar en la sección de variables de la unidad:
Código:

NoSelection: TGridRect = (Left:-1; Top:-1; Right:-1; Bottom:-1);
2) Cuando querramos quitar la selección de la grilla, escribimos:
Código:

DBGrid1.Selection := NoSelection
Saludos.

roman 24-02-2004 21:53:51

¿Y por qué ha de considerarse un bug?

En el código original estás usando los índices alrevés tú, no delphi !!

// Saludos

cipce22 14-12-2015 21:51:30

Gracias
 
Cita:

Empezado por andre (Mensaje 31648)
La solución que encontré a este problema fue la siguiente:

1) Declarar en la sección de variables de la unidad:
Código:

NoSelection: TGridRect = (Left:-1; Top:-1; Right:-1; Bottom:-1);
2) Cuando querramos quitar la selección de la grilla, escribimos:
Código:

DBGrid1.Selection := NoSelection
Saludos.


Este código me sirvió, tanto pelear con esto y no se me pudo ocurrir.
Gracias.:D


La franja horaria es GMT +2. Ahora son las 06:49:43.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi