Вверх ↑
Этот топик читают: Гость
Ответов: 5446
Рейтинг: 323
#16: 2006-11-28 15:18:32 ЛС | профиль | цитата
Neo, SendDlgItemMessage из аплоада в руки, MSDN в зубы - и вперёд. Если мне не изменяет мой склероз (с), ползунок посылает родительскому окну сообщение WM_HSCROLL.

MSDN писал(а):

WM_HSCROLL Notification

The WM_HSCROLL message is sent to a window when a scroll event occurs in the window's standard horizontal scroll bar. This message is also sent to the owner of a horizontal scroll bar control when a scroll event occurs in the control.

(...cut...)

Parameters

wParam
The low-order word specifies a scroll bar value that indicates the user's scrolling request. This word can be one of the following values.

The high-order word specifies the current position of the scroll box if the low-order word is SB_THUMBPOSITION or SB_THUMBTRACK; otherwise, this word is not used.

(...cut...)
SB_THUMBPOSITIONThe user has dragged the scroll box (thumb) and released the mouse button. The high-order word indicates the position of the scroll box at the end of the drag operation.
(...cut...)


lParam
If the message is sent by a scroll bar, then this parameter is the handle to the scroll bar control. If the message is not sent by a scroll bar, this parameter is NULL.

(...cut...)

карма: 1

0
Гость
Ответов: 17029
Рейтинг: 0
#17: 2006-11-28 15:41:51 правка | ЛС | профиль | цитата


Редактировалось 2 раз(а), последний 2025-01-09 18:50:01
карма: 0

0
Ответов: 5446
Рейтинг: 323
#18: 2006-11-28 17:15:54 ЛС | профиль | цитата
Neo, если отдельно не лежит - посмотри пак notVisual.rar
карма: 1

0
Ответов: 376
Рейтинг: 1
#19: 2006-11-28 22:17:06 ЛС | профиль | цитата
Neo, http://hiasm.hexshock.com/xf/topic.php?t=3796&start=0
карма: 1

0
Ответов: 704
Рейтинг: 7
#20: 2006-11-28 23:27:49 ЛС | профиль | цитата
Товарищи, где же, всётаки, я туплю?.. Чё-т сам не розберусь...
code_652
карма: 0

0
файлы: 1code_652.txt [877B] [208]
Ответов: 209
Рейтинг: 3
#21: 2006-11-29 09:44:29 ЛС | профиль | цитата
Neo, так где ж схема, это ж набор элементов без связей. Что есть приведенный тобой идентификатор, это хэндл (они не являются постоянными) или уникальный идентификатор некоего устройства (которые тоже могут отличаться для разных компов), управляемого через API? Что это за устройство?

[size=-2]------ Добавлено в 09:44
А вот так в общем виде можно управлять элементами одного приложения из другого.
Вот схема передатчик:
code_653
Вот приемник:
Add(MainForm,6273855,70,84)
{
Left=20
Top=105
Caption="RECIVE"
link(onCopyData,4662257:doReceive,[])
}
Add(Edit,10442651,392,70)
{
Left=145
Top=55
Width=140
}
Add(TrackBar,4434779,427,168)
{
Left=130
Top=120
Width=160
Max=100
}
Add(Hub,2784219,322,126)
{
link(onEvent1,10442651:doText,[(373,132)(373,76)])
link(onEvent2,4434779:doPosition,[(376,139)(376,174)])
}
Add(InlineCode,4662257,175,126)
{
WorkPoints=#9:doReceive|
EventPoints=#9:onReceive|
Code=#15:unit HiAsmUnit;|0:|9:interface|0:|29:uses windows,kol,Share,Debug;|0:|4:type|28: THiAsmClass = class(TDebug)|10: private|0:|9: public|25: onReceive:THI_Event;|53: procedure doReceive(var _Data:TData; Index:word);|5: end;|0:|14:implementation|32:procedure THiAsmClass.doReceive;|5:begin|60: _Data.sdata := PChar(PCopyDataStruct(_Data.idata).lpData);|30: _Data.data_type := data_str;|31: _hi_onEvent(onReceive,_Data);|4:end;|0:|4:end.|
link(onReceive,2784219:doEvent1,[])
}
НО! Надо доработать MainForm для приема сообщений WM_COPYDATA и добавить в список сообщений элемента SendMessage - WM_COPYDATA.
карма: 0

