Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.12.2010, 08:16   #1
Narutо
 
Регистрация: 29.12.2010
Сообщений: 5
По умолчанию Как можно получить структуру TOOLINFO тултипа (Tooltips_class32)

Как можно добраться до структуры TOOLINFO в чужом окне.
Можно вроде с помощью SendMessage отправив сообщение TTM_GETTOOLINFO тултипу, токо вот в Delphi пробую так
API функция SendMessage возвращает нули может кто знает
в чем дело??? Помогите пожалуйста !!

вот код:
Код:
uses Commctrl;
var ti:DWORD;
begin
SendMessage(i,TTM_GETTOOLINFO,ti,);
Form2.Edit13.Text:=DecToHex(ti,8);
end;

Последний раз редактировалось Stilet; 29.12.2010 в 09:04.
Narutо вне форума Ответить с цитированием
Старый 29.12.2010, 08:57   #2
MaxNik2009
Форумчанин
 
Аватар для MaxNik2009
 
Регистрация: 17.09.2009
Сообщений: 294
По умолчанию

судя по описанию этого сообщения надо сделать как-то так:
Код:
var
  TI: PToolInfo; // указатель на структуру TToolinfo
begin
  SendMessage(handle, TTM_GETTOOLINFO, 0, lParam(TI));
принимаю благодарности в письменном виде( весы слева)...
MaxNik2009 вне форума Ответить с цитированием
Старый 29.12.2010, 09:07   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
MaxNik2009
Может стоит еще и память выделить ?
Код:
new(TI);
Ато мало ли...
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 29.12.2010, 10:37   #4
Narutо
 
Регистрация: 29.12.2010
Сообщений: 5
По умолчанию

Сделал так:

var ti: PToolInfo;
begin
SendMessage(i,TTM_GETTOOLINFO,0,lpa ram(ti));

Сообщение отправляется даже занчение какое-то возвращается в ti (может даже и указатель на структуру TOOLINFO) но окно и само приложение вылетает как бут-то его и небыло! Как быть не знаю???? Может какие API функции есть чтоб извлеч тексты из тултипов???
Narutо вне форума Ответить с цитированием
Старый 29.12.2010, 11:40   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Мдя... Видимо читать школота не умеет.
Ладно читаем вместе:
Цитата:
When sending the message, the hwnd and uId members identify a tool
Значит
Код:
ti^.hwnd:=Хендл
ti^.uId:=Номер тултипа
Цитата:
and the cbSize member must specify the size of the structure
Код:
ti^.size:=sizeof(TOOLINFO);
А уже потом посылать сообщение, и ессно мои рекомендации учесть.
Далее Если SendMessage вернуло 0 значит ничего не получилось - это тоже нужно обрабатывать.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 29.12.2010, 13:26   #6
Narutо
 
Регистрация: 29.12.2010
Сообщений: 5
По умолчанию

Может я не правильно понял :SendMessage(i,TTM_GETTOOLINFO,0,lp aram(ti)), где:
i - хэндл тултипа
TTM_GETTOOLINFO - само сообщение
0 - это ID конкретного тула (их может быть несколько)
lparam(ti) - это переменная, которая получит указатель на структуру TOOLINFO (или же сама структура
с инициализированными ti^.hwnd и ti^.uId) как прально то?

ТУЛТИП находится в чужом окне(приложении), у меня есть только хэндл тултипа,
самих ID(uID) тулов нет.
А как узнать uID тулов если есть токо хэндл???
может есть еще какое сообщение или функция?

Последний раз редактировалось Narutо; 29.12.2010 в 13:32.
Narutо вне форума Ответить с цитированием
Старый 29.12.2010, 13:30   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Может быть я тоже чего-то не понимаю, но я перевел хелп именно так.
Попробуй опиши как в хелпе сказано.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 29.12.2010, 15:02   #8
Narutо
 
Регистрация: 29.12.2010
Сообщений: 5
По умолчанию

Пока юзаю, результатов нет!
Narutо вне форума Ответить с цитированием
Старый 29.12.2010, 15:18   #9
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Вот в принципе есть описание:http://programmistu.by.ru/api32_27.htm
Правда на ассемблере:
Цитата:
* TTM_GETTOOLINFO и TTM_SETTOOLINFO. Если вы хотите получить/изменить значения в структуре TOOLINFO после того, как она была отправлена тултипу, используйте данное сообщение. Вам потребуется указать tool, чьи характериситики вы хотите изменить, с помощью верных uId и hWnd.
Скорее всего ты просто эти параметры неверно задаешь.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 30.12.2010, 17:24   #10
Narutо
 
Регистрация: 29.12.2010
Сообщений: 5
По умолчанию

Получить текст конкретной подсказки можно посредством GetTipText( ).
Но че т не получается?
Narutо вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Получить структуру таблицы (MySQL+ZEOS) Greek9000 БД в Delphi 2 13.01.2010 12:07
Как можно получить координаты мыши в нутри объекта(в моём случаии в диве) killer12rus JavaScript, Ajax 2 06.07.2009 19:57
Получить структуру таблиц и запросов ShoGUN Microsoft Office Access 2 06.07.2009 17:01
как "закрепить" вывод тултипа? il-62 HTML и CSS 0 06.11.2008 14:19