Вверх ↑
Этот топик читают: Гость
Ответов: 175
Рейтинг: 10
#1: 2009-10-17 02:06:23 ЛС | профиль | цитата
Пришла в голову мысль, что можно упростить создание одноконтурных сложных регионов
Выношу на суд читателей
Как пользоваться написано в кнопке Help

Последняя версия



Add(InfoTip,110057,399,308)
{
Info=#0:|30: Список + Загрузить/Сохранить|
Font=[MS Sans Serif,14,1,0,1]
Frame=3
HAlign=0
Width=589
Height=417
}
Add(MainForm,2953706,413,497)
{
Width=1024
Height=679
Font=[MS Sans Serif,12,1,0,1]
Name="RegionScriptCreator"
Caption="RegionScriptCreator"
Point(Left)
Point(Top)
link(onCreate,4677991:doEvent1,[])
}
Add(StatusBar,2460398,392,98)
{
}
Add(DoData,6665651,308,98)
{
link(onEventData,15215525:doString,[])
link(Data,15782123:getVar,[])
}
Add(FormatStr,15215525,350,98)
{
Mask="X=%1 Y=%2"
link(onFString,2460398:doText,[])
link(Str2,12924685:getVar,[])
}
Add(Hub,10374542,147,35)
{
link(onEvent1,4199795:doCopy,[(528,41)(528,181)])
link(onEvent2,6665651:doData,[(292,48)(292,104)])
}
Add(Edit,14015827,868,924)
{
Left=10
Top=610
Width=865
}
Add(Img_Rectangle,3777453,700,182)
{
Point1=6553700
Point2=655370
Point2AsOffset=0
DrawSource=1
Point(Point1)
Point(Point2)
link(Bitmap,13393517:getVar,[])
link(Color,4740919:GetData,[(713,174)(769,174)])
}
Add(EventFromData,4740919,763,133)
{
link(onEvent,16220867:doGetPixel,[])
}
Add(Img_GetPoint,16220867,805,133)
{
X=106
Y=106
DrawSource=1
link(onGetPixel,5813559:doOperation,[])
link(Bitmap,8058461:getVar,[])
}
Add(PaintBox,2775499,91,56)
{
Width=800
Height=600
Color=-16777215
MouseCapture=0
Point(MouseX)
Point(MouseY)
Point(onMouseMove)
Point(onMouseDown)
link(onMouseMove,10374542:doEvent1,[(135,69)(135,41)])
link(onMouseDown,7050265:doEvent,[])
}
Add(Bitmap,3452183,441,189)
{
}
Add(Img_Bmp,12883607,434,259)
{
Point(X)
Point(Y)
link(onDraw,5272367:doWork3,[(480,265)(480,162)(74,162)])
link(Bitmap,6489787:getVar,[])
link(SourceBitmap,3452183:Bitmap,[])
}
Add(Img_Line,1483655,217,539)
{
Color=65280
Point(Point1)
Point(Point2)
Point(Color)
link(onDraw,980515:doEvent1,[])
link(Bitmap,5017713:Var2,[])
link(Point1,6950616:Value,[(230,527)(258,527)(258,583)(349,583)])
link(Point2,4710053:Var2,[])
link(Color,16255703:CurrentColor,[(244,517)(76,517)])
}
Add(Memory,6950616,343,539)
{
Point(Data)
link(Data,4710053:Var3,[(349,516)])
}
Add(PointXY,9673351,231,434)
{
link(X,6320517:Var1,[(237,430)(228,430)(228,425)])
link(Y,12024429:Var1,[(244,426)(235,426)(235,418)])
}
Add(GetDataEx,4710053,231,511)
{
link(Data,416527:Var2,[])
}
Add(Button,7731256,28,861)
{
Left=805
Top=265
Width=115
Height=30
Font=[MS Sans Serif,8,1,0,1]
Caption="Очистить контур"
link(onClick,9255297:doMessage,[])
}
Add(Switch,4302097,182,476)
{
Point(onOn)
Point(onOff)
Point(doOn)
link(onOn,9933818:doData,[])
}
Add(Hub,13089284,147,532)
{
link(onEvent1,4302097:doOn,[(171,538)(171,496)])
link(onEvent2,1483655:doDraw,[])
}
Add(DoData,9933818,245,483)
{
link(onEventData,3109426:doWork1,[(305,489)])
link(Data,416527:Var3,[(251,474)])
}
Add(HubEx,3109426,301,539)
{
link(onEvent,6950616:doValue,[])
}
Add(GetDataEx,416527,231,469)
{
link(Data,9673351:Point,[])
}
Add(Img_Point,14667831,315,602)
{
Color=65535
Point(X)
Point(Y)
link(Bitmap,5017713:Var3,[(321,390)])
link(X,8827769:Var3,[(328,411)])
link(Y,2625593:Var3,[(335,397)])
}
Add(Hub,980515,259,539)
{
OutCount=3
link(onEvent1,3109426:doWork2,[])
link(onEvent2,14667831:doDraw,[(283,552)(283,608)])
}
Add(GetDataEx,5017713,217,385)
{
link(Data,4006503:getVar,[])
}
Add(GetDataEx,8827769,231,406)
{
link(Data,3254031:getVar,[])
}
Add(GetDataEx,2625593,238,392)
{
link(Data,8796386:getVar,[])
}
Add(Message,9255297,77,861)
{
Message="Очистить контур ???"
Type=1
Icon=3
Point(onOK)
link(onOK,1165392:doEvent1,[])
}
Add(EventFromData,11472750,714,455)
{
link(onEvent,1481905:doString,[])
}
Add(FormatStr,1481905,763,455)
{
DataCount=3
Mask="%1,%2"
link(onFString,11472750:doData,[(808,461)(808,440)(708,440)(708,461)])
link(Str1,4925463:getVar,[])
link(Str2,14445237:getVar,[])
}
Add(GetDataEx,6320517,231,420)
{
link(Data,8827769:Var2,[])
}
Add(GetDataEx,12024429,238,413)
{
link(Data,2625593:Var2,[])
}
Add(Hub,1165392,147,868)
{
OutCount=4
link(onEvent1,3910912:In,[(210,874)(210,867)])
link(onEvent2,7996594:In,[])
link(onEvent3,127037:In,[(210,888)(210,895)])
link(onEvent4,13937784:doEvent2,[(178,895)(178,937)])
}
Add(ArrayEnum,11322965,630,868)
{
link(onItem,11538845:doString,[])
link(onEndEnum,5843529:doString,[(702,881)(702,930)])
link(Array,3773357:getVar,[])
}
Add(FormatStr,11538845,707,868)
{
Mask="%1 ,%2"
Point(FString)
link(onFString,6651140:doValue,[(751,874)(751,811)])
link(Str1,6651140:Value,[(713,852)(790,852)])
link(Str2,11322965:Item,[(720,847)(678,847)(678,912)(636,912)])
}
Add(FormatStr,5843529,742,924)
{
Mask="poly(%1)"
Point(FString)
link(onFString,1777597:doDelete,[])
link(Str1,11538845:FString,[(748,912)(713,912)])
}
Add(Memory,6651140,784,805)
{
Point(Data)
}
Add(Hub,13937784,840,924)
{
InCount=2
link(onEvent1,14015827:doText,[])
}
Add(Delete,1777597,791,924)
{
Position=7
Count=1
link(onDelete,13937784:doEvent1,[])
}
Add(Button,15756459,161,182)
{
Left=805
Top=220
Width=115
Height=30
Font=[MS Sans Serif,8,1,0,1]
Caption="Загрузить фон"
link(onClick,3564843:doExecute,[])
}
Add(ODialog,3564843,210,182)
{
Filter=""
Title="Выбор фона"
link(onExecute,3977070:doLoad,[])
}
Add(PictureStream,3977070,259,182)
{
link(onLoad,8021607:doEvent1,[])
}
Add(Hub,8021607,308,182)
{
OutCount=3
link(onEvent1,12869485:doWork2,[(334,188)(334,167)])
link(onEvent2,3452183:doLoad,[])
link(onEvent3,6799684:doWork1,[(333,202)])
}
Add(HubEx,6799684,329,259)
{
link(onEvent,16406439:doData,[])
}
Add(Hub,7384978,588,854)
{
link(onEvent1,11322965:doEnum,[(621,860)(621,874)])
link(onEvent2,912785:doWork3,[(614,867)(614,792)(760,792)])
}
Add(Button,8506105,28,910)
{
Left=805
Top=570
Width=115
Height=30
Font=[MS Sans Serif,8,1,0,1]
Caption="Help ?"
link(onClick,9169935:doMessage,[])
}
Add(Message,9169935,77,910)
{
Message="Программа сделана для визуального создания скриптов одноконтурных сложных регионов.

Как пользоваться:

1.Запускаем СВОЮ программу , делаем скриншот формы, загоняем в BMP.
2.В СЕЙ программе нажимаем кнопку "Загрузить фон" и указываем BMP из п.1 или просто желаемую картинку
3.Аккуратно тыкаем по контуру картинки, пока первая точка не совпадет с последней
4.Жмем "Тест" - Смотрим на результат (через 10с закрывается)
5.Нажимаем "Копировать в буфер" и вставляем содержимое буфера в свойство RGN_Script своей программы на HiAsm

Примечание: "Откат" последней точки - правая кнопка мыши"
Icon=4
}
Add(LineBreakEx,11927913,658,231)
{
Caption="PB2"
Type=3
link(_Data,15000432:Handle,[])
}
Add(LineBreakEx,13393517,700,147)
{
Caption="PB2"
Type=2
}
Add(LineBreakEx,8058461,805,98)
{
Caption="PB2"
Type=2
}
Add(LineBreakEx,11071420,91,147)
{
Caption="PB1"
Type=3
link(_Data,2775499:Bitmap,[])
}
Add(LineBreakEx,6489787,434,231)
{
Caption="PB1"
Type=2
}
Add(LineBreakEx,4006503,217,322)
{
Caption="PB1"
Type=2
}
Add(LineBreakEx,13541202,98,126)
{
Caption="X1"
Type=3
link(_Data,2775499:MouseX,[])
}
Add(LineBreakEx,12067416,105,105)
{
Caption="Y1"
Type=3
link(_Data,2775499:MouseY,[])
}
Add(LineBreakEx,15782123,308,63)
{
Caption="X1"
Type=2
}
Add(LineBreakEx,3254031,231,343)
{
Caption="XEnum"
Type=2
}
Add(LineBreakEx,8796386,238,364)
{
Caption="YEnum"
Type=2
}
Add(LineBreakEx,12924685,357,63)
{
Caption="Y1"
Type=2
}
Add(LineBreak,9594694,497,504)
{
Caption="doAdd"
link(Out,12096976:doEvent1,[])
Primary=[7221560,-287,-434]
}
Add(InfoTip,14861299,497,0)
{
Info=#0:|11:Увеличитель|
Font=[MS Sans Serif,14,1,0,1]
Frame=3
Width=449
Height=270
}
Add(ClipboardHook,16486103,868,980)
{
link(Text,5740326:Var2,[])
}
Add(Button,1266138,28,966)
{
Left=880
Top=610
Width=130
Font=[MS Sans Serif,8,1,0,1]
Caption="Копировать в буфер"
link(onClick,16486103:doSetText,[(464,972)(464,986)])
}
Add(ArrayEnum,5826558,91,735)
{
link(onItem,8132561:doSplit,[])
link(onEndEnum,416081:doEvent1,[(131,748)(131,762)])
link(Array,655569:getVar,[])
}
Add(LineBreak,12200023,28,735)
{
Caption="doDraw"
link(Out,5826558:doEnum,[])
Primary=[11231166,889,-140]
}
Add(LineBreak,6125072,518,854)
{
Caption="doScript"
link(Out,7384978:doEvent1,[])
Primary=[2433649,399,-238]
}
Add(LineBreak,5256352,441,581)
{
Caption="doClr"
link(Out,9277385:doWork2,[])
Primary=[7996594,-217,294]
}
Add(LineBreak,5955381,700,812)
{
Caption="doClr"
link(Out,912785:doWork2,[])
Primary=[127037,-476,77]
}
Add(HubEx,912785,756,812)
{
link(onEvent,6651140:doClear,[])
}
Add(LineBreak,14286069,21,238)
{
Caption="doClr"
link(Out,8518319:doEvent1,[(89,244)(89,258)])
Primary=[3910912,203,623]
}
Add(StrPart,8132561,245,735)
{
Char=","
Point(Left)
Point(Right)
link(onSplit,13089284:doEvent1,[(289,741)(289,619)(135,619)(135,538)])
}
Add(LineBreakEx,14705065,245,805)
{
Caption="XEnum"
Type=3
link(_Data,8132561:Left,[])
}
Add(LineBreakEx,5367221,252,784)
{
Caption="YEnum"
Type=3
link(_Data,8132561:Right,[])
}
Add(LineBreakEx,4925463,763,399)
{
Caption="X1"
Type=2
}
Add(LineBreakEx,14445237,770,420)
{
Caption="Y1"
Type=2
}
Add(Hub,416081,140,756)
{
OutCount=3
link(onEvent1,4302097:doReset,[(229,762)(229,603)(120,603)(120,489)])
link(onEvent2,10321163:In,[(161,769)(161,776)])
}
Add(LineBreak,15977945,0,7)
{
Caption="doRefresh"
link(Out,5272367:doWork1,[(74,13)])
Primary=[10321163,168,763]
}
Add(HubEx,5272367,70,56)
{
link(onEvent,2775499:doRefresh,[])
}
Add(LineBreak,11443967,21,259)
{
Caption="doClr"
link(Out,8518319:doEvent2,[])
Primary=[15620023,896,315]
}
Add(Hub,14474619,868,574)
{
InCount=4
OutCount=3
link(onEvent1,15620023:In,[])
link(onEvent2,11231166:In,[(907,587)(907,601)])
link(onEvent3,2433649:In,[(900,594)(900,622)])
}
Add(Hub,8518319,119,252)
{
InCount=2
link(onEvent1,12869485:doWork3,[(145,258)(145,216)(130,216)])
link(onEvent2,6799684:doWork2,[])
}
Add(HubEx,12869485,126,161)
{
Angle=2
link(onEvent,2775499:doClear,[(71,167)(71,69)])
}
Add(DoData,16406439,371,259)
{
Data=Integer(0)
link(onEventData,12883607:doDraw,[])
}
Add(IndexToChanel,7050265,154,70)
{
link(onEvent1,7221560:In,[])
link(onEvent2,4903080:In,[(198,83)(198,97)])
}
Add(LineBreak,6435903,434,658)
{
Caption="doUndo"
link(Out,14197823:doOperation,[])
Primary=[4903080,-224,-567]
}
Add(HilightMemo,322437,644,574)
{
Left=925
Top=220
Width=85
Height=380
Font=[MS Sans Serif,8,1,0,1]
HilightFont=[Courier New,8,0,0,1]
AutoComplete=1
Hilight=1
SmartTabs=1
RightMargin=1
link(onChange,2066412:doCompare,[])
link(Str,4382375:Var,[(650,562)(720,562)])
link(FileName,16249754:GetData,[])
}
Add(HubEx,9277385,490,581)
{
link(onEvent,3003884:doEvent1,[(504,587)(504,580)])
}
Add(LineBreakEx,2721584,378,980)
{
Caption="PB1"
Type=2
}
Add(Button,15606055,315,1036)
{
Left=805
Top=310
Width=115
Height=55
Font=[MS Sans Serif,8,1,0,1]
Caption="Тест"
link(onClick,8273303:doWork1,[])
}
Add(ChildForm,8273303,378,1036)
{
FirstUsage=0
link(Data1,2721584:getVar,[])
link(Data2,5740326:Var1,[(391,964)])
}
BEGIN_SDK
Add(EditMulti,12777748,21,21)
{
WorkCount=2
DataCount=2
Width=979
Height=753
link(doWork1,13166575:doEvent1,[(126,27)(126,244)])
}
Add(MainForm,3033295,546,266)
{
Left=35
Top=105
Width=800
Height=600
Visible=1
BorderStyle=0
DragForm=0
Point(doPicture)
Point(doVisible)
Point(Handle)
}
Add(HubEx,2194137,495,301)
{
link(onEvent,3033295:doVisible,[])
}
Add(RGN_SetToWindow,4847611,546,434)
{
link(onSetRegion,2545027:doData,[(589,440)(589,500)(372,500)(372,258)])
link(Handle,3033295:Handle,[])
link(Region,15569971:Result,[(559,422)(524,422)(524,478)(489,478)])
}
Add(Hub,13166575,231,238)
{
OutCount=3
link(onEvent1,11329220:doData,[(319,244)(319,209)])
link(onEvent2,15569971:doCreateRgn,[(318,251)(318,440)])
link(onEvent3,4688258:doTimer,[(257,258)(257,370)(198,370)(198,461)])
}
Add(DoData,2545027,392,252)
{
Data=Integer(1)
link(onEventData,2194137:doWork1,[(499,258)])
}
Add(DoData,7941138,392,301)
{
Data=Integer(1)
link(onEventData,2194137:doWork2,[])
}
Add(RGN_Script,15569971,483,434)
{
link(onCreateRgn,4847611:doSetRegion,[])
link(Script,12777748:Data2,[(489,406)(34,406)])
}
Add(DoData,11329220,392,203)
{
Data=Integer(1)
link(onEventData,3033295:doPicture,[(515,209)(515,300)])
link(Data,12777748:Data1,[(398,112)(27,112)])
}
Add(Timer,4688258,210,455)
{
Interval=10000
Enable=1
AutoStop=1
link(onTimer,3033295:doClose,[(341,461)(341,293)])
}
END_SDK
Add(GetDataEx,5740326,868,959)
{
link(Data,14015827:Text,[])
}
Add(Button,2501937,567,644)
{
Left=805
Top=490
Width=115
Height=30
Font=[MS Sans Serif,8,1,0,1]
Caption="Сохр. таблицу"
link(onClick,322437:doSave,[(620,650)(620,615)])
}
Add(Button,12182858,567,602)
{
Left=805
Top=525
Width=115
Height=30
Font=[MS Sans Serif,8,1,0,1]
Caption="Загр. таблицу"
link(onClick,322437:doLoad,[])
}
Add(EventFromData,16249754,651,385)
{
link(onEvent,5822543:doExecute,[])
}
Add(ODialog,5822543,700,385)
{
Filter="all"
FileName=""
link(onExecute,16249754:doData,[(744,391)(744,379)(639,379)(639,391)])
}
Add(Math,14197823,497,658)
{
Op2=-1
ResultType=0
link(onResult,322437:doDelete,[(554,664)(554,594)])
link(Op1,322437:Count,[(503,638)(657,638)])
}
Add(Math,5813559,847,133)
{
Op2=32000
ResultType=0
link(onResult,4740919:doData,[(889,139)(889,88)(755,88)(755,139)])
}
Add(Image,15000432,651,175)
{
Left=805
Top=5
Width=210
Height=210
Color=15780518
Point(Handle)
Point(MouseX)
Point(MouseY)
Point(onPaint)
link(onPaint,3777453:doDraw,[])
}
Add(InfoTip,11588004,21,308)
{
Info=#0:|18: Рисование линий|
Font=[MS Sans Serif,14,1,0,1]
Frame=3
HAlign=0
Width=365
Height=529
}
Add(InfoTip,13719853,497,742)
{
Info=#0:|23: формирование скрипта|
Font=[MS Sans Serif,14,1,0,1]
Frame=3
HAlign=0
Width=435
Height=298
}
Add(InfoTip,16117217,287,896)
{
Info=#0:|4:Тест|
Font=[MS Sans Serif,14,1,0,1]
Frame=3
Width=183
Height=200
}
Add(Switch,12552580,574,462)
{
Point(onOn)
Point(onOff)
Point(doOn)
link(onOn,943276:doWork1,[(620,475)])
}
Add(Hub,12096976,553,504)
{
link(onEvent1,9595590:doWork2,[])
link(onEvent2,12552580:doOn,[(571,517)(571,482)])
}
Add(HubEx,943276,616,504)
{
link(onEvent,322437:doAdd,[(631,510)(631,580)])
}
Add(Hub,3003884,511,574)
{
link(onEvent1,12552580:doReset,[(533,580)(533,475)])
link(onEvent2,5447269:doWork2,[])
}
Add(Label,12377843,28,1008)
{
Left=835
Top=410
Width=58
Height=17
Caption="Смещение"
Alignment=2
}
Add(Button,932329,1008,777)
{
Left=850
Top=430
Width=30
Caption="-"
Data=Integer(-1)
Point(onMouseDown)
Point(onMouseUp)
link(onClick,7226246:doWork2,[(1060,783)(1060,965)])
}
Add(Button,8730076,987,1001)
{
Left=850
Top=460
Width=30
Caption="+"
Data=Integer(1)
Point(onMouseDown)
Point(onMouseUp)
link(onClick,7226246:doWork3,[(1082,1007)])
}
Add(Button,12565326,952,875)
{
Left=815
Top=445
Width=30
Caption="-"
Data=Integer(-1)
link(onClick,1213919:doWork2,[])
}
Add(Button,4925196,1092,889)
{
Left=885
Top=445
Width=30
Caption="+"
Data=Integer(1)
link(onClick,1213919:doWork3,[(1131,895)])
}
Add(LineBreakEx,11166806,658,651)
{
Caption="Array"
Type=3
link(_Data,322437:Array,[])
}
Add(LineBreakEx,3773357,630,819)
{
Caption="Array"
Type=2
}
Add(LineBreakEx,655569,91,679)
{
Caption="Array"
Type=2
}
Add(ArrayEnum,947403,1421,917)
{
link(onItem,7037954:doSplit,[])
link(onEndEnum,5865610:doEvent1,[(1461,930)(1461,1028)])
link(Array,6067322:getVar,[])
}
Add(StrPart,7037954,1477,917)
{
Char=","
Point(Left)
Point(Right)
link(onSplit,6377785:doEvent1,[])
}
Add(LineBreakEx,9746617,1477,987)
{
Caption="XEnum1"
Type=3
link(_Data,7037954:Left,[])
}
Add(LineBreakEx,3357569,1484,966)
{
Caption="YEnum1"
Type=3
link(_Data,7037954:Right,[])
}
Add(GlobalVar,15386732,1274,875)
{
Name="XShift"
}
Add(GlobalVar,10610440,1274,917)
{
Name="YShift"
link(onValue,1400510:doEvent1,[])
}
Add(HubEx,7226246,1078,959)
{
link(onEvent,14431268:doEvent1,[(1130,965)(1130,916)])
}
Add(LineBreakEx,6067322,1421,889)
{
Caption="Array"
Type=2
}
Add(Math,2665762,1561,917)
{
ResultType=0
link(Op1,1344347:getVar,[])
link(Op2,5624375:Var,[(1574,910)(1581,910)])
}
Add(Math,16600026,1631,917)
{
ResultType=0
link(onResult,3331800:doString,[])
link(Op1,9251511:getVar,[])
link(Op2,4766777:Var,[])
}
Add(LineBreakEx,1344347,1561,868)
{
Caption="XEnum1"
Type=2
}
Add(GlobalVar,5624375,1575,889)
{
Name="XShift"
}
Add(LineBreakEx,9251511,1631,868)
{
Caption="YEnum1"
Type=2
}
Add(GlobalVar,4766777,1638,882)
{
Name="YShift"
}
Add(FormatStr,3331800,1694,917)
{
Mask="%1,%2"
link(onFString,3996502:doAdd,[])
link(Str1,2665762:Result,[(1700,905)(1684,905)(1684,969)(1567,969)])
link(Str2,16600026:Result,[(1707,899)(1672,899)(1672,961)(1637,961)])
}
Add(StrList,3996502,1757,917)
{
}
Add(Hub,1400510,1372,917)
{
OutCount=4
link(onEvent1,1143505:doData,[(1392,923)(1392,818)])
link(onEvent2,6067391:doData,[(1399,930)(1399,853)])
link(onEvent3,3996502:doClear,[(1572,937)(1572,930)])
link(onEvent4,947403:doEnum,[(1404,944)(1404,923)])
}
Add(Hub,5865610,1470,1022)
{
link(onEvent1,12599417:In,[])
link(onEvent2,11242857:doEnum,[])
}
Add(LineBreak,5513775,497,602)
{
Caption="doClr"
link(Out,5447269:doWork3,[(543,608)])
Primary=[12599417,1001,420]
}
Add(HubEx,5447269,539,581)
{
link(onEvent,322437:doClear,[])
}
Add(LineBreak,2288224,553,539)
{
Caption="doAdd"
link(Out,9595590:doWork3,[(606,545)])
Primary=[7191990,1351,490]
}
Add(HubEx,9595590,602,504)
{
link(onEvent,943276:doWork2,[])
}
Add(ArrayEnum,11242857,1771,1029)
{
link(onItem,7191990:In,[])
link(onEndEnum,13591225:doEvent1,[])
link(Array,3996502:Array,[])
}
Add(Hub,6377785,1533,917)
{
link(onEvent1,2665762:doOperation,[])
link(onEvent2,16600026:doOperation,[(1589,930)(1589,923)])
}
Add(Hub,13837697,1176,875)
{
link(onEvent1,16391755:doWork2,[])
link(onEvent2,12853482:doData,[(1204,888)(1204,846)])
}
Add(DoData,12853482,1218,840)
{
Data=Integer(0)
link(onEventData,9062410:doWork1,[(1257,846)])
}
Add(HubEx,9062410,1253,917)
{
link(onEvent,10610440:doValue,[])
}
Add(DoData,6394384,1225,966)
{
Data=Integer(0)
link(onEventData,16391755:doWork3,[(1264,972)])
}
Add(Hub,14431268,1176,910)
{
link(onEvent1,6394384:doData,[(1208,916)(1208,972)])
link(onEvent2,9062410:doWork2,[])
}
Add(HubEx,16391755,1260,875)
{
link(onEvent,15386732:doValue,[])
}
Add(GetIndexData,4382375,714,518)
{
Count=3
link(Data1,11472750:GetData,[])
}
Add(LineBreakEx,8884127,651,518)
{
Caption="From"
Type=1
link(OnEvent,4382375:doIndex,[])
}
Add(LineBreakEx,10573399,525,413)
{
Caption="From"
}
Add(Hub,4677991,455,511)
{
link(onEvent1,4143098:doData,[(494,517)(494,467)(464,467)(464,419)])
link(onEvent2,9277385:doWork1,[(494,524)])
}
Add(DoData,4143098,476,413)
{
Data=Integer(0)
link(onEventData,10573399:doWork,[])
}
Add(LineBreakEx,16094506,1477,847)
{
Caption="From"
}
Add(DoData,6067391,1428,847)
{
Data=Integer(1)
link(onEventData,16094506:doWork,[])
}
Add(LineBreakEx,3933918,1918,1078)
{
Caption="From"
}
Add(DoData,7493246,1869,1078)
{
Data=Integer(0)
link(onEventData,3933918:doWork,[])
link(Data,3996502:Text,[(1875,1020)(1763,1020)])
}
Add(InfoTip,11886000,945,742)
{
Info=#0:|8:Смещение|
Font=[MS Sans Serif,14,1,0,1]
Frame=3
Width=1086
Height=424
}
Add(Resize,15431784,602,175)
{
Width=210
Height=210
link(onResult,15000432:doLoad,[])
}
Add(Img_Copy,4199795,553,175)
{
Width=21
Height=21
link(onCopy,15431784:doResize,[])
link(Source,7469804:getVar,[])
link(X,10315518:reCalc,[(566,141)(580,141)])
link(Y,10447955:reCalc,[(573,154)(629,154)])
}
Add(MathParse,10315518,567,98)
{
MathStr="%1-10"
ResultType=0
Point(reCalc)
link(X1,884327:getVar,[])
}
Add(MathParse,10447955,616,98)
{
DataCount=1
MathStr="%1-10"
ResultType=0
Point(reCalc)
link(X1,42865:getVar,[])
}
Add(LineBreakEx,7469804,553,42)
{
Caption="PB1"
Type=2
}
Add(LineBreakEx,884327,567,70)
{
Caption="X1"
Type=2
}
Add(LineBreakEx,42865,616,70)
{
Caption="Y1"
Type=2
}
Add(ColorBox,16255703,70,462)
{
Left=810
Top=385
Width=105
Height=21
DefColor=65280
link(onClick,1349099:In,[])
}
Add(LineBreak,9812392,826,623)
{
link(Out,14474619:doEvent2,[(862,629)(862,587)])
Primary=[1349099,-707,-161]
}
Add(Thread,7381892,721,658)
{
Delay=0
FastStop=0
}
Add(If_else,2066412,805,574)
{
Op2=Integer(1)
link(onTrue,14474619:doEvent1,[])
link(Op1,239190:Var,[])
}
Add(GlobalVar,239190,805,539)
{
Name="IsEnum"
Data=Integer(1)
}
Add(GlobalVar,16768429,1470,812)
{
Name="IsEnum"
Data=Integer(1)
}
Add(DoData,1143505,1428,812)
{
Data=Integer(0)
link(onEventData,16768429:doValue,[])
}
Add(GlobalVar,16494283,1911,1120)
{
Name="IsEnum"
Data=Integer(1)
link(onValue,16296218:In,[])
}
Add(DoData,16090626,1869,1120)
{
Data=Integer(1)
link(onEventData,16494283:doValue,[])
}
Add(Hub,13591225,1813,1036)
{
link(onEvent1,7493246:doData,[(1847,1042)(1847,1084)])
link(onEvent2,16090626:doData,[(1840,1049)(1840,1126)])
}
Add(LineBreak,4429240,826,644)
{
link(Out,14474619:doEvent4,[(862,650)(862,601)])
Primary=[16296218,1162,476]
}
Add(HubEx,1213919,1127,875)
{
link(onEvent,13837697:doEvent1,[])
}


