|
|
|
Ошибка при присвоении значения элементу генерик списка
|
|||
|---|---|---|---|
|
#18+
Помогите понять, где я туплю :) Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. Почему эта ошибка? Как тогда правильно изменить элемент записи списка? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2018, 11:13 |
|
||
|
Ошибка при присвоении значения элементу генерик списка
|
|||
|---|---|---|---|
|
#18+
LiYing, TList это список указателей. Надо как-то так. Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2018, 11:28 |
|
||
|
Ошибка при присвоении значения элементу генерик списка
|
|||
|---|---|---|---|
|
#18+
DesWind, TList<T> это ни разу не список указателей ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2018, 11:33 |
|
||
|
Ошибка при присвоении значения элементу генерик списка
|
|||
|---|---|---|---|
|
#18+
LiYingПочему эта ошибка? Как тогда правильно изменить элемент записи списка? Потому что рекорды нельзя так менять. Тут либо TVehicleInfoRec = record поменять на class, либо использовать rec := list[i]; rec.id := 111; list[i] := rec; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2018, 11:46 |
|
||
|
Ошибка при присвоении значения элементу генерик списка
|
|||
|---|---|---|---|
|
#18+
Ага. Почитал https://stackoverflow.com/questions/620506/left-side-cannot-be-assigned-to-for-record-type-properties-in-delphi и всё прояснилось :) Спасибо, JaDi ! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2018, 11:58 |
|
||
|
Ошибка при присвоении значения элементу генерик списка
|
|||
|---|---|---|---|
|
#18+
списки тут не при чем - это стандартная вещь с возвратом структур из списка, компонентов и т.д. - вообще из функций. LiYingПочему эта ошибка? потому что слишком много людей делали это раньше, когда это не было явно запрещено а потом удивлялись результату Код: pascal 1. Это не так. Ты не пытаешься изменить "значение в списке", ты пытаешься изменить копию значения из списка присвоенную невидимой безымяннйо переменной. ты из функции получаешь запись в невидимую переменную. фактически - если смыть "синтаксический сахар" - ты делаешь вот что: Код: pascal 1. 2. Ну, в общем, не вопрос, ты изменил значение невидимой безымянной переменной. После чего ты вышел из функции - и эта переменная пропала с твоими изменениями. В самом списке ты ничего не менял. Задним числом всё очевидно, но новички регулярно ловятся. Потому что array properties 20 лет назад сделали слишком похожими на массив. В данном случае правильно делать Код: pascal 1. 2. 3. 4. 5. Либо же, да, хранить указатели. Либо после наполнения списка - сделать копию списка в дин-массиве - VIRs := VehicleInfoList.ToArray(); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2018, 12:01 |
|
||
|
Ошибка при присвоении значения элементу генерик списка
|
|||
|---|---|---|---|
|
#18+
VehicleInfoList.List[i].vehicle_id := 777; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2018, 12:19 |
|
||
|
Ошибка при присвоении значения элементу генерик списка
|
|||
|---|---|---|---|
|
#18+
Arioch, Dmitry Arefiev Спасибо, с вашей помощью устранил еще один пробел в своих знаниях. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2018, 13:07 |
|
||
|
Ошибка при присвоении значения элементу генерик списка
|
|||
|---|---|---|---|
|
#18+
Dmitry ArefievVehicleInfoList.>>>List<<<[i].vehicle_id := 777; Это что такое, прямой доступ к TList<T>.FItems ??? В XE2 такого не было... Можно, конечно, в Spring4D глянуть, может быть там подломали... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.08.2018, 13:41 |
|
||
|
|

start [/forum/topic.php?fid=58&gotonew=1&tid=2040527]: |
0ms |
get settings: |
5ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
151ms |
get topic data: |
6ms |
get first new msg: |
4ms |
get forum data: |
2ms |
get page messages: |
30ms |
get tp. blocked users: |
1ms |
| others: | 210ms |
| total: | 423ms |

| 0 / 0 |
