Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 12-02-2010
Angel Fernández Angel Fernández is offline
Miembro
 
Registrado: may 2004
Ubicación: Valencia - España
Posts: 141
Poder: 20
Angel Fernández Va por buen camino
Gracias por tu respuesta. Sin embargo, eso es lo que decía en mi mensaje original, que tocando en opciones -> dgcollines -> false te quita las líneas verticales pero también te quita las líneas de las cabeceras (donde aparecen los nombres de los campos) y lo que busco es que no me quite las de las cabeceras.

Un saludo.
Responder Con Cita
  #2  
Antiguo 12-02-2010
cocute cocute is offline
Miembro
 
Registrado: nov 2008
Posts: 403
Poder: 16
cocute Va por buen camino
si te fijas con un StringGrid si que se puede pero con un Dbgrid no,
quizas puedas mirar el codigo fuente (.pas) del componente StringGrid e intentar copiar esa propiedad en el Dbgrid
aunque no sera facil, pero quizas tengas suerte y lo sea.
Responder Con Cita
  #3  
Antiguo 12-02-2010
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Hola Angel Fernández, puedes hacer también un Cast a StringGrid y añadir la opción goFixedVertLine.

Código Delphi [-]
 TStringGrid(DBGrid1).Options := TStringGrid(DBGrid1).Options + [goFixedVertLine];

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #4  
Antiguo 12-02-2010
Avatar de rgstuamigo
rgstuamigo rgstuamigo is offline
Miembro
 
Registrado: jul 2008
Ubicación: Santa Cruz de la Sierra-Bolivia
Posts: 1.646
Poder: 17
rgstuamigo Va por buen camino
Arrow

Cita:
Empezado por Caro Ver Mensaje
Hola Angel Fernández, puedes hacer también un Cast a StringGrid y añadir la opción goFixedVertLine.

Código Delphi [-] TStringGrid(DBGrid1).Options := TStringGrid(DBGrid1).Options + [goFixedVertLine];


Saluditos
Definitivamente creo que la opcion que brinda Caro es la mejor.., amigo Angel Fernández olvídate de mi anterior código chapuza y hazlo como indica Caro..
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7
Responder Con Cita
  #5  
Antiguo 13-02-2010
Avatar de Al González
[Al González] Al González is offline
In .pas since 1991
 
Registrado: may 2003
Posts: 5.604
Poder: 30
Al González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en brutoAl González Es un diamante en bruto
Cita:
Empezado por rgstuamigo Ver Mensaje
Definitivamente creo que la opcion que brinda Caro es la mejor.., amigo Angel Fernández olvídate de mi anterior código chapuza y hazlo como indica Caro..
Chapuza sería lo que estaba pensando yo: agregar un segundo DBGrid sobrepuesto, con la altura exacta de la cabecera.

Un afectuoso saludo hasta Cochabamba y Santa Cruz.

Al.
Responder Con Cita
  #6  
Antiguo 13-02-2010
Angel Fernández Angel Fernández is offline
Miembro
 
Registrado: may 2004
Ubicación: Valencia - España
Posts: 141
Poder: 20
Angel Fernández Va por buen camino
Caramba, amigos, muchas gracias por vuestras respuestas. Probaré lo de Caro a ver qué tal.
Y cuidado con lo que dice Al que no lo descarto...

Un saludo.
Responder Con Cita
  #7  
Antiguo 13-02-2010
Angel Fernández Angel Fernández is offline
Miembro
 
Registrado: may 2004
Ubicación: Valencia - España
Posts: 141
Poder: 20
Angel Fernández Va por buen camino
Cita:
Empezado por Caro Ver Mensaje
Hola Angel Fernández, puedes hacer también un Cast a StringGrid y añadir la opción goFixedVertLine.

Código Delphi [-] TStringGrid(DBGrid1).Options := TStringGrid(DBGrid1).Options + [goFixedVertLine];


Saluditos
Funciona perfectamente. Muchas gracias Caro. Y también muchas gracias para Rgstuamigo por tu código.