Демонстрация возможностей

http://www.hiasm.com/forum_serv.php?q=56&id=590
карма: 1

2
файлы: 1code_15277.txt [12.3KB] [264]
Голосовали:flud, miver
Ответов: 877
Рейтинг: 101
#2: 2009-10-17 03:01:39 ЛС | профиль | цитата
Добавь откат точки чтобы не стирать всё.
ставлю 3+ садись
карма: 1

0
Ответов: 175
Рейтинг: 10
#3: 2009-10-17 03:04:13 ЛС | профиль | цитата
Обновленный вариант

Наведен порядок в схеме
Многое исправлено
По просьбе flud добавлен откат последней точки
Добавлена возможность предпросмотра

Подскажите, как ускорить прорисовку увеличителя

Под мою программу еще видеокарту не придумали
карма: 1

0
Ответов: 60
Рейтинг: 0
#4: 2009-10-17 19:21:32 ЛС | профиль | цитата
a0005d26f,для удобства и точности добавь управление точкой рисования с помощью стрелок
карма: 0

0
Разработчик
Ответов: 26170
Рейтинг: 2127
#5: 2009-10-17 20:50:31 ЛС | профиль | цитата
a0005d26f писал(а):
Подскажите, как ускорить прорисовку увеличителя

Под мою программу еще видеокарту не придумали


