[DUG] AlphaBlend Panel?
Kyley Harris
Kyley at harrissoftware.com
Fri Mar 20 12:06:37 NZST 2009
procedure AlphaBlendPanel(P: TCustomPanel;var Bmp:
TBitmap;AColor:TColor;ABlend:integer;AddFrame:boolean);
var
b:TBitmap;
var
bf:TBlendFunction;
c:TCanvas;
begin
// AColor := clInfoBk;
fillchar(bf,sizeof(bf),0);
b := TBitmap.Create;
b.Height := p.Height;
b.Width := P.Width;
b.Canvas.Brush.Style := bsSolid;
b.Canvas.Brush.Color := AColor;
b.Canvas.FillRect(rect(0,0,b.Width,b.height));
bf.BlendOp := AC_SRC_OVER;
bf.SourceConstantAlpha := ABlend;
BMP.Height := p.Height;
BMP.Width := p.Width;
p.PaintTo(bmp.Canvas,0,0);
windows.AlphaBlend(bmp.Canvas.Handle,0,0,P.Width,P.Height,b.Canvas.Handle,0,0,P.Width,P.Height,bf);
if AddFrame then
begin
b.Canvas.Brush.Color := clNavy;
b.Canvas.FillRect(rect(0,0,b.Width,b.height));
bf.BlendOp := AC_SRC_OVER;
bf.SourceConstantAlpha := 150;
windows.AlphaBlend(bmp.Canvas.Handle,0,0,P.Width,4,b.Canvas.Handle,0,0,P.Width,4,bf);
windows.AlphaBlend(bmp.Canvas.Handle,0,p.height-4,P.Width,4,b.Canvas.Handle,0,p.height-4,P.Width,4,bf);
windows.AlphaBlend(bmp.Canvas.Handle,0,0,4,p.height,b.Canvas.Handle,0,0,3,p.height,bf);
windows.AlphaBlend(bmp.Canvas.Handle,p.width-4,0,4,p.height,b.Canvas.Handle,p.width-4,0,4,p.height,bf);
end;
{
// BMP.Canvas.CopyMode := cmSrcAnd;
BMP.Canvas.CopyMode := cmSrcInvert;
BMP.Canvas.CopyRect(r,b.Canvas,r);
BMP.Canvas.Brush.Color := clyellow;
Dec(r.Right);
Dec(r.Bottom);
BMP.Canvas.FrameRect(r);
Dec(r.Right);Dec(r.Bottom);Inc(r.Left);Inc(r.Top);
BMP.Canvas.FrameRect(r);
}
b.free;
end;
On Fri, Mar 20, 2009 at 1:04 PM, Jeremy North <jeremy.north at gmail.com>wrote:
> Delphi 2009 has support for alpha blending. Otherwise Graphics32 might
> be of some use.
>
> On Fri, Mar 20, 2009 at 10:15 AM, Jeremy Coulter <jscoulter at gmail.com>
> wrote:
> > Hi guys.
> > I need to have an overlay that does an alphablend.
> > I thought that I might be able to do this with a panel but thats no go.
> > Anyone know of a way yo acheive this?
> >
> >
> > Jeremy
> >
> > _______________________________________________
> > NZ Borland Developers Group - Delphi mailing list
> > Post: delphi at delphi.org.nz
> > Admin: http://delphi.org.nz/mailman/listinfo/delphi
> > Unsubscribe: send an email to delphi-request at delphi.org.nz with Subject:
> > unsubscribe
> >
> _______________________________________________
> NZ Borland Developers Group - Delphi mailing list
> Post: delphi at delphi.org.nz
> Admin: http://delphi.org.nz/mailman/listinfo/delphi
> Unsubscribe: send an email to delphi-request at delphi.org.nz with Subject:
> unsubscribe
>
--
Kyley Harris
Harris Software
+64-21-671-821
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://listserver.123.net.nz/pipermail/delphi/attachments/20090320/6ec596a2/attachment.html
More information about the Delphi
mailing list