Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros temas > Trucos
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Los mejores trucos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 13-04-2014
FENIXadr FENIXadr is offline
Miembro
 
Registrado: may 2010
Ubicación: Córdoba - Cba. - Argentina
Posts: 101
Poder: 14
FENIXadr Va por buen camino
Haciendo ventanas con cualquier forma..

Si señor... basta de ventanas rectangulares, aqui les traigo un truquito muy sencillo pero que puede solucionarles alguna situación a la hora de hacer cosas estéticamente raras pero lindas.. se trata de hacer un Form de cualquier forma.. si .. asi es .. no leyeron mal.. de cualquier forma, el límite es su imaginación..
Para este truco vamos a utilizar algunas propiedades que traen los forms y que generalmente no se le da demaciada importancia, estamos hablando de la prpiedad BorderStyle, Color,TransparentColor y TransparentColorValue.
Generalmete los forms tiene un color fijo en casi todas las aplicaciones dependiendo del tema que usemos en windows, nosotros vamos a colocar el color Fucsia como nuetro color de ventana y de esta manera todo lo que sea Fucsia será transparente..

entonces :

BorderStyle = bsNone ----> para que no muestre borde alguno.
Color = clFuchsia ----> color de fondo del Form.
TransparentColor = True ----> Activamos la transparencia
TransparentColorValue = clFuchsia -----> Especificamos que color se tomará como transparente


esto se coloca directamente desde el "Object Inspector" sin necesidad de escribir ni una sola línea de código..

luego agregamos un TImage con una imagen cualquiera para darle la forma que deseamos a nuestro form donde todo lo que querramos que sea transparente debe ser de color fucsia..

en este punto ya logramos lo que deseábamos.. un form de cualquier forma.. pero debemos agregar un mensaje para poder moverla porque ya no tenemos el borde superior que hacia este trabajo...

vamos al código
Código Delphi [-]
unit UForma;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, StdCtrls;

type
  TForm1 = class(TForm)
    Image1: TImage;
    Button1: TButton;
    procedure Image1MouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

// Este procedimiento es para mover la ventana desde cualquier lugar
// que le hagamos Click.
procedure TForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  if Button = mbLeft then
  begin
    //if Y < 30 then  // habilitamos solo los primeros 30 pixeles superiores para
    begin           // simular la barra superior de un form normal
      ReleaseCapture;
      SendMessage(Handle, WM_NCLBUTTONDOWN, HTCAPTION, 0);
    end;
  end;
end;


procedure TForm1.Button1Click(Sender: TObject);
begin
  Close;
end;

end.
como ven es realmente sencillo...

lo único que deberán tener en cuenta es el alisado del borde en la imagen, no pude estar alisado sino se verán pequeños puntos fuccias..

si tienen que retocar alguna imagen para pintar el exterior de color fucsia con algún soft tipo Photoshop, deben tener en cuenta que los valores del fucsia en RGB deben ser : RED = 255, GREEN = 0 y BLUE = 255.

adjunto un ejemplo listo para compilar.

espero que les guste.. comenten cualquier inconveniente o duda..

saludos..
Archivos Adjuntos
Tipo de Archivo: rar Ventana con forma.rar (102,1 KB, 125 visitas)

Última edición por Casimiro Notevi fecha: 13-04-2014 a las 11:36:57.
Responder Con Cita
  #2  
Antiguo 13-04-2014
FENIXadr FENIXadr is offline
Miembro
 
Registrado: may 2010
Ubicación: Córdoba - Cba. - Argentina
Posts: 101
Poder: 14
FENIXadr Va por buen camino
Fe de errata :

hay un error en el código mostrado con respecto al evento OnMouseDown.. debe ser el evento del TImage y no el del Form como está puesto alli..

o sea en vez de "FormMouseDown" debería ser "Image1MouseDown"..

Mil disculpas por el error.

Saludos.
Responder Con Cita
  #3  
Antiguo 13-04-2014
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Está muy chulo, porque, sólo cambiando unas cuantas propiedades del formulario conseguimos el efecto deseado.

Gracias por compartirlo.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #4  
Antiguo 13-04-2014
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.021
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Responder Con Cita
  #5  
Antiguo 13-04-2014
Avatar de MAXIUM
MAXIUM MAXIUM is offline
Miembro
 
Registrado: may 2005
Posts: 1.485
Poder: 20
MAXIUM Va camino a la fama
Podria mejor si se usa un componente PNG contransparencia para poder alisar los bordes digo yo.
Responder Con Cita
  #6  
Antiguo 13-04-2014
FENIXadr FENIXadr is offline
Miembro
 
Registrado: may 2010
Ubicación: Córdoba - Cba. - Argentina
Posts: 101
Poder: 14
FENIXadr Va por buen camino
Cita:
Podria mejor si se usa un componente PNG contransparencia para poder alisar los bordes digo yo.

Hola MAXIUM..

