Вверх ↑
Этот топик читают: Гость
Разработчик
Ответов: 26061
Рейтинг: 2120
#16: 2013-01-22 13:49:47 ЛС | профиль | цитата
Я так понимаю, что ты зуммируешь контрол Image
карма: 22

0
Ответов: 5227
Рейтинг: 586
#17: 2013-01-22 13:50:18 ЛС | профиль | цитата
ser_davkin, возможно это пригодится http://forum.hiasm.com//getfile/27629 хотя не уверен
карма: 4
Мой форум - http://hiasm.bbtalk.me/ схемы, компоненты...
1
Голосовали:Nickname
Разработчик
Ответов: 26061
Рейтинг: 2120
#18: 2013-01-22 14:00:15 ЛС | профиль | цитата
ser_davkin,
Че-то я почесал репу и не понял -- какой принцип работы твоего безобразия
карма: 22

0
Ответов: 1535
Рейтинг: 176
#19: 2013-01-22 14:02:51 ЛС | профиль | цитата
nesco писал(а):
Че-то я почесал репу и не понял -- какой принцип работы сего безобразия ?
Теперь уже я не понимаю о чём ты.
Вот схема. Скопировал из своего предыдущего поста со схемой:
Add(MainForm,11427165,112,63)
{
Width=642
Height=480
}
Add(ChildPanel,3206379,259,63)
{
}
BEGIN_SDK
Add(EditMulti,10106438,28,21)
{
WorkCount=1
Width=531
Height=340
link(doWork1,8531400:doLoad,[(46,27)(46,48)])
}
Add(Panel,9845587,476,119)
{
Width=569
Height=449
Color=16711680
BorderWidth=0
BevelInner=0
BevelWidth=0
Point(Width)
Point(Height)
}
Add(Hub,13203121,105,42)
{
link(onEvent1,7614620:doLoad,[])
link(onEvent2,6563661:doCalc,[(131,55)(131,97)(44,97)(44,139)])
}
Add(Image,7614620,252,42)
{
Left=5
Top=5
Width=560
Height=440
Color=12639424
Point(onMouseDown)
Point(onMouseMove)
Point(onMouseWheel)
Point(doSetFocus)
Point(doWidth)
Point(doHeight)
Point(doLeft)
Point(doTop)
Point(ImageWidth)
Point(ImageHeight)
Point(Left)
Point(Top)
Point(Width)
Point(Height)
Point(Handle)
Point(MouseX)
Point(MouseY)
link(onMouseDown,7961584:doMove,[])
link(onMouseMove,7614620:doSetFocus,[(339,62)(339,29)(243,29)(243,62)])
link(onMouseWheel,6410142:doCalc,[(465,69)(465,352)(44,352)(44,188)])
}
Add(MoveWindow,7961584,476,49)
{
link(Handle,7614620:Handle,[(482,37)(394,37)(394,106)(307,106)])
}
Add(Img_Loader,8531400,56,42)
{
link(onLoad,13203121:doEvent1,[])
}
Add(Math,16498202,238,189)
{
OpType=2
ResultType=0
PColor(Op2,16733695)
link(onResult,5558418:Wire1,[])
link(Op2,9514427:Var2,[(251,155)(265,155)])
}
Add(Math,1268462,280,196)
{
OpType=2
ResultType=0
link(onResult,5558418:Wire2,[])
link(Op2,16575302:Var2,[(293,158)(272,158)])
}
Add(Hub,4830515,210,189)
{
OutCount=4
link(onEvent1,16498202:doOperation,[])
link(onEvent2,1268462:doOperation,[])
link(onEvent3,7699264:doCalc,[])
link(onEvent4,14759686:doCalc,[])
}
Add(MathParse,7699264,336,203)
{
DataCount=3
MathStr="%2-(%2-%3)*%1"
ResultType=0
PColor(X3,16711935)
link(onResult,5558418:Wire3,[])
link(X1,10751850:Var2,[])
link(X2,7614620:MouseX,[(349,126)(314,126)])
link(X3,7614620:Left,[(356,149)(279,149)])
}
Add(MathParse,14759686,385,210)
{
DataCount=3
MathStr="%2-(%2-%3)*%1"
ResultType=0
PColor(X3,11184640)
link(onResult,5558418:Wire4,[])
link(X1,10751850:Var3,[(391,176)])
link(X2,7614620:MouseY,[(398,121)(321,121)])
link(X3,7614620:Top,[(405,141)(286,141)])
}
Add(MathParse,6410142,56,182)
{
@Hint=#47:Используем скролл для изменения масштаба +-0.01|
MathStr="((%1>0)*(%2+0.01))+
(((%1<0)and(%2>0.0))*(%2-0.01))
"
Default=1
link(onResult,14657662:doWork2,[])
link(X2,9462090:Var1,[(69,174)(95,174)(95,245)])
AddHint(47,132,200,26,@Hint)
}
Add(Hub,7146596,112,182)
{
link(onEvent1,9344723:doWork2,[])
link(onEvent2,4830515:doEvent1,[])
}
Add(GetDataEx,10751850,336,171)
{
Angle=3
link(Data,7269437:Result,[(323,176)(323,302)(167,302)])
}
Add(MemFifo,8753638,161,203)
{
link(onData,7269437:doOperation,[(200,209)(200,250)(149,250)(149,265)])
}
Add(MathParse,6563661,56,133)
{
DataCount=4
MathStr="min(%2/%1 , %4/%3)"
link(onResult,7262469:doEvent1,[])
link(X1,9514427:Var1,[(62,103)])
link(X2,7614620:Width,[(69,110)(293,110)])
link(X3,16575302:Var1,[(76,117)])
link(X4,7614620:Height,[(83,124)(300,124)])
}
Add(GetDataEx,9514427,259,98)
{
PColor(Data,16733695)
link(Data,7614620:ImageWidth,[])
}
Add(GetDataEx,16575302,266,112)
{
link(Data,7614620:ImageHeight,[])
}
Add(Math,7269437,161,259)
{
OpType=3
link(Op1,9462090:Var2,[])
link(Op2,8753638:Value2,[])
}
Add(GetDataEx,9462090,161,240)
{
link(Data,8753638:Value1,[])
}
Add(HubEx,9344723,144,182)
{
Angle=1
link(onEvent,8753638:doValue,[(148,209)])
}
Add(Hub,7262469,112,133)
{
link(onEvent1,9344723:doWork1,[(148,139)])
link(onEvent2,14657662:doWork1,[(138,146)(138,166)(102,166)])
}
Add(HubEx,14657662,98,182)
{
link(onEvent,7146596:doEvent1,[])
}
Add(CableEvent,11282654,217,63)
{
Count=4
link(Wire1,7614620:doWidth,[])
link(Wire2,7614620:doHeight,[])
link(Wire3,7614620:doLeft,[])
link(Wire4,7614620:doTop,[])
}
Add(CableWork,5558418,434,189)
{
Count=4
link(Cable,11282654:Cable,[(453,195)(453,132)(205,132)(205,69)])
}
END_SDK
Add(Button,7450850,161,63)
{
Left=575
Top=5
Height=40
link(onClick,15336679:doExecute,[])
}
Add(ODialog,15336679,210,63)
{
StartDir="C:UsersLAPictures"
FileName="DSC01692.JPG"
link(onExecute,3206379:doWork1,[])
}

