FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Forms con las esquinas redondeadas
Hola a todos, he buscado en los foros y en páginas de componentes alguno para redondear los bordes de un form, pero no he encontrado nada. Si he visto varios códigos que pintan el form de varias formas o lo hacen tranparente pero si eso también sirve para hacer lo que pido no tengo ni idea como se hace.
Agradecería cualquier información sobre el tema, gracias por vuestra ayuda.
__________________
No hay vientos favorables para quién no conoce su rumbo. |
#2
|
||||
|
||||
Aquí tienes un ejemplo:
Código:
procedure TForm1.FormCreate(Sender: TObject); var f: HRGN; begin Form1.Borderstyle := bsNone; f := CreateRoundRectRgn( 0, // x-coordinate of the region's upper-left corner 0, // y-coordinate of the region's upper-left corner clientwidth, // x-coordinate of the region's lower-right corner clientheight, // y-coordinate of the region's lower-right corner 40, // height of ellipse for rounded corners 40); // width of ellipse for rounded corners SetWindowRgn(Handle,f,True); end
__________________
Guía de Estilo de los Foros Cita:
|
#3
|
|||
|
|||
Ok gracias, aunque tendré que ver como se ajustan ahora los botones de cerrar, etc porque se los come al hacer el circulo, pero de todas formas gracias por tú ayuda.
__________________
No hay vientos favorables para quién no conoce su rumbo. |
#4
|
||||
|
||||
Cita:
Cerrar: Application.Terminate; Minimizar: Application.Minimize; Maximizar: (No me acuerdo ) Espero que le sirva
__________________
:) |
#5
|
|||
|
|||
¿Qué quieres decir con usar mis propios botones?.
__________________
No hay vientos favorables para quién no conoce su rumbo. |
#6
|
||||
|
||||
Cita:
·······No se si me he explicado bien, pero ahí esta
__________________
:) |
#7
|
|||
|
|||
Ya te he entendido, pero entonces se debe imitar también la caption del form además de la diferencia de color con el resto del form, creo que eso supone bastante más trabajo.
Sí dispones de algún ejemplo tuyo te estaría muy agradecido que me lo enviaras, gracias.
__________________
No hay vientos favorables para quién no conoce su rumbo. |
#8
|
|||
|
|||
Gente, quise usar el código para redondear las puntas del formulario pero mi compilador no reconoce los siguientes identificadores
HRGN CreateRoundRectRgn SetWindowRgn en qué librería están? saludos |
#9
|
||||
|
||||
Tienes que utilizar la unit Windows
Saludos!
__________________
delphi.com.ar Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla. |
#10
|
|||
|
|||
gracias por tu ayuda, ahora me surgió otro inconveniente:
tipos incompatibles -> HWND and QOpenScrollViewH en esta función SetWindowRgn(Handle,f,True); donde f: HRGN; saludos |
#11
|
||||
|
||||
No se de dónde has sacado el QOpenScrollViewH...
¿Porqué no nos pasas tu código? Saludos!
__________________
delphi.com.ar Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla. |
#12
|
|||
|
|||
el codigo la saque de la sección de trucos, donde muestran cómo crear formularios con diferentes formas:
procedure TForm1.FormCreate(Sender: TObject); var hRgn: THandle; begin // Crear una zona eliptica hRgn := CreateEllipticRgn(10, 10, Width - 20, Height - 20); // poner la nueva region SetWindowRgn(Handle, hRgn, False); end; cuando compilo me dice el error que te envié en el mensaje anterior saludos |
#13
|
||||
|
||||
El tema es que lo estas haciendo en un QForm... Tienes que tener mucho cuidado en usar WinApis aplicaciones CLX!
Saludos!
__________________
delphi.com.ar Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla. |
#14
|
|||
|
|||
Buenas , he usado este truco para redondear un formulario que tengo pero entonces pierdo el botón de "CERRAR" que me recomendais crearlo manualmente con un button ?
saludos |
#15
|
||||
|
||||
Cita:
Para controlar la Non Client Area, tendrás que controlor los siguientes eventos:
Talvez el siguiente ejemplo te puede ayudar http://www.bobpowell.net/NonClient2.aspx. Así te puedes dar una idea de lo que necesitas. Saludos! |
|
|
|