Вниз
Скачать: CL | DM;

API   Найти похожие ветки 

 
.:Grits:. ©   (2002-12-29 22:10) [0]

мой вопрос:
var
MyTBB:TTBButton;
Rect: TRect;
...
tbc:=SendMessage(Target, tb_BUTTONCOUNT, 0,0);
if tbc > 0 then begin

//получил выделенный элемент:
tbh:=SendMessage(Target, TB_GETHOTITEM , 0,0);

//Rect равен почему то всему ToolBox(y),
а не выделенному элементу????:
SendMessage(Target, TB_BUTTONSTRUCTSIZE, tbh, Longint(@Rect));

//а здесь компьютер вообще виснет???????:
SendMessage(Target, TB_GETBUTTON, tbh, Longint(@MyTBB));
...
Что я не так делаю ???


 
Юрий Зотов ©   (2002-12-29 23:10) [1]

1. > //получил выделенный элемент:

Из MSDN: Toolbar controls that do not have the TBSTYLE_FLAT style do not have hot items.

Насколько я помню, Вы работаете с Панелью Задач. И тогда Вы получили не выделенный элемент, а -1. Или $FFFFFFFF.


2. > //Rect равен почему то всему ToolBox(y), а не выделенному элементу????:

Из MSDN:
TB_BUTTONSTRUCTSIZE
wParam = (WPARAM) cb;
lParam = 0;
cb: - size, in bytes, of the TBBUTTON structure.

Поэтому WParam у Вас неверен, а LParam не имет смысла. Rect может быть равен чему угодно.


3. > //а здесь компьютер вообще виснет???????:

Еще хорошо, что не взрывается. Потому что предыдущим сообщением Вы установили BUTTONSTRUCTSIZE в совершенно невообразимое значение $FFFFFFFF и теперь он судорожно пытается заполнить структуру, которую Вы передали ему в LParam и которая якобы имеет такой размер. При этом явно вылезая туда, куда не нужно и портя то, что там лежит. Кстати, WParam тоже неверный.


4. > Что я не так делаю ???

IMHO, Вы невнимательно читаете документацию.


 
.:Grits:. ©   (2002-12-30 23:46) [2]

Юрий! спасибо большое за комментарии.
в действительности сообщения:
tb_BUTTONCOUNT, TB_GETHOTITEM
работают, и дают верные результаты (проверил)

с TB_BUTTONSTRUCTSIZE я конечно "херню сморозил"

Эта строка только в My.DLL(как function) не виснет:
SendMessage(Target, TB_GETBUTTON, tbh, Longint(@MyTBB));
//MyTBB.iString выдает одно и тоже значение для всех
элементов списка (?????)
как я получу теперь текст ?????

P.S.//Еще хорошо, что не взрывается....
Вы знали или догадались :-), но теперь мой 19дюймовый
монитор можно выбросить
в 14дюймовом вообще "ничо" не видно :-((((((((((


 
.:Grits:. ©   (2003-01-01 16:23) [3]

С новым годом всех!

...ну помогите же!


 
Юрий Зотов ©   (2003-01-01 17:37) [4]

> как я получу теперь текст ?????

TB_GETHOTITEM работает нормально? Ну и хорошо. Значит, индекс кнопки мы уже знаем. Осталось получить текст.

Из MSDN:

TB_GETBUTTONTEXT
wParam = (WPARAM) idButton;
lParam = (LPARAM) (LPTSTR) lpszText;


Второй способ:

1. Ставим нормальный размер структуры:
SendMessage(..., SizeOf(TTBButton), 0); // Один раз!!!
2. Берем данные:
SendMessage(..., TB_GETBUTTON, ..., Integer(@MyTTB));
3. String(iString) дает текст кнопки.


 
.:Grits:. ©   (2003-01-05 23:27) [5]

Спасибо большое!
на днях попробую...



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

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.02 c
3-72082
wHammer
2002-12-26 14:02
2003.01.23
Можно ли получить соединение наборов данных двух TQuery?


14-72475
phantom2040
2003-01-05 10:43
2003.01.23
Вопрос по интернет сайту


14-72539
Дмитрий К.К.
2003-01-07 06:26
2003.01.23
Именинники 7 января


6-72455
Keplin Sergey
2002-11-24 16:36
2003.01.23
Два вопроса...


1-72380
kserg@ukr.net
2003-01-10 17:57
2003.01.23
как к MainMenu в качестве SubMenu прилепить PopupMenu




   Наверх