карма: 1
Не так страшна ошибка, как опасность её не заметить.

0
Разработчик
Ответов: 26061
Рейтинг: 2120
#20: 2013-01-22 14:05:57 ЛС | профиль | цитата
ser_davkin писал(а):
Теперь уже я не понимаю о чём ты

Принцип работы какой
Куча всего понаверчено, вопрос -- зачем это там все
карма: 22

0
Ответов: 1535
Рейтинг: 176
#21: 2013-01-22 14:14:24 ЛС | профиль | цитата
nesco писал(а):
зачем это там все
Не понял, рассказать по шагам весь алгоритм?
карма: 1
Не так страшна ошибка, как опасность её не заметить.

0
Разработчик
Ответов: 26061
Рейтинг: 2120
#22: 2013-01-22 14:19:08 ЛС | профиль | цитата
ser_davkin писал(а):
Не понял, рассказать по шагам весь алгоритм?

Я кажется понял -- картинка должна стоять на месте относительно мыша и расширяться в разные стороны. Но в твоей схеме видно, что картинка едет даже при нулевых координатах формы, что говорит, что подход не совсем правильный
карма: 22

0
Ответов: 8887
Рейтинг: 823
#23: 2013-01-22 14:28:45 ЛС | профиль | цитата
nesco писал(а):
Есть какие-то претензии к компонентам?

