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

 Это демонстрирует описанный ниже код:

Code:

uses

  Commctrl;

 

procedure ShowBalloonTip(Control: TWinControl; Icon: integer; Title: pchar; Text: PWideChar;

BackCL, TextCL: TColor);

const

TOOLTIPS_CLASS = 'tooltips_class32';

TTS_ALWAYSTIP = $01;

TTS_NOPREFIX = $02;

TTS_BALLOON = $40;

TTF_SUBCLASS = $0010;

TTF_TRANSPARENT = $0100;

TTF_CENTERTIP = $0002;

TTM_ADDTOOL = $0400 + 50;

TTM_SETTITLE = (WM_USER + 32);

ICC_WIN95_CLASSES = $000000FF;

type

TOOLINFO = packed record

   cbSize: Integer;

   uFlags: Integer;

   hwnd: THandle;

   uId: Integer;

   rect: TRect;

   hinst: THandle;

   lpszText: PWideChar;

   lParam: Integer;

end;

var

hWndTip: THandle;

ti: TOOLINFO;

hWnd: THandle;

begin

hWnd    := Control.Handle;

hWndTip := CreateWindow(TOOLTIPS_CLASS, nil,

   WS_POPUP or TTS_NOPREFIX or TTS_BALLOON or TTS_ALWAYSTIP,

   0, 0, 0, 0, hWnd, 0, HInstance, nil);

if hWndTip <> 0 then

begin

   SetWindowPos(hWndTip, HWND_TOPMOST, 0, 0, 0, 0,

     SWP_NOACTIVATE or SWP_NOMOVE or SWP_NOSIZE);

   ti.cbSize := SizeOf(ti);

   ti.uFlags := TTF_CENTERTIP or TTF_TRANSPARENT or TTF_SUBCLASS;

   ti.hwnd := hWnd;

   ti.lpszText := Text;

   Windows.GetClientRect(hWnd, ti.rect);

   SendMessage(hWndTip, TTM_SETTIPBKCOLOR, BackCL, 0);

   SendMessage(hWndTip, TTM_SETTIPTEXTCOLOR, TextCL, 0);

   SendMessage(hWndTip, TTM_ADDTOOL, 1, Integer(@ti));

   SendMessage(hWndTip, TTM_SETTITLE, Icon mod 4, Integer(Title));

end;

end;

 

procedure TForm1.Button1Click(Sender: TObject);

begin

ShowBalloonTip(Button1, 1, 'Title',

'Balloon tooltip,https://kingron.myetang.com; updated by Calin', clBlue, clNavy);

end;

 

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

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

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

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


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