Главная страница
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.05 c
14-1107010428
SPeller
2005-01-29 17:53
2005.03.06
Правка raw-реестра или борьба с драйверами


1-1108613193
Laymer
2005-02-17 07:06
2005.03.06
Неубиваемый процес


1-1109009885
mariya_mezenceva
2005-02-21 21:18
2005.03.06
fastreport3 (экспорт в excel)


1-1108304762
Сергей Ю.
2005-02-13 17:26
2005.03.06
Как можно разделить функции одной программы между несколькими?


4-1102524244
Костя
2004-12-08 19:44
2005.03.06
системное время