Un TShape con personalidad
¿Alguien sabe como dibujar un Rectángulo (o otro shape cualquiera) que quede "por encima de todo", en un Formulario, aún de los controles descendientes de TWinControl? Como los shapes son descendientes de TGraphicControl, siempre quedan con partes cubiertas por otros componentes de mayor "peso". En mi caso quiero que una parte del rectángulo quede por encima de un TDBGrid.
|
Se me ocurre una forma sencilla, que es un TPanel con un TShape y alineación alClient; Ya sea por separado o creando un componente nuevo derivado del TPanel y creando el TShape en su interior.
No se si exactamente te refieres a eso y te puede servir... |
en realidad no...
:( ...lamentablemente no me sirve porque lo que yo quiero es un cuadro vacío, es decir un rectangulo dibujado con una linea y el interior transparente. Digamos algo tipo Bevel o un TShape con BrushStyle bsClear.
|
Creo que tendrás que hechar mano a las regiones, hechale un vistaso en la ayuda a la función CreatePolygonRgn y CombineRgn
Pues nada que te creas una región como la que necesitas y después al TPanel de Neftali le aplicas un SetWindowRgn y listo. Espero te de resultado esta idea. saludos. |
Pensé en eso, pero no quería hacer sufrir tanto al windows con regiones irregulares, pensé que había formas más sencillas...
|
Cita:
Cita:
Saludos |
Un ejemplito para si te decides:D
Pon en tu form un TPanel de 40 por 40, lo puedes pintar de azul para que se distinga bien y en el Oncreate de tu form
Saludos |
a falta de mejores ideas...
A falta de mejor opción, decidí quedarme con la opción de las regiones de yusnerqui y hacerle pagar a Windows alguna de las que me debe. Por si a alguien le sirve, me hice un componente y lo bauticé "SuperBevel" porque no se me ocurrió un nombre mejor. Una de las utilidades de este cuadro es p. ej. darle un movimiento y simular el efecto que hace el Word cuando guarda un documento, o enmarcar un comentario transparente tipo Hint. Bueno... como sea, considérenlo suyo :) .
Código:
unit SuperBevel; |
La franja horaria es GMT +2. Ahora son las 15:05:36. |
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