Ага, а уменя точки проскальзывают мимо, на мой видеокарте, я не успеваю за лупой их поймать
карма: 22

0
Ответов: 175
Рейтинг: 10
#6: 2009-10-17 22:01:35 ЛС | профиль | цитата
Ану-ка, парни, зацените!



Оказывается, замена PaintBox на Image творит чудеса!
карма: 1

0
файлы: 1code_15281.txt [17.7KB] [238]
Ответов: 16884
Рейтинг: 1239
#7: 2009-10-17 23:48:49 ЛС | профиль | цитата
a0005d26f, поделись опытом. Как ?

------------ Дoбавленo в 23.54:

карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
файлы: 1helpp.png [22.8KB] [441]
Ответов: 175
Рейтинг: 10
#8: 2009-10-18 00:00:14 ЛС | профиль | цитата
Да Бог его знает....
А у меня вся Wiki в таких-же кракозябрах.

Щас я Help здесь выложу...


--------------------------------------------------
Программа сделана для визуального создания скриптов одноконтурных сложных регионов.

Как пользоваться:

1.Запускаем СВОЮ программу , делаем скриншот формы, загоняем в BMP.
2.В СЕЙ программе нажимаем кнопку "Загрузить фон" и указываем BMP из п.1 или просто желаемую картинку
3.Аккуратно тыкаем по контуру картинки, пока первая точка не совпадет с последней (Лучше всего начинать с начала координат)
4.Жмем "Тест" - Смотрим на результат (через 10с закрывается)
5.Нажимаем "Копировать в буфер" и вставляем содержимое буфера в свойство RGN_Script своей программы на HiAsm

