Tworze tlo okna z png z kanalem alpha:
var
Bitmap32: TBitmap32;
PNG: TPNGObject;
BlendFunction: TBlendFunction;
P: TPoint;
Size: TSize;
begin
Bitmap32 := TBitmap32.Create;
PNG := TPNGObject.Create;
PNG.Assign(Image.Picture.Graphic);
PNGToBitmap32(PNG, Bitmap32);
SetWindowLong(Handle, GWL_EXSTYLE, GetWindowLong(Handle, GWL_EXSTYLE) or WS_EX_LAYERED);
BlendFunction.BlendOp := AC_SRC_OVER;
BlendFunction.BlendFlags := 0;
BlendFunction.SourceConstantAlpha := 255;
BlendFunction.AlphaFormat := AC_SRC_ALPHA;
P := Point(0, 0);
Size.cx := Bitmap32.Width;
Size.cy := Bitmap32.Height;
UpdateLayeredWindow(Handle, 0, nil, @Size, Bitmap32.Handle, @P, 1, @BlendFunction, ULW_ALPHA);
PNG.Free;
Bitmap32.Free;
end;
W oknie sa tez inne komponenty, ktore zostaja przeslaniete. Nie mam pomyslu co zrobic zeby byly widoczne? Moze ktos pomoze?