Вверх ↑
Этот топик читают: Гость
Ответов: 322
Рейтинг: 8
#1: 2017-11-17 14:16:17 ЛС | профиль | цитата
Собрал из предложенных кусков программу (это примерно то что нужно мне).
Проблема в том, что если загружаются тяжёлые картинки (более 4 метров), программа подвисает.
Возможно ли поправить данную программу, для работы с любыми картинками и количеством без подвисаний?

Add(MainForm,2953706,70,140)
{
Width=516
Height=469
}
Add(Image,7975942,945,175)
{
Left=35
Top=365
Width=85
Height=65
link(onClick,14168276:doData,[])
}
Add(Image,16651437,945,224)
{
Left=120
Top=365
Width=85
Height=65
link(onClick,2095453:doData,[])
}
Add(Image,688805,945,280)
{
Left=210
Top=365
Width=85
Height=65
link(onClick,1734674:doData,[])
}
Add(Image,12463613,945,336)
{
Left=300
Top=365
Width=85
Height=65
link(onClick,421664:doData,[])
}
Add(Img_Loader,12787684,896,175)
{
link(onLoad,7975942:doLoad,[])
}
Add(FileSearch,2629711,238,77)
{
SubDir=1
link(onSearch,11342127:doCompare,[])
}
Add(StrMask,11342127,287,77)
{
Mask="*.jpg"
link(onFalse,8264849:doCompare,[])
link(onTrue,715656:doWork2,[(330,90)(330,118)])
}
Add(StrMask,8264849,336,77)
{
Mask="*.png"
link(onFalse,11212944:doCompare,[])
link(onTrue,715656:doWork1,[(375,90)])
}
Add(StrMask,11212944,385,77)
{
Mask="*.bmp"
link(onFalse,3744750:doCompare,[])
link(onTrue,11659713:doWork1,[(424,90)])
}
Add(StrMask,3744750,434,77)
{
Mask="*.ico"
link(onTrue,5406705:doWork2,[])
}
Add(Hub,15644038,210,70)
{
OutCount=4
link(onEvent1,16253885:doClear,[(424,76)(424,55)])
link(onEvent2,2629711:doSearch,[])
link(onEvent3,15413539:doCompare,[(388,90)(388,111)])
link(onEvent4,10149431:doEvent2,[(336,97)(336,181)])
}
Add(Browse,9986803,105,70)
{
link(onBrowse,6456784:doText,[])
}
Add(Button,6523879,63,70)
{
Left=15
Caption="Каталог"
link(onClick,9986803:doBrowse,[])
}
Add(Edit,6456784,147,70)
{
Left=80
Width=330
Text=""
link(onChange,15194384:doWork2,[])
link(onEnter,15194384:doWork3,[(193,83)])
}
Add(HubEx,15194384,189,70)
{
link(onEvent,15644038:doEvent1,[])
}
Add(HubEx,5406705,483,84)
{
link(onEvent,16253885:doAdd,[(556,90)(556,48)])
}
Add(HubEx,11659713,420,112)
{
link(onEvent,5406705:doWork1,[(487,118)])
}
Add(HubEx,715656,371,112)
{
link(onEvent,11659713:doWork2,[])
}
Add(ArrayRW,7569232,637,168)
{
link(onRead,9047615:doValue,[(691,174)(691,90)])
link(Array,16253885:Array,[])
}
Add(Button,8546077,315,168)
{
Left=5
Top=380
Width=20
Height=35
Font=[MS Sans Serif,14,1,0,1]
Caption="‹"
link(onClick,14711995:doWork1,[])
}
Add(Button,6923064,315,210)
{
Left=475
Top=380
Width=20
Height=35
Font=[MS Sans Serif,14,1,0,1]
Caption="›"
link(onClick,14711995:doWork2,[(373,216)(373,181)])
}
Add(StrList,16253885,623,42)
{
}
Add(MultiElement,14711995,399,168)
{
link(onEvent1,10149431:doEvent1,[])
link(Data1,14994518:Var,[])
}
BEGIN_SDK
Add(EditMulti,3901157,21,21)
{
EventCount=1
WorkCount=2
DataCount=1
VarCount=1
Width=601
Height=417
link(doWork1,9816943:doOperation,[(73,27)(73,160)])
link(doWork2,7793795:doOperation,[(73,34)(73,223)])
link(Var1,10863678:Value,[(27,282)(524,282)])
}
Add(Math,9816943,126,154)
{
Op2=1
ResultType=0
link(onResult,3221505:doEvent1,[])
link(Op1,5934117:Var1,[(132,142)(115,142)(115,198)])
}
Add(Math,7793795,126,217)
{
OpType=1
Op2=1
ResultType=0
link(onResult,3221505:doEvent3,[(174,223)(174,174)])
link(Op1,5934117:Var2,[])
}
Add(Memory,5625805,217,154)
{
Default=Integer(-1)
link(onData,3694001:doCompare,[])
}
Add(If_else,3694001,259,154)
{
Type=2
link(onTrue,6057581:doOperation,[])
link(onFalse,16067037:doCompare,[])
link(Op2,7730525:Var2,[])
}
Add(Math,6057581,392,154)
{
OpType=1
Op2=1
ResultType=0
link(onResult,3221505:doEvent2,[(444,160)(444,204)(170,204)(170,167)])
link(Op1,7730525:Var3,[(398,88)])
}
Add(Hub,3221505,189,154)
{
InCount=4
OutCount=1
link(onEvent1,5625805:doValue,[])
}
Add(GetDataEx,5934117,126,193)
{
Angle=1
link(Data,5625805:Value,[(223,198)])
}
Add(If_else,16067037,308,161)
{
Type=1
Op2=Integer(0)
link(onTrue,3840909:doOperation,[(370,167)(370,216)])
link(onFalse,10863678:doValue,[(481,174)(481,27)])
}
Add(Math,3840909,392,210)
{
Op2=1
ResultType=0
link(onResult,3221505:doEvent4,[(443,216)(443,245)(177,245)(177,181)])
}
Add(GetDataEx,7730525,266,83)
{
Angle=3
link(Data,3901157:Data1,[(27,88)])
}
Add(Memory,10863678,518,21)
{
Default=Integer(0)
link(onData,3901157:onEvent1,[])
}
END_SDK
Add(IndexToChanel,5696865,700,175)
{
Count=5
Point(Data)
link(onEvent1,548991:doData,[])
link(onEvent2,11713903:doData,[(753,188)(753,230)])
link(onEvent3,4482040:doData,[(749,195)(749,286)])
link(onEvent4,9154069:doData,[(744,202)(744,342)])
link(onEvent5,9278803:doData,[(740,209)(740,398)])
}
Add(For,4892732,483,168)
{
End=4
link(onEvent,4710981:doEvent1,[])
link(End,11122176:Value,[])
}
Add(LineBreak,1657583,630,133)
{
Type=1
link(Data,13745623:Var2,[])
Primary=[14994518,-231,7]
}
Add(Hub,4710981,532,168)
{
link(onEvent1,15429747:doOperation,[])
link(onEvent2,5696865:doEvent,[])
}
Add(Math,15429747,581,168)
{
ResultType=0
link(onResult,7569232:doRead,[])
link(Op1,4892732:Position,[(587,156)(526,156)(526,207)(489,207)])
link(Op2,14711995:Var1,[(594,152)(500,152)(500,212)(405,212)])
}
Add(MT_Memory,9047615,721,84)
{
}
Add(DoData,548991,777,175)
{
link(onEventData,12148793:doValue,[])
link(Data,586400:Var3,[(783,145)])
}
Add(Image,1542487,945,392)
{
Left=385
Top=365
Width=85
Height=65
link(onClick,10470908:doData,[])
}
Add(Img_Loader,16345459,896,224)
{
link(onLoad,16651437:doLoad,[])
}
Add(DoData,11713903,777,224)
{
link(onEventData,8614558:doValue,[])
link(Data,586400:Var2,[(783,213)(776,213)])
}
Add(GetDataEx,586400,770,140)
{
Angle=3
link(Data,6653820:Var3,[])
}
Add(Img_Loader,5563112,896,280)
{
link(onLoad,688805:doLoad,[])
}
Add(DoData,4482040,777,280)
{
link(onEventData,2501918:doValue,[])
link(Data,6653820:Var2,[(783,265)(769,265)])
}
Add(GetDataEx,6653820,763,140)
{
Angle=3
link(Data,14459783:Var3,[])
}
Add(Img_Loader,8396818,896,336)
{
link(onLoad,12463613:doLoad,[])
}
Add(DoData,9154069,777,336)
{
link(onEventData,10598959:doValue,[])
link(Data,14459783:Var2,[(783,323)(762,323)])
}
Add(GetDataEx,14459783,756,140)
{
Angle=3
link(Data,2767177:Var3,[])
}
Add(Img_Loader,7662515,896,392)
{
link(onLoad,1542487:doLoad,[])
}
Add(DoData,9278803,777,392)
{
link(onEventData,1922667:doValue,[])
link(Data,2767177:Var2,[(783,377)(755,377)])
}
Add(GetDataEx,2767177,749,140)
{
Angle=3
link(Data,9047615:Value,[(727,145)])
}
Add(MT_Memory,12148793,833,175)
{
link(onData,12787684:doLoad,[])
}
Add(MT_Memory,8614558,833,224)
{
link(onData,16345459:doLoad,[])
}
Add(MT_Memory,2501918,833,280)
{
link(onData,5563112:doLoad,[])
}
Add(MT_Memory,10598959,833,336)
{
link(onData,8396818:doLoad,[])
}
Add(MT_Memory,1922667,833,392)
{
link(onData,7662515:doLoad,[])
}
Add(PaintBox,14075813,427,301)
{
Left=5
Top=25
Width=460
Height=340
Color=16777215
ClearBeforeDraw=0
Point(onMouseDown)
Point(onMouseMove)
Point(MouseX)
Point(MouseY)
link(onBeforeDraw,8191459:In,[])
link(onMouseDown,8845434:In,[(475,314)(475,328)])
link(onMouseMove,5742295:In,[(471,321)(471,349)])
}
Add(Img_UseOffset,9173318,462,609)
{
link(AddTransform,683094:Var,[])
link(X,929447:Var2,[])
link(Y,14804783:Var1,[(482,572)])
}
Add(Math,401840,469,476)
{
OpType=1
link(onResult,8830839:doOperation,[])
link(Op1,14746427:Var2,[])
link(Op2,12308577:Value,[])
}
Add(Math,8830839,532,476)
{
OpType=1
link(onResult,7746369:doWork3,[(575,482)(575,465)(438,465)])
link(Op1,12309971:Var2,[])
link(Op2,971548:Value,[])
}
Add(Hub,12605675,399,476)
{
OutCount=3
link(onEvent1,401840:doOperation,[])
link(onEvent2,8365796:doOperation,[(441,489)(441,531)])
link(onEvent3,6943504:doWork3,[(417,496)])
}
Add(Memory,12308577,476,427)
{
Point(Data)
link(onData,971548:doValue,[])
link(Data,14746427:Var3,[(482,411)])
}
Add(Memory,971548,539,427)
{
Point(Data)
link(Data,12309971:Var3,[(545,411)])
}
Add(IndexToChanel,12858463,357,476)
{
Count=1
link(onEvent1,12605675:doEvent1,[])
}
Add(IndexToChanel,1721923,357,427)
{
Count=1
link(onEvent1,7746369:doWork2,[])
}
Add(Math,8365796,469,525)
{
link(onResult,11032244:doOperation,[])
link(Op1,401840:Result,[])
link(Op2,929447:Var3,[(482,513)(507,513)(507,565)])
}
Add(Math,11032244,532,525)
{
link(Op1,8830839:Result,[])
link(Op2,14804783:Var3,[(545,513)(569,513)(569,572)])
}
Add(GetDataEx,929447,469,560)
{
link(Data,8365796:Result,[])
}
Add(GetDataEx,14804783,532,567)
{
link(Data,11032244:Result,[])
}
Add(HubEx,7746369,434,427)
{
link(onEvent,12308577:doValue,[])
}
Add(LineBreak,2156720,294,427)
{
Caption="mDown"
link(Out,1721923:doEvent,[])
Primary=[8845434,196,-105]
}
Add(LineBreak,13823500,294,476)
{
Caption="mMove"
link(Out,12858463:doEvent,[])
Primary=[5742295,189,-133]
}
Add(Bitmap,15551347,175,273)
{
Point(Width)
Point(Height)
}
Add(Img_Bmp,44008,448,700)
{
Point(Transform)
link(Bitmap,3081980:Var,[])
link(SourceBitmap,14323944:Var,[])
link(Transform,9173318:Transform,[])
}
Add(GetDataEx,14746427,469,406)
{
link(Data,14075813:MouseX,[(475,404)(440,404)])
}
Add(GetDataEx,12309971,532,406)
{
link(Data,14075813:MouseY,[(538,397)(447,397)])
}
Add(LineBreak,11865018,399,700)
{
Caption="draw"
link(Out,44008:doDraw,[])
Primary=[8191459,84,-399]
}
Add(Img_Loader,6103738,56,273)
{
link(onLoad,5630692:doEvent1,[])
}
Add(Hub,5630692,105,273)
{
link(onEvent1,15551347:doLoad,[])
link(onEvent2,10814420:In,[])
}
Add(HubEx,5985134,413,350)
{
Angle=3
link(onEvent,14075813:doRefresh,[(417,307)])
}
Add(Img_UseScale,7686788,315,609)
{
link(X,10278308:Var2,[])
link(Y,10278308:Var3,[(335,600)])
}
Add(Math,904991,322,553)
{
OpType=3
Op2=10
Default=1
link(onResult,14774566:In,[])
}
Add(CounterEx,12454032,273,553)
{
Default=10
Point(doPrev)
link(onNext,904991:doOperation,[])
}
Add(HubEx,6943504,413,371)
{
Angle=3
link(onEvent,5985134:doWork3,[])
}
Add(GetDataEx,10278308,322,595)
{
link(Data,904991:Result,[])
}
Add(LineBreak,12926612,315,651)
{
Type=1
link(Data,7686788:Transform,[])
Primary=[683094,147,-70]
}
Add(LineBreak,10888474,427,350)
{
Type=1
link(Data,14075813:Bitmap,[])
Primary=[3081980,21,301]
}
Add(LineBreak,12402442,175,322)
{
Type=1
link(Data,15551347:Bitmap,[])
Primary=[14323944,280,350]
}
Add(LineBreak,6098785,378,378)
{
link(Out,6943504:doWork1,[(425,384)(425,377)])
Primary=[14774566,-14,175]
}
Add(LineBreak,408134,371,350)
{
link(Out,5985134:doWork2,[])
Primary=[10814420,-238,-70]
}
Add(DoData,14168276,1001,175)
{
link(onEventData,5865616:doEvent1,[])
link(Data,12148793:Value,[(1007,163)(923,163)(923,219)(839,219)])
}
Add(Hub,5865616,1064,175)
{
InCount=5
OutCount=1
link(onEvent1,678440:In,[])
}
Add(DoData,2095453,1001,224)
{
link(onEventData,5865616:doEvent2,[(1041,230)(1041,188)])
link(Data,8614558:Value,[(1007,212)(928,212)(928,268)(839,268)])
}
Add(DoData,1734674,1001,280)
{
link(onEventData,5865616:doEvent3,[(1045,286)(1045,195)])
link(Data,2501918:Value,[(1007,268)(931,268)(931,325)(839,325)])
}
Add(DoData,421664,1001,336)
{
link(onEventData,5865616:doEvent4,[(1049,342)(1049,202)])
link(Data,10598959:Value,[(1007,324)(934,324)(934,381)(839,381)])
}
Add(DoData,10470908,1001,392)
{
link(onEventData,5865616:doEvent5,[(1053,398)(1053,209)])
link(Data,1922667:Value,[(1007,380)(938,380)(938,434)(839,434)])
}
Add(LineBreak,10837701,7,273)
{
link(Out,6103738:doLoad,[])
Primary=[678440,1085,-98]
}
Add(Button,9322339,14,161)
{
Left=425
Caption="Выход"
link(onClick,2953706:doClose,[])
}
Add(Hub,10149431,448,168)
{
InCount=2
OutCount=1
link(onEvent1,4892732:doFor,[])
}
Add(Memory,11122176,490,119)
{
Default=Integer(4)
}
Add(If_else,15413539,553,105)
{
Type=3
Op2=Integer(4)
link(onTrue,10765933:doData,[])
link(Op1,13745623:Var1,[(559,96)])
}
Add(GetDataEx,13745623,630,91)
{
link(Data,16253885:Count,[])
}
Add(DoData,10765933,595,105)
{
link(onEventData,11122176:doValue,[(639,111)(639,118)(478,118)(478,125)])
link(Data,13745623:Var3,[(601,101)(645,101)(645,96)])
}
Add(Button,11002732,140,497)
{
Left=475
Top=95
Width=20
Height=90
Font=[MS Sans Serif,14,1,0,1]
Caption="+"
link(onClick,12454032:doNext,[(249,503)(249,559)])
}
Add(Button,12382933,140,595)
{
Left=475
Top=200
Width=20
Height=90
Font=[MS Sans Serif,14,1,0,1]
Caption="-"
link(onClick,12454032:doPrev,[(249,601)(249,566)])
}
Заранее всем спасибо.
карма: 0

