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 04-07-2007
Parsec Parsec is offline
Miembro
 
Registrado: abr 2006
Posts: 143
Poder: 19
Parsec Va por buen camino
¿ Se le puede dar la vuelta a un Dbgrid ?

Hola a tod@s,
un dbgrid presenta los datos con los títulos arriba y despliega los datos hacia abajo, ¿ se puede hacer al revés ?, los títulos abajo y los datos hacia arriba.
Utlizo delphi 7.
Saludos
Responder Con Cita
  #2  
Antiguo 04-07-2007
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.293
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Poderse, poderse, no se puede... Al menos con el estandard.
Otra cosa es que intentes simularlo...
No se si es una salvajada y lo importante que es para tí esta cuestión, pero se trataría de:

* El primer DBgrid colocarlo arriba sin los títulos (no recuerdo si se puede).
* Colocar abajo un segundo DBGrid que sólo tenga los títulos y sin registros (o desactivado o activado con una consulta que no devuelva nada).
* Ambos Grids deben tener las mismas columnas
* Lo que te quedaría sería sincronizar las acciones posibles que se puedan hacer sobre la fila de títulos en ambos DBGrid. Cambiar ancho, reordenar columnas,...
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #3  
Antiguo 04-07-2007
gabrielkc gabrielkc is offline
Miembro
 
Registrado: jun 2007
Ubicación: Chihuahua Mexico
Posts: 118
Poder: 17
gabrielkc Va por buen camino
Puedes hacerlo con un stringgrid, te tocaría dibujar todos los datos... pero así aseguras el resultado.

primero sería cargar los datos en el stringgrid con un while a tu dataset, sería bueno que cancelaras la actualización del componente en lo que cargas los datos para que sea menos tardado y al final llamar el evento Paint del stringgrid.

para dibujar en el stringgrid se hace:

*la propiedad defaultdraw a false.
* en el Evento OnDrawCell harias

Código Delphi [-]
procedure Form1.StringGird1DrawCell(Sender: TObject; ACol, ARow: Integer;
 Rect: TRect; State: TGridDrawState);
begin
 with StringGird1 do //con el stringgrid hacer
  begin
   if ARow=RowCount-1 then  ///Si es la última fila
    Canvas.Brush.Color:=StringGird1.FixedColor
   else
    Canvas.Brush.Color:=StringGird1.clWindow;
  with Canvas do  ///con el canvas del stringgrid1 hacer
   begin
    FillRect(Rect);//Rellenamos la Celda del color correspondiente
    DrawText(Handle,PChar(StringGrid.Cells[ACol,ARow]),-1,Linea,DT_CENTER);//dibujamos el Texto
   end;
end;

Tendrías que jugar con el procedimiento para darle el efecto tridimencional a la celda de los títulos y la alineación de la informacion, en el ejemplo se alinea al centro.
Responder Con Cita
  #4  
Antiguo 04-07-2007
Parsec Parsec is offline
Miembro
 
Registrado: abr 2006
Posts: 143
Poder: 19
Parsec Va por buen camino
Muchas gracias a los dos, me pongo con ello y ya os comento los resultados.
Gracias de nuevo
Responder Con Cita
  #5  
Antiguo 04-07-2007
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
Puedes hacer algo similar a lo que describe Neftalí pero en lugar de un segundo DBGrid para los títulos, usas un HeaderControl (pestaña Win32) que, básicamente es para eso, encabezados de columnas.

// Saludos
Responder Con Cita
  #6  
Antiguo 04-07-2007
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.293
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por roman
...usas un HeaderControl (pestaña Win32) que, básicamente es para eso, encabezados de columnas.
Pues casi mejor...
Había oído varias veces este componente, pero nunca lo había utilizado.
Mejor este que lo comentado. Creas tantas secciones como columnas tiene el DBGrid, defines DragReorder a True y casi lo tienes todo. Controlar cuando cambies el ancho y la reornenación para hacer lo mismo en el DBGrid.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
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 mostrar Memo en Dbgrid pero sin campor persistentes? Alfredo OOP 0 23-01-2006 18:38:14
Se puede armar un dbgrid con la siguiente info ? ale21alito Conexión con bases de datos 5 16-03-2005 17:49:16
DBGrid con varias querys ¿se puede? Walterdf Conexión con bases de datos 5 16-03-2005 12:18:56


La franja horaria es GMT +2. Ahora son las 19:59:19.


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