Se trata de crear una sombra a todos los componentes colocados en un form. Más como curiosidad y didáctico que como utilidad; En fin, curioso.
El código:
Código Delphi
[-]
procedure TForm1.FormPaint(Sender: TObject);
var
i: Integer;
procedure MakeShadow(control: TControl; Width: Integer; Color: TColor);
var
rect: TRect;
old: TColor;
begin
rect := control.boundsrect;
rect.Left := rect.Left + width;
rect.Top := rect.Top + width;
rect.Right := rect.Right + width;
rect.Bottom := rect.Bottom + width;
old := Self.canvas.brush.color;
Self.canvas.brush.Color := color;
Self.canvas.fillrect(rect);
Self.canvas.brush.Color := old;
end;
begin
for i:=0 to Self.ControlCount-1 do
if self.Controls[i].Visible then
MakeShadow(Self.Controls[i],2,clGray);
end;
Utilización: Simplemente pon esto en el evento OnPaint de tu formulario.
Posible mejora: Crear un componente que se encargue de ésta tarea (a partir del Owner -TForm-).