0
Ответов: 2059
Рейтинг: 132
#2: 2017-11-17 17:39:54 ЛС | профиль | цитата


Редактировалось 7 раз(а), последний 2017-11-17 17:59:55
карма: 6

0
Ответов: 16884
Рейтинг: 1239
#3: 2017-11-18 00:04:33 ЛС | профиль | цитата
А так?

Add(MainForm,3220805,259,133)
{
Width=516
Height=469
}
Add(Image,7975942,994,154)
{
Left=35
Top=365
Width=85
Height=65
link(onClick,5423092:doWork1,[])
}
Add(Image,16651437,994,196)
{
Left=120
Top=365
Width=85
Height=65
link(onClick,5423092:doWork2,[(1032,202)(1032,167)])
}
Add(Image,688805,994,238)
{
Left=210
Top=365
Width=85
Height=65
link(onClick,5423092:doWork3,[(1037,244)(1037,174)])
}
Add(Image,12463613,994,280)
{
Left=300
Top=365
Width=85
Height=65
link(onClick,5423092:doWork4,[(1043,286)(1043,181)])
}
Add(FileSearch,2629711,392,98)
{
SubDir=1
link(onSearch,11342127:doCompare,[])
link(onEndSearch,4818755:doEvent1,[])
}
Add(StrMask,11342127,490,98)
{
Mask="*.jpg"
link(onFalse,8264849:doCompare,[])
link(onTrue,715656:doWork2,[(533,111)(533,139)])
}
Add(StrMask,8264849,539,98)
{
Mask="*.png"
link(onFalse,11212944:doCompare,[])
link(onTrue,715656:doWork1,[(578,111)])
}
Add(StrMask,11212944,588,98)
{
Mask="*.bmp"
link(onFalse,3744750:doCompare,[])
link(onTrue,11659713:doWork1,[(627,111)])
}
Add(StrMask,3744750,637,98)
{
Mask="*.ico"
link(onTrue,5406705:doWork2,[])
}
Add(Hub,15644038,357,91)
{
InCount=2
link(onEvent1,16253885:doClear,[])
link(onEvent2,2629711:doSearch,[])
}
Add(Browse,9986803,259,91)
{
link(onBrowse,6456784:doText,[])
}
Add(Button,6523879,210,91)
{
Left=15
Caption="Каталог"
link(onClick,9986803:doBrowse,[])
}
Add(Edit,6456784,301,91)
{
Left=80
Width=330
Text=""
link(onChange,15644038:doEvent1,[])
link(onEnter,15644038:doEvent2,[])
}
Add(HubEx,5406705,686,105)
{
Angle=3
link(onEvent,16253885:doAdd,[(690,90)])
}
Add(HubEx,11659713,623,133)
{
link(onEvent,5406705:doWork3,[(690,139)])
}
Add(HubEx,715656,574,133)
{
link(onEvent,11659713:doWork2,[])
}
Add(ArrayRW,7569232,756,259)
{
link(onRead,775386:doAdd,[(797,265)(797,244)])
link(Array,16253885:Array,[(762,136)(727,136)])
}
Add(Button,8546077,210,238)
{
Left=5
Top=380
Width=20
Height=35
Font=[MS Sans Serif,14,1,0,1]
Caption="‹"
link(onClick,14711995:doWork1,[])
}
Add(Button,6923064,259,245)
{
Left=475
Top=380
Width=20
Height=35
Font=[MS Sans Serif,14,1,0,1]
Caption="›"
link(onClick,14711995:doWork2,[])
}
Add(StrList,16253885,707,84)
{
}
Add(MultiElement,14711995,420,238)
{
link(onEvent1,10149431:doEvent1,[])
link(Data1,14994518:Var,[])
}
BEGIN_SDK
Add(EditMulti,3901157,21,21)
{
EventCount=1
WorkCount=2
DataCount=1
VarCount=1
Width=447
Height=151
VOffset=28
HOffset=224
link(doWork1,9816943:doOperation,[])
link(doWork2,7793795:doOperation,[(49,62)(49,118)])
link(Var1,10863678:Value,[(251,157)(419,157)])
}
Add(Math,9816943,77,49)
{
Op2=1
ResultType=0
link(onResult,3221505:doEvent1,[])
link(Op1,5934117:Var1,[(83,37)(66,37)(66,100)])
}
Add(Math,7793795,77,112)
{
OpType=1
Op2=1
ResultType=0
link(onResult,3221505:doEvent2,[(125,118)(125,62)])
link(Op1,5934117:Var2,[])
}
Add(Memory,5625805,196,49)
{
Default=Integer(-1)
link(onData,3694001:doCompare,[])
}
Add(If_else,3694001,238,49)
{
Type=2
link(onTrue,6057581:doOperation,[])
link(onFalse,16067037:doCompare,[])
link(Op2,7730525:Var2,[])
}
Add(Math,6057581,343,49)
{
OpType=1
Op2=1
ResultType=0
link(onResult,3221505:doEvent4,[(384,55)(384,93)(157,93)(157,76)])
link(Op1,7730525:Var3,[(349,39)])
}
Add(Hub,3221505,168,49)
{
InCount=5
OutCount=1
link(onEvent1,5625805:doValue,[])
}
Add(GetDataEx,5934117,77,95)
{
Angle=1
link(Data,5625805:Value,[(202,100)])
}
Add(If_else,16067037,287,56)
{
Type=1
Op2=Integer(0)
link(onTrue,3840909:doOperation,[(325,62)(325,111)])
link(onFalse,10863678:doValue,[])
}
Add(Math,3840909,343,105)
{
Op2=1
ResultType=0
link(onResult,3221505:doEvent3,[(408,111)(408,146)(151,146)(151,69)])
}
Add(GetDataEx,7730525,245,34)
{
link(Data,3901157:Data1,[])
}
Add(Memory,10863678,413,63)
{
Default=Integer(0)
link(onData,3901157:onEvent1,[(456,69)(456,55)])
}
END_SDK
Add(For,4892732,602,259)
{
End=4
link(onEvent,15429747:doOperation,[])
link(onStop,1492010:doEnum,[(653,272)(653,300)])
link(End,11122176:Value,[])
}
Add(LineBreak,1290206,728,154)
{
Type=1
link(Data,13745623:Var3,[(734,145)])
Primary=[14994518,-308,56]
}
Add(Math,15429747,700,259)
{
ResultType=0
link(onResult,7569232:doRead,[])
link(Op2,14711995:Var1,[(713,234)(502,234)(502,284)(426,284)])
}
Add(Image,1542487,994,322)
{
Left=385
Top=365
Width=85
Height=65
link(onClick,5423092:doWork5,[(1050,328)(1050,188)])
}
Add(PaintBox,14075813,616,427)
{
Left=5
Top=25
Width=460
Height=340
Color=16777215
ClearBeforeDraw=0
Point(onMouseDown)
Point(onMouseMove)
Point(MouseX)
Point(MouseY)
link(onBeforeDraw,8191459:In,[])
link(onMouseDown,8845434:In,[])
link(onMouseMove,5742295:In,[])
}
Add(Img_UseOffset,9173318,616,686)
{
link(AddTransform,683094:Var,[])
link(X,929447:Var2,[])
link(Y,14804783:Var1,[(636,649)])
}
Add(Math,401840,623,553)
{
OpType=1
link(onResult,8830839:doOperation,[])
link(Op1,14746427:Var2,[])
link(Op2,12308577:Value,[])
}
Add(Math,8830839,686,553)
{
OpType=1
link(onResult,7746369:doWork3,[(729,559)(729,542)(592,542)])
link(Op1,12309971:Var2,[])
link(Op2,971548:Value,[])
}
Add(Hub,12605675,553,553)
{
OutCount=3
link(onEvent1,401840:doOperation,[])
link(onEvent2,8365796:doOperation,[(595,566)(595,608)])
link(onEvent3,6943504:doWork3,[(571,573)])
}
Add(Memory,12308577,630,504)
{
Point(Data)
link(onData,971548:doValue,[])
link(Data,14746427:Var3,[(636,488)])
}
Add(Memory,971548,693,504)
{
Point(Data)
link(Data,12309971:Var3,[(699,488)])
}
Add(IndexToChanel,12858463,511,553)
{
Count=1
link(onEvent1,12605675:doEvent1,[])
}
Add(IndexToChanel,1721923,511,504)
{
Count=1
link(onEvent1,7746369:doWork2,[])
}
Add(Math,8365796,623,602)
{
link(onResult,11032244:doOperation,[])
link(Op1,401840:Result,[])
link(Op2,929447:Var3,[(636,590)(661,590)(661,642)])
}
Add(Math,11032244,686,602)
{
link(Op1,8830839:Result,[])
link(Op2,14804783:Var3,[(699,590)(723,590)(723,649)])
}
Add(GetDataEx,929447,623,637)
{
link(Data,8365796:Result,[])
}
Add(GetDataEx,14804783,686,644)
{
link(Data,11032244:Result,[])
}
Add(HubEx,7746369,588,504)
{
link(onEvent,12308577:doValue,[])
}
Add(LineBreak,5901125,448,504)
{
Caption="mDown"
link(Out,1721923:doEvent,[])
Primary=[8845434,266,-70]
}
Add(LineBreak,7736441,448,553)
{
Caption="mMove"
link(Out,12858463:doEvent,[])
Primary=[5742295,210,-112]
}
Add(Bitmap,15551347,378,336)
{
Point(Width)
Point(Height)
}
Add(Img_Bmp,44008,602,777)
{
Point(Transform)
link(Bitmap,3081980:Var,[])
link(SourceBitmap,14323944:Var,[])
link(Transform,9173318:Transform,[])
}
Add(GetDataEx,14746427,623,483)
{
link(Data,14075813:MouseX,[])
}
Add(GetDataEx,12309971,686,483)
{
link(Data,14075813:MouseY,[(692,474)(636,474)])
}
Add(LineBreak,4848513,553,777)
{
Caption="draw"
link(Out,44008:doDraw,[])
Primary=[8191459,217,-350]
}
Add(Img_Loader,6103738,259,336)
{
link(onLoad,5630692:doEvent1,[])
}
Add(Hub,5630692,308,336)
{
link(onEvent1,15551347:doLoad,[])
link(onEvent2,6943504:doWork1,[(351,349)(351,413)(571,413)])
}
Add(Img_UseScale,7686788,371,483)
{
link(X,10278308:Var2,[])
link(Y,10278308:Var3,[(391,474)])
}
Add(Math,904991,378,427)
{
OpType=3
Op2=10
Default=1
link(onResult,6943504:doWork2,[])
}
Add(CounterEx,12454032,329,427)
{
Default=10
Point(doPrev)
link(onNext,904991:doOperation,[])
}
Add(HubEx,6943504,567,427)
{
link(onEvent,14075813:doRefresh,[])
}
Add(GetDataEx,10278308,378,469)
{
link(Data,904991:Result,[])
}
Add(LineBreak,1786817,371,525)
{
Type=1
link(Data,7686788:Transform,[])
Primary=[683094,245,133]
}
Add(LineBreak,3411553,588,476)
{
Type=1
link(Data,14075813:Bitmap,[(594,468)(622,468)])
Primary=[3081980,14,252]
}
Add(LineBreak,1276533,378,385)
{
Type=1
link(Data,15551347:Bitmap,[])
Primary=[14323944,231,364]
}
Add(LineBreak,1087681,210,336)
{
link(Out,6103738:doLoad,[])
Primary=[678440,938,-182]
}
Add(Button,9322339,210,154)
{
Left=425
Caption="Выход"
link(onClick,3220805:doClose,[])
}
Add(Hub,10149431,525,238)
{
InCount=2
OutCount=3
link(onEvent1,15091165:doEvent1,[(781,244)(781,223)])
link(onEvent2,775386:doClear,[])
link(onEvent3,4892732:doFor,[(571,258)(571,265)])
}
Add(Memory,11122176,609,175)
{
Default=Integer(4)
Point(Data)
link(Data,13745623:Var2,[(615,169)(720,169)])
}
Add(If_else,15413539,539,175)
{
Type=3
Op2=Integer(4)
link(onTrue,11122176:doValue,[])
link(Op1,13745623:Var1,[(545,145)])
}
Add(GetDataEx,13745623,714,140)
{
link(Data,16253885:Count,[])
}
Add(Button,11002732,210,427)
{
Left=475
Top=95
Width=20
Height=90
Font=[MS Sans Serif,14,1,0,1]
Caption="+"
link(onClick,12454032:doNext,[])
}
Add(Button,12382933,259,434)
{
Left=475
Top=200
Width=20
Height=90
Font=[MS Sans Serif,14,1,0,1]
Caption="-"
link(onClick,12454032:doPrev,[])
}
Add(Hub,4818755,441,105)
{
link(onEvent1,15413539:doCompare,[(476,111)(476,181)])
link(onEvent2,10149431:doEvent2,[(465,118)(465,251)])
}
Add(StrList,775386,812,238)
{
}
Add(ArrayEnum,1492010,826,294)
{
link(onItem,5605579:doLoad,[])
link(Array,178217:Var2,[])
}
Add(Img_Loader,5605579,875,294)
{
link(onLoad,12724308:doEvent,[])
}
Add(IndexToChanel,12724308,917,294)
{
Count=5
Point(Index)
Point(Data)
link(onEvent1,7975942:doLoad,[(967,300)(967,160)])
link(onEvent2,16651437:doLoad,[(972,307)(972,202)])
link(Index,1492010:Index,[(923,282)(869,282)(869,339)(839,339)])
link(onEvent3,688805:doLoad,[(978,314)(978,244)])
link(onEvent4,12463613:doLoad,[(983,321)(983,286)])
link(onEvent5,1542487:doLoad,[])
}
Add(ChanelToIndex,5423092,1057,154)
{
Count=5
link(onIndex,14608345:doRead,[])
}
Add(ArrayRW,14608345,1099,154)
{
link(onRead,678440:In,[])
link(Array,178217:Var3,[(1105,139)(853,139)(853,285)])
}
Add(GetDataEx,178217,826,280)
{
link(Data,775386:Array,[])
}
Add(Hub,15091165,896,217)
{
OutCount=5
link(onEvent1,7975942:doClear,[(923,223)(923,167)])
link(onEvent2,16651437:doClear,[(932,230)(932,209)])
link(onEvent3,688805:doClear,[(986,237)(986,251)])
link(onEvent4,12463613:doClear,[(962,244)(962,293)])
link(onEvent5,1542487:doClear,[(956,251)(956,335)])
}

карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 322
Рейтинг: 8
#4: 2017-11-20 09:35:10 ЛС | профиль | цитата
Tad писал(а):
А так?

Классно, тоже думал именно этот участок схемы изменить.
Единственное с тормозами при большом объёме фото что делать?
карма: 0

0
Ответов: 1926
Рейтинг: 172
#5: 2017-11-20 13:39:46 ЛС | профиль | цитата
При таком подходе сильно расходуется память.
1. Даже если у Image ViewStyle=ScaleMin, всё равно внутри компонента остаётся полноразмерная картинка (хоть и отображается миниатюрой). А тут целых 5 штук! Надо просто уменьшать картинки. А ещё лучше - загружать их в отдельном потоке, сохранять миниатюры в массиве и извлекать оттуда при необходимости. Память, конечно, поест, но зато грузить будет быстро.
2. Элементы Transform с картинками лучше не использовать. Масштабировать лучше через тот же компонент Resize, смещение через

Add(MoveWindow,12269346,343,721)
{
}
Тогда PaintBox лучше положить в

Add(ChildScrollBox,14192489,287,714)
{
}
BEGIN_SDK
Add(EditMulti,2972144,21,21)
{
}
Add(ScrollBox,15747465,35,105)
{
Left=35
Top=105
}
END_SDK