Примечание: "Откат" последней точки - правая кнопка мыши
--------------------------------------------------

Ну а тормоза ушли?
карма: 1

0
Ответов: 4641
Рейтинг: 334
#9: 2009-10-18 00:02:52 ЛС | профиль | цитата
a0005d26f писал(а):
Ану-ка, парни, зацените!

заценил. Под фпц при клике вылетает.!!!
Вылет устранил заменой HiLightMemo на обычное Memo

а теперь вопрос! a0005d26f, зачем там HiLightMemo ???
------------ Дoбавленo в 00.05:
Tad писал(а):
Как ?

Tad, у меня все ок! Проблеммы у тебя наверно со шрифтами.
карма: 1
Время верстки: %cr_time% Текущее время: %time%
0
Разработчик
Ответов: 26170
Рейтинг: 2127
#10: 2009-10-18 00:12:55 ЛС | профиль | цитата
Ravilr писал(а):
Вылет устранил заменой HiLightMemo

Оригинально, у меня HiLightMemo прекрасно живет под FPC, сейчас проверм, что там вылетает
карма: 22

0
Ответов: 175
Рейтинг: 10
#11: 2009-10-18 00:16:20 ЛС | профиль | цитата
Ravilr, ты не знаешь, сколько я шишек насшибал, пока дошел до HiLightMemo

