Содержание материала

 

Code:

{....}

 

uses Commctrl;

 

{....}

 

const

TTS_BALLOON    = $40;

TTM_SETTITLE = (WM_USER + 32);

 

var

hTooltip: Cardinal;

ti: TToolInfo;

buffer : array[0..255] of char;

 

{....}

 

 

 

procedure CreateToolTips(hWnd: Cardinal);

begin

hToolTip := CreateWindowEx(0, 'Tooltips_Class32', nil, TTS_ALWAYSTIP or TTS_BALLOON,

   Integer(CW_USEDEFAULT), Integer(CW_USEDEFAULT), Integer(CW_USEDEFAULT),

   Integer(CW_USEDEFAULT), hWnd, 0, hInstance, nil);

if hToolTip <> 0 then

begin

   SetWindowPos(hToolTip, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE or

     SWP_NOSIZE or SWP_NOACTIVATE);

   ti.cbSize := SizeOf(TToolInfo);

   ti.uFlags := TTF_SUBCLASS;

   ti.hInst  := hInstance;

end;

end;

 

procedure AddToolTip(hwnd: DWORD; lpti: PToolInfo; IconType: Integer;

Text, Title: PChar);

var

Item: THandle;

Rect: TRect;

begin

Item := hWnd;

if (Item <> 0) and (GetClientRect(Item, Rect)) then

begin

   lpti.hwnd := Item;

   lpti.Rect := Rect;

   lpti.lpszText := Text;

   SendMessage(hToolTip, TTM_ADDTOOL, 0, Integer(lpti));

   FillChar(buffer, SizeOf(buffer), #0);

   lstrcpy(buffer, Title);

   if (IconType > 3) or (IconType < 0) then IconType := 0;

   SendMessage(hToolTip, TTM_SETTITLE, IconType, Integer(@buffer));

end;

end;

 

procedure TForm1.Button1Click(Sender: TObject);

begin

CreateToolTips(Form1.Handle);

AddToolTip(Memo1.Handle, @ti, 1, 'Tooltip text', 'Title');

end;

 

{

IconType can be:

 

0 - No icon

1 - Information

2 - Warning

3 - Error

}

 

 

Добавить комментарий

Не использовать не нормативную лексику.

Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.

ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!


Защитный код
Обновить