Добавил масштабирование при загрузке:

Add(MainForm,3220805,175,231)
{
Width=516
Height=469
}
Add(Image,7975942,1183,252)
{
Left=35
Top=365
Width=85
Height=65
link(onClick,5423092:doWork1,[])
}
Add(Image,16651437,1183,294)
{
Left=120
Top=365
Width=85
Height=65
link(onClick,5423092:doWork2,[(1221,300)(1221,265)])
}
Add(Image,688805,1183,336)
{
Left=210
Top=365
Width=85
Height=65
link(onClick,5423092:doWork3,[(1226,342)(1226,272)])
}
Add(Image,12463613,1183,378)
{
Left=300
Top=365
Width=85
Height=65
link(onClick,5423092:doWork4,[(1232,384)(1232,279)])
}
Add(FileSearch,2629711,308,196)
{
SubDir=1
link(onSearch,11342127:doCompare,[])
link(onEndSearch,4818755:doEvent1,[])
}
Add(StrMask,11342127,406,196)
{
Mask="*.jpg"
link(onFalse,8264849:doCompare,[])
link(onTrue,715656:doWork2,[(449,209)(449,237)])
}
Add(StrMask,8264849,455,196)
{
Mask="*.png"
link(onFalse,11212944:doCompare,[])
link(onTrue,715656:doWork1,[(494,209)])
}
Add(StrMask,11212944,504,196)
{
Mask="*.bmp"
link(onFalse,3744750:doCompare,[])
link(onTrue,11659713:doWork1,[(543,209)])
}
Add(StrMask,3744750,553,196)
{
Mask="*.ico"
link(onTrue,5406705:doWork2,[])
}
Add(Hub,15644038,273,189)
{
InCount=2
link(onEvent1,16253885:doClear,[])
link(onEvent2,2629711:doSearch,[])
}
Add(Browse,9986803,175,189)
{
link(onBrowse,6456784:doText,[])
}
Add(Button,6523879,126,189)
{
Left=15
Caption="Каталог"
link(onClick,9986803:doBrowse,[])
}
Add(Edit,6456784,217,189)
{
Left=80
Width=330
Text=""
link(onChange,15644038:doEvent1,[])
link(onEnter,15644038:doEvent2,[])
}
Add(HubEx,5406705,602,203)
{
Angle=3
link(onEvent,16253885:doAdd,[(606,188)])
}
Add(HubEx,11659713,539,231)
{
link(onEvent,5406705:doWork3,[(606,237)])
}
Add(HubEx,715656,490,231)
{
link(onEvent,11659713:doWork2,[])
}
Add(ArrayRW,7569232,672,357)
{
link(onRead,775386:doAdd,[(713,363)(713,272)])
link(Array,16253885:Array,[(678,234)(643,234)])
}
Add(Button,8546077,126,336)
{
Left=5
Top=380
Width=20
Height=35
Font=[MS Sans Serif,14,1,0,1]
Caption="‹"
link(onClick,14711995:doWork1,[])
}
Add(Button,6923064,175,343)
{
Left=475
Top=380
Width=20
Height=35
Font=[MS Sans Serif,14,1,0,1]
Caption="›"
link(onClick,14711995:doWork2,[])
}
Add(StrList,16253885,623,182)
{
}
Add(MultiElement,14711995,336,336)
{
link(onEvent1,10149431:doEvent1,[])
link(Data1,14994518:Var,[])
}
BEGIN_SDK
Add(EditMulti,3901157,21,21)
{
EventCount=1
WorkCount=2
DataCount=1
VarCount=1
Width=447
Height=151
VOffset=28
HOffset=224
link(doWork1,9816943:doOperation,[])
link(doWork2,7793795:doOperation,[(49,62)(49,118)])
link(Var1,10863678:Value,[(251,157)(419,157)])
}
Add(Math,9816943,77,49)
{
Op2=1
ResultType=0
link(onResult,3221505:doEvent1,[])
link(Op1,5934117:Var1,[(83,37)(66,37)(66,100)])
}
Add(Math,7793795,77,112)
{
OpType=1
Op2=1
ResultType=0
link(onResult,3221505:doEvent2,[(125,118)(125,62)])
link(Op1,5934117:Var2,[])
}
Add(Memory,5625805,196,49)
{
Default=Integer(-1)
link(onData,3694001:doCompare,[])
}
Add(If_else,3694001,238,49)
{
Type=2
link(onTrue,6057581:doOperation,[])
link(onFalse,16067037:doCompare,[])
link(Op2,7730525:Var2,[])
}
Add(Math,6057581,343,49)
{
OpType=1
Op2=1
ResultType=0
link(onResult,3221505:doEvent4,[(384,55)(384,93)(157,93)(157,76)])
link(Op1,7730525:Var3,[(349,39)])
}
Add(Hub,3221505,168,49)
{
InCount=5
OutCount=1
link(onEvent1,5625805:doValue,[])
}
Add(GetDataEx,5934117,77,95)
{
Angle=1
link(Data,5625805:Value,[(202,100)])
}
Add(If_else,16067037,287,56)
{
Type=1
Op2=Integer(0)
link(onTrue,3840909:doOperation,[(325,62)(325,111)])
link(onFalse,10863678:doValue,[])
}
Add(Math,3840909,343,105)
{
Op2=1
ResultType=0
link(onResult,3221505:doEvent3,[(408,111)(408,146)(151,146)(151,69)])
}
Add(GetDataEx,7730525,245,34)
{
link(Data,3901157:Data1,[])
}
Add(Memory,10863678,413,63)
{
Default=Integer(0)
link(onData,3901157:onEvent1,[(456,69)(456,55)])
}
END_SDK
Add(For,4892732,518,357)
{
End=4
link(onEvent,15429747:doOperation,[])
link(onStop,1492010:doEnum,[(569,370)(569,398)])
link(End,11122176:Value,[])
}
Add(LineBreak,1550637,644,252)
{
Type=1
link(Data,13745623:Var3,[(650,243)])
Primary=[14994518,-308,56]
}
Add(Math,15429747,616,357)
{
ResultType=0
link(onResult,7569232:doRead,[])
link(Op2,14711995:Var1,[(629,332)(418,332)(418,382)(342,382)])
}
Add(Image,1542487,1183,420)
{
Left=385
Top=365
Width=85
Height=65
Point(Width)
Point(Height)
link(onClick,5423092:doWork5,[(1239,426)(1239,286)])
}
Add(PaintBox,14075813,532,525)
{
Left=5
Top=25
Width=460
Height=340
Color=16777215
ClearBeforeDraw=0
Point(onMouseDown)
Point(onMouseMove)
Point(MouseX)
Point(MouseY)
link(onBeforeDraw,8191459:In,[])
link(onMouseDown,8845434:In,[])
link(onMouseMove,5742295:In,[])
}
Add(Img_UseOffset,9173318,532,784)
{
link(AddTransform,683094:Var,[])
link(X,929447:Var2,[])
link(Y,14804783:Var1,[(552,747)])
}
Add(Math,401840,539,651)
{
OpType=1
link(onResult,8830839:doOperation,[])
link(Op1,14746427:Var2,[])
link(Op2,12308577:Value,[])
}
Add(Math,8830839,602,651)
{
OpType=1
link(onResult,7746369:doWork3,[(645,657)(645,640)(508,640)])
link(Op1,12309971:Var2,[])
link(Op2,971548:Value,[])
}
Add(Hub,12605675,469,651)
{
OutCount=3
link(onEvent1,401840:doOperation,[])
link(onEvent2,8365796:doOperation,[(511,664)(511,706)])
link(onEvent3,6943504:doWork3,[(487,671)])
}
Add(Memory,12308577,546,602)
{
Point(Data)
link(onData,971548:doValue,[])
link(Data,14746427:Var3,[(552,586)])
}
Add(Memory,971548,609,602)
{
Point(Data)
link(Data,12309971:Var3,[(615,586)])
}
Add(IndexToChanel,12858463,427,651)
{
Count=1
link(onEvent1,12605675:doEvent1,[])
}
Add(IndexToChanel,1721923,427,602)
{
Count=1
link(onEvent1,7746369:doWork2,[])
}
Add(Math,8365796,539,700)
{
link(onResult,11032244:doOperation,[])
link(Op1,401840:Result,[])
link(Op2,929447:Var3,[(552,688)(577,688)(577,740)])
}
Add(Math,11032244,602,700)
{
link(Op1,8830839:Result,[])
link(Op2,14804783:Var3,[(615,688)(639,688)(639,747)])
}
Add(GetDataEx,929447,539,735)
{
link(Data,8365796:Result,[])
}
Add(GetDataEx,14804783,602,742)
{
link(Data,11032244:Result,[])
}
Add(HubEx,7746369,504,602)
{
link(onEvent,12308577:doValue,[])
}
Add(LineBreak,6987084,364,602)
{
Caption="mDown"
link(Out,1721923:doEvent,[])
Primary=[8845434,266,-70]
}
Add(LineBreak,2381832,364,651)
{
Caption="mMove"
link(Out,12858463:doEvent,[])
Primary=[5742295,210,-112]
}
Add(Bitmap,15551347,294,434)
{
Point(Width)
Point(Height)
}
Add(Img_Bmp,44008,518,875)
{
Point(Transform)
link(Bitmap,3081980:Var,[])
link(SourceBitmap,14323944:Var,[])
link(Transform,9173318:Transform,[])
}
Add(GetDataEx,14746427,539,581)
{
link(Data,14075813:MouseX,[])
}
Add(GetDataEx,12309971,602,581)
{
link(Data,14075813:MouseY,[(608,572)(552,572)])
}
Add(LineBreak,5659752,469,875)
{
Caption="draw"
link(Out,44008:doDraw,[])
Primary=[8191459,217,-350]
}
Add(Img_Loader,6103738,175,434)
{
link(onLoad,5630692:doEvent1,[])
}
Add(Hub,5630692,224,434)
{
link(onEvent1,15551347:doLoad,[])
link(onEvent2,6943504:doWork1,[(267,447)(267,511)(487,511)])
}
Add(Img_UseScale,7686788,287,581)
{
link(X,10278308:Var2,[])
link(Y,10278308:Var3,[(307,572)])
}
Add(Math,904991,294,525)
{
OpType=3
Op2=10
Default=1
link(onResult,6943504:doWork2,[])
}
Add(CounterEx,12454032,245,525)
{
Default=10
Point(doPrev)
link(onNext,904991:doOperation,[])
}
Add(HubEx,6943504,483,525)
{
link(onEvent,14075813:doRefresh,[])
}
Add(GetDataEx,10278308,294,567)
{
link(Data,904991:Result,[])
}
Add(LineBreak,10230733,287,623)
{
Type=1
link(Data,7686788:Transform,[])
Primary=[683094,245,133]
}
Add(LineBreak,16463963,504,574)
{
Type=1
link(Data,14075813:Bitmap,[(510,566)(538,566)])
Primary=[3081980,14,252]
}
Add(LineBreak,13300999,294,483)
{
Type=1
link(Data,15551347:Bitmap,[])
Primary=[14323944,231,364]
}
Add(LineBreak,6822358,126,434)
{
link(Out,6103738:doLoad,[])
Primary=[678440,1211,-182]
}
Add(Button,9322339,126,252)
{
Left=425
Caption="Выход"
link(onClick,3220805:doClose,[])
}
Add(Hub,10149431,441,336)
{
InCount=2
OutCount=3
link(onEvent1,15091165:doEvent1,[(697,342)(697,321)])
link(onEvent2,775386:doClear,[])
link(onEvent3,4892732:doFor,[(487,356)(487,363)])
}
Add(Memory,11122176,525,273)
{
Default=Integer(4)
Point(Data)
link(Data,13745623:Var2,[(531,267)(636,267)])
}
Add(If_else,15413539,455,273)
{
Type=3
Op2=Integer(4)
link(onTrue,11122176:doValue,[])
link(Op1,13745623:Var1,[(461,243)])
}
Add(GetDataEx,13745623,630,238)
{
link(Data,16253885:Count,[])
}
Add(Button,11002732,126,525)
{
Left=475
Top=95
Width=20
Height=90
Font=[MS Sans Serif,14,1,0,1]
Caption="+"
link(onClick,12454032:doNext,[])
}
Add(Button,12382933,175,532)
{
Left=475
Top=200
Width=20
Height=90
Font=[MS Sans Serif,14,1,0,1]
Caption="-"
link(onClick,12454032:doPrev,[])
}
Add(Hub,4818755,357,203)
{
link(onEvent1,15413539:doCompare,[(392,209)(392,279)])
link(onEvent2,10149431:doEvent2,[(381,216)(381,349)])
}
Add(StrList,775386,728,266)
{
}
Add(ArrayEnum,1492010,742,392)
{
link(onItem,10806171:doEvent1,[])
link(Array,178217:Var2,[])
}
Add(Img_Loader,5605579,868,392)
{
Point(ImageWidth)
Point(ImageHeight)
link(onLoad,15241465:doWork1,[])
}
Add(IndexToChanel,12724308,1015,392)
{
Count=5
Point(Index)
Point(Data)
link(onEvent1,7975942:doLoad,[(1065,398)(1065,258)])
link(onEvent2,16651437:doLoad,[(1070,405)(1070,300)])
link(onEvent3,688805:doLoad,[(1076,412)(1076,342)])
link(onEvent4,12463613:doLoad,[(1081,419)(1081,384)])
link(onEvent5,1542487:doLoad,[])
link(Index,13249949:Var,[])
}
Add(ChanelToIndex,5423092,1246,252)
{
Count=5
link(onIndex,14608345:doRead,[])
}
Add(ArrayRW,14608345,1288,252)
{
link(onRead,678440:In,[])
link(Array,1404505:Var,[])
}
Add(GetDataEx,178217,742,336)
{
link(Data,775386:Array,[])
}
Add(Hub,15091165,777,315)
{
OutCount=5
link(onEvent1,3461782:In,[])
link(onEvent2,4263851:In,[])
link(onEvent3,16654576:In,[])
link(onEvent4,1171283:In,[])
link(onEvent5,1140281:In,[])
}
Add(LineBreak,14990331,1141,259)
{
link(Out,7975942:doClear,[])
Primary=[3461782,-336,56]
}
Add(LineBreak,12278174,1141,301)
{
link(Out,16651437:doClear,[])
Primary=[4263851,-336,21]
}
Add(LineBreak,6881645,1141,343)
{
link(Out,688805:doClear,[])
Primary=[16654576,-336,-14]
}
Add(LineBreak,8547862,1141,385)
{
link(Out,12463613:doClear,[])
Primary=[1171283,-336,-49]
}
Add(LineBreak,2913931,1141,427)
{
link(Out,1542487:doClear,[])
Primary=[1140281,-336,-84]
}
Add(LineBreak,14505057,749,357)
{
Type=1
link(Data,178217:Var3,[(755,341)])
Primary=[1404505,539,-133]
}
Add(LineBreak,1803057,749,434)
{
Type=1
link(Data,1492010:Index,[])
Primary=[13249949,266,-70]
}
Add(MultiElement,15241465,931,392)
{
link(Data1,5605579:ImageWidth,[(937,380)(909,380)(909,436)(881,436)])
link(Data2,5605579:ImageHeight,[(944,380)(916,380)(916,436)(888,436)])
link(Data3,15138185:Var,[])
link(Data4,995563:Var,[])
link(Data5,9676742:Var,[])
link(onEvent1,12724308:doEvent,[])
}
BEGIN_SDK
Add(EditMulti,5714951,21,21)
{
EventCount=1
WorkCount=1
DataCount=5
Width=594
Height=417
HOffset=70
link(doWork1,8718530:doEvent1,[(42,27)(42,167)])
}
Add(Resize,5293244,343,245)
{
link(onResult,13575441:In,[])
link(Bitmap,11547892:Var2,[])
link(Width,6377771:Var,[])
link(Height,4878663:Result,[(363,233)(331,233)(331,289)(300,289)])
}
Add(Math,8471110,98,161)
{
@Hint=#1:w|
OpType=3
link(onResult,7307494:doOperation,[])
link(Op1,7594017:Var2,[(104,106)(97,106)])
link(Op2,5714951:Data3,[])
}
Add(Math,7307494,140,161)
{
@Hint=#1:h|
OpType=3
link(Op1,7346003:Var2,[(146,99)(104,99)])
link(Op2,5714951:Data4,[(153,91)(118,91)])
}
Add(If_else,11389101,98,245)
{
Type=2
link(onTrue,7821105:doCompare,[])
link(onFalse,9603852:doCompare,[(142,258)(142,342)])
link(Op1,4404592:Var2,[])
link(Op2,966414:Var1,[(111,222)])
}
Add(Hub,8718530,63,161)
{
link(onEvent1,8471110:doOperation,[])
link(onEvent2,11389101:doCompare,[(87,174)(87,251)])
}
Add(If_else,7821105,168,245)
{
Type=2
Op2=Integer(1)
link(onTrue,2821347:doOperation,[])
link(onFalse,7192190:doWork1,[(214,258)])
link(Op1,4282265:Var2,[])
}
Add(GetDataEx,4404592,98,203)
{
link(Data,8471110:Result,[])
}
Add(If_else,9603852,154,336)
{
Type=2
Op2=Integer(1)
link(onTrue,15901414:doOperation,[])
link(onFalse,7192190:doWork2,[])
link(Op1,9185702:Var2,[])
}
Add(GetDataEx,966414,140,217)
{
link(Data,7307494:Result,[])
}
Add(Math,2821347,252,245)
{
OpType=3
ResultType=0
link(onResult,4878663:doOperation,[])
link(Op1,16652640:Var2,[])
link(Op2,9281984:Var2,[])
}
Add(GetDataEx,7594017,91,42)
{
link(Data,5714951:Data1,[])
}
Add(GetDataEx,4282265,168,203)
{
Angle=3
link(Data,4404592:Var3,[])
}
Add(Math,4878663,294,245)
{
OpType=3
ResultType=0
link(onResult,5293244:doResize,[])
link(Op1,14594827:Var2,[])
link(Op2,9281984:Var3,[(307,208)])
}
Add(GetDataEx,7346003,98,49)
{
link(Data,5714951:Data2,[])
}
Add(GetDataEx,9281984,259,203)
{
Angle=3
link(Data,4282265:Var3,[])
}
Add(Math,15901414,385,336)
{
OpType=3
ResultType=0
link(onResult,14170550:doOperation,[])
link(Op1,16652640:Var3,[(391,47)])
link(Op2,15781829:Var2,[])
}
Add(Math,14170550,427,336)
{
OpType=3
ResultType=0
link(onResult,2047111:doResize,[])
link(Op1,14594827:Var3,[(433,54)])
link(Op2,15781829:Var3,[(440,320)])
}
Add(LineBreak,12063080,252,287)
{
Type=1
link(Data,2821347:Result,[])
Primary=[6377771,98,-77]
}
Add(GetDataEx,16652640,252,42)
{
Angle=3
link(Data,7594017:Var3,[])
}
Add(GetDataEx,14594827,294,49)
{
Angle=3
link(Data,7346003:Var3,[])
}
Add(Resize,2047111,476,336)
{
link(onResult,10159246:doWork3,[(599,342)])
link(Bitmap,11547892:Var3,[(482,33)])
link(Width,14303172:Var,[])
link(Height,14170550:Result,[(496,324)(464,324)(464,380)(433,380)])
}
Add(GetDataEx,9185702,154,315)
{
link(Data,966414:Var3,[(160,222)])
}
Add(GetDataEx,15781829,392,315)
{
Angle=3
link(Data,9185702:Var3,[])
}
Add(GetDataEx,11547892,343,28)
{
Angle=3
link(Data,12442992:Var3,[])
}
Add(LineBreak,10705477,385,378)
{
Type=1
link(Data,15901414:Result,[])
Primary=[14303172,98,-77]
}
Add(LineBreak,3967581,553,21)
{
link(Out,4391293:doWork2,[])
Primary=[13575441,-168,224]
}
Add(HubEx,4391293,595,21)
{
link(onEvent,5714951:onEvent1,[])
}
Add(DoData,3757138,231,343)
{
link(onEventData,15668759:In,[])
link(Data,12442992:Var2,[])
}
Add(HubEx,7192190,210,343)
{
link(onEvent,3757138:doData,[])
}
Add(GetDataEx,12442992,231,28)
{
Angle=3
link(Data,5714951:Data5,[(125,33)])
}
Add(HubEx,10159246,595,35)
{
Angle=3
link(onEvent,4391293:doWork3,[])
}
Add(LineBreak,7390090,553,35)
{
link(Out,10159246:doWork2,[])
Primary=[15668759,-280,308]
}
END_SDK
Add(LineBreak,10385275,1190,490)
{
Caption="w"
Type=1
link(Data,1542487:Width,[])
Primary=[15138185,-245,-154]
}
Add(LineBreak,6575772,1197,469)
{
Caption="h"
Type=1
link(Data,1542487:Height,[])
Primary=[995563,-245,-119]
}
Add(LineBreak,16022224,868,448)
{
Caption="img"
Type=1
link(Data,5605579:Bitmap,[])
Primary=[9676742,91,-84]
}
Add(Hub,10806171,791,392)
{
link(onEvent1,5605579:doLoad,[])
link(onEvent2,99347:doProcessMessages,[])
}
Add(Application,99347,819,399)
{
Wait=1
}
карма: 9
0
Ответов: 16884
Рейтинг: 1239
#6: 2017-11-20 13:39:55 ЛС | профиль | цитата
Dad2016 писал(а):
Единственное с тормозами при большом объёме фото что делать?
Это про нижний ряд ?
3042, а если подумать или прочесть описание к точке

