По такой схеме можно сделать поворот, отображение по вертикали\горизонтали. Конечно схему нужно облагораживать - просто показал принцип, что надо обновлять внутренний буфер, предварительно очистив его, или установить опцию автоматической очистки. Но в этом случае будет нельзя манипулировать несколькими картинками. Add(MainForm,6320290,119,42) { Width=783 Height=629 Caption="Пример использования Img_Shift" Point(Handle) } Add(Button,5647691,217,238) { Left=560 Top=10 Caption="Вверх" Data=Integer(-10) link(onClick,2543094:doWork2,[]) } Add(Button,8797515,175,252) { Left=525 Top=35 Caption="Налево" Data=Integer(-10) link(onClick,3715352:doWork1,[(303,258)]) } Add(Button,6381857,259,266) { Left=595 Top=35 Caption="Направо" Data=Integer(10) link(onClick,3715352:doWork2,[]) } Add(Button,1607537,217,301) { Left=560 Top=60 Caption="Вниз" Data=Integer(10) link(onClick,2543094:doWork3,[(270,307)]) } Add(Button,8487047,252,623) { Left=320 Top=15 Caption="Меньше" Data=Integer(-1) link(onClick,11824516:doEvent1,[]) } Add(Button,8492579,161,686) { Left=385 Top=15 Caption="Больше" Data=Integer(1) link(onClick,16738661:doEvent1,[]) } Add(InfoTip,12742892,168,217) { Info=#21:перемещение по экрану| Width=155 Height=130 } Add(PaintBox,6293573,539,105) { Top=100 Width=767 Height=490 } Add(Img_Bmp,2351741,525,455) { Point(Transform) Point(X) Point(Y) link(onDraw,6293573:doRefresh,[(576,461)(576,388)(534,388)(534,111)]) link(Bitmap,6293573:Bitmap,[(531,394)(545,394)]) link(SourceBitmap,5045561:Bitmap,[(538,408)(573,408)]) link(Transform,15481771:Transform,[(545,443)(583,443)(583,772)(622,772)]) link(X,15712909:Result,[(552,450)(405,450)]) link(Y,4963455:Result,[(559,447)(391,447)]) } Add(Img_Loader,5983390,350,392) { link(onLoad,15263304:doEvent1,[]) } Add(ODialog,14812495,301,392) { Filter="BMP, GIF, JPG, JPEG, ICO, WMF, EMF, PNG, XBM, TIFF, PDF files (*.bmp;*.gif;*.ico;*wmf;*.emf;*.xbm;*.tiff;*.png;*.jpg;*.jpeg;*.pdf)|.bmp;*.gif;*.ico;*wmf;*.emf;*.xbm;*.tiff;*.png;*.jpg;*.jpeg;*.pdf|All files (*.*)|*.*" link(onExecute,5983390:doLoad,[]) } Add(Button,3343426,203,392) { Left=45 Top=25 link(onClick,14812495:doExecute,[]) } Add(MathParse,4963455,385,210) { MathStr="%2 + %1" link(onResult,8432382:doEvent1,[]) link(X2,2122313:Value,[]) } Add(Memory,2122313,392,147) { Default=Integer(0) } Add(HubEx,2543094,266,238) { link(onEvent,4963455:doCalc,[(317,244)(317,216)]) } Add(Hub,8432382,448,210) { OutCount=3 link(onEvent1,2122313:doValue,[(474,216)(474,184)(380,184)(380,153)]) link(onEvent2,13201157:doWork2,[]) link(onEvent3,6838470:doWork1,[(494,230)]) } Add(Bitmap,5045561,567,329) { Point(Width) Point(Height) } Add(MathParse,15712909,399,315) { MathStr="%2 + %1" link(onResult,8714744:doEvent1,[]) link(X2,7220870:Value,[]) } Add(Memory,7220870,406,252) { Default=Integer(0) } Add(Hub,8714744,462,315) { OutCount=3 link(onEvent1,7220870:doValue,[(488,321)(488,289)(394,289)(394,258)]) link(onEvent2,3239796:doWork3,[(508,328)]) link(onEvent3,6838470:doWork2,[]) } Add(HubEx,3715352,299,266) { Angle=1 link(onEvent,15712909:doCalc,[(303,321)]) } Add(Hub,15263304,420,392) { link(onEvent1,5045561:doLoad,[(483,398)(483,335)]) link(onEvent2,14582100:doWork2,[]) } Add(HubEx,14582100,490,399) { Angle=1 link(onEvent,75645:doWork1,[]) } Add(HubEx,6838470,490,329) { Angle=1 link(onEvent,14582100:doWork1,[]) } Add(HubEx,13201157,504,217) { Angle=3 link(onEvent,6293573:doClear,[(508,118)]) } Add(Img_UseScale,15481771,616,728) { link(X,7582377:Var2,[]) link(Y,7582377:Var3,[(636,698)]) } Add(MathParse,14620076,595,623) { MathStr="%2 + (%1*0.2)" link(onResult,16148617:doValue,[(639,629)(639,601)(583,601)(583,573)]) link(X2,16148617:Value,[]) } Add(Hub,11824516,322,623) { OutCount=3 link(onEvent1,708032:doWork2,[]) link(onEvent2,10300237:doWork2,[]) link(onEvent3,3400161:doWork2,[(438,643)(438,454)]) } Add(HubEx,3400161,490,448) { Angle=1 link(onEvent,2351741:doDraw,[(494,461)]) } Add(Hub,16738661,308,686) { OutCount=3 link(onEvent1,708032:doWork3,[(473,692)]) link(onEvent2,10300237:doWork3,[(414,699)]) link(onEvent3,75645:doWork2,[(406,706)(406,426)]) } Add(HubEx,75645,490,420) { Angle=1 link(onEvent,3400161:doWork1,[]) } Add(Memory,16148617,602,567) { Default=Integer(1) } Add(GetDataEx,7582377,623,693) { link(Data,14620076:Result,[(629,674)(601,674)]) } Add(HubEx,708032,469,623) { link(onEvent,14620076:doCalc,[]) } Add(HubEx,3239796,504,259) { Angle=3 link(onEvent,13201157:doWork3,[]) } Add(HubEx,10300237,410,630) { Angle=3 link(onEvent,3239796:doWork2,[(414,265)]) }
Редактировалось 2 раз(а), последний 2022-06-17 13:38:19
|