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

Как поместить иконку в окошко подсказки?

01.01.2007

Следующий код помещает главную иконку приложения в окошки подсказок:

unit HintX; 
 
interface
 
uses
 
Windows, Messages, Controls;
 
type
 
TIconHintX = class(THintWindow)
 
protected
    procedure
Paint; override;
 
public
   
function CalcHintRect(MaxWidth: Integer; const AHint: string; AData: Pointer): TRect; override;
 
end;
 
implementation
 
uses
Forms;
 
{ TIconHintX }
 
{-Вычисляем новый размер окошка подсказки для помещения в него иконки:-}
function TIconHintX.CalcHintRect(MaxWidth: Integer; const AHint: string;
 
AData: Pointer): TRect;
begin
 
Result := inherited CalcHintRect(MaxWidth, AHint, AData);       Result.Right := (Length(AHint) * 5) + Application.Icon.Width;
 
Result.Bottom := (Application.Icon.Height) * 2;
end;
 
procedure
TIconHintX.Paint;
const
  MARGIN
= 5;
begin
  inherited
;
 
Canvas.Draw(MARGIN, MARGIN * 5, Application.Icon);
 
SendMessage(Handle, WM_NCPAINT, 0, 0); //рисуем рамку окошка подсказки
end;
 
initialization
 
//связываем наш новый класс с классом окошка подсказки установленным поумолчанию:
 
HintWindowClass := TIconHintX;
 
end.

Чтобы увидеть это в действии, всё, что надо сделать, это поместить этот юнит список USES Вашего приложения

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