Съезжают Label'ы на ScrollBox'е

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

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

Съезжают Label'ы на ScrollBox'е

Сообщение bestonix » 15.06.2011 10:11:53

Доброго здоровья уважаемые.
Появилась неожиданная проблема в поведении интерфейса программы.
На форме лежит ScroollBox. На нем лежат несколько полей, которые предполагается будут постоянными.
Снизу рисуются в Runtime'е поля, которые пользователь пожелает видеть и заполнять. Количество полей ограниченно только воображением пользователя. После того, как они выходят за границу окна как и положено появляется полоса прокрутки. НО, как только начинаю перемещать ее вниз, то все компоненты Label (включая и "жестко" расположенные) "цепляются" за верхний край и съезжают со своих мест. Получается полный хаос :(
Если же менять размер окна, то все остаётся на своих местах, все красиво и благородно.
Предок у label'ов и TEdit'ов, TComboBox'ов один и тот же, а именно ScroollBox. Свойство Anchors = [akTop,akLeft] у Label'ов и [akTop,akLeft,akRight] у остальных компонентов.
Прошу оказать посильную помощь, почему такое происходит и как можно это побороть ?

С уважением Дмитрий
bestonix
новенький
 
Сообщения: 66
Зарегистрирован: 15.04.2010 08:26:00
Откуда: Жигулёвск

Re: Съезжают Label'ы на ScrollBox'е

Сообщение WAYFARER » 15.06.2011 12:04:28

bestonix
какая ОС и версия Lazarus?
Сейчас попробовал воспроизвести ситуацию, все работает нормально.
(Lazarus 0.9.30, OC Windows XP SP3)
Аватара пользователя
WAYFARER
энтузиаст
 
Сообщения: 537
Зарегистрирован: 09.10.2009 00:00:04
Откуда: г. Курган

Re: Съезжают Label'ы на ScrollBox'е

Сообщение Odyssey » 15.06.2011 12:17:48

Если я правильно понимаю логику работы ScrollBox'а, то все его дочерние компоненты, как бы "жёстко" или "мягко" они ни были расположены, перемещаются при перетаскивании полос прокрутки. Если нужно, чтобы Edit'ы и ComboBox'ы двигались, а Label'ы оставались на месте, то Label'ы должны быть вне ScrollBox'а, т.е. быть дочерними компонентами формы.

Возможно, я неправильно понял что именно требуется. В этом случае мне и другим советчикам помог бы скриншот до и после прокручивания ScrollBox'а.
Odyssey
энтузиаст
 
Сообщения: 580
Зарегистрирован: 29.11.2007 17:32:24

Re: Съезжают Label'ы на ScrollBox'е

Сообщение bestonix » 15.06.2011 13:59:45

Версия: Lazarus 0.9.31 FPC 2.4.3

Пробовал прописывать Parent'а и саму форму и скролла. Результат всегда один и тот же

Добавлено спустя 1 минуту 42 секунды:
Нужно, чтоб при прокрутке каждый лабель был возле своего поля.

Добавлено спустя 2 минуты 38 секунд:
А вот это когда просто расширяю окно. Т.е. сам скрол не двигаю, а просто растягиваю окно по высоте.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
bestonix
новенький
 
Сообщения: 66
Зарегистрирован: 15.04.2010 08:26:00
Откуда: Жигулёвск

Re: Съезжают Label'ы на ScrollBox'е

Сообщение rayanAyar » 15.06.2011 14:13:39

У меня не получилось повторить этот глюк. У меня все нормально скроллируется.
А в чистом проекте этот глюк тоже повторяется? (создать новый проект, бросить ScrollBox, Label'ы, Edit'ы, и поскроллировать)
Аватара пользователя
rayanAyar
новенький
 
Сообщения: 42
Зарегистрирован: 06.01.2011 08:22:52
Откуда: Новоуральск

Re: Съезжают Label'ы на ScrollBox'е

Сообщение WAYFARER » 15.06.2011 14:23:24

Попробуйте с выключенным Aero...
Аватара пользователя
WAYFARER
энтузиаст
 
Сообщения: 537
Зарегистрирован: 09.10.2009 00:00:04
Откуда: г. Курган

Re: Съезжают Label'ы на ScrollBox'е

Сообщение bestonix » 15.06.2011 14:26:41

Создал по быстрому проект, накидал туда компонентов и запустил.
Повторяется.

Добавлено спустя 2 минуты 36 секунд:
WAYFARER писал(а):Попробуйте с выключенным Aero...