то где тормоз ?

Редактировалось 2 раз(а), последний 2017-11-20 14:14:26
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 1926
Рейтинг: 172
#7: 2017-11-20 16:32:35 ЛС | профиль | цитата
Tad, но ведь в Image тоже есть bmp.Assign, это дополнительные расходы, от которых можно избавиться.
А тормоз на onLoad, конечно, не избежать. Но в схеме целых два Img_Loader: один на миниатюры, второй - на последующую загрузку картинок, это перебор!
карма: 9
0
Разработчик
Ответов: 26113
Рейтинг: 2126
#8: 2017-11-20 16:50:38 ЛС | профиль | цитата
3042 писал(а):
Но в схеме целых два Img_Loader: один на миниатюры, второй - на последующую загрузку картинок, это перебор!

А почему бы не покопать в сторону Img_GDIFileProcessor-а? У этого компонента все встроено в него. Да и миниатюры он делает на уровне системы, если не находит их в самой картинке.
карма: 22

0
Ответов: 8918
Рейтинг: 823
#9: 2017-11-20 19:00:15 ЛС | профиль | цитата
nesco, конечно компоненту Img_GDIFileProcessor далеко по сложности до StringTableMT, но всё равно "..Лучше три дня поучиться, а потом раз-раз и долететь.." (Я ещё не учился )
карма: 19