No he probado lo que propones.. pero no creo que funcione porque el problema no es la imagen sino el método de transparencia.. se toma un color específico.. y si el color no es exactamente igual.. no se hace transparente.. por eso hice incapié en el suavisado del borde de la imagen y en que el color fucsia fuese R=255, G=0, B=255, si esto no es así el fucsia deja de ser transparente..

En el caso del ejemplo, a la imagen con Bart Simpson la tuve que retocar en PhotoShop pero cuando rrellené el exterior con el color fucsia usando la herramienta del bote de pinturta, le puse la tolerancia en 0 y desactivé el suavisado de relleno, de otra manera quedan los bordes suavisados y se ven todos los tonos de fucsia que no sean R=255, G=0, B=255..

de todos modos si alguien logra suavisar los bordes.. bienvenido será..

Saludos..
Responder Con Cita
  #7  
Antiguo 13-04-2014
Avatar de ElKurgan
[ElKurgan] ElKurgan is offline
Miembro Premium
 
Registrado: nov 2005
Posts: 1.232
Poder: 20
ElKurgan Va camino a la fama
Thumbs up

Muy buen aporte, amigo
Responder Con Cita
  #8  
Antiguo 13-04-2014
Avatar de nlsgarcia
[nlsgarcia] nlsgarcia is offline
Miembro Premium
 
Registrado: feb 2007
Ubicación: Caracas, Venezuela
Posts: 2.206
Poder: 21
nlsgarcia Tiene un aura espectacularnlsgarcia Tiene un aura espectacular
FENIXadr,

Excelente

Nelson.
Responder Con Cita
  #9  
Antiguo 14-04-2014
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola FENIXadr.

Muchas gracias

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #10  
Antiguo 14-04-2014
Avatar de Julián
Julián Julián is offline
Merodeador
 
Registrado: may 2003
Ubicación: en mi casa
Posts: 2.019
Poder: 10
Julián Va por buen camino
http://melander.dk/articles/alphasplash
http://melander.dk/articles/alphasplash2
__________________
"la única iglesia que ilumina es la que arde"
Anonimo
Responder Con Cita
  #11  
Antiguo 14-04-2014
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.233
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Gracias por el aporte.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #12  
Antiguo 14-04-2014
FENIXadr FENIXadr is offline
Miembro
 
Registrado: may 2010
Ubicación: Córdoba - Cba. - Argentina
Posts: 101
Poder: 14
FENIXadr Va por buen camino
Hola Julián... Estuve viendo estos links.. y estan muy buenos.. pero hasta donde yo se, el Alpha Blend es más para tratamiento de imágenes.. no se si se puede utilizar para suavisar los Forms.. si lo usas para los Forms publicalo que sería buenísimo...

Hace unos años conseguí una rutina para trabajar con Alpha Blend que es rapidísima y muy sencilla.. La voy a buscar y voy a crear otro hilo para que los que no saben usar el Alpha, aprendan como hacer mezclas de imágenes, esfumados o transparencias.. entre otras cosas..

Saludos..
Responder Con Cita
  #13  
Antiguo 16-04-2014
Avatar de Julián
Julián Julián is offline
Merodeador
 
Registrado: may 2003
Ubicación: en mi casa
Posts: 2.019
Poder: 10
Julián Va por buen camino
Cita:
Empezado por FENIXadr Ver Mensaje
.. pero hasta donde yo se, el Alpha Blend es más para tratamiento de imágenes.. no se si se puede utilizar para suavisar los Forms.. si lo usas para los Forms publicalo que sería buenísimo....
No hace falta que lo publique yo. En esos links explica eso exactamente: Cómo hacer ventanas con partes transparentes o semitransparentes usando alphablend. Y hasta ponen el código para seguir el ejemplo.

Para imágenes de casi todo tipo hay unos excelentes componentes, totalmente libres, y además gratuitos, que usé hace mucho tiempo, y que creo que se llamaban GraphicsEx o algo así, y permitian hacerle de casi todo a las imágenes, filtros, capas, transparencias, etc. Vamos, pa montarte un "photoshop line" con muy poquito esfuerzo. Si mañana me acuerdo miraré su nombre (el de los componenets) en el trabajo, en dónde aún tengo windows en el pc.

Jau!
__________________
"la única iglesia que ilumina es la que arde"
Anonimo
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Pasar Variables de Forma a Forma con delphi.net ASP ASAPLTDA .NET 5 05-07-2007 21:51:31
Como Pasar Variables de Forma a Forma con delphi.net ASP ASAPLTDA Internet 2 02-07-2007 17:26:41
Que estoy haciendo Mal esimon SQL 4 04-07-2006 22:55:25
Ventanas,Ventanas Mdi=Dolor de cabeza ? IVAND Varios 7 08-05-2006 18:27:24
Como pasar parametros de una forma hija a otra forma hija luisreg OOP 3 17-09-2003 19:18:50


La franja horaria es GMT +2. Ahora son las 18:59:25.


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