Что такое Aero... ?

Я понял это должно быть в параметрах проекта. Но там ничего такого не нашел
У вас нет необходимых прав для просмотра вложений в этом сообщении.
bestonix
новенький
 
Сообщения: 66
Зарегистрирован: 15.04.2010 08:26:00
Откуда: Жигулёвск

Re: Съезжают Label'ы на ScrollBox'е

Сообщение rayanAyar » 15.06.2011 14:35:22

bestonix писал(а):Что такое Aero... ?

Визуальная тема WinVista/Win7. Поддерживаю предложение WAYFARER - можно попробовать отключить визуальные эффекты.

Если не поможет - нужно пробовать другую версию Lazarus. Или попробовать эту же версию на другой машине.
Аватара пользователя
rayanAyar
новенький
 
Сообщения: 42
Зарегистрирован: 06.01.2011 08:22:52
Откуда: Новоуральск

Re: Съезжают Label'ы на ScrollBox'е

Сообщение WAYFARER » 15.06.2011 14:58:35

У меня проблема с отрисовкой довольно сложных динамических форм с кучей контролов при создании в WinVista/7.
решение не нашел. подумываю о gtk
Аватара пользователя
WAYFARER
энтузиаст
 
Сообщения: 537
Зарегистрирован: 09.10.2009 00:00:04
Откуда: г. Курган

Re: Съезжают Label'ы на ScrollBox'е

Сообщение bestonix » 15.06.2011 15:14:23

Сейчас сижу под W7 и такая ерунда.
Включил классическую тему винды, изменений нет :(

Попробую вечером дома под ХР.
Надежды мало, но вдруг.
bestonix
новенький
 
Сообщения: 66
Зарегистрирован: 15.04.2010 08:26:00
Откуда: Жигулёвск

Re: Съезжают Label'ы на ScrollBox'е

Сообщение WAYFARER » 15.06.2011 15:37:25

bestonix писал(а):Создал по быстрому проект, накидал туда компонентов и запустил.
Повторяется.

Выложите тестовый проект.
попробовал в Windows 7 и Lazarus 0.9.31(r30443) - все нормально скролится
Аватара пользователя
WAYFARER
энтузиаст
 
Сообщения: 537
Зарегистрирован: 09.10.2009 00:00:04
Откуда: г. Курган

Re: Съезжают Label'ы на ScrollBox'е

Сообщение stikriz » 15.06.2011 15:55:02

В ScroollBox положить панель, компонентам указывать парент панель, а овнер - форму. Соответственно, следить за размерами панели - все будет всегда пучком.
Просто, парентом у надписей ScroollBox быть не может - это методологическая ошибка.
Аватара пользователя
stikriz
энтузиаст
 
Сообщения: 612
Зарегистрирован: 15.03.2006 09:37:47

Re: Съезжают Label'ы на ScrollBox'е

Сообщение bestonix » 15.06.2011 16:08:04

WAYFARER писал(а):
bestonix писал(а):Создал по быстрому проект, накидал туда компонентов и запустил.
Повторяется.

Выложите тестовый проект.
попробовал в Windows 7 и Lazarus 0.9.31(r30443) - все нормально скролится
У вас нет необходимых прав для просмотра вложений в этом сообщении.
bestonix
новенький
 
Сообщения: 66
Зарегистрирован: 15.04.2010 08:26:00
Откуда: Жигулёвск

Re: Съезжают Label'ы на ScrollBox'е

Сообщение Boris » 15.06.2011 16:15:06

stikriz писал(а):Просто, парентом у надписей ScroollBox быть не может - это методологическая ошибка.


Так и есть, Panel или GroupBox, а уже в него все складывать.
Boris
новенький
 
Сообщения: 17
Зарегистрирован: 22.01.2011 20:45:48

Re: Съезжают Label'ы на ScrollBox'е

Сообщение bestonix » 15.06.2011 16:26:32

stikriz писал(а):В ScroollBox положить панель, компонентам указывать парент панель, а овнер - форму. Соответственно, следить за размерами панели - все будет всегда пучком.
Просто, парентом у надписей ScroollBox быть не может - это методологическая ошибка.


Все правильно.
Большое спасибо, все заработало как положено
bestonix
новенький
 
Сообщения: 66
Зарегистрирован: 15.04.2010 08:26:00
Откуда: Жигулёвск

След.

Вернуться в Lazarus

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

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

Рейтинг@Mail.ru