Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   ¿Como cambiar el area Cliente de un component? (https://www.clubdelphi.com/foros/showthread.php?t=18283)

SyncMaster 08-02-2005 02:30:07

¿Como cambiar el area Cliente de un component?
 
Hola,

Tengo un componente que deriva del TCustomPanel y que será contenedor de otros componentes. Ahora bien necesito cambiar el area cliente del componente con el fin que los controles que inserte dentro de él se ajusten a las medidas. Actualmente delphi proporciona una propiedad BorderWidth que sirve para el caso, PERO el area es pareja para todos los lados, esa funcionalidad no me sirve para el objetivo que deseo conseguir ya que el area cliente es desigual para los 4 lados.

Ejemplo : Imaginemos un panel cuyas medidas son 100x100, tendremos que el area cliente sera (0,0,100,100) TRECT, entonces necesito conseguir por ejemplo cambiarlo a : (10,30,70,80) Sin modificar la medida del panel (100x100)

Asi los controles que ponga dentro de él se alinien dentro de esas medidas. (Se entiende)

Alguien tiene alguna técnica al respecto, o función API para lograr el objetivo?.

Gracias, Saludos de Chile.

defcon1_es 08-02-2005 10:21:04

Hola,
prueba modificando las propiedades
ClientWidth y ClientHeight de tu panel.

Según la ayuda de Delphi:

property ClientWidth: Integer;

Description

Use ClientWidth to read or change the width of the control’s client area.
ClientWidth is equivalent to ClientRect.Right.

roman 08-02-2005 16:36:59

Los descendientes de TControl, como TCustomPanel, tienen un método protegido, GetClientRect, que puedes redefinir para tales efectos, al menos a juzgar por la ayuda de Delphi:

Cita:

Empezado por ayuda de Delphi
Override GetClientRect to change how the client area is calculated.

// Saludos

maeyanes 09-02-2005 18:48:40

También existe AdjustClientRect, el cual según la ayuda de Delphi:

Cita:

Adjusts the ClientRect property for the idiosyncrasies of the window.
Y para más detalle:

Cita:

Description
AdjustClientRect is called internally when the panel needs accurate information on where to place child controls within the client area. AdjustClientRect reduces ClientRect by the width of the inner and outer bevels so that child objects are not placed on the beveled region.
Saludos...


La franja horaria es GMT +2. Ahora son las 18:32:22.

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