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 01-05-2004
Avatar de salvica
salvica salvica is offline
Miembro
 
Registrado: mar 2004
Ubicación: Albacete (España) ... En un lugar de la Mancha ...
Posts: 304
Poder: 21
salvica Va por buen camino
Ajustar un Form al ancho de un texto

Hola y gracias por adelantado

Estoy intentando ajustar un Form a la línea más larga de un TListBox y después de estrujarme el "coco" ya no sé si cortarme las venas o dejármelas crecer

Lo intento en el evento OnShow del form tal que así
Código:
 var
    i : integer;
    w : integer;
 begin
    w := 0;
    for i:=0 to Lista.Items.Count-1 do
 	  if( Lista.Canvas.TextWidth(Lista.Items[i])>w ) then
 		  w := Lista.Canvas.TextWidth(Lista.Items[i]);
    Form1.Width := w;
 end;
Siempre se me queda corto (y eso que aún no he intentado cambiar las fuentes, el estilo ni nada)

¿Donde estoy metiendo la pata????????
Lo dicho, agradecido por la ayuda que podais prestarme

Nota: Antes de que me echeis la bronca, que conste que me he leido el foro de cabo a rabo, con búsquedas, a pelo y sigo como entré (ni repajolera idea)
Responder Con Cita
  #2  
Antiguo 01-05-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
te has olvidado de los bordes... de los de la forma, y de los del listbox...

Has de hacer:

Form1.ClientWidth := w + Unos5o10PixelsPorElBordeDelList;

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
  #3  
Antiguo 01-05-2004
Avatar de salvica
salvica salvica is offline
Miembro
 
Registrado: mar 2004
Ubicación: Albacete (España) ... En un lugar de la Mancha ...
Posts: 304
Poder: 21
salvica Va por buen camino
Gracias por responder tan rápido

Lo del borde ya lo sé, pero como de todas formas se come casi un cuarto del texto, no nos vamos a pegar por 10 ó 12 pixels de nada

No se te ocurre nada?
Dicen que cuatro ojos ven más que dos, ¿donde me estoy colando?
Abrazotes
Salvador
Responder Con Cita
  #4  
Antiguo 01-05-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
en que versión de delphi estas trabajando???

Yo acabo de hacerlo en mi ya desempolvado delphi4, y con 12 pixels funciona de maravilla!
__________________
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 01-05-2004
Avatar de salvica
salvica salvica is offline
Miembro
 
Registrado: mar 2004
Ubicación: Albacete (España) ... En un lugar de la Mancha ...
Posts: 304
Poder: 21
salvica Va por buen camino
Hola jachguate, buenas noches-madrugadas desde Albacete

Estoy utilizando Delphi-7 porque quiero pasar los trabajos que tengo en la 3 a Kylix y aún no he instalado Linux, asi que como verás el salto es olímpico

En Delphi-3 siempre he utilizado esa forma de ajustar los Forms y funcionaba ¿?
El trabajo consiste en visualizar la respuesta de una query a un servidor mySql y que el usuario escoja entre una de los textos que devolvió el servidor, pero siempre se me queda unos dos cetímetros corto (utilizo un monitor de 19 pulgadas a 1024x800) y quiero que se vea en otros con menos resolución, por lo que he de ajustar el forma de salida en tiempo de ejecución

Gracias, voy a probar a utilizar la propiedad ClientWidth del TListBox para ver si funciona
Responder Con Cita
  #6  
Antiguo 01-05-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
Pues yo hice la prueba original en delphi4, pero ahora la he compilado en delphi7 y funciona perfectamente...

La resolución del monitor no creo que tenga nada que ver... por si las dudas, yo uso 1280x1024.

el código:

Código Delphi [-]
procedure TForm1.Ajustar;
var
  i : integer;
  w : integer;
begin
  w := 0;
  for i:=0 to Lista.Items.Count-1 do
        if( Lista.Canvas.TextWidth(Lista.Items[i])>w ) then
                w := Lista.Canvas.TextWidth(Lista.Items[i]);
  ClientWidth := w + 12;
end;

Hasta luego.

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 16:37:16.


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