PDA

Ver la Versión Completa : Bordes de un PageControl


roman
07-09-2004, 22:27:56
Hola,

¿Alguien sabe si es posible integrar los bordes de un PageControl a los del formulario cuando se alinea a uno de los bordes (propiedad Align) como cualquier otro control en lugar de que quede en relieve?

// Gracias

PARF
08-09-2004, 00:44:05
Una forma es cambiando la propiedad Style a tsFlatButtons o tsButtons, los tabs quedan como botones pero los bordes ya no quedan en relieve

roman
08-09-2004, 02:46:18
Gracias PARF, había ya probado lo que me comentas y es como dices pero pues bueno, me hubiera gustado con los "tabs" y por otra parte con el estilo de botones si bien no aparece el borde, los botones no se recorren a la izquierda de manera que no quedan alineados con los controles que haya en las fichas. :(

Agradezco tu interés, un saludo

roman
08-09-2004, 08:56:49
Bueno, quizá no es la solución ideal pero el efecto es bastante aceptable. Luego de una noche de búsqueda finalmente encontré algo que adaptándolo un poco quedó así:


interface

type
TFlatPageControl = class(TPageControl)
protected
function GetClientRect: TRect; override;
end;

implementation

function TFlatPageControl.GetClientRect: TRect;
begin
Result := inherited GetClientRect;
InflateRect(Result, 4, 4);
end;

end.


Es decir, engañar al control haciéndole pensar que su área cliente es 4 pixeles más grande de cada lado por lo que los bordes quedan ocultos por los controles adyacentes cuando su propiedad Align es alClient.

Para mejor darme a entender en cuanto a lo que deseaba vean estas imágenes (http://www.clubdelphi.com/users/roman/pagecontrols.php). La primera es con el PageControl usual con sus bordes sobresaliendo del resto y la segunda el nuevo PageControl con los bordes "integrados" al resto.

Si les gusta, y en espera de una mejor solución, pues ahí tienen el código.

// Saludos