Вверх ↑
Этот топик читают: Гость
Ответов: 875
Рейтинг: 322
#1: 2009-01-14 11:54:22 ЛС | профиль | цитата
Img_GetPoint (DrawSource-Handle) в паре с MouseEvent определяет цвет пикселя под курсором, но если вместо данных от MouseEvent использовать свои данные то цвет пикселя всегда один и тот-же -- цвет формы, как обойти эту проблему?
карма: 1

0
Администрация
Ответов: 15295
Рейтинг: 1519
#2: 2009-01-14 11:57:52 ЛС | профиль | цитата
чтобы обойти эту проблему нужно собрать схему правильно, а чтобы собрать ее правильно нужно ее для начала хотябы увидеть
карма: 27
0
Ответов: 875
Рейтинг: 322
#3: 2009-01-14 13:32:21 ЛС | профиль | цитата
b]Dilma[/b], это еще не схема, а так набросок. Смысл - кнопка х должна поменять цвет только в том случае, если кнопки 1-2 красные. code_11365.txt
------------ Дoбавленo:

b]Dilma[/b], это еще не схема, а так набросок. Смысл - кнопка х должна поменять цвет только в том случае, если кнопки 1-2 красные.

Add(MainForm,2953706,-49,-162)
{
Width=479
Height=394
}
Add(BitBtn,11822071,105,-134)
{
Left=155
Top=56
Width=48
Height=24
Color=10789024
Caption="2"
Point(doColor)
Point(doVisible)
link(onClick,7812896:doData,[])
}
Add(BitBtn,8226671,17,-42)
{
Left=130
Top=80
Width=48
Height=24
Color=10789024
Caption="x"
Point(doColor)
Point(Left)
Point(Top)
Point(onMouseMove)
link(onClick,438469:doData,[])
link(onMouseMove,7622327:doEvent1,[(60,-29)(60,3)(-96,3)(-96,20)])
}
Add(BitBtn,6164411,336,-67)
{
Left=177
Top=80
Width=48
Height=24
Color=10789024
Point(doColor)
Point(onMouseMove)
Point(Left)
Point(Top)
link(onClick,13989377:doData,[])
link(onMouseMove,8027743:doEvent1,[(381,-54)(381,-26)(219,-26)(219,-8)])
}
Add(BitBtn,16038910,-49,271)
{
Left=155
Top=104
Width=48
Height=24
Color=10789024
Point(doColor)
link(onClick,4942345:doData,[])
}
Add(DoData,7812896,168,-134)
{
Data=Integer(255)
link(onEventData,11822071:doColor,[(214,-128)(214,-147)(93,-147)(93,-121)])
}
Add(DoData,13989377,392,-67)
{
Data=Integer(255)
link(onEventData,6164411:doColor,[(436,-61)(436,-82)(324,-82)(324,-54)])
}
Add(DoData,438469,70,-42)
{
Data=Integer(255)
link(onEventData,15536881:doCompare,[(121,-36)(121,-37)])
}
Add(DoData,4942345,0,271)
{
Data=Integer(255)
link(onEventData,16038910:doColor,[(47,277)(47,256)(-61,256)(-61,284)])
}
Add(Img_GetPoint,16240114,301,328)
{
DrawSource=1
link(onGetPixel,15114725:doEvent1,[])
link(X,14539401:Caption,[(314,274)(279,274)])
link(Y,9323169:Caption,[(321,292)(356,292)])
}
Add(Timer,15999786,112,314)
{
Interval=10
link(onTimer,5810197:doEvent1,[])
}
Add(Label,16386934,553,412)
{
Left=410
Top=10
}
Add(ToRGB,5087615,392,328)
{
}
Add(Convertor,4210957,441,377)
{
Mode=6
Digits=6
link(onResult,7959916:doEvent1,[])
}
Add(Hub,5810197,161,314)
{
OutCount=6
link(onEvent1,10509376:doOperation,[(229,320)(229,138)])
link(onEvent2,10985509:doOperation,[(242,327)(242,180)])
link(onEvent3,14539401:doText,[(233,334)(233,194)])
link(onEvent4,16240114:doGetPixel,[(247,341)(247,334)])
link(onEvent5,7495268:doRGB,[(293,348)(293,383)])
}
Add(ChildPanel,1793113,448,335)
{
}
BEGIN_SDK
Add(EditMulti,10613592,21,21)
{
WorkCount=1
link(doWork1,15636672:doColor,[(28,27)(28,118)])
}
Add(Panel,15636672,35,105)
{
Left=20
Top=15
Point(doColor)
}
END_SDK
Add(GlobalVar,7022909,553,377)
{
Name="col"
}
Add(Math,10985509,350,174)
{
OpType=1
Op2=10
link(onResult,9323169:doText,[(390,180)(390,214)(338,214)(338,229)])
link(Op1,189193:Var,[])
}
Add(If_else,15536881,140,-43)
{
Op1=Integer(1)
Op2=Integer(1)
link(onTrue,8226671:doColor,[(192,-37)(192,-82)(5,-82)(5,-29)])
}
Add(GlobalVar,8323648,140,-72)
{
Name="col"
}
Add(Hub,7959916,490,377)
{
link(onEvent1,7022909:doValue,[])
link(onEvent2,16386934:doText,[(538,390)(538,418)])
}
Add(Hub,15114725,350,328)
{
link(onEvent1,5087615:doGetRGB,[])
link(onEvent2,1793113:doWork1,[])
}
Add(GlobalVar,474847,59,14)
{
Name="left"
}
Add(DoData,3382058,17,14)
{
link(onEventData,474847:doValue,[])
link(Data,8226671:Left,[])
}
Add(GlobalVar,9886518,66,65)
{
Name="top"
Data=Integer(11)
}
Add(DoData,15729011,24,65)
{
link(onEventData,9886518:doValue,[])
link(Data,8226671:Top,[])
}
Add(Hub,7622327,-91,14)
{
link(onEvent1,3382058:doData,[])
link(onEvent2,15729011:doData,[(6,27)(6,71)])
}
Add(GlobalVar,13428593,273,95)
{
Name="left"
}
Add(GlobalVar,189193,350,139)
{
Name="top"
}
Add(Math,10509376,273,132)
{
Op2=10
link(Op1,13428593:Var,[])
}
Add(Label,9728171,336,-155)
{
Left=385
Top=310
link(Text,2869635:Var,[(342,-165)(345,-165)])
}
Add(GlobalVar,2869635,339,-189)
{
Name="left"
}
Add(Label,1943283,378,-134)
{
Left=385
Top=335
link(Text,8876068:Var,[(384,-146)(387,-146)])
}
Add(GlobalVar,8876068,381,-166)
{
Name="top"
}
Add(Timer,310316,238,-155)
{
Interval=10
link(onTimer,12017338:doEvent1,[])
}
Add(Hub,12017338,287,-155)
{
link(onEvent1,9728171:doText,[])
link(onEvent2,1943283:doText,[(349,-142)(349,-128)])
}
Add(GlobalVar,6347638,378,-14)
{
Name="left"
}
Add(DoData,6793957,336,-14)
{
link(onEventData,6347638:doValue,[])
link(Data,6164411:Left,[])
}
Add(GlobalVar,10462949,385,37)
{
Name="top"
}
Add(DoData,15371526,343,37)
{
link(onEventData,10462949:doValue,[])
link(Data,6164411:Top,[])
}
Add(Hub,8027743,231,-14)
{
link(onEvent1,6793957:doData,[])
link(onEvent2,15371526:doData,[(328,-1)(328,43)])
}
Add(Label,9323169,350,223)
{
Left=385
Top=220
link(Text,10985509:Result,[])
}
Add(Label,14539401,273,188)
{
Left=385
Top=250
link(Text,10509376:Result,[])
}
Add(BitBtn,4836578,-98,-106)
{
Left=110
Top=56
Width=48
Height=24
Color=10789024
Caption="1"
Point(doColor)
Point(doVisible)
Point(Handle)
link(onClick,14092805:doData,[])
}
Add(DoData,14092805,-35,-106)
{
Data=Integer(255)
link(onEventData,4836578:doColor,[(11,-100)(11,-119)(-110,-119)(-110,-93)])
}
Add(Label,16505494,-28,174)
{
Left=15
Top=325
link(Text,16278871:MouseX,[(-22,166)(-8,166)])
}
Add(Label,11442143,14,188)
{
Left=80
Top=325
link(Text,16278871:MouseY,[(20,180)(-1,180)])
}
Add(Timer,9793167,-112,174)
{
Interval=10
link(onTimer,11166177:doEvent1,[])
}
Add(MouseEvent,16278871,-14,125)
{
}
Add(Hub,11166177,-70,174)
{
link(onEvent1,16505494:doText,[])
link(onEvent2,11442143:doText,[(-12,187)(-12,194)])
}
Add(RGB,7495268,392,377)
{
link(onRGB,4210957:doConvert,[])
link(R,5087615:R,[])
link(G,5087615:G,[])
link(B,5087615:B,[])
}
карма: 1

