Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Go Back   Foros Club Delphi > Principal > Gráficos
Register FAQ Members List Calendar Guía de estilo Today's Posts

Reply
 
Thread Tools Search this Thread Display Modes
  #1  
Old 26/08/2010
locojoan locojoan is offline
Miembro
 
Join Date: Mar 2004
Posts: 18
Poder: 0
locojoan Va por buen camino
AlphaBlend o transparencia

Hola. Habra alguna forma de incluir la opcion de alphablend en un componente que no lo tiene?

tengo unos componentes graficos para dibujar cuadrados, circulos, etc. habra forma de crear la propiedad alphablend para estos componentes? gracias.
Reply With Quote
  #2  
Old 27/08/2010
ElDioni's Avatar
[ElDioni] ElDioni is offline
Miembro Premium
 
Join Date: Jul 2005
Location: Murcia (España)
Posts: 935
Poder: 22
ElDioni Va por buen camino
Pues supongo que tendrás que crearte tu propio componente tomando como base el que tienes ahora mismo y añadiendole la función de alphablend que comentas, en este aspecto yo no te puedo ayudar mucho, pero para que te hagas una idea puedes echarle un vistazo al componente TAlignEdit que creo el maestro roman en el que a un componente TEdit le añadió la función "Aligment" para poder alinear el texto de la caja de texto. El componente supongo que estará en el FTP del club.
Reply With Quote
  #3  
Old 28/08/2010
locojoan locojoan is offline
Miembro
 
Join Date: Mar 2004
Posts: 18
Poder: 0
locojoan Va por buen camino
Encontre este procedimiento

Código Delphi [-]
procedure FadeControl(AControl : TWinControl);
Var
Bitmap  : TBitmap;
Canvas  : TControlCanvas;

Func    : TBlendFunction;
R       : TRect;

Opacity : Integer;
Begin
If (AControl = nil) or (AControl.Parent = nil) or not AControl.Visible Then
   Exit;

Bitmap  := TBitmap.Create;
Canvas  := TControlCanvas.Create;
Try
   With AControl Do Begin
    Bitmap.Width   := Width;
    Bitmap.Height  := Height;

    Canvas.Control :=  AControl;
    Bitmap.Canvas.CopyRect(ClientRect, Canvas, ClientRect);

    Hide;

    Func.BlendOp             := AC_SRC_OVER;
    Func.BlendFlags          := 0;
    Func.AlphaFormat         := 0;


    Canvas.Control         := Parent;
    Parent.DoubleBuffered  := True;

    Opacity := 100;
    While Opacity > 20 Do Begin
      R := ClientRect;
      OffsetRect(R, Left, Top);
      InvalidateRect(Parent.Handle, @R, False);
      Parent.Update;

      Func.SourceConstantAlpha := Opacity;
      AlphaBlend(Canvas.Handle, Left, Top, Width, Height,
                 Bitmap.Canvas.Handle, 0, 0, Width, Height,
                 Func);

      Sleep(50);
      Dec(Opacity, 20);
      exit;
    End;
   End;

   Canvas.Control.Invalidate;

finally
   Bitmap.Free;
   Canvas.Free;
End;
End;

Funciona bastante bien. el problema es que una ves que se vuelve transparente el componente, por ejemplo un boton ya no se puede usar. alguien tal ves se anima a modificarlo para que se puedan manejar con normalidad los componentes luego de volverlos trasparentes?

gracias.

Last edited by roman : 03/06/2016 at 16:43. Reason: Agregar etiquetas [delphi]
Reply With Quote
Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
AlphaBlend con Imagenes antonio302050 C++ Builder 4 01/08/2010 15:14
Transparencia en imagenes ElDuc Gráficos 2 27/03/2009 00:08
Problem con AlphaBlend y forms embebidos old_martinez Varios 1 12/03/2009 20:53
AlphaBlend aeff API de Windows 10 30/11/2008 14:10
Aplicar AlphaBlend pero a un componente quetzal Varios 1 19/09/2004 09:56


All times are GMT +2. The time now is 05:00.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi