Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.03.06;
Скачать: CL | DM;

Вниз

Balloon Hint   Найти похожие ветки 

 
k@rt ©   (2005-01-26 12:11) [0]

Как показывать Balloon Hint? И чтобы в нем картинки были, например, как при входе в XP,когда неверно пароль введешь выскакивает Balloon Hint с восклицательным знаком.


 
Вариант ©   (2005-01-26 13:30) [1]

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;

{
Иконки могут быит такие:

0 - Нет иконки
1 - Вопрос(information)
2 - Восклицательный знак(Warning)
3 - Ошибка(Error)}


 
Eraser ©   (2005-01-26 15:46) [2]

А кто-нибудь знает, как это заставить работать под win9x?


 
K@rt ©   (2005-01-26 16:02) [3]

А как этот хинт показать? Чтобы он выскочил. Просто в определенном месте экрана показать хинт.


 
GanibalLector ©   (2005-01-27 04:07) [4]

2 Eraser ©    [2]
Никак! TTS_BALLOON, TTM_SETTITLE и пр. в 98 не зарезервированы.Можно имитировать это,создав обычное окно,раскрасить и "засветить".Но это весьма муторно.

2 K@rt ©    [3]
Взгляните на структуру TOOLINFO.Особенно на параметр  hwnd.


 
GanibalLector ©   (2005-01-27 04:17) [5]

2 K@rt ©   (26.01.05 16:02) [3]
Хм...я ошибался.Оказывается можно ;)
TTM_TRACKPOSITION
TTM_TRACKACTIVATE


 
ALS ©   (2005-01-27 15:03) [6]

http://delphi.icm.edu.pl/ftp/d60free/zAPIBalloon.zip



Страницы: 1 вся ветка

Текущий архив: 2005.03.06;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.026 c
14-1108475807
syte_ser78
2005-02-15 16:56
2005.03.06
mainmenu


3-1107766195
Меджид
2005-02-07 11:49
2005.03.06
Как записать содержимое BLOB поля в Буфер (Clipboard)


14-1108032784
Игорь Шевченко
2005-02-10 13:53
2005.03.06
Microsoft готовится к реформе календаря ?


6-1103906947
frEE)stylEr
2004-12-24 19:49
2005.03.06
ПОЛУЧЕНИЕ ОТВЕТА С СЕРВЕРА


3-1107867700
Ru
2005-02-08 16:01
2005.03.06
АРМ Расчет заработной платы