0
файлы: 1code_11365.txt [5.6KB] [206]
Разработчик
Ответов: 26305
Рейтинг: 2146
#4: 2009-01-14 14:50:09 ЛС | профиль | цитата
kamakama, на точку Bitmap элемента Img_GetPoint надо подать Handle элемента, окно которого ты хочешь сканировать
карма: 22

0
Ответов: 875
Рейтинг: 322
#5: 2009-01-14 15:12:36 ЛС | профиль | цитата
nesco, так я пробовал, но хоть от кнопки, хоть от формы панелька становится черной.
карма: 1

0
Администрация
Ответов: 15295
Рейтинг: 1519
#6: 2009-01-14 15:15:59 ЛС | профиль | цитата
рекомендации из раздела объявлений конечно же не читались... Или и правда для банального получения цвета точки нужно 53 элемента из палитры?
карма: 27
0
Разработчик
Ответов: 26305
Рейтинг: 2146
#7: 2009-01-14 15:17:47 ЛС | профиль | цитата
Ну и как оно не работает, ищи ошибку в своей реализации



Add(MainForm,2953706,112,105)
{
}
Add(Img_GetPoint,3504169,175,168)
{
DrawSource=1
Point(doDrawSource)
link(onGetPixel,5656218:doText,[])
link(X,1875948:MouseX,[])
link(Y,1875948:MouseY,[])
}
Add(Edit,5656218,231,168)
{
Left=15
Top=10
Width=95
Font=[MS Sans Serif,8,1,0,1]
Text=""
Alignment=2
Point(doColor)
link(onChange,5656218:doColor,[(275,174)(275,181)(219,181)(219,188)])
}
Add(MouseEvent,1875948,182,105)
{
}
Add(Timer,15467937,112,168)
{
Interval=25
link(onTimer,3504169:doGetPixel,[])
}

