|
|
|
Забивается оперативка
|
|||
|---|---|---|---|
|
#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. 38. 39. 40. 41. 42. 43. вторая Код: 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. У второй формы: Align = alClient AlphaBlend = true AlphaBlend = 200 Color = clBlack TransparentColor = true TransparentColorValue = clFuchsia На второй форме лежит панель: Color = clFuchsia BevelOuter = bvNone Из первой формы нажимаю по кнопке несколько раз и вижу как забивается оперативка ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2017, 22:02:18 |
|
||
|
Забивается оперативка
|
|||
|---|---|---|---|
|
#18+
А какой именно процесс забивает оперативку - без понятия. Точно не моя программа. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2017, 22:04:41 |
|
||
|
Забивается оперативка
|
|||
|---|---|---|---|
|
#18+
Похоже процесс: Диспетчер окон рабочего стола ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2017, 22:11:44 |
|
||
|
Забивается оперативка
|
|||
|---|---|---|---|
|
#18+
Miracle9...Точно не моя программа. 1. dpr в студию 2. Для проверки убрать обработчи Form1 3. Убедиться в правильности использования глобальной переменной Form1 в первой форме Form1 := TForm1.Create(Application); ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2017, 22:37:33 |
|
||
|
Забивается оперативка
|
|||
|---|---|---|---|
|
#18+
FreedoomMiracle9...Точно не моя программа. 1. dpr в студию 2. Для проверки убрать обработчи Form1 3. Убедиться в правильности использования глобальной переменной Form1 в первой форме Form1 := TForm1.Create(Application); "1. dpr в студию" Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2017, 22:42:20 |
|
||
|
Забивается оперативка
|
|||
|---|---|---|---|
|
#18+
Miracle9, по п. 1 - Ок Form1 автоматически не создаётся. Осталось проверить остальное. Для гарантии блокировки повторного использования Form1 предлагаю сравнивать Form1 <> nil, а после Form1.Free добавить Form1 := nil ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2017, 22:48:49 |
|
||
|
Забивается оперативка
|
|||
|---|---|---|---|
|
#18+
Freedoomа после Form1.Free добавить Form1 := nil FreeAndNil всеж короче будет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2017, 23:13:43 |
|
||
|
Забивается оперативка
|
|||
|---|---|---|---|
|
#18+
FreedoomMiracle9, по п. 1 - Ок Form1 автоматически не создаётся. Осталось проверить остальное. Для гарантии блокировки повторного использования Form1 предлагаю сравнивать Form1 <> nil, а после Form1.Free добавить Form1 := 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. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. все ровно грузиться ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2017, 23:20:38 |
|
||
|
Забивается оперативка
|
|||
|---|---|---|---|
|
#18+
Miracle9А какой именно процесс забивает оперативку - без понятия. Точно не моя программа. Что за ерунда... Диспетчер задач в разрезе процессов показывает кто сколько съел, при чем как физической, так и виртуальной и рабочей... Монитор ресурсов показывает тоже самое ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2017, 23:40:13 |
|
||
|
Забивается оперативка
|
|||
|---|---|---|---|
|
#18+
P.S. В MSDN https://msdn.microsoft.com/ru-ru/library/windows/desktop/ms633591(v=vs.85).aspx авторYou must not call SetWindowLong with the GWL_HWNDPARENT index to change the parent of a child window. Instead, use the SetParent function. т.к. она нигде не документирована, хотя и используется повсеместно самим майкрософтом.. но вдруг там чего еще нужно указывать.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.10.2017, 23:52:29 |
|
||
|
Забивается оперативка
|
|||
|---|---|---|---|
|
#18+
Поменял Код: pascal 1. Все ровно грузиться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2017, 00:03:15 |
|
||
|
Забивается оперативка
|
|||
|---|---|---|---|
|
#18+
Не то написал заменил на Код: pascal 1. Продолжает грузить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2017, 00:04:30 |
|
||
|
Забивается оперативка
|
|||
|---|---|---|---|
|
#18+
Нашёл в чём прикол: У первой формы ставим TransparentColor = false и всё начинает работать нормально. Версия делфи Delphi 10.1 Berlin ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2017, 00:10:49 |
|
||
|
Забивается оперативка
|
|||
|---|---|---|---|
|
#18+
ДокFreeAndNil всеж короче будет Да, но это вызов процедуры - небольшая потеря производительности. Когда присал про проверку Form1 на nil, подразумевал, следующую конструкцию: Код: pascal 1. 2. 3. 4. 5. 6. 7. Miracle9 все ровно грузиться Выполнить п.2 - убрать обработчики для TForm1 FormCreate и FormShow В FormCreate, в отличии от FormShow, Handle может быть ещё не определён. Проверь скобки в GetWindowLong(Handle, GWL_EXSTYLE) or WS_EX_TRANSPARENT and (not WS_EX_APPWINDOW) В таком варианте выполняется 1 not 2 and 3 or С учётом значений констант WS_EX* получится GetWindowLong() or WS_EX_TRANSPARENT ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2017, 00:16:38 |
|
||
|
Забивается оперативка
|
|||
|---|---|---|---|
|
#18+
Freedoom, какая еще "производительность" в месте, где создаются/убиваются формы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2017, 00:20:29 |
|
||
|
Забивается оперативка
|
|||
|---|---|---|---|
|
#18+
FreedoomДокFreeAndNil всеж короче будет Да, но это вызов процедуры - небольшая потеря производительности Вы издеваетесь? Она же inline Код: pascal 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2017, 00:26:25 |
|
||
|
Забивается оперативка
|
|||
|---|---|---|---|
|
#18+
Вообще всё убрал из Form1 убрал FormCreate и FormShow. Все ровно грузит. В TransparentColor у Form1 ставлю true грузит ставлю false не грузит ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2017, 00:30:50 |
|
||
|
Забивается оперативка
|
|||
|---|---|---|---|
|
#18+
авторВ FormCreate, в отличии от FormShow, Handle может быть ещё не определён. Он определен в любом месте при обращении к Handle. Там Lazy Initialization Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. + FormCreate вызывается уже в AfterConstruction (Если вы не мазохист с флагом OldCreateOrder) т.е. все конструкторы уже отработали, чему там еще инициализироваться... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2017, 00:32:40 |
|
||
|
Забивается оперативка
|
|||
|---|---|---|---|
|
#18+
X-Cite, каюсь - отстал от последних версий ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2017, 00:41:45 |
|
||
|
Забивается оперативка
|
|||
|---|---|---|---|
|
#18+
Miracle9Вообще всё убрал из Form1 убрал FormCreate и FormShow. Все ровно грузит. В TransparentColor у Form1 ставлю true грузит ставлю false не грузит TransparentColor всего лишь добавляет окну WS_EX_LAYERED и вызывает SetLayeredWindowAttributes Больше там ничего нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2017, 00:43:37 |
|
||
|
Забивается оперативка
|
|||
|---|---|---|---|
|
#18+
Miracle9Похоже процесс: Диспетчер окон рабочего стола конечно DWM забивает, ты же указал прозрачность AlphaBlend = 200? кто-то же должен за неё "платить", так? PS: уточнил бы что за винда, 7-ка? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2017, 07:07:42 |
|
||
|
Забивается оперативка
|
|||
|---|---|---|---|
|
#18+
kealon(Ruslan)Miracle9Похоже процесс: Диспетчер окон рабочего стола конечно DWM забивает, ты же указал прозрачность AlphaBlend = 200? кто-то же должен за неё "платить", так? PS: уточнил бы что за винда, 7-ка? 10ка (версия 1709) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2017, 12:31:14 |
|
||
|
Забивается оперативка
|
|||
|---|---|---|---|
|
#18+
Miracle9, второй день с ней сижу, она мне уже не нравится что то там серьёзно поменяли в DWM ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2017, 12:38:20 |
|
||
|
Забивается оперативка
|
|||
|---|---|---|---|
|
#18+
А знаете ещё в чём прикол, со временем, в Диспетчере Задач, этот процесс возвращается к 100мб (или даже меньше) занимаемой памяти, а общий процент занятой оперативки не снижается. А если закрыть какой нибудь файрфокс, то он снизиться (т.е.показатель % не заморожен). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.10.2017, 13:27:58 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39541363&tid=2041683]: |
0ms |
get settings: |
9ms |
get forum list: |
17ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
203ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
40ms |
get tp. blocked users: |
1ms |
| others: | 236ms |
| total: | 523ms |

| 0 / 0 |
