Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Gráficos
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 26-08-2010
locojoan locojoan is offline
Miembro
 
Registrado: 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.
Responder Con Cita
  #2  
Antiguo 27-08-2010
Avatar de ElDioni
[ElDioni] ElDioni is offline
Miembro Premium
 
Registrado: jul 2005
Ubicación: Murcia (España)
Posts: 935
Poder: 19
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.
Responder Con Cita
  #3  
Antiguo 28-08-2010
locojoan locojoan is offline
Miembro
 
Registrado: 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.

Última edición por roman fecha: 03-06-2016 a las 17:43:07. Razón: Agregar etiquetas [delphi]
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
AlphaBlend con Imagenes antonio302050 C++ Builder 4 01-08-2010 16:14:14
Transparencia en imagenes ElDuc Gráficos 2 27-03-2009 01:08:19
Problem con AlphaBlend y forms embebidos old_martinez Varios 1 12-03-2009 21:53:05
AlphaBlend aeff API de Windows 10 30-11-2008 15:10:25
Aplicar AlphaBlend pero a un componente quetzal Varios 1 19-09-2004 10:56:24


La franja horaria es GMT +2. Ahora son las 20:07:07.


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