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 22-01-2011
llSnakell llSnakell is offline
Miembro
NULL
 
Registrado: ene 2011
Posts: 73
Poder: 14
llSnakell Va por buen camino
ClientWidth y ClientHeight Help !!!

Ola de nuevo quiero saber para que sirven los ClientWidth y ClientHeight
y en que casos se utilizan !! en que tipos de problemas
y si me pueden dar un ejemplo ?????

thanks !!
Responder Con Cita
  #2  
Antiguo 23-01-2011
Avatar de Lord Delfos
Lord Delfos Lord Delfos is offline
Miembro
 
Registrado: ene 2008
Ubicación: Tandil, Argentina
Posts: 558
Poder: 17
Lord Delfos Va por buen camino
El ClientWidth y ClientHeight te dan el ancho y el alto del área cliente de un control. Esto es, el alto y ancho del área "interna", la útil para meterle cosas adentro.

Por ejemplo, en un TForm te dan el tamaño SIN los bordes. Mientras que heigh y width te dan el tamaño total de la ventana.

Ejemplo, poné esto en un botón:

Código Delphi [-]
  ShowMessage('ClientWidth: ' + IntToStr(ClientWidth) +'  ClientHeight: '+ IntToStr(ClientHeight) +#13#10 + 'Width: ' +IntToStr(Width) + ' Height: '+IntToStr(Height));

Por ejemplo a mí me da:
Código:
  675 Height
- 637 Client Height
 ---- 
   38 -> Barra de título más borde inferior.

  1305 Width      
- 1289 Client Width
  ----
    16 -> borde derecho e izquierdo.
Es decir, el Height cuenta el alto de la ventana más el alto de la barra de título y el borde inferior. Lo mismo hace el Width.

No todos los controles van a tener diferencias entre las dos cosas. Por ejemplo, una Label ambos valores son iguales... Lógico, la label no tiene bordes de ninguna clase.

Hay multitud de uses para estas dos propiedades client... Uno que se me venga a la mente... no sé, digamos por ejemplo que quiero mostrar un gráfico dinámico de alguna clase en una ventana. ¿De cuánto espacio dispongo? Width y Height no me sirven porque el ancho de los bordes varía de SO a SO. En cambio CW y WH no varían, porque no tienen en cuenta los bordes. Así yo puedo saber qué escala exacta tengo que usar para mi gráfico.

Otro ejemplo: quiero, en tiempo de ejecución, poner un control a la derecha de la ventana, a unos 16 píxeles del final... Es decir quiero hacer algo como:

Código Delphi [-]
Control.Left:= Ventana.Width - Control.Width - 16 - 16 {por el borde};

Pero esto tiene el problema de que el borde me varía y me rompe mi "algoritmo posicionador de controles en runtime". ¿Qué hago? Pues uso ClientWidth en lugar de Width.


Espero te sirva. Saludongos.

Última edición por Lord Delfos fecha: 23-01-2011 a las 04:33:25. Razón: Más errores ortográficos que el Chavo del Ocho.
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 00:34:24.


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