Перейти к содержанию
  • 0
Hevard

Необычный порядок отображения RadioButton

Вопросы

Доброго дня!

Не пойму, в чём накосячил, ибо Делфил лет 15-20 назад, а тут добрался до FMX...

В приложении на Скролле лежат 8 РадиоКнопок с Align = Top; Visible = False; 

Код заполнения линейно, из БД. Если поле БД не пустое - видим, если пустое - не видим.

При работе приложения, они располагаются "по своему усмотрению".

 

Без имени1.png

Без имени2.png

Без имени3.png

Отредактировал Hevard

Поделиться сообщением


Ссылка на сообщение

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

  • 0

Если честно, я не до конца понял, что к чему. И меня мучает вопрос - если операции линейны, почему смещается порядок?

Спросить постеснялся... 

Поделиться сообщением


Ссылка на сообщение
  • 0

Зря)

Все очень просто.

Дано

Rb1, Rb2. Align  = TOP, Visible = true

Код Rb1.Visible := false; Rb1.Visible := true; приведет к очень интересному результату:

Когда исчезнет rb1, rb2 подтянется на самый верх, т.е. RB2.position.Y станет = 0.

Теперь rb1 появляется и position.Y у него не меньше чем у RB2. Следовательно, rb1 автоматически отодвинется вниз.

Собсно, всё.

Выходов из ситуации несколько

1) "Нормальный": создавать RB или Layout c RB или фрейм по необходимости. И последовательно присваивая position.Y := 1000000 они сами будут подтягиваться наверх

2) "И так сойдет": явно пробежать по видимым RB и расставить им Position.Y опять же 1000000 чтобы они подтянулись наверх в нужном порядке

3) "Гибридный": всегда использовать RB по порядку. В первом - первый вопрос, во втором второй и т.д. Лишние снизу - прятать

Поделиться сообщением


Ссылка на сообщение
  • 0
14 часов назад, krapotkin сказал:

3) "Гибридный": всегда использовать RB по порядку. В первом - первый вопрос, во втором второй и т.д. Лишние снизу - прятать

Так вроде в таком порядке они и используются. RB1 - 2 поле БД (1й ответ), в RB2 - 3 поле БД (2й ответ)  и т.д. Они заполняются корректно в соответствии, а шатаются по Скроллу, как пьяные матросы.

И порядок вроде бы логичный: они же все объявлены как Visible = True. Есть поле 2 - нарисовали, есть поле 3 - нарисовали ... есть поле 7 - нарисовали. 

Я понимаю, если, к примеру нет поля 4, то 3-го Button-a нет и на его место встаёт 4-й Button. 

Поделиться сообщением


Ссылка на сообщение
  • 0

насколько я помню код - они там сначала прячутся, потом появляются. да еще и со сменой высоты. Я уже не помню подробности, но там было все абсолютно логично.

В общем, опять копаться лень. Применяй хотя бы вариант 2 и все бует норм.

 

Поделиться сообщением


Ссылка на сообщение

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

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

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

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

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

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

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

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


  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

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