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 06-02-2007
jhcaboverde jhcaboverde is offline
Miembro
 
Registrado: nov 2006
Posts: 61
Poder: 18
jhcaboverde Va por buen camino
para las columnas del dbgrid

alguien me puede ayudar con un ejemplo de como ajustar automaticamente el ancho de las columnas de un dbgrid por el titulo de la columna. es decir tengo un dbgrid que se actualiza al hacer click en un button entonces quiero que el ancho de las columnas se porga acorde al titulos de las mismas.

saludos y gracias de ante mano
Responder Con Cita
  #2  
Antiguo 06-02-2007
Avatar de Bicho
[Bicho] Bicho is offline
Miembro Premium
 
Registrado: jul 2003
Ubicación: Inca - Mallorca
Posts: 1.776
Poder: 22
Bicho Va por buen camino
Hola, revísate éste hilo y éste otro quizá te sirvan.

Saludos
Responder Con Cita
  #3  
Antiguo 06-02-2007
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Ademas de lo dicho o enseñado por Bicho, te muestro un ejemplito:
Aqui indico el tamaño de seis columnas:
Código Delphi [-]
     DBGrid1.Columns[0].Width := 64;
     DBGrid1.Columns[1].Width := 190;
     DBGrid1.Columns[2].Width := 85;
     DBGrid1.Columns[3].Width := 85;
     DBGrid1.Columns[4].Width := 49;
     DBGrid1.Columns[5].Width := 94;
Ojala te sirva.
Saludos
Responder Con Cita
  #4  
Antiguo 06-02-2007
jhcaboverde jhcaboverde is offline
Miembro
 
Registrado: nov 2006
Posts: 61
Poder: 18
jhcaboverde Va por buen camino
sobre el ancho de las columnas de un dbgrid

realmente lo que necesito es que se modifique al ancho de la columna mediante un codigo segun el ancho del nombre, es decir, que el ancho de la columna no tape parte del nombre ni le sobre espacio, eso lo vi en alguna parte pero no recuerdo.
Responder Con Cita
  #5  
Antiguo 06-02-2007
Avatar de fjcg02
[fjcg02] fjcg02 is offline
Miembro Premium
 
Registrado: dic 2003
Ubicación: Zamudio
Posts: 1.410
Poder: 22
fjcg02 Va camino a la fama
Prueba con este código, seguro que lo puedes modificar para que se adapte a lo que necesitas. No recuerdo de donde lo fusilé, pero fue por estos foros seguro

Un saludo


Código Delphi [-]
function TFrmQuick.CalcularAnchoColumnas( Campo: TField): integer;
var w:integer; TM:TTextMetric;
begin
//Result:= 64;
try
  Canvas.Font := QRLabel1.Font;
  GetTextMetrics(Canvas.Handle, TM);
  Result := Campo.DisplayWidth * Canvas.TextWidth('0') + 3;
  W := Canvas.TextWidth(Campo.DisplayLabel) + 3;
  if Result < W then  Result := W;
  if (Campo.Datatype = ftFloat)then
  begin
    w:= Canvas.TextWidth((Campo as tFloatField).Displayformat) + 4;
    if Result < W then  Result := W;
  end;
finally
end;
end;
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino -
Responder Con Cita
  #6  
Antiguo 07-02-2007
jhcaboverde jhcaboverde is offline
Miembro
 
Registrado: nov 2006
Posts: 61
Poder: 18
jhcaboverde Va por buen camino
revisame este error a ver si me puedes ayudar

puse la funcion y la llamo desde el evento de create del form, mi duda es en el nombre de la funcion pones "TFrmQuick" que es esto?? no entiendo bien y no puedo modificarla para llevarla a lo que necesito.
errores que me da:

[Error] Unit1.pas(102): Function needs result type
[Error] Unit1.pas(107): Undeclared identifier: 'Canvas'
[Error] Unit1.pas(107): Undeclared identifier: 'QRLabel1'
[Error] Unit1.pas(108): Not enough actual parameters

te detallo mas mi duda: tengo un DBGrid, adotable y un datasource que pasa al abrir el form las columnas toman el ancho "que les da la gana" quiero que mediante un codigo tomen el tamano segun el nombre de la columna, es decir, que el tamano sea ancho del nombre de la columna.

no utilizo la propiedad ancho de columna del dbgrid como otros me han sujerido porque cambian de nombre.

un saludo y gracias por la atencion

kico
Responder Con Cita
  #7  
Antiguo 07-02-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
Creo que es mucho más simple de lo que se comenta:

Código Delphi [-]
for I:=0 to dbgrid.columns.count-1 do
with dbgrid.columns[i] do
  width := dbgrid.canvas.textwidth(Field.DisplayLabel)+10;

el +10 es por si quieres ordenar una columna y que aparezca el triangulito correspondiente.

saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #8  
Antiguo 07-02-2007
jhcaboverde jhcaboverde is offline
Miembro
 
Registrado: nov 2006
Posts: 61
Poder: 18
jhcaboverde Va por buen camino
ancho de las calumnas de un grid segun su texto de encabezado

mil gracias, quedo perfeto me salta una duda que te la paso, al recibir la notificacion por correo el codigo que te pone no es igual, te lo pongo

Hola jhcaboverde,
Respuesta de..: Lepe
Título....:...: para las columnas del dbgrid
Foro..........: Varios
URL...........:
http://www.clubdelphi.com/foros/show...5&goto=newpost

=============== R E S P U E S T A ============================
Creo que es mucho más simple de lo que se comenta:

for I:=0 to dbgrid.columns.count-1 do
with dbgrid.columns do
width := dbgrid.canvas.textwidth(FieldName)+10;

el +10 es por si quieres ordenar una columna y que aparezca el
triangulito correspondiente.
saludos
=============== F I N A L R E S P U E S T A ===============
Responder Con Cita
  #9  
Antiguo 07-02-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
jajajajajaja

... es que.... edité el mensaje después de enviar la respuesta al foro, obviamente se envió la primera respuesta, no la edición posterior.

Razón del editado.... pues bueno, puede que el campo en la base de datos se llame nfactura pero en el displayLabel tengas puesto "Núm Factura" para que sea más bonito al usuario, así que decidí modificarlo.

Saludos.
__________________
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Ancho de columnas de un DBGrid PTW Varios 2 01-06-2005 01:50:39
columnas de un Dbgrid ramdo OOP 1 26-04-2005 01:12:11
Columnas del DBGrid hgiacobone OOP 5 24-11-2004 23:44:40
Columnas Dbgrid Carlex Conexión con bases de datos 2 13-02-2004 21:50:43
Columnas del DBGrid thecarlos MS SQL Server 1 24-12-2003 10:50:32


La franja horaria es GMT +2. Ahora son las 17:52: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