|
|
|
Исключение в MoveTo
|
|||
|---|---|---|---|
|
#18+
авторВысылать команды, например "Ноду с ID=xxxx переместить под ноду с ID=yyyy" Какие конкретно ID? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2018, 17:46 |
|
||
|
Исключение в MoveTo
|
|||
|---|---|---|---|
|
#18+
makhaonвыполнение процедуры в основном потоке, На баг никак не повлияло. Ч.Т.Д. 21168555 Ariochпохоже иногда в переменной Session.NodeFields.RootNode оказывается указатель не на TNode (или что там должно быть), а на объект какого-то другого класса ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2018, 18:03 |
|
||
|
Исключение в MoveTo
|
|||
|---|---|---|---|
|
#18+
makhaonКакие конкретно ID? business domain это уже тебе виднее, какие данные в твоей прикладной задаче позволяют уникально идентифицировать те или иные сущности ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2018, 18:04 |
|
||
|
Исключение в MoveTo
|
|||
|---|---|---|---|
|
#18+
Arioch, попробую пока что костыль: автор if (Node is TTreeNode) and (Node2 is TTreeNode) then Node.MoveTo(Node2, naAddChild); посмотрим, как повлияет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2018, 18:44 |
|
||
|
Исключение в MoveTo
|
|||
|---|---|---|---|
|
#18+
makhaon, тогда уж и логирование вставь Код: pascal 1. ....но если там и вовсе не объект а какой-то просто мусор, то оно свалится на вызове ClassName что, впрочем, тоже будет вполне себе результат. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2018, 19:27 |
|
||
|
Исключение в MoveTo
|
|||
|---|---|---|---|
|
#18+
а лучше еще и заложиться, что у тебя в разных модулях могут быть классы с одинаковым названием http://docwiki.embarcadero.com/Libraries/Tokyo/en/System.TObject.QualifiedClassName а если такого нет, то http://docwiki.embarcadero.com/Libraries/Tokyo/en/System.TObject.UnitName ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2018, 19:31 |
|
||
|
Исключение в MoveTo
|
|||
|---|---|---|---|
|
#18+
makhaon, помимо прочего, в EurekaLog есть IsValidObject в ELowLevel. Кстати, memory-функции EurekaLog используются? А то там есть очистка удаляемой памяти. Может, у тебя ссылка где-то на удалённый объект. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2018, 19:33 |
|
||
|
Исключение в MoveTo
|
|||
|---|---|---|---|
|
#18+
GunSmokerА то там есть очистка удаляемой памяти и он затирает минус единицами вместо какого-нибудь наглядно-вычурного DEADBEEF ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2018, 19:49 |
|
||
|
Исключение в MoveTo
|
|||
|---|---|---|---|
|
#18+
Ariochи он затирает минус единицами вместо какого-нибудь наглядно-вычурного DEADBEEF ? Нет, нулями или DEADBEEF в зависимости от настроек. P.S. У меня стойкое ощущение, что -1 тесно связана с nil, но не могу вспомнить / сообразить, когда это бывает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2018, 20:39 |
|
||
|
Исключение в MoveTo
|
|||
|---|---|---|---|
|
#18+
makhaon, под отладчиков же воспроизводится??? Можно так: Код: pascal 1. 2. 3. 4. 5. 6. Отладчик встанет, можно будет и аргументы проанализировать и по шагам повторить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2018, 21:19 |
|
||
|
Исключение в MoveTo
|
|||
|---|---|---|---|
|
#18+
GunSmoker, авторmakhaon, под отладчиков же воспроизводится??? увы, все разумные варианты завалить под отладкой ни к чему не привели. оно то и в жизни падает нечасто. но, увы, стабильно :( В эврике включено catch memory problem и fill freed memory with zeros. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.02.2018, 23:54 |
|
||
|
Исключение в MoveTo
|
|||
|---|---|---|---|
|
#18+
makhaon, https://blogs.msdn.microsoft.com/vijaysk/2012/10/26/tools-to-simulate-cpu-memory-disk-load/ ps. вирусы, антивирусы, спец-софт-дрова на испытуемом есть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2018, 00:57 |
|
||
|
Исключение в MoveTo
|
|||
|---|---|---|---|
|
#18+
kep-ko, вирусы - крайне маловероятно. антивирус - nod32 и на 2003-м был и сейчас, на 2012 остался. вообще - то он как-то не замечен за пакостями. не думаю я на него. Код: pascal 1. добавил в проверки. посмотрю, спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.02.2018, 13:53 |
|
||
|
Исключение в MoveTo
|
|||
|---|---|---|---|
|
#18+
В общем, нашли закономерность, когда падает. При логине по RDP или при переключении пользователей. Пробую ловить WM_WTSSESSION_CHANGE, временно отключать обработку дерева, потом включать назад. Увы, но не помогло. При включении почти сразу же валится с AV, как обычно. В разных местах на доступе к элементам дерева. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.02.2018, 13:07 |
|
||
|
Исключение в MoveTo
|
|||
|---|---|---|---|
|
#18+
makhaon, Я бы подумал в сторону изменения архитектуры а-ля MVC. Привязка к спонтанно изменяемым структурам не есть хорошо в любом случае. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.02.2018, 13:59 |
|
||
|
Исключение в MoveTo
|
|||
|---|---|---|---|
|
#18+
Врятли mvc поможет, если дерево тупо валится при смене юзера. Удалось сделать минимальное приложение. Воспроизведение бага: запускаем под отладкой. Сменяем пользователя на другого, обычным способом, заходим назад - получаем AV. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.02.2018, 14:24 |
|
||
|
Исключение в MoveTo
|
|||
|---|---|---|---|
|
#18+
Среда - XE6, как уже писал. Версия операционки, скорее всего, особо значения не имеет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.02.2018, 14:26 |
|
||
|
Исключение в MoveTo
|
|||
|---|---|---|---|
|
#18+
makhaonВрятли mvc поможет, если дерево тупо валится при смене юзера. Валится не дерево, а твой код, который оперирует неустойчивыми параметрами вроде ItemID. Просто работай с inmem-tree (типа XML) и пересоздавай его визуальное представление при модификациях. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.02.2018, 14:34 |
|
||
|
Исключение в MoveTo
|
|||
|---|---|---|---|
|
#18+
Arioch_TrulyМеня в свое время СИЛЬНО ругали на Stack Overflow за передачу TForm.Handle в поток, хотя лёгкой практической альтернативы так и не предложили. Если очень хочется передать TForm.Handle в поток, то это можно делать. Следует лишь понимать, что тогда в рантайме не нужно изменять некоторые свойства формы, которые приводят к RecreateWnd (например, BorderStyle). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.02.2018, 14:35 |
|
||
|
Исключение в MoveTo
|
|||
|---|---|---|---|
|
#18+
makhaonСменяем пользователя на другого, обычным способом, заходим назад - получаем AV. Т.е. выводим пользователи из interactive desktop - все окна (GDI objects) фактически уничтожаются Входим обратно - создаются заново. А дальше - что угодно, от левых HWND и до потерянных дополнительных байтов информации, привязанных к внутренним структурам Windows (всякие getWindowLong) Предположение проверял? Ariochпохоже иногда в переменной Session.NodeFields.RootNode оказывается указатель не на TNode (или что там должно быть), а на объект какого-то другого класса ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.02.2018, 14:44 |
|
||
|
Исключение в MoveTo
|
|||
|---|---|---|---|
|
#18+
Квейдчто тогда в рантайме не нужно изменять некоторые свойства формы ....через 3 года они покупают нвоую версию Delphi с частично переписанным VCL и.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.02.2018, 14:44 |
|
||
|
Исключение в MoveTo
|
|||
|---|---|---|---|
|
#18+
КвейдArioch_TrulyМеня в свое время СИЛЬНО ругали на Stack Overflow за передачу TForm.Handle в поток, хотя лёгкой практической альтернативы так и не предложили. Если очень хочется передать TForm.Handle в поток, то это можно делать. Следует лишь понимать, что тогда в рантайме не нужно изменять некоторые свойства формы, которые приводят к RecreateWnd (например, BorderStyle). кое-что проверил, уточняю: КвейдСледует лишь понимать, что тогда в рантайме не нужно изменять некоторые свойства формы, которые приводят к RecreateWnd (например, Parent). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.02.2018, 14:49 |
|
||
|
Исключение в MoveTo
|
|||
|---|---|---|---|
|
#18+
Arioch, У меня было предположение, что винда свои деревья во время перелогина или захода на rdp полностью или частично пересоздаёт. Ну ок, если так. Но сделать то что? :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.02.2018, 14:50 |
|
||
|
Исключение в MoveTo
|
|||
|---|---|---|---|
|
#18+
1) не смешивать данные и визуальные компоненты 2) поменять компонент дерева ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.02.2018, 15:46 |
|
||
|
Исключение в MoveTo
|
|||
|---|---|---|---|
|
#18+
Телепаты существуют! 21167771 Соколинский БорисСравнительно недавно обнаружил, что при пересоздании окна treeview все адреса node-ов меняются. Возможно, что-то такое имеет место. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.02.2018, 15:49 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39598542&tid=2041182]: |
0ms |
get settings: |
8ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
161ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
44ms |
get tp. blocked users: |
1ms |
| others: | 205ms |
| total: | 453ms |

| 0 / 0 |
