|
|
|
FreeAndNil Dataset
|
|||
|---|---|---|---|
|
#18+
Добрый день не могу понять, есть код: Код: pascal 1. 2. Но освободить не могу FreeAndNil выдаёт ошибку, динамические элементы не даёт освободить, как все же удалить с помощью FreeAndNil ? Через Free работает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2020, 15:47 |
|
||
|
FreeAndNil Dataset
|
|||
|---|---|---|---|
|
#18+
wsnet Добрый день не могу понять, есть код: Код: pascal 1. 2. Но освободить не могу FreeAndNil выдаёт ошибку, динамические элементы не даёт освободить, как все же удалить с помощью FreeAndNil ? Через Free работает. Вы читали текст ошибки? Смотрели, какие аргументы у FreeAndNil? Почему хотите применить именно FreeAndNil? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2020, 15:57 |
|
||
|
FreeAndNil Dataset
|
|||
|---|---|---|---|
|
#18+
wsnetкак все же удалить с помощью FreeAndNil ? Никак. FreeAndNil - для переменных. А DM.datasource1.dataset - свойство. Назад за парту, читать букварь. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2020, 16:04 |
|
||
|
FreeAndNil Dataset
|
|||
|---|---|---|---|
|
#18+
Это, видимо, под впечатлением от прочитанного в Курилке. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2020, 17:49 |
|
||
|
FreeAndNil Dataset
|
|||
|---|---|---|---|
|
#18+
wsnet, На Код: pascal 1. Компилятор ругается Код: sql 1. Так же он будет ругаться и на Код: pascal 1. 2. 3. 4. 5. 6. И по той же причине Если Код: pascal 1. больше Вам не треба, то сделайте хотя бы Close перед тем как его Free. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2020, 18:16 |
|
||
|
FreeAndNil Dataset
|
|||
|---|---|---|---|
|
#18+
Victor Cookin, У тебя Delphi 10.4 Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. В старых такого ещё нету. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2020, 18:32 |
|
||
|
FreeAndNil Dataset
|
|||
|---|---|---|---|
|
#18+
Гаджимурадов Рустам Это, видимо, под впечатлением от прочитанного в Курилке. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2020, 18:36 |
|
||
|
FreeAndNil Dataset
|
|||
|---|---|---|---|
|
#18+
ВсеРазумный Victor Cookin, У тебя Delphi 10.4 У меня Delphi 10.0 Seattle. А в старых что? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2020, 19:12 |
|
||
|
FreeAndNil Dataset
|
|||
|---|---|---|---|
|
#18+
Victor Cookin, Может обновления тебе прилетели. В старых Код: pascal 1. Суй всё, что хочешь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2020, 19:28 |
|
||
|
FreeAndNil Dataset
|
|||
|---|---|---|---|
|
#18+
ВсеРазумный Суй всё, что хочешь Ага, щаз он тебе даст в var запихнуть свойство, которое ещё и рид-онли небось. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2020, 20:47 |
|
||
|
FreeAndNil Dataset
|
|||
|---|---|---|---|
|
#18+
alekcvp, Это не означает что в такой var нельзя пихать строки, интерфейся и всё остальное. И быть анальным гением. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2020, 21:29 |
|
||
|
FreeAndNil Dataset
|
|||
|---|---|---|---|
|
#18+
ВсеРазумный, у меня в 10.0: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2020, 00:00 |
|
||
|
FreeAndNil Dataset
|
|||
|---|---|---|---|
|
#18+
а ругается, т.к. сую ему константу, а не переменную. Если сунуть строку, будет AV ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2020, 00:02 |
|
||
|
FreeAndNil Dataset
|
|||
|---|---|---|---|
|
#18+
Victor Cookin, В новой версии [dcc32 Error] Unit2.pas(29): E2010 Incompatible types: 'TObject' and 'string' ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2020, 00:03 |
|
||
|
FreeAndNil Dataset
|
|||
|---|---|---|---|
|
#18+
Victor Cookin, Старая раздвинула булки, и впустила в себя ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2020, 00:04 |
|
||
|
FreeAndNil Dataset
|
|||
|---|---|---|---|
|
#18+
а если скастовать строку к TObject, как будет ругаться? :) зы. поставил-таки винду десятку, неохота мусорить в реестре установкой дельфей для проверки, а выложенные на руборде портабельные сборки работают только под семерку :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2020, 17:22 |
|
||
|
FreeAndNil Dataset
|
|||
|---|---|---|---|
|
#18+
Док а если скастовать строку к TObject, как будет ругаться? :) Иногда делаю так PInteger(nil)^, когда необязательный параметр функции объявлен как var ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2020, 17:37 |
|
||
|
FreeAndNil Dataset
|
|||
|---|---|---|---|
|
#18+
Док, а всё так и так будет скастоваться к ТObject, строка тоже. Так что то же самое AV на str.Destroy ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2020, 17:40 |
|
||
|
FreeAndNil Dataset
|
|||
|---|---|---|---|
|
#18+
Док, Что, ручки уже тянуться запихнуть не впехуемое ? Какие шаловливые. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2020, 17:44 |
|
||
|
FreeAndNil Dataset
|
|||
|---|---|---|---|
|
#18+
А FreeAndNil (Dataset) совершенно нормально проходит и в 10.0 и в 10.4. А вот интересно, Close надо делать или оно само случится? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2020, 17:48 |
|
||
|
FreeAndNil Dataset
|
|||
|---|---|---|---|
|
#18+
Victor Cookin А вот интересно, Close надо делать или оно само случится? Посмотрите исходник TDataset.Destroy: там есть вызов Close ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2020, 21:13 |
|
||
|
FreeAndNil Dataset
|
|||
|---|---|---|---|
|
#18+
ВсеРазумный Что, ручки уже тянуться запихнуть не впехуемое ? Какие шаловливые. скорее, голова любознательная. Иногда проще сделать и посмотреть на результат, чем теорией заниматься :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.08.2020, 01:44 |
|
||
|
FreeAndNil Dataset
|
|||
|---|---|---|---|
|
#18+
Док, Скушает так Код: pascal 1. Всё кушает, что состоит в иерархии TObject ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.08.2020, 02:06 |
|
||
|
FreeAndNil Dataset
|
|||
|---|---|---|---|
|
#18+
Вопрос по FreeAndNil. Решил не плодить тем. Есть процедура Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. Компиляция проходит без ошибок. НО при выполнении на последней строке FreeAndNil (OtvJSArNotDuble); выдает ошибку "Access violation at address 006xxxxx in module AAA.exe. Read of address 00000008" . Причем если строки FreeAndNil (OtvJSAr); и FreeAndNil (OtvJSArNotDuble); поменять местами то ошибка остается на второй строке. В чем проблема? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2020, 00:17 |
|
||
|
FreeAndNil Dataset
|
|||
|---|---|---|---|
|
#18+
Mechanic17 Вопрос по FreeAndNil. Есть процедура Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. Компиляция проходит без ошибок. НО при выполнении на последней строке FreeAndNil (OtvJSArNotDuble); выдает ошибку "Access violation. Read address 000008" . Причем если строки FreeAndNil (OtvJSAr); и FreeAndNil (OtvJSArNotDuble); поменять местами то ошибка остается на второй строке. В чем проблема? у тебя где-то что-то уже умерло, но ты продолжаешь обращаться по несуществующему адресу обычно то, что внутри твоего try ... finally гораздо интереснее посмотреть ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2020, 00:20 |
|
||
|
FreeAndNil Dataset
|
|||
|---|---|---|---|
|
#18+
defecator, Код: 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. На строке FreeAndNil (OtvJSArNotDuble); выскакивает ошибка и сообщения ShowMessage ('конец3'); я уже не получаю. Работаю на Delphi 10.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2020, 00:31 |
|
||
|
FreeAndNil Dataset
|
|||
|---|---|---|---|
|
#18+
Mechanic17 defecator, Код: 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. На строке FreeAndNil (OtvJSArNotDuble); выскакивает ошибка и сообщения ShowMessage ('конец3'); я уже не получаю. Работаю на Delphi 10.3 мнея в этом коде настораживает момент, когда ты получаешь ошибку - "не понял структуру данных", но затем упорно что-то с этой неправильной структурой данных делаешь в моём понимании должно быть примерно так: Код: pascal 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2020, 00:41 |
|
||
|
FreeAndNil Dataset
|
|||
|---|---|---|---|
|
#18+
defecator, тут вы правы. Но т.к. проблем в if нет (т.е. все хорошо парсится и дальше нужный элемент перекидывается из OtvJSA в OtvJSArNotDuble и выводится в Memo) то не проработал еще эту часть в else . Теперь устранил ваше замечание. Кстати попробовал вариант. Ошибка осталась. Код: pascal 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2020, 00:49 |
|
||
|
FreeAndNil Dataset
|
|||
|---|---|---|---|
|
#18+
Mechanic17 defecator, тут вы правы. Но т.к. проблем в if нет (т.е. все хорошо парсится и дальше нужный элемент перекидывается из OtvJSA в OtvJSArNotDuble и выводится в Memo) то не проработал еще эту часть в else . Кстати попробовал вариант. Ошибка осталась. Код: pascal 1. 2. 3. 4. 5. бред, ты уж прости ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2020, 00:52 |
|
||
|
FreeAndNil Dataset
|
|||
|---|---|---|---|
|
#18+
defecator, Понимаю, что бред. А как правильно не понимаю... Код: pascal 1. 2. 3. 4. 5. Выполняется без ошибки... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2020, 01:01 |
|
||
|
FreeAndNil Dataset
|
|||
|---|---|---|---|
|
#18+
Mechanic17 defecator, Понимаю, что бред. А как правильно не понимаю... Код: pascal 1. 2. 3. 4. 5. Выполняется без ошибки... а что там внутри try..finally ? появилось что-то свеженького, или осталось, как и было ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2020, 01:11 |
|
||
|
FreeAndNil Dataset
|
|||
|---|---|---|---|
|
#18+
defecator, Только это Код: pascal 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2020, 01:16 |
|
||
|
FreeAndNil Dataset
|
|||
|---|---|---|---|
|
#18+
defecator, Если убрать строку Код: pascal 1. , то все хорошо завершается... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2020, 01:24 |
|
||
|
FreeAndNil Dataset
|
|||
|---|---|---|---|
|
#18+
Тут http://www.delphibasics.ru/FreeAndNil.php пишут: Код: pascal 1. 2. 3. 4. 5. 6. 7. Никакого исключения не произойдёт - второй FreeAndNil не ничего делает. И это действительно так: Код: pascal 1. 2. 3. 4. 5. 6. FreeAndNil (OtvJSArNotDuble); FreeAndNil (OtvJSArNotDuble); - выполняется без проблем. FreeAndNil (OtvJSAr); - ошибка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2020, 01:30 |
|
||
|
FreeAndNil Dataset
|
|||
|---|---|---|---|
|
#18+
Mechanic17 defecator, Если убрать строку Код: pascal 1. , то все хорошо завершается... ты что-то не договариваешь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2020, 01:34 |
|
||
|
FreeAndNil Dataset
|
|||
|---|---|---|---|
|
#18+
defecator, проблем в if нет (т.е. все хорошо парсится и дальше нужный элемент перекидывается из OtvJSA в OtvJSArNotDuble и выводится в Memo) В else не заходим! mmo2.text НЕ пустой там уже ответ от сервера. Ведь это procedure TForm1.Button7Click - Button7 ;) Но переменные OtvJSA и OtvJSArNotDuble существуют ТОЛЬКО в этой процедуре. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2020, 01:37 |
|
||
|
FreeAndNil Dataset
|
|||
|---|---|---|---|
|
#18+
Mechanic17 defecator, проблем в if нет (т.е. все хорошо парсится и дальше нужный элемент перекидывается из OtvJSA в OtvJSArNotDuble и выводится в Memo) В else не заходим! mmo2.text НЕ пустой там уже ответ от сервера. Ведь это procedure TForm1.Button7Click - Button7 ;) дебаг тоже не работает ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2020, 01:42 |
|
||
|
FreeAndNil Dataset
|
|||
|---|---|---|---|
|
#18+
Mechanic17 Если убрать строку Код: pascal 1. , то все хорошо завершается... Потому что двойное удаление у тебя. Ты в массив добавляешь элемент, которым владеет другой массив. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2020, 02:23 |
|
||
|
FreeAndNil Dataset
|
|||
|---|---|---|---|
|
#18+
defecator, моя голова не работает... Что я там должен увидеть/не увидеть? В такой связке ошибки нет. Но почему она вообще появляется??? Код: pascal 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2020, 02:33 |
|
||
|
FreeAndNil Dataset
|
|||
|---|---|---|---|
|
#18+
Kazantsev Alexey Mechanic17 Если убрать строку Код: pascal 1. , то все хорошо завершается... Потому что двойное удаление у тебя. Ты в массив добавляешь элемент, которым владеет другой массив. Да. И надеюсь, что этот элемент теперь существует в двух массивах, а не как указатель на элемент первого массива. Тогда как нужно было скопировать этот элемент? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2020, 02:44 |
|
||
|
FreeAndNil Dataset
|
|||
|---|---|---|---|
|
#18+
Mechanic17 Тогда как нужно было скопировать этот элемент? Например, так: Код: pascal 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2020, 02:52 |
|
||
|
FreeAndNil Dataset
|
|||
|---|---|---|---|
|
#18+
Kazantsev Alexey, Спасибо. Код: pascal 1. Ваша рекомендация снимает ошибку. Но в чем был конфликт? Пусть даже OtvJSArNotDuble хранит лишь указатель на один из элементов OtvJSAr. И когда удалил OtvJSArNotDuble остальные элементы OtvJSAr ведь еще существуют. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2020, 11:22 |
|
||
|
FreeAndNil Dataset
|
|||
|---|---|---|---|
|
#18+
Mechanic17, JSONArray при удалении, удаляет содержащиеся в нём элементы. В твоём случае, два массива имеют ссылку на один и тот же объект. Соответственно, когда один из массивов удаляет объект по ссылке, второй массив ссылается на уже удалённый объект. При попытке удалить объект второй раз и возникает ошибка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2020, 11:40 |
|
||
|
FreeAndNil Dataset
|
|||
|---|---|---|---|
|
#18+
Возможно OtvJSArNotDuble был добавлен в OtvJSAr, и OtvJSAr владеет и уничтожает OtvJSArNotDuble при своем уничтожении. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2020, 11:47 |
|
||
|
FreeAndNil Dataset
|
|||
|---|---|---|---|
|
#18+
Я не увидел вторую страницу :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2020, 11:47 |
|
||
|
FreeAndNil Dataset
|
|||
|---|---|---|---|
|
#18+
Код: pascal 1. 2. 3. Предположительно, FreeAndNil (OtvJSArNotDuble) уничтожает все внутренние итемы, которые были уже уничтожены предыдущей строкой ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.12.2020, 21:04 |
|
||
|
FreeAndNil Dataset
|
|||
|---|---|---|---|
|
#18+
Mechanic17 Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2020, 13:25 |
|
||
|
|

start [/forum/topic.php?all=1&fid=58&tid=2037750]: |
0ms |
get settings: |
7ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
140ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
73ms |
get tp. blocked users: |
2ms |
| others: | 203ms |
| total: | 448ms |

| 0 / 0 |