Un saludo.
Responder Con Cita
  #8  
Antiguo 15-02-2010
Delfino Delfino is offline
Miembro
 
Registrado: jul 2003
Ubicación: Madrid
Posts: 974
Poder: 21
Delfino Va por buen camino
Pq no usar El DBGrid sin la fila de titulos y en su lugar poner un control THeader y asi lo personalizas a tu gusto..
__________________
¿Microsoft? No, gracias..
Responder Con Cita
  #9  
Antiguo 12-02-2010
Avatar de rgstuamigo
rgstuamigo rgstuamigo is offline
Miembro
 
Registrado: jul 2008
Ubicación: Santa Cruz de la Sierra-Bolivia
Posts: 1.646
Poder: 17
rgstuamigo Va por buen camino
Arrow

Bueno entonces vamos a utilizar el evento OnDrawColumnCell del dbGrid y poner este codigo:
Código Delphi [-]
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
  DataCol: Integer; Column: TColumn; State: TGridDrawState);
Var i,x,u,y:Integer;
begin
x:=12;//inicializo en 12 por la anchura de la pequeña columna del indicador (Flecha)
y:=TAuxGrid(DBGrid1).DefaultRowHeight; //obtengo la altura de las filas
for  i:=0 to DataCol-1 do
   x:=x+DBGrid1.Columns[i].Width;//obtengo la anchura hasta la DataCol-1 columna

DBGrid1.Canvas.Pen.Color:=clBlack;//determino el color que va ser la linea
DBGrid1.Canvas.MoveTo(x,0);//pongo la punta del lapiz en la coordenada (x,0)
DBGrid1.Canvas.LineTo(x,y);//Dibujo una linea hasta la coordenada (x,y)
 if DataCol=DBGrid1.Columns.Count-1 then //verifico si es la ultima columna
   begin
    x:=10;//inicializo x en 10 por conveniencia
      for  i:=0 to DBGrid1.Columns.Count-1 do
           x:=x+DBGrid1.Columns[i].Width;  //obtengo la anchura de todas las columnas
    DBGrid1.Canvas.MoveTo(x,0);
    DBGrid1.Canvas.LineTo(x,y);// dibujo una linea al final de la ultima columna
   end;
end;
Ahora te preguntarás que es TAuxGrid el que esta con rojo, pues simplemente es una clase auxiliar que te permite hacer casting a una clase ancestra y poder acceder a los atributos y propiedades protegidas y demás(Buen truco por si acaso).Para usarla debes declarala en la sección de Type de delphi, algo así:
Código Delphi [-]
...
type
  TAuxGrid = class(TDBGrid);//<---
  TForm1 = class(TForm)
 .....
Y para que se repinten las lineas cuando por ejemplo minimizes o muevas tu formulario(anque quisas no sea necesario ) según si es el caso puedes llamar al método Invalidate de tu DbGrid en cuestión, yo lo he puesto en el evento OnPaint del formulario algo asi:
Código Delphi [-]
procedure TForm1.FormPaint(Sender: TObject);
begin
DBGrid1.Invalidate;
end;
.
Desde luego quisas pueda haber una mejor forma de hacerlo pero a mi se me ocurrió asi:.
Pruébalo...
Saludos...
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7

Última edición por rgstuamigo fecha: 12-02-2010 a las 23:18:50.
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
¿Se puede dejar fija o bloquear la fila seleccionada en un dbgrid? Angel Fernández Varios 6 23-07-2011 04:35:31
Se pueden poner Radiobuttons en un DBGrid? JoAnCa Varios 2 23-02-2009 22:52:22
Dejar de visualizar un registro de un DBGrid... eddg Varios 23 06-10-2007 01:39:46
No Dejar borrar en un DBGrid Gangster Conexión con bases de datos 2 28-06-2007 13:43:14
imprimir lineas verticales en el cuerpo de un reporte Choclito Impresión 3 08-01-2007 22:22:38


La franja horaria es GMT +2. Ahora son las 15:24:37.


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