Chek Please 3

Собственные чек-боксы на основе Button Bars

Разработчики из компании Beezwax в своем блоге опубликовали интересную технику создания собственных чек-боксов в FileMaker на основе появившемся в 14-й версии FileMaker инструменте Button Bars. Со статьей целиком можно ознакомиться здесь (английский), мы же ограничимся описанием основных принципов. Как все гениальное, они довольно просты.

Создавать чек-боксы в FileMaker легко и приятно, достаточно задать соотвествующий формат поля и указать список возможных значений. Однако у стандартного способа, который нам предоставляет FileMaker есть и ряд недостатков. Чек-бокс в FileMaker выглядит всегда как квадратик в который прославляется символ «крестик». Альтернатива — можно использовать символ «галочки», что собственно и делает чек-бокс чек-боксом, однако эта возможность появилась только с 13-й версии. Разработчик не многое может изменить в том как будет выглядеть чек-бокс, по сути только размер и цвет.

Кроме того, часто в качестве списка значений для чек-бокса, разработчик использует список с одним единственным значением «1», для того чтобы в базу попадало значение либо 1 либо «пусто». А подпись к полю делается как обычный лейбл. Из этого подхода вытекают еще два недостатка:

  • Для того чтобы включить/выключить чек-бокс, пользователь должен кликать на сам «квадратик», клик на лейбл ни к чему не приведет.
  • Неаккуратное форматирование, а также некоторое отличие отображения лайаутов (в основном из-за небольших различий в шрифтах) на разных платформах (Win/Mac/iOS/Web) может привести к тому, что символ «1» будет виден пользователю.

Chek Please 1

Уйти от этих недостатков и создать собственные кастомизированные чек-боксы можно по разному. Один из вариантов использовать  Button Bars и возможность «скрытия» (свойство Hide object when) объектов. Техника работает так:

  • Сам чек-бокс представляет из себя Button Bars из двух кнопок, где одна кнопка отвечает за «включенный» чек-бокс, а другая за «выключенный».
  • Вид самого чек-бокса определяется изображениями, которые подставляются в соотвествующие кнопки Button Bars. Это могут быть как png, так и svg файлы. Очевидно, что раз мы используем изображения, то вид чек-бокса может быть любой и ограничен только фантазией и чувством стили разработчика.
  • Включение/выключение чек-бокса осуществляется с помощью скрипта, который «висит» на обеих кнопках и инвертирует значение поля за которое отвечает чек-бокс.
  • Для кнопок настроено свойство Hide object when. «Включенная» кнопка скрывается, когда значение поля пусто, а «выключенная», наоборот, когда поле не пустое.

Хотя в режиме редактирования лайоута мы видим наш чек-бокс как Button Bars состоящий из двух кнопок, свойство Hide object when настроено так, что на лайоуте всегда отображается только одна из двух кнопок и поскольку это Button Bars, то когда левая кнопка скрывается, правая кнопка смещается на ее место. Таким образом пользователь видит только включение/выключение чек-бокса.

Chek Please 2

Скачать демонстрационный файл можно здесь. В файле присутствуют различные варианты отображения чек-боксов, которые можно скопировать в свои проекты. Спасибо авторам техники.

 

 

 

6 комментариев

    1. ну, кому-то известна, кому-то нет. Мы же для всех пишем, не только для самых опытных.

      1. согласен.
        тогда следует подчеркнуть, что этот способ подходит не только для чек-боксов, но для всех случаев, когда видимая на экране кнопка должна «видоизменяться» в зависимости от условий. При этом вариантов отображения кнопки может быть сколько угодно. У каждой кнопки в наборе может быть своя собственная уникальная иконка, расцветка, команда. Главное — предусмотреть в настройках, чтобы отображалась только одна из кнопок.

          1. Я сейчас пишу курсовой проект и диплом по файлмейкеру. Скоро будет много няшек. Ждите

Leave a Reply

Ваш e-mail не будет опубликован. Обязательные поля помечены *

49 + = 59