карма: 22

0
Ответов: 875
Рейтинг: 322
#8: 2009-01-14 15:54:40 ЛС | профиль | цитата
nesco, спасибо, действительно работает. Буду искать ошибку.
------------ Дoбавленo:

nesco, спасибо что ткнул носом. Только сейчас врубился что Place это одно а MouseEvent это другое.
карма: 1

0
Гость
Ответов: 17029
Рейтинг: 0
#9: 2012-01-14 16:11:13 правка | ЛС | профиль | цитата


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

0
Ответов: 3889
Рейтинг: 362
#10: 2012-01-14 16:25:00 ЛС | профиль | цитата
178.127.244.21 писал(а):
как без хэндла обошлись не понял

Не обошлись, просто его не видно. Некоторые (не все) элементы работают с Handle=0, то есть со всем видимым буфером текущего рабочего стола ("монитора"). Тут с таймера на doGetPixel идёт Null, ещё можно подать 0, иначе придётся подавать Handle элемента (формы) и относительные координаты именно в пределах этого элемента.
карма: 1

0
Ответов: 2437
Рейтинг: 693
#11: 2012-01-14 16:30:28 ЛС | профиль | цитата
[flood]
kamakama писал(а):
14 Jan 2009

178.127.244.21 писал(а):
14 Jan 2012
[/flood]
карма: 11

0
Ответов: 3889
Рейтинг: 362
#12: 2012-01-14 16:33:27 ЛС | профиль | цитата
sla8a, [flood]История ходит по кругу. [/flood]
карма: 1

0
Ответов: 1731
Рейтинг: 68
#13: 2012-01-14 16:34:15 ЛС | профиль | цитата
[flood]А что вчера пятница 13 было ? [/flood]
карма: 1

0
Ответов: 1821
Рейтинг: 168
#14: 2012-01-14 16:35:57 ЛС | профиль | цитата
Cosinus, [flood]ты что, только что проснулся, что ли Кстати, сегодня субота, 14 [/flood]
карма: 5

0
Ответов: 1731
Рейтинг: 68
#15: 2012-01-14 16:42:33 ЛС | профиль | цитата
sаmakacd, [flood]Ааааа!!! Я вспомнил ! Я же отмечал старый новый год ! [/flood]
карма: 1

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