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 20-04-2005
JANDREGUE JANDREGUE is offline
Miembro
 
Registrado: jun 2003
Ubicación: COLOMBIA
Posts: 40
Poder: 0
JANDREGUE Va por buen camino
Thumbs up Autoajustar DBGrid

Hola a todos....

Lo que quiero es que al generar una consulta en un DBGrid las Columnas de Este se Autoajusten al Campo de Mayor caracteres en ellas.... Si esto es Posible y alguien lo sabe por favor le agradezco me diga como hacerlo.

De antemano muchas gracias
__________________
No hay metas imposibles... sólo barreras mentales.
Responder Con Cita
  #2  
Antiguo 20-04-2005
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
Por cada columna del dbgrid tienes que recorrer todos los registros y ver la longitud máxima, y despues asignar ese ancho a la columna.

ajustando el DisplayWidth. De este hilo, en lugar de sacar el ancho máximo en caracteres, puedes devolver directamente la cadena más larga, y pasarlo a FontWidthInPixels para saber el ancho exacto.

Código Delphi [-]
uses Graphics,sysutils,types,windows;


function FontDimensionInPixels(SurfaceToPaint:THandle; Str:string;var TheSize : Tsize):Boolean;
begin
  Result := windows.GetTextExtentPoint32(SurfaceToPaint,PChar(str),Length(Str),TheSize)
end;


function FontHeigthInPixels(SurfaceToPaint:THandle; Str:string; var TheHeight : integer):Boolean;
var s:TSize;
begin
  Result := FontDimensionInPixels(SurfaceToPaint,Str,S);
  if Result then TheHeight := s.cy;
end;

function FontWidthInPixels(SurfaceToPaint:THandle; Str:string;var TheWidth:integer):Boolean;
var s:TSize;
begin
  Result := fontdimensioninPixels(SurfaceToPaint,Str,S);
  if Result then TheWidth:= s.cx;
end;

SurfaceToPaint sería Dbgrid1.canvas.handle o bien dbgrid1.columns[0].canvas.handle, no lo he probado para un dbgrid con varias columnas, pero debe funcionar.

Un saludo
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, 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 18:19:21.


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