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

Как получить эффект тени для hint?

01.01.2007
type 
 
TXPHintWindow = class(THintWindow)
 
protected
    procedure
CreateParams(var Params: TCreateParams); override;
    procedure
WMNCPaint(var msg: TMessage); message WM_NCPAINT;
 
end;
 
function IsWinXP: Boolean;
begin
 
Result := (Win32Platform = VER_PLATFORM_WIN32_NT) and
   
(Win32MajorVersion >= 5) and (Win32MinorVersion >= 1);
end;
 
procedure
TXPHintWindow.CreateParams(var Params: TCreateParams);
const
  CS_DROPSHADOW
= $00020000;
begin
  inherited
;
 
if IsWinXP then
   
Params.WindowClass.Style := Params.WindowClass.Style or CS_DROPSHADOW;
end;
 
procedure
TXPHintWindow.WMNCPaint(var msg: TMessage);
var
  R
: TRect;
  DC
: HDC;
begin
  DC
:= GetWindowDC(Handle);
 
try
    R
:= Rect(0, 0, Width, Height);
   
DrawEdge(DC, R, EDGE_ETCHED, BF_RECT or BF_MONO);
 
finally
   
ReleaseDC(Handle, DC);
 
end;
end;
 
initialization
 
HintWindowClass := TXPHintWindow;
 
Application.ShowHint := False;
 
Application.ShowHint := True;
end.

Взято с сайта https://www.swissdelphicenter.ch/en/tipsindex.php