Правильный метод отрисовки при изменении размеров объектов.
Модератор: Модераторы
Правильный метод отрисовки при изменении размеров объектов.
Здравствуйте.
Имеется форма с множеством панелей, гридов, сплиттеров.
Скажите пожалуйста, какие существуют методики изменения размеров объектов на форме, так чтобы прорисовка была наиболее плавной и аккуратной.
Часть объектов уже в Anchors прикреплены к границам, и тянутся одновременно с родительским компонентом.
А часть пересчитывается в onResize
Отрисовка происходит дергано, где-то границы появляются залитые белым, где-то компоненты растягиваются не сразу, а по очереди.
Надеюсь понятно описал.
Имеется форма с множеством панелей, гридов, сплиттеров.
Скажите пожалуйста, какие существуют методики изменения размеров объектов на форме, так чтобы прорисовка была наиболее плавной и аккуратной.
Часть объектов уже в Anchors прикреплены к границам, и тянутся одновременно с родительским компонентом.
А часть пересчитывается в onResize
Отрисовка происходит дергано, где-то границы появляются залитые белым, где-то компоненты растягиваются не сразу, а по очереди.
Надеюсь понятно описал.
Ненадо переусложнять формы
Непереусложнил, эффекта нет.
>>Непереусложнил, эффекта нет.
А по первому сообщению вроде как переусложнил. может скрин?
Лучше сделать несколько простых форм вместо одной сложной.
А по первому сообщению вроде как переусложнил. может скрин?
Лучше сделать несколько простых форм вместо одной сложной.
Тут принцип такой, что все данные должны быть видны одновременно.
Потому не переусложнить сложно.
P.S. На форме матрешкой лежат друг на друге 5 шт PairSplitter
Потому не переусложнить сложно.
P.S. На форме матрешкой лежат друг на друге 5 шт PairSplitter
У вас нет необходимых прав для просмотра вложений в этом сообщении.
jsa
И чего хотите? Вам верно казали интерфейс перегружен. Человек не может концентрироваться более чем на 5 максимум 7 элементах.
Отсюда вывод все эти плюшки на главной форме не нужны.
Неужто так сложно изучить как устроены CRM?
И чего хотите? Вам верно казали интерфейс перегружен. Человек не может концентрироваться более чем на 5 максимум 7 элементах.
Отсюда вывод все эти плюшки на главной форме не нужны.
Неужто так сложно изучить как устроены CRM?
То что я хочу, я спросил. Мой вопрос это 1 элемент, т.е. не более 7, значит вы способны сконцентрироваться на нем, но почему-то вас уводит в сторону.И чего хотите?
Кто вам сказал что во время работы в программе требуется во первых концентрация, во вторых на таком большом количестве элементов?Человек не может концентрироваться более чем на 5 максимум 7 элементах.
Меня так и подмывает дать полную оценку вашему выводу, но я отучаю себя хамить хамам которые считают себя умнее всех других. Вдруг ошибаюсь.Отсюда вывод все эти плюшки на главной форме не нужны.
Вопрос конечно интересный, я уже с 2003 года занимаюсь внедрением разных интерфейсов и работаю непосредственно с пользователями, и знаком со спецификой и контингентом, и обстановкой в которой работает именно этот контингенг. Но готов выслушать образованного человека, которому несложно было изучить как устроены CRM .Неужто так сложно изучить как устроены CRM?
Может вы статью укажете, или учебник по которому я могу набраться бесценного опыта, и узреть наконец свои ошибки?
Добавлено спустя 4 минуты 14 секунд:
Re: Правильный метод отрисовки при изменении размеров объектов.
Просьба всем кто не знает ответа на вопрос в теме, но считает своим долгом доказать мне что интерфейс перегружен.
Пожалуйста НЕ надо, мне доказывать это.
Кто знает что можно предпринять для более плавной перерисовки новых размеров и положений, или произвести ее тогда и только тогда когда изменение размера панелей уже закончено, буду благодарен.
- serbod
- постоялец
- Сообщения: 449
- Зарегистрирован: 16.09.2016 10:03:02
- Откуда: Минск
- Контактная информация:
DoubleBuffered := True;
Использовать VirtualTreeView вместо стандартных TreeView и ListView
Уменьшить частоту перерисовки элементов. Если это сложно и непонятно, то можно просто отключать видимость на время изменений состава и размеров.
Спроектировать интерфейс пользователя так, чтобы недостатки не проявлялись. Например, для слабого железа или тонкого клиента использовать упрощенную графическую тему, без анимации и полутонов.
Использовать VirtualTreeView вместо стандартных TreeView и ListView
Уменьшить частоту перерисовки элементов. Если это сложно и непонятно, то можно просто отключать видимость на время изменений состава и размеров.
Спроектировать интерфейс пользователя так, чтобы недостатки не проявлялись. Например, для слабого железа или тонкого клиента использовать упрощенную графическую тему, без анимации и полутонов.
Код: Выделить всё
[quote]spliter.resizestyle:=rsLine{rsPttern};[/quote]>>но я отучаю себя хамить хамам которые считают себя умнее всех других. Вдруг ошибаюсь.
1. Ошибаетесь
2. Плохо отучаете. Не хамите, интерфейс перегружен, вам говорят поделу.
А если в программе отсутствует настройка интерфейса в рантайме - такой интерфейс это еще и хамите пользователю))
Добавлено спустя 4 минуты 26 секунд:
Re: Правильный метод отрисовки при изменении размеров объектов.
serbod
>>Если это сложно и непонятно, то можно просто отключать видимость на время изменений состава и размеров.
Таксибе. Если у тс`а все на привязках и коррекциях положения в onResize - сам процесс вкл-выкл будет вызывать пересчет размеров-положений элементов
Добавлено спустя 1 минуту 51 секунду:
Re: Правильный метод отрисовки при изменении размеров объектов.
jsa
Стремление все залепить на одну форму не только превращает интерфейс в "какашку", но еще и код делает большим монолитным куском "говнокода"
- Снег Север
- долгожитель
- Сообщения: 3067
- Зарегистрирован: 27.11.2007 15:14:47
- Контактная информация:
Чудовищный интерфейс... Какая религия мешает использовать табы и страницы?
- wofs
- постоялец
- Сообщения: 379
- Зарегистрирован: 05.10.2009 10:16:55
- Откуда: Астрахань
- Контактная информация:
Если я правильно понял проблему, то:
На форме с 3мя сплиттерами/ 4мя панелями и стандартными компонентами TreeView/DBGrid проблем и артефактов при ресайзе панелей не возникает.
А в чем нужда пересчитывать в onResize? Накидать панелей, привязать элементы к панелям через Align/Anchors и сплиттерами менять размеры панелей, все прорисуется как надо.
p.s.Ну и глаза у мня разбежались от обилия элементов
Но я и в телефоне иконки по папкам раскладываю,не люблю много элементов в одном рабочем поле.
Код: Выделить всё
//TSplitter
ResizeStyle:= rsLine;На форме с 3мя сплиттерами/ 4мя панелями и стандартными компонентами TreeView/DBGrid проблем и артефактов при ресайзе панелей не возникает.
Часть объектов уже в Anchors прикреплены к границам, и тянутся одновременно с родительским компонентом.
А часть пересчитывается в onResize
А в чем нужда пересчитывать в onResize? Накидать панелей, привязать элементы к панелям через Align/Anchors и сплиттерами менять размеры панелей, все прорисуется как надо.
p.s.Ну и глаза у мня разбежались от обилия элементов
закоментить и проверить как будет "реагировать" форма с компонентами.А часть пересчитывается в onResize
в принципе ничто не мешает использовать фреймы. Так что можно логику разбить на части. И ничто не нарушит её. Как и не превратит в говнокод. Хотя это не тот случайСтремление все залепить на одну форму не только превращает интерфейс в "какашку", но еще и код делает большим монолитным куском "говнокода"
п.с.
А "девки" (компоненты) уже в лазарь перебрались? Если это они...
serbod писал(а):DoubleBuffered := True;
Уже установлено на форме, панелях и гридах.
Я до конца не понимаю как это работает. Кто-то пишет, что надо ставить на родительские компоненты, кто-то на те что мерцают при растагивании. Получается, что у меня они на родительских и стоят.
Частично это решает проблему. но не полностью.
эти не используются.Использовать VirtualTreeView вместо стандартных TreeView и ListView
Уменьшить частоту перерисовки элементов. Если это сложно и непонятно, то можно просто отключать видимость на время изменений состава и размеров.
Спроектировать интерфейс пользователя так, чтобы недостатки не проявлялись. Например, для слабого железа или тонкого клиента использовать упрощенную графическую тему, без анимации и полутонов.
Частично уже пошел по пути минимизации необходимости таскать сплиттеры. Просто вопрос уже возник решил разобраться на будущее.
P.S. Спасибо за ответ по делу.
Добавлено спустя 24 минуты 21 секунду:
zub писал(а):>>но я отучаю себя хамить хамам которые считают себя умнее всех других. Вдруг ошибаюсь.
1. Ошибаетесь
2. Плохо отучаете. Не хамите, интерфейс перегружен, вам говорят поделу.
А если в программе отсутствует настройка интерфейса в рантайме - такой интерфейс это еще и хамите пользователю))
1. Когда презрительно кидают оценки и выводы, не говоря ничего по существу вопроса, это я вижу, и тут я не ошибаюсь, в том что человек откровенно хамит.
2. Меня не интересует в данный момент мнение кого бы то ни было по поводу интерфейса. И предлагаю свои гениальные выводы на эту тему просто оставить при себе.
Не хамским комментарий был бы таким - Ответа на поставленный вопрос при таком количестве элементов нет, технически сделать переразмеривание гладким нельзя.
Так что не надо говорить что это "Человек не может концентрироваться более чем на 5 максимум 7 элементах. Отсюда вывод все эти плюшки на главной форме не нужны. " ответ по делу.
Это именно хамское, презрительное заявление в стиле "скрипач... не нужен".
Таксибе. Если у тс`а все на привязках и коррекциях положения в onResize - сам процесс вкл-выкл будет вызывать пересчет размеров-положений элементов
onResize используется только при некоторых панелях на которых находятся гриды, для того чтобы подогнать размеры колонок. Все остальное Anchors
Стремление все залепить на одну форму не только превращает интерфейс в "какашку",
Мне вот уже даже интересно, вы посмотрели, примерно поняли про что программа, и в каких рабочих условия она используется, и как у любого творца, в голове сразу возникла схема, что можно сделать с этим "говном", чтобы получилось маршмеллоу.
Может поделитесь? А я в свою очереь объясню, почему в первые в жизни залепил весь интерфейс в одно окно.
но еще и код делает большим монолитным куском "говнокода"
Ну тут говнокод не такой уж и большой, т.к. бОльшая часть логики, реализована на хранимках СУБД.
А так да не удобно. Тут фреймы упоминали, никогда не пользовался. Но теперь посмотрю как это может облегчить.
Добавлено спустя 3 минуты 50 секунд:
Снег Север писал(а):Чудовищный интерфейс...
Чем именно чудовищный? Оскорбляет конкретно твои эстетические чувства? Это твое субъективное вИдение или есть конкретный критерий чудовищности?
Снег Север писал(а):Какая религия мешает использовать табы и страницы?
Это вопрос. Я ответу на этот вопрос, если ты ответишь, какая религия придает тебе зуд влезать в тему со своими оценками, а не по поводу заданного вопроса, хотя выше есть просьба не обсуждать интерфейс.
Добавлено спустя 14 минут:
Re: Правильный метод отрисовки при изменении размеров объектов.
wofs писал(а):На форме с 3мя сплиттерами/ 4мя панелями и стандартными компонентами TreeView/DBGrid проблем и артефактов при ресайзе панелей не возникает.
Предполагаю, что мог где-то переборщить когда пытался добиться еще большей плавности. А теперь сложно понять, что на что влияет.
Компоненты не все стандартные используется EhLib 9.2
p.s.Ну и глаза у мня разбежались от обилия элементов
Ничего удивительного. Точно так же глаза разбегутся при виде набора инструментов в операционной, или если вы зайдете в кабину пилота.
Я еще до запрета посторонних в кабинах, имел счастливую возможность сидеть в кабине пассажирского самолета, там не только глаза разбегались, мне пошевелиться было страшно, чтобы не задеть чего. Однако пилоты как-то не страдали от количества всего, всего и одновременно (а не табах и страницах).
Ну или представьте себе рабочее место звукорежиссера, диспетчеров транспортных развязок и т.д.
Меня вообще удивляет напор и оголтелая самоуверенность местных дизайнеров.
Программы бывают разного назначения. Есть программы ширпотребные, в которых должен разобраться пользователь сам. и использует он ее от случая к случаю, а есть программы морды которых продиктованы ровно тем кто и как их использует.
это не для "облегчения" отрисовкиТут фреймы упоминали, никогда не пользовался. Но теперь посмотрю как это может облегчить.
это, уж пардон - всё равно... При коментировании того что вы подсунули в onResize отрисовка глючит???onResize используется только при некоторых панелях на которых находятся гриды, для того чтобы подогнать размеры колонок.
- Снег Север
- долгожитель
- Сообщения: 3067
- Зарегистрирован: 27.11.2007 15:14:47
- Контактная информация:
Я ответу на этот вопрос, если ты ответишь, какая религия придает тебе зуд влезать в тему со своими оценками, а не по поводу заданного вопроса, хотя выше есть просьба не обсуждать интерфейс.
Можешь не отвечать, а сразу идти по хорошо тебе известному адресу.
