Memo-поле передергивается при возврате фокуса на него

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Memo-поле передергивается при возврате фокуса на него

Сообщение meligo » 30.11.2015 10:01:00

Недавно обратил внимание на один такой неприятный момент: в Lazarus'е в отличие от Delphi
Memo-поле, загруженное достаточно большим текстом (чтобы был заполнен весь экран - заметнее)
неприятно передергивается ("пырскает") при смене фокуса и последующим возвратом на него.

С чем это связано, как побороть?

Добавлено спустя 3 часа 58 минут 48 секунд:
Для воспроизведения эффекта нужно собрать абсолютно простую программу (вообще без кода):

1. Бросить на форму Panel1, выровняв её (AlTop),на неё - Button1 и ниже на форму - Memo1 (alClient, ssVerical);
2. Запустить эту простейшую программу и, найдя у себя текст побольше, скопировать его на Memo1 (я брал текст прямо из этого форума в Chrome, нажав CTRL-U: "просмотр кода страницы");
3. Вставая мышью то на Button1, то на Memo1 (или ещё лучше - нажав и удерживая клавишу TAB) мы получаем эффект вздрагивания текста в Memo-поле, который абсолютно отсутствует в Delphi!

Сравнивались Lazarus-1.4.4 и D10-Lite (Turbo) под Win7.

Добавлено спустя 5 минут 37 секунд:
Да, и конечно же, забыл указать, программу следует распахнуть на весь экран, чтобы Memo1 было максимальным для лучшего наблюдения эффекта.
Впрочем, я думаю, это и так очевидно. Экран конечно желательно - побольше.

Добавлено спустя 1 час 3 минуты 56 секунд:
Удивительно!
Сейчас попробовал на XE7 - тоже передергивает!
Вероятно, начиная с какой-то версии от D2006 (D10-Turbo) что-то изменили в алгоритмах вывода на Memo, а в Lazaruse - повторили...
Интересно, с какой версии Delphi это произошло, как с этим у старших (последних) версий?
meligo
новенький
 
Сообщения: 18
Зарегистрирован: 22.09.2014 14:07:09

Re: Memo-поле передергивается при возврате фокуса на него

Сообщение Лекс Айрин » 30.11.2015 16:06:05

У меня все лежит на панелях и такого эффекта нет.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Memo-поле передергивается при возврате фокуса на него

Сообщение Vadim » 30.11.2015 18:30:01

У меня тоже ничего не дёргается. Окромя, конечно, курсора, который скачет туды-сюды...
Vadim
долгожитель
 
Сообщения: 4112
Зарегистрирован: 05.10.2006 08:52:59
Откуда: Красноярск

Re: Memo-поле передергивается при возврате фокуса на него

Сообщение resident » 30.11.2015 19:52:14

meligo писал(а):С чем это связано, как побороть?

Обновить дрова на видеокарту?
resident
энтузиаст
 
Сообщения: 605
Зарегистрирован: 13.03.2013 16:58:51

Re: Memo-поле передергивается при возврате фокуса на него

Сообщение meligo » 30.11.2015 19:52:58

Вы повторили все условия эксперимента
Для воспроизведения эффекта нужно собрать абсолютно простую программу (вообще без кода):...

или пробовали на чем-то своем? - Если нет, то в результате нет уверенности...

Добавлено спустя 2 минуты 45 секунд:
Обновить дрова на видеокарту?

Обращаю Ваше внимание, тест изначально проводился на двух компиляторах, при этом эффект наблюдался только в одном случае!
meligo
новенький
 
Сообщения: 18
Зарегистрирован: 22.09.2014 14:07:09

Re: Memo-поле передергивается при возврате фокуса на него

Сообщение Лекс Айрин » 30.11.2015 20:36:23

meligo, скорее всего дело в том, что при расположении Memo прямо на форме оно получает команду перерисоваться при каждом изменении формы, а не при изменении самой Memo.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Memo-поле передергивается при возврате фокуса на него

Сообщение resident » 30.11.2015 20:51:39

meligo писал(а):Обращаю Ваше внимание, тест изначально проводился на двух компиляторах, при этом эффект наблюдался только в одном случае!

Это мешает обновить драйвера?
ИМХО, старье использует DirectX9, новые - 10. Или типа того.
resident
энтузиаст
 
Сообщения: 605
Зарегистрирован: 13.03.2013 16:58:51

Re: Memo-поле передергивается при возврате фокуса на него

Сообщение meligo » 30.11.2015 22:03:26

Повторю, я сравнивал две ОДИНАКОВЫЕ программы на Lazarus'e и Delphi 10 Lite.
Если бы причина была в драйверах, то ОБЕ программы бы вели себя одинаково,
но Lazarus - "пырскает", а Delphi - нет!

