Вверх ↑
Ответов: 18
Рейтинг: 0
#1: 2018-04-11 17:21:50 ЛС | профиль | цитата
2Netspirit:
Более поучительно (imho) было бы не столько решить задачу, сколько указать на ошибки ТС
1) Метод StrList.doDelete воспринимает данные dtNULL (которые идут с таймера) как индекс равный -1 (а не =0)
2) После первого исправления уже начинает работать. НО: таймер надо все-таки останавливать по окончании процесса перебора

Например (максимально близко к схеме ТС):
Add(MainForm,3372534,273,140)
{
Width=603
Height=417
}
Add(Memo,14886223,427,91)
{
Width=280
Height=390
Align=1
Strings=#8:Мама+098|8:Папа+890|8:Брат+765|10:Сестра+677|0:|
ScrollBars=3
}
Add(Memo,7774838,616,175)
{
Left=300
Width=295
Height=390
Align=3
ScrollBars=3
}
Add(Button,7091212,273,189)
{
Left=185
Top=350
Width=180
Height=35
Align=4
Flat=0
link(onClick,10292475:doEvent1,[])
}
Add(StrList,7009677,511,168)
{
Point(doGetString)
Point(onGetString)
link(onGetString,7205382:doCompare,[])
}
Add(DoData,12382292,427,154)
{
link(onEventData,7009677:doText,[(494,160)(494,195)])
link(Data,14886223:Text,[])
}
Add(Hub,4637100,476,196)
{
link(onEvent1,7009677:doGetString,[])
link(onEvent2,7009677:doDelete,[(501,209)(501,188)])
}
Add(Timer,4310479,357,203)
{
Enable=1
link(onTimer,9959195:doWork3,[(410,209)])
}
Add(DoData,11668594,427,196)
{
Data=Integer(0)
link(onEventData,4637100:doEvent1,[])
}
Add(If_else,7205382,560,175)
{
Type=4
Op2=Integer(0)
link(onTrue,7774838:doAdd,[])
link(onFalse,4310479:doStop,[(599,188)(599,244)(347,244)(347,216)])
link(Op1,7009677:Count,[(566,166)(552,166)(552,215)(524,215)])
}
Add(HubEx,9959195,406,196)
{
link(onEvent,11668594:doData,[])
}
Add(Hub,10292475,322,189)
{
OutCount=3
link(onEvent1,12382292:doData,[(347,195)(347,160)])
link(onEvent2,9959195:doWork2,[])
link(onEvent3,4310479:doTimer,[])
}
карма: 2
пугаться не надо ...
0
Редактировалось 2 раз(а), последний 2018-04-11 17:23:28