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

Показываем всплывающие подсказки в различных панелях StatusBar

01.01.2007

Данный пример демонстрирует показ всплывающих подсказок для любой панели статусбара. Этот метод отличается от того, который использует событие MouseMove, и запускается только тогда, когда приложению необходимо показать всплывающие подсказки. В то время как при использовании MouseMove метод будет вызываться при каждом попадании курсора мышки на statusbar.

{ Добавьте CommCtrl в uses. }
{ в интерфейсе формы для статусбара }
 
private
    procedure
AppShowHint(var HintStr: string; var CanShow: boolean;
     
var HintInfo: THintInfo);
 
procedure TForm1
.FormCreate(Sender: TObject);
begin
 
Application.OnShowHint := AppShowHint;
end;
 
procedure TForm1
.AppShowHint(var HintStr: string; var CanShow: boolean;
var HintInfo: THintInfo);
const
 
PanelHints: array [0..6] of string =
   
('Cursor position', 'Ascii char', 'Bookmarks', 'Caps lock',
   
'Insert/Overwrite', 'File size', 'File name');
var
  x
: integer;
  R
: TRect;
begin
 
if HintInfo.HintControl = StatusBar1 then
 
begin
   
for x := 0 to StatusBar1.Panels.Count-1 do
   
begin
     
SendMessage(StatusBar1.Handle, SB_GETRECT, x, Longint(@R));
     
if PtInRect(R, HintInfo.CursorPos) then
     
begin
       
HintStr := PanelHints[x];
       
InflateRect(R, 3, 3);
       
{ Устанавливаем CursorRect говоря системе проверить новые
       
строки с подсказками, когда курсор покинет этот прямоугольник. }
       
HintInfo.CursorRect := R;
       
break;
     
end;
   
end;
 
end;
end;

Взято из https://forum.sources.ru