Сейчас на форуме: hgdagon, asfa (+3 невидимых)

 eXeL@B —› Программирование —› ballon tooltip
Посл.ответ Сообщение


Ранг: 266.8 (наставник), 5thx
Активность: 0.220.03
Статус: Участник
very WELL :)

Создано: 04 июня 2007 09:38
· Личное сообщение · #1

Хочу сделать ballon tooltip (подсказка как при подключении к сети в трее ХР).

Попробовал использовать вот такой пример из DRKB:

{....}



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;




Как раз то, что мне нужно. Однако в таком виде у мемо1 хинт всегда становится измененным и появляется при наведении.
А мне нужно, чтобы при наведении хинт не появлялся, а появлялся только при клике на мемо1.
Как такое сделать?



Ранг: 221.3 (наставник), 135thx
Активность: 0.190.07
Статус: Участник

Создано: 04 июня 2007 23:07
· Личное сообщение · #2

Непомню точно, но вроде бы есть компонент: CoolTrayIcon.
Погугли, должен найти.

-----
xchg dword [eax], eax




Ранг: 65.7 (постоянный)
Активность: 0.050
Статус: Участник

Создано: 05 июня 2007 00:27 · Поправил: Halt
· Личное сообщение · #3

хм м/б скажу глупость..но подсказка не предназначена для появления по клику...а следовательно раз ты ее устанавливаешь она и всплывает.... м/б раз нужно по клику просто отрисовать фигурную форму в координатах указателя.....



Ранг: 23.2 (новичок), 8thx
Активность: 0.020
Статус: Участник

Создано: 05 июня 2007 07:54
· Личное сообщение · #4

Тебе нужна возможность показывать Tooltip при определенном событии?
Посмотри вот здесь: www.codeproject.com/menu/menuitemtooltip.asp
У меня как то была такая проблема и я ее решил, если не разберешься пиши




Ранг: 282.8 (наставник), 24thx
Активность: 0.260
Статус: Участник
win32.org.ru

Создано: 05 июня 2007 08:05 · Поправил: Guru_eXe
· Личное сообщение · #5

v0id2k пишет:
Непомню точно, но вроде бы есть компонент: CoolTrayIcon.
Погугли, должен найти.

Фтопку компоненты... вот так возьмешь компонент, а потом удивляешься, а че это прога стала в два раза больше весить :]

application.ShowHint:=false;

-----
may all your PUSHes be POPed!




Ранг: 221.3 (наставник), 135thx
Активность: 0.190.07
Статус: Участник

Создано: 05 июня 2007 22:58
· Личное сообщение · #6

Guru_eXe
не, я сам их юзаю, вес не намного прибавляют.
Тем более если на VCL пишешь, даже не заметишь =)))

-----
xchg dword [eax], eax





Ранг: 266.8 (наставник), 5thx
Активность: 0.220.03
Статус: Участник
very WELL :)

Создано: 08 июня 2007 07:38
· Личное сообщение · #7

GMax пишет:
Посмотри вот здесь: www.codeproject.com/menu/menuitemtooltip.asp
У меня как то была такая проблема и я ее решил, если не разберешься пиши

А можно переложить куда-нить?



Ранг: 23.2 (новичок), 8thx
Активность: 0.020
Статус: Участник

Создано: 08 июня 2007 13:27
· Личное сообщение · #8

WELL
А можно переложить куда-нить?
Приложил файл

2cc0_08.06.2007_CRACKLAB.rU.tgz - menuitemtooltip.rar


 eXeL@B —› Программирование —› ballon tooltip
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати