mpro
-
Постов
5 -
Зарегистрирован
-
Посещение
Сообщения, опубликованные mpro
-
-
Последовательность действий:
1. запускаем основное приложение.
2. запускаем второй поток.
3. второй поток пишет в мемо
4. второй поток завершает работу с мемо
5. (?) опцинонально второй поток завершает работу
эффект наблюадется
MemoLog.Lines.SaveToFile('test.log');
MemoLog.Lines.LoadFromFile('test.log');эффект пропадает.
С пустым мемо - всё ок. Эффект также не наблюдается.
-
При попытке выделить текст сгенирированный программно программа начинает тормозить.
в это время "другой" поток остановлен?
Провёл эксперимент с остановкой потока.
Результат тот же. Часть текста - копируется и прокручивается нормально, часть - нет.
Обмен идёт через Synchronize.
-
У меня более 2000 строк, работает как часы. а вот на андроиде такие же проблемы.
Спасибо за ответ, он заставил меня заняться эксперементами.
Проблема оказлась ещё интереснее.
Если вставить/набрать текст в мемо - то всё обрабатывается нормально.
Если программа производит запись в то же Memo программно (из другого потока), то возникает парадоксальная ситуация:
с набранным текстом - всё ок. При попытке выделить текст сгенирированный программно программа начинает тормозить.
Сам бы не поверил, если бы не увидел своими глазами.
-
Доброе время суток, уважаемые коллеги!
Столкнулся с неприятной проблемой при работе с TMemo, а именно - катастрофическа падение производительности при работе с компонентом TMemo.
Баг отлично наблюдается при длине текста ~ 300 строк, платформа - win32, стили без изменений, все события компонента - пустые.
Ососбенно медленно работает выделение текста (Ctrl-A отрабатывает несколько секунд).
Сталкивался ли кто-то с такой проблемой и известно ли её решение?
Возможно для вывода большого количества текста существует более подходящий (может быть сторонний) компонент?
TMemo, проблемы производительности
в TMemo
Опубликовано
Ошибку нашёл.
Ошибка оказалась тривиальной.
Ожидаемая семантика поведение несколько отличалась от того, что было на самом деле.
При добавлении текста с переносами, текст попадает в FLines как одна строка (FLines.Count = 1).
Это приводит к очень странной работе всего компонента.
Сказать баг это или фича сложно.