Неужели это непонятно? Они ведут себя по разному, вне зависимости от того, какие драйвера стоят - ведь тест на одной и той же машине! Ферштеен?
Это же касается и предыдущего объяснения с перерисовкой - тестовые программы - идентичны, значит всё, что касается первой, должно касаться и второй!

Однако на деле это не так! Вот, можете убедиться сами: https://yadi.sk/d/QkkW8d58krbJi

Здесь в архиве два теста из-под Lazarus 1.4.4 и из-под D10_Lite ОДНОЙ И ТОЙ ЖЕ Программы.
Запускаем и нажимаем клавишу <TAB> и удерживаем её: Delphi - стоит как вкопанная, Lazarus - волнами "пырскает" (как работающий двигатель)
meligo
новенький
 
Сообщения: 18
Зарегистрирован: 22.09.2014 14:07:09

Re: Memo-поле передергивается при возврате фокуса на него

Сообщение ev » 30.11.2015 22:32:29

у меня не наблюдается мерцание (или как там его)
может видео запишешь?

кстати, подобный косяк есть в StringGrid - перерисовка ячеек вызывается больше раз чем требуется
может и тут что подобное?
ev
долгожитель
 
Сообщения: 1775
Зарегистрирован: 27.04.2005 23:19:06
Откуда: Москва

Re: Memo-поле передергивается при возврате фокуса на него

Сообщение meligo » 30.11.2015 22:38:27

ev писал(а):у меня не наблюдается мерцание (или как там его)

У Вас оба exe-шника стоят "мертво"?

Добавлено спустя 1 минуту 45 секунд:
ev, А какая у Вас конфигурация железа?
meligo
новенький
 
Сообщения: 18
Зарегистрирован: 22.09.2014 14:07:09

Re: Memo-поле передергивается при возврате фокуса на него

Сообщение resident » 30.11.2015 22:47:43

meligo
meligo писал(а):идентичны

Это ю нихт ферштеен русиш

Безымянный.png
У вас нет необходимых прав для просмотра вложений в этом сообщении.
resident
энтузиаст
 
Сообщения: 605
Зарегистрирован: 13.03.2013 16:58:51

Re: Memo-поле передергивается при возврате фокуса на него

Сообщение ev » 30.11.2015 23:12:51

У Вас оба exe-шника стоят "мертво"?

я сделал свой exe по инструкции
запустить чужой exe не имею возможности

А какая у Вас конфигурация железа?

cpu intel i5-4670s + ram 16 gb
win 7 pro sp1
lazarus 1.2.6 :)
ev
долгожитель
 
Сообщения: 1775
Зарегистрирован: 27.04.2005 23:19:06
Откуда: Москва

Re: Memo-поле передергивается при возврате фокуса на него

Сообщение sts » 30.11.2015 23:50:25

meligo писал(а):Повторю, я сравнивал две ОДИНАКОВЫЕ программы на Lazarus'e и Delphi 10 Lite.
Если бы причина была в драйверах, то ОБЕ программы бы вели себя одинаково,
но Lazarus - "пырскает", а Delphi - нет!


исходники их наборах компонентов радикально разные

как исправить - копать исходник мемо - искать что порождает лишний Invalidate
sts
постоялец
 
Сообщения: 455
Зарегистрирован: 04.04.2008 12:15:44
Откуда: Тольятти

Re: Memo-поле передергивается при возврате фокуса на него

Сообщение meligo » 30.11.2015 23:52:24

ev, - у меня аналогичная конфигурация, только памяти 8, а Лазарус - 1.4.4.
Можешь выложить ссылку на свой exe-шник на Лазарусе?
Может быть разница в версиях наших Лазарусов...

resident, для Вас, что, новость, что даже различные версии компиляторов Дельфи порождают экзешники различных размеров,
а уж тем более Lazarus?!! Ну Вы даете! 8) - И что мешает Вам набрать эту программу самому, как это сделал, например, ev - это же пара секунд?
Просто я для ленивых выложил уже готовые версии.

Добавлено спустя 5 минут 38 секунд:
sts, это и так понятно, что
исходники их наборах компонентов радикально разные
,
иначе бы это был не Lazarus, а Delphi.

Вопрос то был
С чем это связано, как побороть?
meligo
новенький
 
Сообщения: 18
Зарегистрирован: 22.09.2014 14:07:09

Re: Memo-поле передергивается при возврате фокуса на него

Сообщение sts » 01.12.2015 00:06:28

мне показалось или в D10_Lite.exe отсутсвует манифест а значит темы не работают? (сам exe не запускал)

Добавлено спустя 31 секунду:
meligo писал(а):С чем это связано, как побороть?

как исправить - копать исходник мемо - искать что порождает лишний Invalidate
sts
постоялец
 
Сообщения: 455
Зарегистрирован: 04.04.2008 12:15:44
Откуда: Тольятти

След.

Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 244

Рейтинг@Mail.ru