|
|
|
Удаление объекта
|
|||
|---|---|---|---|
|
#18+
Делаю FreeAndNil (Для кнопки) и получаю ошибку. Ошибка просиходит из недр VCL Код: 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. Кто знает почему ? Создаю объект динамикой ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2018, 10:02 |
|
||
|
Удаление объекта
|
|||
|---|---|---|---|
|
#18+
ВотЭтоДа, ты просто что-то не так делаешь. Если все делать правильно - ошибки не будет. А если неправильно - ошибка. Я в магазине как-то выстоял очередь в кассу, хотел расплатиться, но - "ошибка". И вроде кошелек с собой взял, и все равно - "ошибка". Так ничего и не купил. Никто не знает, почему? Зарплата была днем раньше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2018, 10:24 |
|
||
|
Удаление объекта
|
|||
|---|---|---|---|
|
#18+
Форма удалялась быстрее ( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2018, 11:09 |
|
||
|
Удаление объекта
|
|||
|---|---|---|---|
|
#18+
Почему я не могу удалить компонент в отдельности? Когда формы уже нет Ведь в моём случае, этого компонента нету в TForm.Components[idx] он чисто есть на parent Скорее всего это и баг, в одно и то же время с моим недочётом. Форму удаляем, удаляем компонент, у компонента parent = nil но мы не можем удалить компонент из за StrDispose(FText); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2018, 11:36 |
|
||
|
Удаление объекта
|
|||
|---|---|---|---|
|
#18+
Как удалить привязку компонента к форме ??? Именно компонента, потому что вызов Form.DestroyComponents; ничего не даёт. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2018, 11:52 |
|
||
|
Удаление объекта
|
|||
|---|---|---|---|
|
#18+
Код: pascal 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2018, 11:55 |
|
||
|
Удаление объекта
|
|||
|---|---|---|---|
|
#18+
X-Cite, У меня нет возможности так сделать, сообщение может прилететь и раньше, и позже - я никак не решаю... Ибо, существуют счётчик ссылок, на форму ссылки кончаются - прилетает сообщение удалить формы. Опа - ссылки -1 на кнопку, надо и её удалить... И тут баг Тем более parent уже nil Код: 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. 28. 29. 30. 31. 32. 33. 34. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2018, 12:04 |
|
||
|
Удаление объекта
|
|||
|---|---|---|---|
|
#18+
а что, бывает {$APPTYPE CONSOLE} и Form := TForm.Create(nil); ? если у вас компонент создан с указанием владельца, то его можно НЕ удалять при разрушении формы если нужно его удалить раньше, то никаких проблем в VCL в отличии от FMX, нет только как и всегда, прибегайте к FreeAndNil ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2018, 13:06 |
|
||
|
Удаление объекта
|
|||
|---|---|---|---|
|
#18+
http://docwiki.embarcadero.com/Libraries/Tokyo/en/Vcl.Controls.TControl.Parent Note: The Parent property declared in TControl is similar to the Owner property declared in TComponent, in that the Parent of a control frees the control just as the Owner of a component frees that component ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2018, 13:14 |
|
||
|
Удаление объекта
|
|||
|---|---|---|---|
|
#18+
ВотЭтоДа, Код: pascal 1. Не спасет отца русской демократии?! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2018, 13:16 |
|
||
|
Удаление объекта
|
|||
|---|---|---|---|
|
#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. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2018, 13:44 |
|
||
|
Удаление объекта
|
|||
|---|---|---|---|
|
#18+
Код: pascal 1. 2. 3. 4. 5. Типичная ошибка новичка... У вас But уже битый указатель указывает на область памяти уничтоженного объекта. Кнопки уже нет. Просто пока память не перезатерлась и вроде создается имитация работы. But.Parent := Form; собственно задает кнопке владельца форму и кнопка будет уничтожена при уничтожении формы. Код: 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. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. Как вы думаете что раньше вызовается? Деструктор кнопки или проверка на nil зомби переменной? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2018, 13:46 |
|
||
|
Удаление объекта
|
|||
|---|---|---|---|
|
#18+
Код: pascal 1. ObjectListCount - чему равен? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2018, 13:47 |
|
||
|
Удаление объекта
|
|||
|---|---|---|---|
|
#18+
чччД__, -1 Код: pascal 1. 2. Так как Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2018, 13:52 |
|
||
|
Удаление объекта
|
|||
|---|---|---|---|
|
#18+
чччД__ Код: pascal 1. ObjectListCount - чему равен? ВотЭтоДачччД__, -1 ... Так как ... "Когда вы говорите, Иван Васильевич, такое впечатление, что вы бредите" - (с). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2018, 13:57 |
|
||
|
Удаление объекта
|
|||
|---|---|---|---|
|
#18+
чччД__, Там имелось введу реальный count ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2018, 14:01 |
|
||
|
Удаление объекта
|
|||
|---|---|---|---|
|
#18+
ВотЭтоДа...Там имелось введу... Ты можешь просто ответить - чему равно значение верхнего ограничения счетчика при входе в цикл? чччД__ Код: pascal 1. ObjectListCount - чему равен? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2018, 14:05 |
|
||
|
Удаление объекта
|
|||
|---|---|---|---|
|
#18+
чччД__, Сколько создал объекту, тому и ровна. К примеру создал TForm ровна 0 обратился к свойству font у TForm она уже +1 так как туда попал класс TFont и так далее. Класс TFont оно не может удалить из за свойства NotFree ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2018, 14:16 |
|
||
|
Удаление объекта
|
|||
|---|---|---|---|
|
#18+
ВотЭтоДаНе спасала.. Убрал удаление формы, и в конец программы всунул (Удаляем всё что создали сами - удаляем самым последним - формы) И на фига?! Форма - наследник TComponent и кнопка - наследник TComponent У кнопки будет владелец - форма. Форма и удалит кнопку в момент собственной смерти. Так что все обращения к кнопке после FreeAndNil(Form) - убрать. Это же очевидно. Может стоит книжки почитать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2018, 14:20 |
|
||
|
Удаление объекта
|
|||
|---|---|---|---|
|
#18+
чччД__ Код: pascal 1. ObjectListCount - чему равен? ВотЭтоДа... Сколько создал объекту, тому и ровна. ... С русским у тебя так себе, но предположу, что значение ObjectListCount равно числу объектов. Теперь скажи - сколько раз отработает твой цикл for? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2018, 14:21 |
|
||
|
Удаление объекта
|
|||
|---|---|---|---|
|
#18+
чччД__, Работает как надо. ObjectListCount = 3 ObjectList = 4 (3) И того, как цикл достигнет 4 то он выйдет. И дело сделано. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2018, 14:27 |
|
||
|
Удаление объекта
|
|||
|---|---|---|---|
|
#18+
Чота название на скриншоте какое-то пафосное - NewRtti Super , а код 21483340 смешной 1. нельзя создать TForm без наличия DFM, надо использовать TCustomForm 2. в коде обращение к убитой перед этим переменной But тут 21483485 цикл должен идти от нуля до ObjectListCount-1, а не как у тебя короче, учи матчасть (с) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.06.2018, 14:57 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39659250&tid=2040768]: |
0ms |
get settings: |
10ms |
get forum list: |
20ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
191ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
63ms |
get tp. blocked users: |
2ms |
| others: | 236ms |
| total: | 545ms |

| 0 / 0 |
