Перейти к содержанию
Fire Monkey от А до Я
  • 0

Нет прокрутки VertScrollBox + GridPanelLayout


x11

Вопрос

Мультиплатформенное приложение. Проверяю на Windows (на Android пока не проверял).

На форме лежит TVertScrollBox, а внутри этого ScrollBox`а лежит GridPanelLayout.

Проблема в том, что у VertScrollBox не появляется полоса прокрутки.

 

Изначально задача такая. На форме мобильного приложения для смартфона может быть много разных компонент. И нужно иметь возможность прокручивать форму, а вернее компоненты, вверх вниз.

Сейчас пытаюсь сделать так. Компонента TGridPanelLayout разделена 2 колонки: подпись слева (в левой колонке TLabel) и в правой колонке компоненты редактирования (TEdit, TComboBox и другие).

Пытаюсь спроектировать форму редактирования объявления, где много разных параметров: дата, тип, картинки, многострочный текст, выпадающие списки, кнопки и т.д.

Ссылка на комментарий

Рекомендуемые сообщения

  • 0

1). Задайте для GridPanelLayout выравнивание Top.
2). Для всех строк TGridPanelLayout.TRowItem, добавляемых в RowCollection, задайте свойство SizeStyle - Absolute и значение Value отличное от 0.

Изменено пользователем enatechno
Ссылка на комментарий
  • 0
Цитата

подпись слева (в левой колонке TLabel) и в правой колонке компоненты редактирования (TEdit, TComboBox и другие).

В мобильных приложениях надо экономить место. Поэтому лэйбл положите прямо внутрь Tedit и TCombobox или Memo (можно сделать в инспекторе объектов), поставьте ему enabled := false чтобы он был серого цвета. Затем на OnChange или OnChangeTracking проверяйте кол. символов и прячьте лэйбл: 

Label1.Visible :=   Edit1.Text.Length = 0;

Изменено пользователем ENRGY
Ссылка на комментарий
  • 1
17 минут назад, ENRGY сказал:

В мобильных приложениях надо экономить место. Поэтому лэйбл положите прямо внутрь Tedit и TCombobox или Memo (можно сделать в инспекторе объектов), поставьте ему enabled := false чтобы он был серого цвета. Затем на OnChange или OnChangeTracking проверяйте кол. символов и прячьте лэйбл: 

Label1.Visible :=   Edit1.Text.Length = 0;

Эта плюшка уже есть в TEdit, называется TEdit.TextPrompt 

Ссылка на комментарий
  • 0
4 часа назад, x11 сказал:

Мультиплатформенное приложение. Проверяю на Windows (на Android пока не проверял).

На форме лежит TVertScrollBox, а внутри этого ScrollBox`а лежит GridPanelLayout.

Проблема в том, что у VertScrollBox не появляется полоса прокрутки.

 

Изначально задача такая. На форме мобильного приложения для смартфона может быть много разных компонент. И нужно иметь возможность прокручивать форму, а вернее компоненты, вверх вниз.

Сейчас пытаюсь сделать так. Компонента TGridPanelLayout разделена 2 колонки: подпись слева (в левой колонке TLabel) и в правой колонке компоненты редактирования (TEdit, TComboBox и другие).

Пытаюсь спроектировать форму редактирования объявления, где много разных параметров: дата, тип, картинки, многострочный текст, выпадающие списки, кнопки и т.д.

Я для таких целей использую TListBox. Проще и удобнее. Плюс некоторые строки по мере надобности можно скрывать/показывать.

Ссылка на комментарий
  • 0
8 часов назад, Евгений Корепов сказал:

Я для таких целей использую TListBox. Проще и удобнее. Плюс некоторые строки по мере надобности можно скрывать/показывать.

 

хмммм, неплохо, а где и как можно поизучать матчасть и примеры о том, как вставлять компоненты в TListBox или в TListView?

Ссылка на комментарий
  • 0
20 минут назад, x11 сказал:

 

хмммм, неплохо, а где и как можно поизучать матчасть и примеры о том, как вставлять компоненты в TListBox или в TListView?

Кидаете на форму TListBox, правой кнопкой по нему и через контекстное меню создаете TListBoxItem. В TListBoxItem кидаете TLabel с выравниванием по левому краю, пишите текст "Это включает такую то фичу". В тот же TListBoxItem кидаете нужный контрол, к примеру TSwitch с выравниванием по правому краю и привязываете к нему нужный код. Все, повторяете необходимое количество раз. Если нужно много подобного - проделываете тоже самое в процессе выполнения приложения программно.

Ссылка на комментарий
  • 0

Вот именно, что хорошо бы без TLabel, чтобы у контейнера была своя подпись.

Шикарное решение у DevExpress в TcxLayoutControl. И пользлватель сам может редактировать форму в Runtime.

Изменено пользователем x11
Ссылка на комментарий
  • 0
32 минуты назад, x11 сказал:

Вот именно, что хорошо бы без TLabel, чтобы у контейнера была своя подпись.

Шикарное решение у DevExpress в TcxLayoutControl. И пользлватель сам может редактировать форму в Runtime.

Элементарно - TListBoxItem.Text:='Это включает такую то фичу';

Изменено пользователем Евгений Корепов
Ссылка на комментарий
  • 0
8 минут назад, x11 сказал:

и этот TListBoxItem.Text можно разместить слева/справа/сверху основной компоненты?

 

сейчас нету IDE под рукой

Посмотрите стандартные примеры ListBox

Ссылка на комментарий
  • 0
В 31.03.2017 в 09:11, Евгений Корепов сказал:

TListBox

 

А вот GridPanelLayout удобнее тем, что у колонку с подписями можно легко изменить ширину. А у ListBox придётся менять каждый ListBoxItem :(

Ссылка на комментарий
  • 0
В 31.03.2017 в 00:33, Евгений Корепов сказал:

Я для таких целей использую TListBox

 

У меня получается очень неудобно.

При попытке прокрутить список пальцем на смартфоне, т.е. потянуть его вверх или вниз, получается тап (click) и всплывает клавиатура постоянно.

Ссылка на комментарий
  • 0

Сейчас Item`ом у ListBox`а пока не много, около 20, но список при пролистывании вверх и вниз пальцем заметно тормозит. При при тапе по Item`у видна "визуализация выбора" и она тоже заметно тормозит.

А смарт не самый плохой.

Ссылка на комментарий
  • 0
В 03.04.2017 в 22:16, x11 сказал:

Сейчас Item`ом у ListBox`а пока не много, около 20, но список при пролистывании вверх и вниз пальцем заметно тормозит. При при тапе по Item`у видна "визуализация выбора" и она тоже заметно тормозит.

А смарт не самый плохой.

ListBox всегда был тормозной. Поэтому лучше использовать ListView (если версия НЕ Токио) :)

Ссылка на комментарий
  • 0
5 часов назад, x11 сказал:

Берлин. А что если Токио? Договаривайте.

Т.е. в ListView тоже можно навставлять много разных компонент?

В Токио ЛистВью чуток тормознее.

Вот же выше ссылка на видео от krapotkin показывающее что можно делать с ListView

Ссылка на комментарий
  • 0

ListBox - тормоз

ListView - ещё тормознее

т.е. в FMX до сих пор нет нормальной компоненты для ввода данных списком.

Может кто посоветует нормальную компоненту, чтобы можно было визуально сделать дизайн Itema? Чтобы отображать данные из БД.

Ссылка на комментарий

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...