|
|
|
Получим ли мы утечки памяти, если...
|
|||
|---|---|---|---|
|
#18+
Привет! Если при создании формы мы присвоим результат переменной типа TForm то получим ли мы утечки памяти? Т.е. мы имеем форму типа Код: pascal 1. 2. 3. 4. 5. 6. Создаем ее и убиваем так: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Получим мы тут утечку? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2018, 11:27 |
|
||
|
Получим ли мы утечки памяти, если...
|
|||
|---|---|---|---|
|
#18+
SQL-TalkerПолучим мы тут утечку? Где присвоение? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2018, 11:44 |
|
||
|
Получим ли мы утечки памяти, если...
|
|||
|---|---|---|---|
|
#18+
Пардон: Код: pascal 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2018, 11:50 |
|
||
|
Получим ли мы утечки памяти, если...
|
|||
|---|---|---|---|
|
#18+
SQL-TalkerПардон: Так не получим, если Free в TMyForm каким-то случайным образом не перекрыт. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2018, 11:52 |
|
||
|
Получим ли мы утечки памяти, если...
|
|||
|---|---|---|---|
|
#18+
wadman, Т.е. на этой форме лежит куча разных компонент (форма для редактирования данных из БД) и не смотря на то, что по факту делается Free для переменной с типом не самой формы, а ее родителя ( TForm ), все равно все корректно удалится и память будет освобождена? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2018, 11:59 |
|
||
|
Получим ли мы утечки памяти, если...
|
|||
|---|---|---|---|
|
#18+
SQL-Talker, Да, деструкторы в Delphi виртуальные и если написаны правильно, то всё отработает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2018, 12:01 |
|
||
|
Получим ли мы утечки памяти, если...
|
|||
|---|---|---|---|
|
#18+
SQL-Talker, удалять компоненты будет даже не деструктор родителя родителя (TCustomForm.Destroy), а где-то ещё глубже TComponent.Destroy и TWinControl.Destroy ЕМНИП ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2018, 12:36 |
|
||
|
Получим ли мы утечки памяти, если...
|
|||
|---|---|---|---|
|
#18+
Ок, отлично. Спасибо большое! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2018, 13:05 |
|
||
|
Получим ли мы утечки памяти, если...
|
|||
|---|---|---|---|
|
#18+
SQL-Talkerwadman, Т.е. на этой форме лежит куча разных компонент (форма для редактирования данных из БД) и не смотря на то, что по факту делается Free для переменной с типом не самой формы, а ее родителя ( TForm ), все равно все корректно удалится и память будет освобождена? По факту Free делается ну у родителя а как раз у твоей формы, родитель вызывается позже с помощью inherited. Отладчиком смотрится без каких-либо проблем как что разрушается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2018, 13:19 |
|
||
|
Получим ли мы утечки памяти, если...
|
|||
|---|---|---|---|
|
#18+
SQL-Talker, Главное, если вы перекрываете в своей форме деструктор, то он должен быть оформлен как Код: pascal 1. и в самом деструкторе необходимо вызвать inherited ; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2018, 13:24 |
|
||
|
Получим ли мы утечки памяти, если...
|
|||
|---|---|---|---|
|
#18+
Ariochудалять компоненты будет даже не деструктор родителя родителя (TCustomForm.Destroy), а где-то ещё глубже TComponent.Destroy и TWinControl.Destroy ЕМНИП и для TObject. Вот если родитель старше TObject - тогда да ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2018, 13:38 |
|
||
|
Получим ли мы утечки памяти, если...
|
|||
|---|---|---|---|
|
#18+
у TObject нет свойств .Compontents[i] и .Controls[i] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.07.2018, 18:00 |
|
||
|
Получим ли мы утечки памяти, если...
|
|||
|---|---|---|---|
|
#18+
Ariochу TObject нет свойств .Compontents[i] и .Controls[i]а деструктор есть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2018, 14:16 |
|
||
|
Получим ли мы утечки памяти, если...
|
|||
|---|---|---|---|
|
#18+
SQL-Talker, для конструкций вида: Код: pascal 1. 2. 3. 4. 5. 6. предполагается остановка основного потока приложения в этом месте, (т.е. только MyForm.ShowModal ) до закрытия этой формы; для нескольких окон можно использовать ивент самой формы метод OnClose и прописать в нем: Код: pascal 1. 2. 3. 4. Тогда нет необходимости самому уничтожать окно ( MyForm.Free ), оно само будет уничтожено по закрытии. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.07.2018, 15:35 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39681242&tid=2040570]: |
0ms |
get settings: |
10ms |
get forum list: |
18ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
200ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
60ms |
get tp. blocked users: |
2ms |
| others: | 241ms |
| total: | 551ms |

| 0 / 0 |