Райкин писал(а):
--Претензии к пуговицам есть?
--Нет! Пришиты крепко, не оторвёшь!
И стоят все, как пуговицы!
карма: 19

0
Ответов: 1535
Рейтинг: 176
#24: 2013-01-22 14:37:34 ЛС | профиль | цитата
nesco писал(а):
подход не совсем правильный
Что значит, неправильный? Высчитываем будущие значения: ширины картинки, высоты картинки, отступ слева, отступ сверху и отправляем их по очереди в соответствующие точки Image. А, как иначе?
------------ Дoбавленo в 14.37:
Я, полагаю, координаты мыши в процессе зумма приходят относительно всего экрана, а не конкретного окна. Хотя нет, скорее что-то здесь связано с проблемой наследования. Или ещё мысль - ошибка инициализации. Но это только мысли в слух.
карма: 1
Не так страшна ошибка, как опасность её не заметить.

0
Разработчик
Ответов: 26061
Рейтинг: 2120
#25: 2013-01-22 15:47:09 ЛС | профиль | цитата
ser_davkin писал(а):
Я, полагаю, координаты мыши в процессе зумма приходят относительно всего экрана, а не конкретного окна. Хотя нет, скорее что-то здесь связано с проблемой наследования. Или ещё мысль - ошибка инициализации.

Ага, конечно -- ошибка инициализации мозга. Это тоже одна из мыслей
------------ Дoбавленo в 15.47:
ser_davkin, задача довольно интересная. И зуммирование -- самое простое, что в ней есть
карма: 22

0
Ответов: 1535
Рейтинг: 176
#26: 2013-01-22 15:59:09 ЛС | профиль | цитата
Обшибся.
карма: 1
Не так страшна ошибка, как опасность её не заметить.

0
Разработчик
Ответов: 26061
Рейтинг: 2120
#27: 2013-01-22 16:05:33 ЛС | профиль | цитата
ser_davkin писал(а):
то, всё работает правильно

Это как это интересно правильно Жиешь на кнопки же мышью, значит, она над кнопками.
А как интересно ты собираешься на них жать, если курсор будет в другом углу
И причем здесь onMouseWheel вообще
карма: 22

0
Ответов: 1535
Рейтинг: 176
#28: 2013-01-22 16:08:55 ЛС | профиль | цитата
nesco писал(а):
И причем здесь onMouseWheel вообще
упс Поспешил - насмешил. Удалил.
карма: 1
Не так страшна ошибка, как опасность её не заметить.

0
Разработчик
Ответов: 26061
Рейтинг: 2120
#29: 2013-01-22 17:10:30 ЛС | профиль | цитата
Че-то у меня мозги закипели уже. Отложу на вечер, если кто раньше не придумает
карма: 22

0
Ответов: 758
Рейтинг: 112
#30: 2013-01-22 17:54:15 ЛС | профиль | цитата
ser_davkin, Вот тебе схема на подумать . Вертикальное смещение как домашнее задание
code_30159.txt
карма: 1

1
файлы: 1code_30159.txt [3.6KB] [460]
Голосовали:inter1
Сообщение
...
Прикрепленные файлы
(файлы не залиты)