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

Вниз

Balloon Hint не хочет показываться :( В чем может быть дело..   Найти похожие ветки 

 
Layner ©   (2006-06-02 10:30) [0]


unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, Commctrl, StdCtrls;

type
 TForm1 = class(TForm)
   Button1: TButton;
   CheckBox1: TCheckBox;
   procedure Button1Click(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

const
TTS_BALLOON = $40;
TTM_SETTITLE = (WM_USER + 32);

var
 Form1: TForm1;
 hTooltip: Cardinal;
 ti: TToolInfo;
 buffer: array[0..255] of char;

implementation

{$R *.dfm}

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(CheckBox1.Handle, @ti, 1, "Tooltip text", "Title");
end;

end.



Нажимаю на кнопку и никакой реакции...


 
Layner ©   (2006-06-02 10:31) [1]

Этот код был тут один раз (в дайджестах нашел), а так же в инете есть, например тут http://delphiworld.narod.ru/base/balloon_tooltips2.html но почему не работает, обидно, компилируется без проблем.. :( (D7)


 
unknown ©   (2006-06-02 13:40) [2]


> Layner ©   (02.06.06 10:30)

Все работает.
При наведении на чекбокс хинт вылезает.


 
Sam Stone ©   (2006-06-03 20:14) [3]

А как повесить сабж над нужным контролом? Указание нужного хендла результата не дало. И как добавить крестик, по которому хинт будет исчезать? :) (як в трее всплывает)


 
Eraser ©   (2006-06-03 23:17) [4]


> Layner ©   (02.06.06 10:30)

раз уж VCL используете, не прощи ли применить готовое решение, в Делфи 2006 есть стандартный компонент, или же если нету Д2006 можно использовать сторонний, я бы порекомендовал JEDI.
Ну уж если никак не хочется пользоватся сторонним компонентом, почему бы не посмотреть как этот сторонний компонент устроен? все вопросы исчезнут сами собой.


 
Layner ©   (2006-06-05 10:07) [5]

Спасибо за ответы, качаю JEDI, а по вышеприведенному коду, просто хотелось понять, почему у меня не показывается хинт.. Если бы получилось, то более мощных компонентов может бы и не пришлось использовать. Работаю в D7 пробую в XP.


 
REA   (2006-06-05 11:12) [6]

Примеры тут еще:
http://megalib.com/books/478/740.htm

Мне кажется TTM_ADDTOOL имеет смысл указать TTF_IDISHWND во флагах.
В стилях имеет смысл указать (возможно): WS_POPUP | TTS_NOPREFIX | TTS_BALLOON



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

Форум: "Основная";
Текущий архив: 2006.07.16;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.039 c
2-1151382490
pavel_guzhanov
2006-06-27 08:28
2006.07.16
Коннект с Oracle из Delphi


6-1141205877
Krolevetsky_Dmitry
2006-03-01 12:37
2006.07.16
Перехват потока


3-1147685443
yozh_programmer
2006-05-15 13:30
2006.07.16
Could not find database ID 104 (...). Ошибка не в тему


2-1151572101
Anubi$$$
2006-06-29 13:08
2006.07.16
глобальный hook


6-1141982670
vlv
2006-03-10 12:24
2006.07.16
Связь WebModule с TServerSocket





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский