Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 17-06-2003
mosorio mosorio is offline
Miembro
 
Registrado: may 2003
Posts: 159
Poder: 21
mosorio Va por buen camino
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
Responder Con Cita
  #2  
Antiguo 18-06-2003
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 27
jachguate Va por buen camino
Cool

Te valdria agregar goRowSelect a la propiedad Options.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #3  
Antiguo 18-06-2003
mosorio mosorio is offline
Miembro
 
Registrado: may 2003
Posts: 159
Poder: 21
mosorio Va por buen camino
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.
Responder Con Cita
  #4  
Antiguo 19-06-2003
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 27
jachguate Va por buen camino
Cool

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.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #5  
Antiguo 19-06-2003
mosorio mosorio is offline
Miembro
 
Registrado: may 2003
Posts: 159
Poder: 21
mosorio Va por buen camino
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
Responder Con Cita
  #6  
Antiguo 25-06-2003
andre andre is offline
Miembro
 
Registrado: may 2003
Ubicación: Entre Rios, Argentina
Posts: 80
Poder: 21
andre Va por buen camino
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 R. Coelho
Universidad Adventista del Plata
Responder Con Cita
  #7  
Antiguo 24-02-2004
andre andre is offline
Miembro
 
Registrado: may 2003
Ubicación: Entre Rios, Argentina
Posts: 80
Poder: 21
andre Va por buen camino
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.
__________________
Andre R. Coelho
Universidad Adventista del Plata
Responder Con Cita
  #8  
Antiguo 24-02-2004
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
¿Y por qué ha de considerarse un bug?

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

// Saludos
Responder Con Cita
  #9  
Antiguo 14-12-2015
cipce22 cipce22 is offline
Miembro
NULL
 
Registrado: may 2015
Posts: 22
Poder: 0
cipce22 Va por buen camino
Gracias

Cita:
Empezado por andre Ver Mensaje
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.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 04:17:14.


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
Copyright 1996-2007 Club Delphi