sla8a, Не знаю, понравится ли предложение. Дополнить эту серию таким компонентом, как Img_Rectangle и Img_Ellipse он должен динамически создавать фигуры: 1. различной геометрии (прямоугольник, эллипс, ромб, (трапецию?)...треугольник, как в примере белая фигура - вывести точку. Примечание: Часть прямоугольника не входящая в фигуру должна (может) быть прозрачной. 2. фигуру можно перемещать мышкой, как в примере белая фигура. 3. иметь подсказку. Подсказка формируется динамически при создании фигуры, как в примере белая фигура - вывести точку. 4. цвет заливки и контура формируется динамически при создании фигуры, как в примере синяя, или белая фигура - вывести точки. 5. надпись формируется динамически при создании фигуры, как в примере синяя фигура - вывести точку. Примечание: размеры фигуры формируются сообразно длине и шрифту(размеру) надписи (X,Y). Надпись центрируется (не надо лево-право). 6. координаты формируются динамически при создании фигуры, как в примере синяя фигура - вывести точку. Пример. http://forum.hiasm.net/forum_serv.php?q=56&id=4053Add(MainForm,2953706,21,105) { Width=770 Height=549 Point(Width) Point(Height) Point(Handle) link(onCreate,78395:doEvent1,[(117,125)(117,209)]) } Add(Hub,78395,280,203) { OutCount=3 link(onEvent1,10658158:doAlign,[(312,209)(312,188)]) link(onEvent2,2997142:doFor,[(306,216)(306,234)(149,234)(149,251)]) } Add(Img_TextEx,16636350,329,252) { Font=[MS Sans Serif,8,0,-16777211,1] Point(X) Point(Y) link(Bitmap,14438375:Var2,[]) link(Text,6579562:Value,[(342,166)(412,166)]) link(Y,5527788:Var2,[(356,240)(293,240)]) } Add(MathParse,7729257,245,252) { DataCount=4 MathStr="((%1 /(%3+ 1))* %4)- (%2/2)" ResultType=0 link(onResult,253803:doEvent1,[(289,258)(289,244)]) link(X1,2953706:Width,[(251,194)(27,194)]) link(X2,3657703:Var1,[(258,240)(296,240)(296,296)]) link(X3,15305470:Var2,[]) link(X4,2997142:Position,[(272,240)(220,240)(220,289)(167,289)]) } Add(Memory,3354146,259,133) { Default=Integer(7) } Add(For,2997142,161,245) { Start=1 link(onEvent,816330:doEvent1,[]) link(End,15305470:Var1,[(174,187)]) } Add(GetDataEx,15305470,259,182) { link(Data,3354146:Value,[]) } Add(PaintBox,10658158,329,168) { Top=50 Width=762 Height=472 Align=4 Point(doAlign) Point(onMouseMove) Point(MouseX) Point(MouseY) Point(Handle) } Add(GetDataEx,14438375,329,210) { link(Data,10658158:Bitmap,[]) } Add(Hub,253803,301,238) { OutCount=3 link(onEvent1,12634381:doEvent1,[(353,244)(353,139)]) link(onEvent2,11318370:doDraw,[(395,251)(395,356)]) link(onEvent3,16636350:doDraw,[]) } Add(PointXY,497124,441,231) { Y=52 link(X,438429:Result,[]) link(Y,7988523:Result,[]) } Add(PointXY,631950,497,231) { link(X,8930881:Result,[]) link(Y,10915429:Result,[(510,201)(552,201)]) } Add(GetDataEx,3657703,315,291) { Angle=1 link(Data,16636350:TextWidth,[(335,296)]) } Add(Memory,6579562,406,28) { Default=String(qwerty 123456) } Add(Img_Ellipse,11318370,476,350) { Point2AsOffset=0 UseOffsetFill=1 Style=1 Color=15780518 BgColor=15780518 Point(Point1) Point(Point2) Point(BgColor) link(Bitmap,14438375:Var3,[(482,215)]) link(Point1,497124:Point,[(496,306)(447,306)]) link(Point2,631950:Point,[]) } Add(Math,438429,441,133) { OpType=1 Op2=3 } Add(Math,8930881,497,140) { Op2=8 link(Op1,3657703:Var3,[(503,128)(321,128)]) } Add(Math,10915429,546,140) { Op2=8 link(Op1,5458469:Var1,[(552,128)(349,128)]) } Add(Hub,12634381,385,133) { OutCount=4 link(onEvent1,438429:doOperation,[]) link(onEvent2,8930881:doOperation,[]) link(onEvent3,10915429:doOperation,[(473,153)(473,146)]) link(onEvent4,7988523:doOperation,[(423,160)(423,188)]) } Add(MathParse,7921612,224,343) { MathStr="(%1 * %2) + (%1 * %2)" link(X2,5458469:Var2,[(237,321)(349,321)]) } Add(Hub,816330,210,245) { OutCount=3 link(onEvent1,5113320:doGetString,[(242,251)(242,69)]) link(onEvent2,7921612:doCalc,[(236,258)(236,304)(212,304)(212,349)]) link(onEvent3,7729257:doCalc,[(234,265)(234,258)]) } Add(GetDataEx,5527788,287,364) { Angle=2 link(Data,7921612:Result,[(293,387)(230,387)]) } Add(Math,7988523,448,182) { OpType=1 Op2=3 link(Op1,5527788:Var3,[(454,170)(375,170)(375,369)]) } Add(GetDataEx,5458469,343,291) { Angle=3 link(Data,16636350:TextHeight,[(342,296)]) } Add(MoveWindow,9062231,427,532) { link(Handle,224405:Handle,[]) } Add(FlowCharts,224405,427,469) { Left=340 Top=180 Width=90 Height=30 Color=-256 Cursor=2 WinStyle=2 Hint="Hint" PenColor=255 BlockType=3 Point(Handle) Point(onMouseDown) Point(onMouseMove) Point(onMove) Point(Left) Point(Top) Point(PHandle) Point(doWidth) Point(doColor) link(onMouseDown,9062231:doMove,[(471,475)(471,507)(415,507)(415,538)]) } Add(StrList,5113320,259,21) { Strings=#8:qwerty 1|11:asdfghjkl 2|12:zxcvbnm yyyy|10:1234567890|16:lkjhgfds zxcvbmn|14:efghju fgh jkj|9:zxc cvbnm|8:qwerty 1|0:| Point(doGetString) Point(onGetString) link(onGetString,6579562:doValue,[]) }
Компонент для примера (потом удалить). http://forum.hiasm.net/forum_serv.php?q=56&id=4052Пример возможного применения. http://forum.hiasm.net/forum_serv.php?q=56&id=4054Схему парсера не привожу, - много новых компонентов, да и не в тему, можно замутить отдельной темой.
|