0
файлы: 1code_653.txt [3.2KB] [255]
Ответов: 9906
Рейтинг: 351
#22: 2006-11-29 13:15:24 ЛС | профиль | цитата
ХЭМ, лучше бы напрягся, и сотворил элемент ReceiveMessage, чем такое на форум лепить
Это про приемник.

А про передатчик: WM_COPYDATA это всего лишь число 74, которое можно подключить через верхнюю точку или из потока.
Осталось сформировать поинтер на блок данных (общая как бы задача для работы с мессагами, а не только для WM_COPYDATA): я для этого использовал MemoryStream с нижней точкой Memory (попросту PStream.Memory)

Этого вполне достаточно, чтобы твой "передатчик" сотворить из стандартных компонентов
Думаю, может и этот MemoryStream на SVN вывалить.....
карма: 9

0
Ответов: 704
Рейтинг: 7
#23: 2006-11-29 14:48:34 ЛС | профиль | цитата
Идентификатор скролла в той программе постоянный! А хендл окна я задаю сам. Тут программа та не предназначена для приёма сообщений - ВОТ ПРОБЛЕМА! Можно просто отправлять ей сообщение, а она по нему передвигала скролл? Там её нельзя распаковать и добавить что-то! Она не моя программа и мне нужно захватить управление ей! Такое можно?
карма: 0

0
Ответов: 9906
Рейтинг: 351
#24: 2006-11-29 15:07:05 ЛС | профиль | цитата
Можно, если та программа не будет специально против тебя сопротивляться
карма: 9

0
Ответов: 704
Рейтинг: 7
#25: 2006-11-29 15:19:01 ЛС | профиль | цитата
Galkov писал(а):
Можно, если та программа не будет специально против тебя сопротивляться

Да она-то не будет! А вот как сделать "можно"?.. Я могу найти идентификатор окна и зная ID скролла я же могу это осуществить?
карма: 0

0
Ответов: 9906
Рейтинг: 351
#26: 2006-11-29 15:27:14 ЛС | профиль | цитата
Neo, сколько ни читал, все проговорено на 100 раз. Зная хэндл диалогового окна и ID контрола, посылаешь сообщение с помощью элемента рекомендованным коллегой Botan
Или через одноименное WinApi в элементе InlineCode.
Какое сообщение ??? открываешь MSDN - и читаешь (даже страничку кто-то выкладывал). Далее, следуешь указаниям из него же.
Вот и все.

А тестировать такие вещи с другой стороны сети - затруднительно: нет у нас ни проги, ни диалога со скроллбаром (и скроллбаром ли вообще).
карма: 9

0
Ответов: 704
Рейтинг: 7
#27: 2006-11-29 15:47:04 ЛС | профиль | цитата
Galkov писал(а):
А тестировать такие вещи с другой стороны сети затруднительно: нет у нас ни проги, ни диалога со скроллбаром (и скроллбаром ли вообще).

Да вот всё, что у меня есть: http://neomag.by.ru/1.zip
Это для панели управления в WindowsXP. Нужно таскать его ползунок со своей программы - всё, чем я располагаю!
карма: 0

0
Ответов: 209
Рейтинг: 3
#28: 2006-11-29 17:21:54 ЛС | профиль | цитата
ХЭМ, лучше бы напрягся, и сотворил элемент ReceiveMessage, чем такое на форум лепить

Galkov, я ленивый и эгоистичный - а потому вредный. Не буду делать ReceiveMessages. Для себя я эту задачу решил для необходимы мне мессаг через MainForm. Кому надо помогу чем смогу. А компонент делать не буду, не такой уж он всем нужный.
карма: 0

0
Ответов: 704
Рейтинг: 7
#29: 2006-11-29 21:28:58 ЛС | профиль | цитата
ХЭМ писал(а):
Кому надо помогу чем смогу.

А не знаешь, как мою задачку решить?..
карма: 0

0
Ответов: 209
Рейтинг: 3
#30: 2006-11-30 11:35:37 ЛС | профиль | цитата
Neo, сначало поищу в инете что такое cttune, раз ты упорно его не называеш, если эта система APIшная, пошарю по MSDN, а там видно будет.
карма: 0

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)