Перейти к содержанию
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 эмодзи.

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

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

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

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