Вверх ↑
Разработчик
Ответов: 26068
Рейтинг: 2121
#1: 2016-04-11 16:39:20 ЛС | профиль | цитата
Tad писал(а):
К примеру - нужно переводить в % прогресс обработки файла.
Если я к точке CountStr подключу MathParse, то при каждом его вызове он будет запускать этот, "ни на что не влияющий" блок.
Т.е. нужно ставить "буфер".
Ещё та лестница в четыре ступеньки получается. Сверху FileName, снизу Memory + MathParse.

Какая-то надуманная проблема, которая даже выеденного яйца не стоит. Ну и что, что это добавит пару элементов, из-за этого надо лепить лишний компонент?

Add(MainForm,3400360,217,189)
{
Width=420
Height=96
Position=1
}
Add(SearchInFile,8757361,392,175)
{
Text="@"
Sensitive=1
Point(NumStr)
Point(onEnd)
Point(CountStr)
link(onNotSearch,246408:doWork1,[(480,181)])
link(onSearch,3121382:doEvent1,[])
link(FileName,15088486:Text,[(398,166)(370,166)(370,285)(321,285)])
}
Add(Button,1954846,217,238)
{
Left=355
Top=10
Width=25
TabOrder=-1
Caption="..."
link(onClick,14754006:doExecute,[])
}
Add(ODialog,14754006,266,238)
{
link(onExecute,15088486:doText,[])
}
Add(ProgressBar,8986941,546,294)
{
Left=20
Top=35
Width=355
Height=5
Color=65535
ProgressColor=16711680
}
Add(Hub,3121382,441,182)
{
link(onEvent1,217271:doAdd,[])
link(onEvent2,246408:doWork2,[])
}
Add(StrList,217271,497,182)
{
}
Add(HubEx,246408,476,189)
{
Angle=1
link(onEvent,925374:doCalc,[(480,300)])
}
Add(Edit,15088486,315,238)
{
Left=20
Top=10
Width=330
link(onChange,8978148:doValue,[])
}
Add(MathParse,925374,497,294)
{
MathStr="((%1 + 1) / %2) * 100"
ResultType=0
link(onResult,8986941:doPosition,[])
link(X1,8757361:NumStr,[(503,285)(391,285)(391,229)(398,229)])
link(X2,8978148:Value,[(510,278)(405,278)])
}
Add(Memory,8978148,399,238)
{
Point(Data)
link(onData,8757361:doSearch,[(438,244)(438,223)(382,223)(382,181)])
link(Data,8757361:CountStr,[])
}

------------ Дoбавленo в 16.39:
Единственное, что еще можно разумное предложить, так это добавить отдельный метод doCountStr
карма: 22

0