Вверх ↑
Этот топик читают: Гость
Ответов: 60
Рейтинг: 0
#1: 2020-09-20 10:03:52 ЛС | профиль | цитата
В элементе ArrayRW doWrite не записывает в массивы по index значение value. Ни со старым fpc, ни c fpc32, 64 не работает.
Пример


Make(delphi)
ver(4.05 build 186)
Add(MainForm,2953706,21,105)
{
Width=852
}
Add(Button,8015028,112,224)
{
Left=25
Top=25
link(onClick,1985513:doFor,[])
}
Add(ArrayRW,15418878,476,224)
{
link(Array,13590031:Var1,[(482,166)])
link(Index,8552357:Var1,[(489,212)(433,212)])
link(Value,15579316:Value,[(496,194)(342,194)])
}
Add(For,1985513,217,224)
{
End=10
link(onEvent,10335368:doEvent1,[])
}
Add(Memory,3377255,336,70)
{
Default=Real(10)
}
Add(Hub,10335368,287,224)
{
OutCount=3
link(onEvent1,15579316:doValue,[(319,230)(319,139)])
link(onEvent2,15418878:doWrite,[])
link(onEvent3,5100135:doRead,[(360,244)(360,314)])
}
Add(Memory,15579316,336,133)
{
Point(Data)
link(Data,3377255:Value,[])
}
Add(ArrayRW,5100135,539,308)
{
link(onRead,3213717:doAdd,[])
link(Array,13590031:Var2,[])
link(Index,8552357:Var3,[(552,290)])
}
Add(GetDataEx,13590031,539,161)
{
Angle=1
link(Data,2031279:Array,[(552,166)])
}
Add(Memo,3213717,679,308)
{
Left=390
Top=10
Width=370
Height=235
ScrollBars=3
}
Add(GetDataEx,8552357,427,285)
{
Angle=3
link(Data,1985513:Position,[(223,290)])
}
Add(Memo,2031279,532,91)
{
Left=95
Top=10
Width=275
Height=235
ScrollBars=3
}
карма: 1

0
Ответов: 1926
Рейтинг: 172
#2: 2020-09-20 11:13:40 ЛС | профиль | цитата
doWrite записывает по уже существующим индексам. У тебя же только одна строка в Memo (и та пустая), т.е. строка с индексом 0. А остальных десяти строк нет, doWrite не сможет ничего в них записать. Надо сначала создать их, хотя бы вручную или по doAdd.
карма: 9
0
Ответов: 60
Рейтинг: 0
#3: 2020-09-20 13:08:51 ЛС | профиль | цитата
Спасибо. Разобрался, теперь работает.
карма: 1

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