Что быстрее отрисуется набор фреймов или панелей?

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

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

Re: Что быстрее отрисуется набор фреймов или панелей?

Сообщение Снег Север » 23.07.2020 13:24:43

zub писал(а):На формах не надо ничего хранить, и о существовании друг друга им лучше не знать

Кому как. Я не вижу смысла связанный с формой функционал вытаскивать в отдельный "бесформенный" модуль без особой необходимости. И стандартный случай - вызов из одной формы другой, с передачей и возвратом некоторых данных.
Аватара пользователя
Снег Север
долгожитель
 
Сообщения: 2638
Зарегистрирован: 27.11.2007 16:14:47

Re: Что быстрее отрисуется набор фреймов или панелей?

Сообщение olegy123 » 30.07.2020 09:05:39

jsa писал(а):вариант 1. - Panel 5штук (Align = left, и последний allclient) разделенные сплиттерами,
вариант 2. - Фреймы 5штук (Align = left, и последний allclient) разделенные сплиттерами,

Фрейм выгоден при написании модульных программ, например у вас есть форма записи клиента, его нужно повторить в разных частях программы. Тут два способа: либо оформить в отдельный компонент, либо нарисовать в виде формы и вставлять это в виде фрейма.

jsa писал(а):Что будет быстрее отрисовываться при перемещение сплиттера?

самое быстро рисовать на канве, дело в том что всякие Panel/Form/Edit и прочее - это TWindow, которые общаются с миром при помощи оконных сообщений. А они не очень быстрые. При больших количествах, будет чувствоваться задержка при реакциях. Ну чтобы перерисовать - нужно пройти главному потоку по всем элементам, собрать сообщения, подсчитать клавиши, где ходила мышка.. выполнить перерисовку.

Добавлено спустя 4 минуты 16 секунд:
Если нарисовать сетку как в екселе только одними Tedit-ами, то поймете, что современная техника еще не в том поколении чтобы шустро рисовать эту сетку.
olegy123
долгожитель
 
Сообщения: 1586
Зарегистрирован: 25.02.2016 12:10:20

Пред.

Вернуться в Lazarus

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

Сейчас этот форум просматривают: Yandex [Bot] и гости: 11

Рейтинг@Mail.ru