Только HiLightMemo при удалении строки ЕЕ УДАЛЯЕТ ПОЛНОСТЬЮ, т.е. переводит каретку на предыдущую строку

Memo и RichEdit только очищают строку (что это значит???) А это значит, что больше ОДНОЙ точки отката назад ты не сможешь сделать...

Что тебе мешает компилить в Delphi - ты же прожженный программер HiAsm-a????
карма: 1

0
Ответов: 16884
Рейтинг: 1239
#12: 2009-10-18 00:17:01 ЛС | профиль | цитата

карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Разработчик
Ответов: 26170
Рейтинг: 2127
#13: 2009-10-18 00:22:15 ЛС | профиль | цитата
Гы, прикол функции parse под FPC, надо править
карма: 22

0
Разработчик
Ответов: 26170
Рейтинг: 2127
#14: 2009-10-18 00:37:25 ЛС | профиль | цитата
HiLightMemo поправлен под FPC
карма: 22

0
Ответов: 4641
Рейтинг: 334
#15: 2009-10-18 00:45:46 ЛС | профиль | цитата
a0005d26f писал(а):
Что тебе мешает компилить в Delphi

совесть

И проблеммы с легализацией ПО. Для дома то сойдет, а на работе уж извините.
карма: 1
Время верстки: %cr_time% Текущее время: %time%
0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)