0
Ответов: 16884
Рейтинг: 1239
#10: 2017-11-20 21:43:30 ЛС | профиль | цитата
Леонид писал(а):
Img_GDIFileProcessor
Выложите иконку этого чуда. Не могу у себя найти.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Разработчик
Ответов: 26113
Рейтинг: 2126
#11: 2017-11-20 21:52:22 ЛС | профиль | цитата
Tad писал(а):
Выложите иконку этого чуда.

Второй после Img_Loader-a

Add(Img_GDIFileProcessor,12519286,147,105)
{
}

Как работать с ним есть в примерах -- %HiAsm%\Elements\Delphi\Example\Image\Img_GDIFileProcessor.sha

Редактировалось 1 раз(а), последний 2017-11-20 21:59:26
карма: 22

0
Ответов: 16884
Рейтинг: 1239
#12: 2017-11-20 23:31:55 ЛС | профиль | цитата
Реально быстрее

Add(Image,7975942,791,140)
{
Left=35
Top=395
Width=85
Height=65
Ctl3D=0
WinStyle=2
ViewStyle=5
link(onClick,5423092:doWork1,[])
}
Add(Image,16651437,791,182)
{
Left=125
Top=395
Width=85
Height=65
Ctl3D=0
WinStyle=2
ViewStyle=5
link(onClick,5423092:doWork2,[(829,188)(829,153)])
}
Add(Image,688805,791,224)
{
Left=220
Top=395
Width=85
Height=65
Ctl3D=0
WinStyle=2
ViewStyle=5
link(onClick,5423092:doWork3,[(834,230)(834,160)])
}
Add(Image,12463613,791,266)
{
Left=315
Top=395
Width=85
Height=65
Ctl3D=0
WinStyle=2
ViewStyle=5
link(onClick,5423092:doWork4,[(840,272)(840,167)])
}
Add(FileSearch,2629711,210,119)
{
SubDir=1
link(onSearch,6160835:doValue,[(268,125)(268,62)])
link(onEndSearch,4818755:doEvent1,[])
}
Add(Hub,15644038,175,112)
{
InCount=2
link(onEvent1,16253885:doClear,[])
link(onEvent2,2629711:doSearch,[])
}
Add(Browse,9986803,77,112)
{
link(onBrowse,6456784:doText,[])
}
Add(Button,6523879,28,112)
{
Left=10
Top=15
Caption="Каталог"
link(onClick,9986803:doBrowse,[])
}
Add(Edit,6456784,119,112)
{
Left=75
Top=15
Width=460
Text=""
link(onChange,15644038:doEvent1,[])
link(onEnter,15644038:doEvent2,[])
}
Add(ArrayRW,7569232,539,245)
{
link(onRead,775386:doAdd,[(579,251)(579,230)])
link(Array,16253885:Array,[])
}
Add(Button,8546077,119,231)
{
Left=5
Top=410
Width=30
Height=30
Font=[Arial,18,1,0,204]
Caption="‹"
Data=Integer(0)
link(onClick,14711995:doWork2,[])
}
Add(Button,6923064,77,224)
{
Left=505
Top=415
Width=30
Height=30
Font=[Arial,18,1,0,204]
Caption="›"
Data=Integer(1)
link(onClick,14711995:doWork1,[])
}
Add(StrList,16253885,525,105)
{
link(Str,6160835:Value,[(531,97)(300,97)])
}
Add(MultiElement,14711995,238,224)
{
link(onEvent1,10149431:doEvent1,[])
link(Data1,1635946:Var1,[(244,159)])
}
BEGIN_SDK
Add(EditMulti,3901157,21,21)
{
EventCount=1
WorkCount=2
DataCount=1
VarCount=1
Width=447
Height=151
VOffset=28
HOffset=224
link(doWork1,9816943:doOperation,[])
link(doWork2,7793795:doOperation,[(49,62)(49,118)])
link(Var1,10863678:Value,[(251,157)(419,157)])
}
Add(Math,9816943,77,49)
{
Op2=4
ResultType=0
link(onResult,3221505:doEvent1,[])
link(Op1,5934117:Var1,[(83,37)(66,37)(66,100)])
}
Add(Math,7793795,77,112)
{
OpType=1
Op2=4
ResultType=0
link(onResult,3221505:doEvent2,[(125,118)(125,62)])
link(Op1,5934117:Var2,[])
}
Add(Memory,5625805,196,49)
{
Default=Integer(-1)
link(onData,3694001:doCompare,[])
}
Add(If_else,3694001,238,49)
{
Type=2
link(onTrue,6057581:doOperation,[])
link(onFalse,16067037:doCompare,[])
link(Op2,7730525:Var2,[])
}
Add(Math,6057581,343,49)
{
OpType=1
Op2=4
ResultType=0
link(onResult,3221505:doEvent4,[(384,55)(384,93)(157,93)(157,76)])
link(Op1,7730525:Var3,[(349,39)])
}
Add(Hub,3221505,168,49)
{
InCount=5
OutCount=1
link(onEvent1,5625805:doValue,[])
}
Add(GetDataEx,5934117,77,95)
{
Angle=1
link(Data,5625805:Value,[(202,100)])
}
Add(If_else,16067037,287,56)
{
Type=1
Op2=Integer(0)
link(onTrue,3840909:doOperation,[(325,62)(325,111)])
link(onFalse,10863678:doValue,[])
}
Add(Math,3840909,343,105)
{
Op2=4
ResultType=0
link(onResult,3221505:doEvent3,[(408,111)(408,146)(151,146)(151,69)])
}
Add(GetDataEx,7730525,245,34)
{
link(Data,3901157:Data1,[])
}
Add(Memory,10863678,413,63)
{
Default=Integer(0)
link(onData,3901157:onEvent1,[(456,69)(456,55)])
}
END_SDK
Add(For,4892732,420,245)
{
End=4
link(onEvent,15429747:doOperation,[])
link(onStop,1492010:doEnum,[(465,258)(465,293)])
link(End,11122176:Value,[])
}
Add(Math,15429747,476,245)
{
ResultType=0
link(onResult,7569232:doRead,[])
link(Op2,14711995:Var1,[(489,220)(320,220)(320,270)(244,270)])
}
Add(Image,1542487,791,308)
{
Left=410
Top=395
Width=85
Height=65
Ctl3D=0
WinStyle=2
ViewStyle=5
link(onClick,5423092:doWork5,[(847,314)(847,174)])
}
Add(PaintBox,14075813,399,364)
{
Left=5
Top=45
Width=490
Height=340
Color=16777215
ClearBeforeDraw=0
Point(onMouseDown)
Point(onMouseMove)
Point(MouseX)
Point(MouseY)
link(onBeforeDraw,8191459:In,[])
link(onMouseDown,8845434:In,[])
link(onMouseMove,5742295:In,[])
}
Add(Img_UseOffset,9173318,399,574)
{
link(AddTransform,7686788:Transform,[(405,565)(160,565)])
link(X,929447:Var2,[])
link(Y,14804783:Var1,[(419,565)])
}
Add(Math,401840,406,469)
{
OpType=1
link(onResult,8830839:doOperation,[])
link(Op1,14746427:Var2,[])
link(Op2,12308577:Value,[])
}
Add(Math,8830839,469,469)
{
OpType=1
link(onResult,7746369:doWork3,[(510,475)(510,461)(375,461)])
link(Op1,12309971:Var2,[])
link(Op2,971548:Value,[])
}
Add(Hub,12605675,301,469)
{
OutCount=3
link(onEvent1,401840:doOperation,[])
link(onEvent2,8365796:doOperation,[(397,482)(397,524)])
link(onEvent3,6943504:doWork3,[(340,489)])
}
Add(Memory,12308577,413,420)
{
Point(Data)
link(onData,971548:doValue,[])
link(Data,14746427:Var3,[(419,411)])
}
Add(Memory,971548,476,420)
{
Point(Data)
link(Data,12309971:Var3,[(482,404)])
}
Add(IndexToChanel,12858463,259,469)
{
Count=1
link(onEvent1,12605675:doEvent1,[])
}
Add(IndexToChanel,1721923,259,420)
{
Count=1
link(onEvent1,7746369:doWork2,[])
}
Add(Math,8365796,406,518)
{
link(onResult,11032244:doOperation,[])
link(Op1,401840:Result,[])
link(Op2,929447:Var3,[(419,506)(444,506)(444,558)])
}
Add(Math,11032244,469,518)
{
link(Op1,8830839:Result,[])
link(Op2,14804783:Var3,[(482,506)(506,506)(506,565)])
}
Add(GetDataEx,929447,406,553)
{
link(Data,8365796:Result,[])
}
Add(GetDataEx,14804783,469,560)
{
link(Data,11032244:Result,[])
}
Add(HubEx,7746369,371,420)
{
link(onEvent,12308577:doValue,[])
}
Add(LineBreak,2615748,196,420)
{
Caption="mDown"
link(Out,1721923:doEvent,[])
Primary=[8845434,301,-49]
}
Add(LineBreak,16451675,196,469)
{
Caption="mMove"
link(Out,12858463:doEvent,[])
Primary=[5742295,245,-91]
}
Add(Img_Bmp,44008,385,616)
{
Point(Transform)
link(Bitmap,14075813:Bitmap,[(391,402)(405,402)])
link(SourceBitmap,10977534:Bitmap,[(398,589)(951,589)])
link(Transform,9173318:Transform,[])
}
Add(GetDataEx,14746427,406,406)
{
link(Data,14075813:MouseX,[])
}
Add(GetDataEx,12309971,469,399)
{
Angle=3
link(Data,14075813:MouseY,[(419,404)])
}
Add(LineBreak,12625890,336,616)
{
Caption="draw"
link(Out,44008:doDraw,[])
Primary=[8191459,217,-252]
}
Add(Img_UseScale,7686788,154,420)
{
link(X,10278308:Var2,[])
link(Y,10278308:Var3,[(174,411)])
}
Add(Math,904991,161,364)
{
OpType=3
Op2=10
Default=1
link(onResult,6943504:doWork2,[])
}
Add(CounterEx,12454032,112,364)
{
Default=10
Point(doPrev)
link(onNext,904991:doOperation,[])
}
Add(HubEx,6943504,336,364)
{
link(onEvent,14075813:doRefresh,[])
}
Add(GetDataEx,10278308,161,406)
{
link(Data,904991:Result,[])
}
Add(LineBreak,14628458,252,343)
{
link(Out,6943504:doWork1,[(340,349)])
Primary=[678440,742,-203]
}
Add(Hub,10149431,343,224)
{
InCount=2
OutCount=3
link(onEvent1,15091165:doEvent1,[(557,230)(557,223)])
link(onEvent2,775386:doClear,[])
link(onEvent3,4892732:doFor,[(389,244)(389,251)])
}
Add(Memory,11122176,427,182)
{
Default=Integer(4)
Point(Data)
link(Data,11522494:Var2,[])
}
Add(If_else,15413539,357,182)
{
Type=3
Op2=Integer(4)
link(onTrue,11122176:doValue,[])
link(Op1,1635946:Var2,[])
}
Add(Button,11002732,28,364)
{
Left=510
Top=120
Width=30
Height=40
Font=[MS Sans Serif,14,1,0,1]
Caption="+"
link(onClick,12454032:doNext,[])
}
Add(Button,12382933,63,371)
{
Left=510
Top=225
Width=30
Height=40
Font=[MS Sans Serif,14,1,0,1]
Caption="-"
link(onClick,12454032:doPrev,[])
}
Add(Hub,4818755,259,126)
{
link(onEvent1,15413539:doCompare,[(294,132)(294,188)])
link(onEvent2,10149431:doEvent2,[(283,139)(283,237)])
}
Add(StrList,775386,595,224)
{
}
Add(ArrayEnum,1492010,609,287)
{
link(onItem,12519286:doGetThumbFrom,[])
link(Array,178217:Var2,[])
}
Add(IndexToChanel,12724308,700,280)
{
Count=6
Point(Index)
Point(Data)
link(onEvent1,7975942:doLoad,[(756,286)(756,146)])
link(onEvent2,16651437:doLoad,[(762,293)(762,188)])
link(onEvent3,688805:doLoad,[(767,300)(767,230)])
link(onEvent4,12463613:doLoad,[(774,307)(774,272)])
link(onEvent5,1542487:doLoad,[])
link(Index,1492010:Index,[(706,259)(649,259)(649,331)(622,331)])
}
Add(ChanelToIndex,5423092,854,140)
{
Count=5
link(onIndex,14608345:doRead,[])
}
Add(ArrayRW,14608345,896,140)
{
link(onRead,10977534:doLoadFrom,[])
link(Array,178217:Var3,[(902,125)(636,125)(636,271)])
}
Add(GetDataEx,178217,609,266)
{
link(Data,775386:Array,[])
}
Add(Hub,15091165,700,217)
{
OutCount=5
link(onEvent1,7975942:doClear,[(720,223)(720,153)])
link(onEvent2,16651437:doClear,[(752,230)(752,195)])
link(onEvent3,688805:doClear,[])
link(onEvent4,12463613:doClear,[(746,244)(746,279)])
link(onEvent5,1542487:doClear,[(741,251)(741,321)])
}
Add(GetDataEx,1635946,357,154)
{
Angle=1
link(Data,11522494:Var1,[])
}
Add(GetDataEx,11522494,427,154)
{
Angle=1
link(Data,16253885:Count,[(538,159)])
}
Add(StrList,16592015,392,14)
{
Strings=#3:bmp|3:gif|3:ico|3:jpg|4:jpeg|3:png|
Point(doGetIndex)
Point(onGetIndex)
link(onGetIndex,12418263:doCompare,[])
}
Add(If_else,12418263,441,21)
{
Op2=Integer(-1)
link(onFalse,16253885:doAdd,[(499,34)(499,111)])
}
Add(Memory,6160835,294,56)
{
link(onData,7323758:doPart,[])
}
Add(FilePartElm,7323758,343,56)
{
Mode=4
link(onPart,16592015:doGetIndex,[])
}
Add(Img_GDIFileProcessor,12519286,658,273)
{
@IsLib=True
Point(onGetThumb)
Point(doGetThumbFrom)
link(onGetThumb,12724308:doEvent,[])
}
Add(Img_GDIFileProcessor,10977534,945,140)
{
elink(12519286)
link(onLoad,678440:In,[])
}
Add(MainForm,9512257,28,161)
{
Width=549
Height=502
BorderStyle=1
Position=1
}

[/spoiler]
Редактировалось 1 раз(а), последний 2017-11-21 01:04:29
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Разработчик
Ответов: 26113
Рейтинг: 2126
#13: 2017-11-21 02:05:36 ЛС | профиль | цитата
Tad писал(а):
Реально быстрее

Второй процессор можно смело выкинуть и использовать тот, который читает миниатюры. Точки же загрузки изображения у него остаются свободными при чтении миниатюр.

Редактировалось 1 раз(а), последний 2017-11-21 02:07:34
карма: 22

0
Ответов: 16884
Рейтинг: 1239
#14: 2017-11-21 09:32:07 ЛС | профиль | цитата
nesco писал(а):
Второй процессор можно смело выкинуть
А я его и выбросил. Там ССЫЛКА.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Разработчик
Ответов: 26113
Рейтинг: 2126
#15: 2017-11-21 10:23:51 ЛС | профиль | цитата
Tad писал(а):
А я его и выбросил. Там ССЫЛКА.

Не совсем оптимальное решение, тк ссылка создает еще один экземпляр класса, а это дополнительная память. Что совсем не нужно для решения с одним компонентом.
карма: 22

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