Главная страница
    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.01 c
15-1149507664
Зм1й
2006-06-05 15:41
2006.07.16
Earthworm Jim 2 под Sega Mega Drive 2


2-1151522230
resuS
2006-06-28 23:17
2006.07.16
Запуск приложения. Пользователь в неведении.


1-1149258914
Святослав
2006-06-02 18:35
2006.07.16
Как подключить readkey для консольного приложения?


10-1121901725
nippo
2005-07-21 03:22
2006.07.16
Значение property COM-сервера


15-1150465092
AlexanderMS
2006-06-16 17:38
2006.07.16
Можно ли оптимизировать данный код?





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