Вверх ↑
Этот топик читают: Гость
Ответов: 1528
Рейтинг: 57
#1: 2011-02-10 08:29:54 ЛС | профиль | цитата
както nesco выкладывал классный пример, но нашёл в ней 2 бага,
1-вый баг: прозрачная форма после нескольких интераций потом начинает преследовать курсор на пару px если чтото выделить в списке и отвести курсор в сторону
2-рой баг: если нажать на строке левой клавишей мыши, оттащить её немного и нажать правую клавишу мыши, прозрачная форма уходит в свободное плаванье
[burl=http://forum.hiasm.com//getfile/19768]Скачать[/burl]
карма: 0

0
Разработчик
Ответов: 26164
Рейтинг: 2127
#2: 2011-02-10 08:53:04 ЛС | профиль | цитата
hitman249 писал(а):
нашёл в ней 2 бага

Ну так попытайся их исправить. Есть пример, а ошибки правим сами
карма: 22

0
Ответов: 1528
Рейтинг: 57
#3: 2011-02-10 13:12:06 ЛС | профиль | цитата
nesco, плохо у меня с рисованием и позиционированием(
------------ Дoбавленo в 13.12:
по крайне мере пока что)
карма: 0

0
Ответов: 413
Рейтинг: 57
#4: 2011-02-11 15:13:11 ЛС | профиль | цитата
Если графическое отображение самого процесса перемещения не особо нужно, то вот что получится без лишнего (может почти без лишнего):
Add(MainForm,2953706,7,63)
{
Height=357
link(onCreate,8659902:doEnum,[])
}
Add(StrList,46990,49,14)
{
Strings=#18:строка 1 = 1111111|18:строка 2 = 2222222|17:строка 3 = 333333|21:Строка 4 = 4444444444|20:Строка 5 = 555555555|17:Строка 6 = 666666|21:Строка 7 = 7777777777|
}
Add(ArrayEnum,8659902,63,77)
{
link(onItem,8861398:doMT,[])
link(Array,46990:Array,[])
}
Add(MTStrTbl,6704819,336,42)
{
Left=5
Top=15
Width=385
Height=190
Name="1"
Hint="1"
Columns=#9:Имена=150|11:Столбец=200|
Point(ItemAtPos)
Point(onMouseEnter)
Point(EndIdx)
Point(onSelect)
Point(onMouseUp)
link(onMouseUp,997383:In,[])
}
Add(MST_DB,9269790,161,70)
{
MSTControl="1"
}
Add(MT_String,8861398,112,70)
{
Delimeter="="
link(onResult,9269790:doAddRow,[])
}
Add(MST_RowAction,13176692,910,273)
{
Action=8
MSTControl="1"
Point(Index)
link(Index,8293956:Var3,[(916,194)])
}
Add(MST_RowAction,8527033,798,315)
{
Action=9
MSTControl="1"
Point(Index)
link(Index,8293956:Var2,[])
}
Add(MathParse,11572760,798,406)
{
MathStr="(%1 = %2) * %2 + (%1 < %2) * (%1 + 1)"
ResultType=0
link(onResult,5449482:doWork3,[(958,412)])
link(X1,3709345:Value,[])
link(X2,8527033:EndIdx,[])
}
Add(MathParse,14952416,910,364)
{
DataCount=1
MathStr="(%1 = 0) * 0 + (%1 > 0) * (%1 - 1)"
ResultType=0
link(onResult,5449482:doWork2,[])
link(X1,4707097:Value,[])
}
Add(Hub,7174064,714,308)
{
OutCount=3
link(onEvent1,12724379:doData,[(743,314)(743,363)])
link(onEvent2,8527033:doRowAction,[])
link(onEvent3,11572760:doCalc,[(736,328)(736,412)])
}
Add(Memory,3709345,798,357)
{
}
Add(DoData,12724379,749,357)
{
link(onEventData,3709345:doValue,[])
link(Data,12782417:Var1,[(755,299)])
}
Add(Hub,282233,819,266)
{
OutCount=3
link(onEvent1,12684700:doData,[(852,272)(852,321)])
link(onEvent2,13176692:doRowAction,[])
link(onEvent3,14952416:doCalc,[(845,286)(845,370)])
}
Add(Memory,4707097,910,315)
{
}
Add(DoData,12684700,861,315)
{
link(onEventData,4707097:doValue,[])
link(Data,12782417:Var3,[(867,299)])
}
Add(DoData,12781651,455,147)
{
link(onEventData,10304162:doWork1,[(501,153)])
link(Data,6704819:EndIdx,[(461,116)(377,116)])
}
Add(If_else,6470422,364,147)
{
Op2=Integer(-1)
link(onTrue,12781651:doData,[])
link(onFalse,9180010:doData,[])
link(Op1,8654094:Var2,[])
}
Add(MST_SelectRow,9501550,777,147)
{
MSTControl="1"
}
Add(DoData,9180010,406,154)
{
link(onEventData,10304162:doWork2,[])
link(Data,8654094:Var3,[(412,124)])
}
Add(GetDataEx,8654094,364,119)
{
link(Data,6704819:ItemAtPos,[])
}
Add(GetDataEx,12782417,784,294)
{
link(Data,9501550:Index,[])
}
Add(If_else,12014938,609,266)
{
Type=1
Op2=Integer(0)
link(onTrue,2789887:doFor,[])
link(onFalse,15211175:doFor,[(656,279)(656,314)])
}
Add(Memory,14246077,518,154)
{
}
Add(HubEx,10304162,497,154)
{
link(onEvent,14246077:doValue,[])
}
Add(MathParse,12903108,518,259)
{
MathStr="%1 - %2"
link(onResult,8296199:doEvent1,[])
link(X1,14246077:Value,[])
link(X2,3223921:Var1,[(531,194)])
}
Add(Hub,3366625,322,147)
{
link(onEvent1,6470422:doCompare,[])
link(onEvent2,12903108:doCalc,[(355,160)(355,265)])
}
Add(LineBreak,11014743,224,140)
{
link(Out,13139901:doCompare,[])
Primary=[997383,175,-56]
}
Add(For,2789887,693,266)
{
Start=1
link(onEvent,282233:doEvent1,[])
link(End,11758174:Var3,[(706,244)])
}
Add(For,15211175,665,308)
{
Start=1
link(onEvent,7174064:doEvent1,[])
link(End,11758174:Var2,[])
}
Add(GetDataEx,8293956,798,189)
{
Angle=3
link(Data,3223921:Var3,[])
}
Add(If_else,13139901,273,140)
{
link(onFalse,3366625:doEvent1,[])
link(Op1,7533781:Var1,[(279,110)])
link(Op2,8654094:Var1,[(286,124)])
}
Add(HubEx,5449482,954,364)
{
Angle=3
link(onEvent,9501550:doSelect,[(958,134)(765,134)(765,153)])
}
Add(GetDataEx,7533781,343,105)
{
link(Data,6704819:Index,[])
}
Add(GetDataEx,3223921,554,189)
{
link(Data,7533781:Var3,[(560,110)])
}
Add(Math,8151501,672,203)
{
OpType=33
}
Add(Hub,8296199,574,259)
{
link(onEvent1,8151501:doOperation,[(602,265)(602,209)])
link(onEvent2,12014938:doCompare,[])
}
Add(GetDataEx,11758174,672,239)
{
link(Data,8151501:Result,[])
}
карма: 0

0
Ответов: 48
Рейтинг: 12
#5: 2011-02-11 15:57:09 ЛС | профиль | цитата
Еще один из возможных вариантов:
http://tempfile.ru/file/1642488
карма: 0

0
Ответов: 1528
Рейтинг: 57
#6: 2011-02-11 16:04:43 ЛС | профиль | цитата
Shonyi, а если несколько строк тащить ?
карма: 0

0
Разработчик
Ответов: 4698
Рейтинг: 426
#7: 2011-02-11 20:06:48 ЛС | профиль | цитата
Poputchik писал(а):
Если графическое отображение самого процесса перемещения не особо нужно

то лучше делать вот так, более производительно
code_22505.txt
карма: 10
0
файлы: 1code_22505.txt [2.6KB] [114]
Ответов: 1528
Рейтинг: 57
#8: 2011-02-11 20:36:42 ЛС | профиль | цитата
у Shonyi лучший вариант, только что делать если тащить нужно при multiselest + несколько строк
карма: 0

0
Ответов: 1528
Рейтинг: 57
#9: 2011-04-04 22:30:47 ЛС | профиль | цитата
Shonyi, жив ещё пример?
карма: 0

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