Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2005.03.06;
Скачать: [xml.tar.bz2];

Вниз

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 вся ветка

Форум: "WinAPI";
Текущий архив: 2005.03.06;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.048 c
1-1109004521
Viktop
2005-02-21 19:48
2005.03.06
Как затенить кнопку закрыть


1-1108982614
lehich
2005-02-21 13:43
2005.03.06
ListBox


14-1108029717
DVM
2005-02-10 13:01
2005.03.06
Черкизовский рынок горит. Пламя до 5 этажа.


14-1108559629
Kostik__
2005-02-16 16:13
2005.03.06
алгоритмы шифрования


1-1108570275
GanibalLector
2005-02-16 19:11
2005.03.06
"ХР-манифест"





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский