Вверх ↑
Этот топик читают: Гость
Ответов: 1291
Рейтинг: 47
#1: 2013-09-27 17:29:24 ЛС | профиль | цитата
Каким образом можно из компонента считать данные его нижних точек MouseX и MouseУ

Не хотелось бы тянуть внешний линк на самого себя - это странно.

Также, как можно из компонента (через код) получить доступ к его событиям OnMouseMove, OnMouseDown и т.д.

Имеются ввиду именно те точки, которые включаются галками, желтого цвета. Они типа наследуются от родит. компонента и потому прямого доступа к переменным подающимся на них нету. Или есть?

Add(Label,10682795,301,119)
{
Left=300
Top=245
Point(MouseX)
Point(MouseY)
}

карма: 3
Hiasm + Flowstone + CopperCube + GoDot + JS
0
Разработчик
Ответов: 26163
Рейтинг: 2127
#2: 2013-09-27 17:39:50 ЛС | профиль | цитата
Aziz писал(а):
Каким образом можно из компонента считать данные его нижних точек MouseX и MouseУ

Перенаправить события OnMouseMove, OnMouseDown на свой компонент и по аналогии с win.pas сделать обработку координат
карма: 22

0
Ответов: 4631
Рейтинг: 749
#3: 2013-09-27 17:47:52 ЛС | профиль | цитата
Нижнюю точку, кажется, можно считать так:
var D: TData;

_var_MouseX(D, 0);
_debug(ToInteger(D));

карма: 26

0
Ответов: 1291
Рейтинг: 47
#4: 2013-09-27 17:57:54 ЛС | профиль | цитата
nesco, спасибо. В 2005 один чел здесь такой вопрос задавал.. Как события мыши в коде отловить. Безрезультатно - Дилма нарисовал ему схему в ответ.))
А практически на эл-те Label не покажете? То есть это гораздо сложнее чем линком соединить на самого себя? Я думал там достаточно обращения к имени какой-то хитрой струкуры.. Раз готовые точки нижние имеются. Но видимо проще проводками..))
------------ Дoбавленo в 17.50:
Опс, пока писал уже ответили.)) Спасибо, Netspirit, попробую сейчас.
------------ Дoбавленo в 17.57:
Нет, не вышло. Возвращает 0.
карма: 3
Hiasm + Flowstone + CopperCube + GoDot + JS
0
Ответов: 4631
Рейтинг: 749
#5: 2013-09-27 18:09:36 ЛС | профиль | цитата
Зависит от того, куда ты вставил этот код. Во время считывания мышь должна находиться над элементом или побывать там раньше.

#pas
procedure THILabel._work_DoText;
var D: TData;
begin
_var_MouseX(D, 0);
_debug(ToInteger(D));
Control.Caption := ReadString(Data,_data_Text);
end;


Add(Label,9628112,252,98)
{
Left=65
Top=25
link(onClick,9458211:doData,[])
}
Add(DoData,9458211,315,98)
{
Data=String(AAA)
link(onEventData,9628112:doText,[(354,104)(354,90)(242,90)(242,104)])
}
карма: 26

1
Голосовали:Aziz
Ответов: 1291
Рейтинг: 47
#6: 2013-09-27 18:39:06 ЛС | профиль | цитата
Точно.. Не сообразил. Теперь все заработало:

code_31906.txt

code_31909.txt

Мне все это понадобилось потому что пытался встроить внутренний обработчик мыши от Plottera в элемент Grapher3. Работал прекрасно, пока не захотел вывести хоть одно его событие мыши наружу, чтоб повесить меню. И тут он начал конфликтовать с унаследованными встроенными методами - прога вылетала при попытке щелкнуть по элементу. Тогда я понял что нужно пользоваться только встроенными методом, подавая его с выхода элемента на его вход. И вот тут возникло желание обойтись без проводов..
------------ Дoбавленo в 18.39:
Хорошо бы еще события отловить.
карма: 3
Hiasm + Flowstone + CopperCube + GoDot + JS
0
файлы: 2code_31906.txt [164B] [281], code_31909.txt [191B] [281]
Ответов: 4631
Рейтинг: 749
#7: 2013-09-27 18:57:22 ЛС | профиль | цитата
События можно через override получить, например, как _onMouseDown в ImgBtn.
карма: 26

0
Ответов: 1291
Рейтинг: 47
#8: 2013-09-27 19:14:12 ЛС | профиль | цитата
Глянул, но там только OnClick нашел внутри..
карма: 3
Hiasm + Flowstone + CopperCube + GoDot + JS
0
Ответов: 4631
Рейтинг: 749
#9: 2013-09-27 20:50:03 ЛС | профиль | цитата
Глянь ещё раз.
карма: 26

0
Ответов: 1291
Рейтинг: 47
#10: 2013-09-27 21:39:33 ЛС | профиль | цитата
Глянул.)
code_31910.txt
------------ Дoбавленo в 21.39:
Тут походу еще проблема нарисовалась - никто не знает как заставить компонент Grapher3 подчиняться программно свойствам Align, Width и пр? До компиляции если установить - все работает, а в рантайме - не хочет меняться. Хотел сделать возможность развертывания графика на весь экран, но из-за этого не вышло.
карма: 3
Hiasm + Flowstone + CopperCube + GoDot + JS
0
файлы: 1code_31910.txt [2.4KB] [416]
Ответов: 8928
Рейтинг: 823
#11: 2013-09-27 22:56:39 ЛС | профиль | цитата
Aziz писал(а):
..заставить компонент Grapher3..
Откуда что берётся В ini файле должен быть Автор, вот к нему и обратитесь
карма: 19

0
Разработчик
Ответов: 26163
Рейтинг: 2127
#12: 2013-09-28 00:03:07 ЛС | профиль | цитата
Aziz писал(а):
Глянул.)

У тебя дремучий релиз этого компонента
карма: 22

0
Ответов: 1291
Рейтинг: 47
#13: 2013-09-28 00:35:32 ЛС | профиль | цитата
Ясно, спасибо.. А насчет несрабатывания некоторых стандартных методов при срабатывании остальных? Почему Алайн не срабатывает (через doWork) также как и Видф и Хайт, в то время как Х и У мыши присутствуют и мышиные обработчики, также при помощи оконных компонентов через хендл можно поменять положение окна, но нельзя изменить размер. В чем причина?
карма: 3
Hiasm + Flowstone + CopperCube + GoDot + JS
0
Разработчик
Ответов: 26163
Рейтинг: 2127
#14: 2013-09-28 02:00:00 ЛС | профиль | цитата
Aziz писал(а):
также при помощи оконных компонентов через хендл можно поменять положение окна, но нельзя изменить размер

Да ладно

Add(MainForm,2953706,161,119)
{
Height=343
}
Add(Button,5272656,161,175)
{
Left=135
Top=275
TabOrder=-1
Caption="Set"
link(onClick,1579597:doEvent1,[])
}
Add(SizeWindow,12248617,273,175)
{
Width=320
Height=240
link(Handle,15863504:Var2,[])
}
Add(Hub,1579597,224,175)
{
link(onEvent1,12248617:doWidth,[])
link(onEvent2,12248617:doHeight,[])
}
Add(Button,13311361,161,217)
{
Left=200
Top=275
TabOrder=-1
Caption="Reset"
link(onClick,10419580:doEvent1,[])
}
Add(SizeWindow,13072144,259,217)
{
Width=220
Height=140
link(Handle,15863504:Var1,[(265,159)])
}
Add(Hub,10419580,210,217)
{
link(onEvent1,13072144:doWidth,[])
link(onEvent2,13072144:doHeight,[])
}
Add(GetDataEx,15863504,273,154)
{
link(Data,13931893:Handle,[])
}
Add(ListBox,13931893,252,105)
{
Left=10
Top=15
Width=210
Height=140
Point(Handle)
}

карма: 22

0
Ответов: 16884
Рейтинг: 1239
#15: 2013-09-28 07:46:00 ЛС | профиль | цитата
nesco писал(а):
Да ладно
[flood]Даже Википедия вчера статью про татаро-монгольское иго переписала.[/flood]
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)