|
|
|
Form.OnClose caFree
|
|||
|---|---|---|---|
|
#18+
какая то бессмыслица у меня получилась... вроде все элементарно! сделал класс формы, в нем на событие Form.OnClose делаю Action:=caFree, затем этот класс наследовал делаю в методе другого класса обычный вызов этого наследника Form.ShowModal, по ответу начинаю ПОСЛЕДОВАТЕЛЬНО проверять свойства наследника - одно и то же свойство первый раз доступно, а следующей сразу проверкой - ошибка доступа я конечно понимаю, что после получения ShowModal происходит OnClose с caFree, но почему в одном и том же методе свойства объекта вдруг пропадают постепенно, а не сразу, причем раньше этот же код работал без проблем, да и в других местах работает аналогичная логика, но насколько долго!? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2020, 13:02 |
|
||
|
Form.OnClose caFree
|
|||
|---|---|---|---|
|
#18+
wolverin я конечно понимаю, что после получения ShowModal происходит OnClose с caFree, но почему в одном и том же методе свойства объекта вдруг пропадают постепенно, а не сразу, причем раньше этот же код работал без проблем, да и в других местах работает аналогичная логика, но насколько долго!? Потому что после ShowModal вы читаете мусор. Иногда там, совершенно случайно, оказывается нужное значение. До этого работало исключительно чудом. Нормальный подход в таком случае: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. И не трогать OnClose(); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2020, 13:05 |
|
||
|
Form.OnClose caFree
|
|||
|---|---|---|---|
|
#18+
alekcvp, самое интересное что после ShowModal всегда нормально было много лет, а тут вдруг перестало, и почему вдруг перестало непонятно ) посмотрел старый exe - нормально работает, а вновь дописанный вообще в другом месте - вываливается в ошибку бред какой то ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2020, 13:11 |
|
||
|
Form.OnClose caFree
|
|||
|---|---|---|---|
|
#18+
больше то всего меня удивляет то, что первое чтение свойства доступно, доступно даже следующее в выражениях и операторах, а вот уже обращение второе (первое ок) с пересылкой куда то - ошибка ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2020, 13:19 |
|
||
|
Form.OnClose caFree
|
|||
|---|---|---|---|
|
#18+
странный этот ваш дельфи, в VC++ я бы при завершении кучу неосвобожденной памяти увидел, а тут черт знает куда все девается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2020, 13:21 |
|
||
|
Form.OnClose caFree
|
|||
|---|---|---|---|
|
#18+
wolverin странный этот ваш дельфи, в VC++ я бы при завершении кучу неосвобожденной памяти увидел, а тут черт знает куда все девается. ReportMemoryLeaksOnShutdown := True; Сейчас бы сравнивать дельфи с C++, где можно отстрелить себе ногу из чихнувшего кота... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2020, 13:24 |
|
||
|
Form.OnClose caFree
|
|||
|---|---|---|---|
|
#18+
wolverinв VC++ я бы при завершении кучу неосвобожденной памяти увидел Наоборот, ты бы с таким подходом увидел кучу обращений к уже освобождённой памяти. Как тебе и сказали выше. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2020, 13:26 |
|
||
|
Form.OnClose caFree
|
|||
|---|---|---|---|
|
#18+
alekcvp ReportMemoryLeaksOnShutdown := True; гугл говорит в Delphi 7 нету вообще такого, хотя делал на VC++ 2003 и все уже тогда отображало ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2020, 13:32 |
|
||
|
Form.OnClose caFree
|
|||
|---|---|---|---|
|
#18+
wolverin самое интересное что после ShowModal всегда нормально было много лет, а тут вдруг перестало, и почему вдруг перестало непонятно ) посмотрел старый exe - нормально работает, а вновь дописанный вообще в другом месте - вываливается в ошибку бред какой то Самое интересное, что я в своей деревне 10 лет без прав ездил и всё нормально было. А тут вдруг в городе в ДТП попал и почему - непонятно. Пересмотрел старые записи с регистратора - ну нормально же ездил, а на этой улице в ДТП попал. Хотя руль крутил точно так же... Бред какой-то. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2020, 13:35 |
|
||
|
Form.OnClose caFree
|
|||
|---|---|---|---|
|
#18+
alekcvp Самое интересное, что я в своей деревне 10 лет без прав ездил и всё нормально было. А тут вдруг в городе в ДТП попал и почему - непонятно. Пересмотрел старые записи с регистратора - ну нормально же ездил, а на этой улице в ДТП попал. Хотя руль крутил точно так же... Бред какой-то. не так - 10 лет ездил, положил сумку в багажник и теперь с ней в дтп попадаю )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2020, 13:38 |
|
||
|
Form.OnClose caFree
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov Наоборот, ты бы с таким подходом увидел кучу обращений к уже освобождённой памяти. Как тебе и сказали выше. да это я к слову про неосвобожденную (в том смысле что я освобождаю память, но никак не могу посмотреть все освобождено или косяк за мной остался, от этого и сложилось впечатления что этот каФрии ничего не освобождает), в моем примере я бы получил почти всегда мусор или AV, а тут 10 лет ездило без проблем! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2020, 13:39 |
|
||
|
Form.OnClose caFree
|
|||
|---|---|---|---|
|
#18+
при этом старый exe по прежнему готов ездить в этом участке кода БЕЗ ПРОБЛЕМ!!! а новый - надо логику поменять ) при этом ничего кроме кода в другом месте не менялось ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2020, 13:41 |
|
||
|
Form.OnClose caFree
|
|||
|---|---|---|---|
|
#18+
wolverinв моем примере я бы получил почти всегда мусор или AV, а тут 10 лет ездило без проблем! Ну так просто твоё "почти всегда" растянулось на 10 лет. Новичкам везёт. А AV в Дельфи ты не получил исключительно из-за использования собственного менеджера памяти с пулом, который не отдаёт память операционке без необходимости. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2020, 13:45 |
|
||
|
Form.OnClose caFree
|
|||
|---|---|---|---|
|
#18+
wolverinпри этом ничего кроме кода в другом месте не менялось Внезапно "код в другом месте" начал использовать память, освобождённую в этом месте, и менять в ней байтики. Сурпрайз?.. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2020, 13:48 |
|
||
|
Form.OnClose caFree
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov А AV в Дельфи ты не получил исключительно из-за использования собственного менеджера памяти с пулом, который не отдаёт память операционке без необходимости. теперь понятно, спасибо получается освобождай не освобождай, дельфи за меня решит ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2020, 13:48 |
|
||
|
Form.OnClose caFree
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov Внезапно "код в другом месте" начал использовать память, освобождённую в этом месте, и менять в ней байтики. Сурпрайз?.. в том то и дело, что ничего не использовало память в этом месте, обычное однопотоковое приложение, проверка свойства строго последовательно одного и того же в качестве теста. видимо сам код в памяти стал "лежать" по другому и этот зловещий пул параллельно вытряхивает часть освобожденной памяти при втором опросе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2020, 13:49 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=40022049&tid=2037828]: |
0ms |
get settings: |
8ms |
get forum list: |
18ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
40ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
63ms |
get tp. blocked users: |
1ms |
| others: | 265ms |
| total: | 410ms |

| 0 / 0 |
