Sources
Delphi Russian Knowledge Base
DRKB - это самая большая и удобная в использовании база знаний по Дельфи в рунете, составленная Виталием Невзоровым

Как сделать, чтобы компоненты отбрасывали тень?

01.01.2007
procedure ShadeIt(f: TForm; c: TControl; Width: Integer; Color: TColor); 
var
  rect
: TRect;
  old
: TColor;
begin
 
if (c.Visible) then
 
begin
    rect
:= c.BoundsRect;
    rect
.Left := rect.Left + Width;
    rect
.Top := rect.Top + Width;
    rect
.Right := rect.Right + Width;
    rect
.Bottom := rect.Bottom + Width;
    old
:= f.Canvas.Brush.Color;
    f
.Canvas.Brush.Color := Color;
    f
.Canvas.fillrect(rect);
    f
.Canvas.Brush.Color := old;
 
end;
end;
 
procedure TForm1
.FormPaint(Sender: TObject);
var
  i
: Integer;
begin
 
for i := 0 to Self.ControlCount - 1 do
   
ShadeIt(Self, Self.Controls[i], 3, clBlack);
end;

Взято с https://delphiworld.narod.ru